difftreelog
merge develop into /test/playground-migration
in: master
154 files changed
.docker/Dockerfile-acala.j2diffbeforeafterbothno changes
.docker/Dockerfile-chain-devdiffbeforeafterboth1FROM ubuntu:20.041FROM ubuntu:20.04223ARG RUST_TOOLCHAIN=4ARG FEATURE=53ENV DEBIAN_FRONTEND=noninteractive6ENV DEBIAN_FRONTEND=noninteractive4ENV TZ=Etc/UTC7ENV TZ=Etc/UTC56RUN apt-get update && apt-get install -y git curl libssl-dev llvm pkg-config libclang-dev clang git make cmake8ENV FEATURE=$FEATURE78ENV CARGO_HOME="/cargo-home"9ENV CARGO_HOME="/cargo-home"9ENV PATH="/cargo-home/bin:$PATH"10ENV PATH="/cargo-home/bin:$PATH"101111RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none12RUN echo "$FEATURE\n" && echo "$RUST_TOOLCHAIN\n"121313ARG RUST_TOOLCHAIN=14RUN apt-get update && apt-get install -y git curl libssl-dev llvm pkg-config libclang-dev clang git make cmake1514ARG FEATURE=16RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none151716RUN rustup toolchain uninstall $(rustup toolchain list) && \18RUN rustup toolchain uninstall $(rustup toolchain list) && \17 rustup toolchain install $RUST_TOOLCHAIN && \19 rustup toolchain install $RUST_TOOLCHAIN && \24WORKDIR /dev_chain26WORKDIR /dev_chain252726RUN cargo build --release28RUN cargo build --release29RUN echo "$FEATURE"273028CMD cargo run --release --features=$FEATURE -- --dev -linfo --unsafe-ws-external --rpc-cors=all --unsafe-rpc-external31CMD cargo run --release --features=$FEATURE -- --dev -linfo --unsafe-ws-external --rpc-cors=all --unsafe-rpc-external2932.docker/Dockerfile-cumulus.j2diffbeforeafterbothno changes
.docker/Dockerfile-moonbeam.j2diffbeforeafterbothno changes
.docker/Dockerfile-polkadot.j2diffbeforeafterbothno changes
.docker/Dockerfile-try-runtimediffbeforeafterboth47 cargo build --features=$FEATURE --release47 cargo build --features=$FEATURE --release48 48 494950CMD cargo run --features=$FEATURE --release -- try-runtime on-runtime-upgrade live --uri $REPLICA_FROM50CMD cargo run --features=try-runtime,$FEATURE --release -- try-runtime on-runtime-upgrade live --uri $REPLICA_FROM5151.docker/Dockerfile-xcm.j2diffbeforeafterbothno changes
.docker/docker-compose.tmp-dev.j2diffbeforeafterboth18 options:18 options:19 max-size: "1m"19 max-size: "1m"20 max-file: "3"20 max-file: "3"21 command: cargo run --release --features=$FEATURE -- --dev -linfo --unsafe-ws-external --rpc-cors=all --unsafe-rpc-external21 command: cargo run --release --features={{ FEATURE }} -- --dev -linfo --unsafe-ws-external --rpc-cors=all --unsafe-rpc-external2222.docker/docker-compose.tmp-xcm-tests.j2diffbeforeafterbothno changes
.docker/xcm-config/5validators.jsonnetdiffbeforeafterbothno changes
.docker/xcm-config/launch-config-xcm-opal.jsondiffbeforeafterbothno changes
.docker/xcm-config/launch-config-xcm-quartz.jsondiffbeforeafterbothno changes
.docker/xcm-config/launch-config-xcm-unique-rococo.jsondiffbeforeafterbothno changes
.docker/xcm-config/launch-config-xcm-unique.jsondiffbeforeafterbothno changes
.docker/xcm-config/minBondFix.jsonnetdiffbeforeafterbothno changes
.envdiffbeforeafterboth13QUARTZ_REPLICA_FROM=wss://eu-ws-quartz.unique.network:44313QUARTZ_REPLICA_FROM=wss://eu-ws-quartz.unique.network:44314UNIQUE_REPLICA_FROM=wss://eu-ws.unique.network:44314UNIQUE_REPLICA_FROM=wss://eu-ws.unique.network:4431516POLKADOT_LAUNCH_BRANCH=feature/rewrite-chain-id-in-spec1718KARURA_BUILD_BRANCH=2.9.119ACALA_BUILD_BRANCH=2.9.22021MOONRIVER_BUILD_BRANCH=runtime-170122MOONBEAM_BUILD_BRANCH=runtime-17012324STATEMINE_BUILD_BRANCH=parachains-v927025STATEMINT_BUILD_BRANCH=release-parachains-v923026WESTMINT_BUILD_BRANCH=parachains-v9270152728.github/workflows/dev-build-tests_v2.ymldiffbeforeafterboth686869 - name: Run tests69 - name: Run tests70 working-directory: tests70 working-directory: tests71 run: |71 run: |72 yarn install72 yarn install73 yarn add mochawesome73 yarn add mochawesome74 echo "Ready to start tests"74 node scripts/readyness.js75 node scripts/readyness.js75 echo "Ready to start tests"76 yarn polkadot-types76 yarn polkadot-types77 NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}77 NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}78 env:78 env:79 RPC_URL: http://127.0.0.1:9933/79 RPC_URL: http://127.0.0.1:9933/808096 if: always() # run this step always96 if: always() # run this step always97 run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down97 run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down989899 - name: Remove builder cache100 if: always() # run this step always101 run: |102 docker builder prune -f -a103 docker system prune -f104 docker image prune -f -a.github/workflows/market-test_v2.ymldiffbeforeafterboth45 repository: 'UniqueNetwork/market-e2e-tests'45 repository: 'UniqueNetwork/market-e2e-tests'46 ssh-key: ${{ secrets.GH_PAT }}46 ssh-key: ${{ secrets.GH_PAT }}47 path: 'qa-tests'47 path: 'qa-tests'48 ref: 'ci_test_v2'48 ref: 'master'494950 - name: Read .env file50 - name: Read .env file51 uses: xom9ikk/dotenv@v1.0.251 uses: xom9ikk/dotenv@v1.0.2175 - name: Stop running containers174 - name: Stop running containers176 if: always() # run this step always175 if: always() # run this step always177 run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" down --volumes176 run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" down --volumes178# run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" down179177180 - name: Remove builder cache178 - name: Remove builder cache181 if: always() # run this step always179 if: always() # run this step always.github/workflows/node-only-update_v2.ymldiffbeforeafterboth10# A workflow run is made up of one or more jobs that can run sequentially or in parallel10# A workflow run is made up of one or more jobs that can run sequentially or in parallel11jobs:11jobs:121213 execution-marix:13 nodes-execution-matrix:141415 name: execution matrix15 name: execution matrix161642424343444445 forkless-update-nodata:45 nodes-only-update:46 needs: execution-marix46 needs: nodes-execution-matrix47 # The type of runner that the job will run on47 # The type of runner that the job will run on48 runs-on: [self-hosted-ci,large]48 runs-on: [self-hosted-ci,large]4949575758 strategy:58 strategy:59 matrix:59 matrix:60 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}60 include: ${{fromJson(needs.nodes-execution-matrix.outputs.matrix)}}616162 steps:62 steps:6363156 exit 0156 exit 0157 shell: bash157 shell: bash158159 - name: Checkout at '${{ matrix.mainnet_branch }}' branch160 uses: actions/checkout@master161 with:162 ref: ${{ matrix.mainnet_branch }} #Checking out head commit163 path: ${{ matrix.mainnet_branch }}164158165159 - name: Run tests before Node Parachain upgrade166 - name: Run tests before Node Parachain upgrade160 working-directory: tests167 working-directory: ${{ matrix.mainnet_branch }}/tests161 run: |168 run: |162 yarn install169 yarn install163 yarn add mochawesome170 yarn add mochawesome164 node scripts/readyness.js171 echo "Ready to start tests"165 echo "Ready to start tests"172 yarn polkadot-types166 yarn polkadot-types173 NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}167 NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}168 env:174 env:169 RPC_URL: http://127.0.0.1:9933/175 RPC_URL: http://127.0.0.1:9933/170176174 if: success() || failure() # run this step even if previous step failed180 if: success() || failure() # run this step even if previous step failed175 with:181 with:176 name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created182 name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created177 path: tests/mochawesome-report/test-*.json # Path to test results183 path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-*.json # Path to test results178 reporter: mochawesome-json184 reporter: mochawesome-json179 fail-on-error: 'false'185 fail-on-error: 'false'180186262268263 - name: Remove builder cache269 - name: Remove builder cache264 if: always() # run this step always270 if: always() # run this step always265 run: |271 run: |266 docker builder prune -f272 docker builder prune -f -a267 docker system prune -f273 docker system prune -f274 docker image prune -f -a268275269 - name: Clean Workspace276 - name: Clean Workspace270 if: always()277 if: always().github/workflows/try-runtime_v2.ymldiffbeforeafterbothno syntactic changes
.github/workflows/xcm-testnet-build.ymldiffbeforeafterbothno changes
.github/workflows/xcm-tests_v2.ymldiffbeforeafterbothno changes
.github/workflows/xcm.ymldiffbeforeafterboth1name: Nesting XCM1name: xcm-testnet-build223# Controls when the action will run.3on:4on:4 workflow_call:5 workflow_call:56 67 # Allows you to run this workflow manually from the Actions tab8 workflow_dispatch:910#Define Workflow variables11env:12 REPO_URL: ${{ github.server_url }}/${{ github.repository }}1314# A workflow run is made up of one or more jobs that can run sequentially or in parallel7jobs:15jobs:1617 prepare-execution-marix:1819 name: Prepare execution matrix2021 runs-on: [XL]22 outputs:23 matrix: ${{ steps.create_matrix.outputs.matrix }}2425 steps:2627 - name: Clean Workspace28 uses: AutoModality/action-clean@v1.1.02930 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it31 - uses: actions/checkout@v332 with:33 ref: ${{ github.head_ref }} #Checking out head commit3435 - name: Read .env file36 uses: xom9ikk/dotenv@v1.0.23738 - name: Create Execution matrix39 uses: fabiocaccamo/create-matrix-action@v240 id: create_matrix41 with:42 matrix: |43 network {opal}, runtime {opal}, features {opal-runtime}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.WESTMINT_BUILD_BRANCH }}}, runtest {testXcmOpal}44 network {quartz}, runtime {quartz}, features {quartz-runtime}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONRIVER_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINE_BUILD_BRANCH }}}, runtest {testXcmQuartz}45 network {unique}, runtime {unique}, features {unique-runtime}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINT_BUILD_BRANCH }}}, runtest {testXcmUnique}8469 xcm-testnet-build:47 xcm-build:48 49 needs: prepare-execution-marix50 # The type of runner that the job will run on51 runs-on: [XL]5253 timeout-minutes: 6005410 name: testnet build55 name: ${{ matrix.network }}5657 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.5859 strategy:60 matrix:61 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}6263 steps:64 - name: Skip if pull request is in Draft65 if: github.event.pull_request.draft == true66 run: exit 16768 - name: Clean Workspace11 uses: ./.github/workflows/xcm-testnet-build.yml69 uses: AutoModality/action-clean@v1.1.07071 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it12 secrets: inherit72 - uses: actions/checkout@v373 with:74 ref: ${{ github.head_ref }} #Checking out head commit7576 - name: Read .env file77 uses: xom9ikk/dotenv@v1.0.27879 - name: Log in to Docker Hub80 uses: docker/login-action@v2.0.081 with:82 username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}83 password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8485 - name: Install jq86 run: sudo apt install jq -y8788 # Check POLKADOT version and build it if it doesn't exist in repository89 - name: Generate ENV related extend Dockerfile file for POLKADOT90 uses: cuchi/jinja2-action@v1.2.091 with:92 template: .docker/Dockerfile-polkadot.j293 output_file: .docker/Dockerfile-polkadot.${{ env.POLKADOT_BUILD_BRANCH }}.yml94 variables: |95 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}96 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}9798 - name: Check if the dockerhub repository contains the needed version POLKADOT99 run: |100 # aquire token101 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)102 export TOKEN=$TOKEN103104 # Get TAGS from DOCKERHUB POLKADOT repository105 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"]')106 # Show TAGS107 echo "POLKADOT TAGS:"108 echo $POLKADOT_TAGS109 # Check correct version POLKADOT and build it if it doesn't exist in POLKADOT TAGS110 if [[ ${POLKADOT_TAGS[*]} =~ (^|[[:space:]])"${{ env.POLKADOT_BUILD_BRANCH }}"($|[[:space:]]) ]]; then111 echo "Repository has needed POLKADOT version";112 docker pull uniquenetwork/builder-polkadot:${{ env.POLKADOT_BUILD_BRANCH }}113 else114 echo "Repository has not needed POLKADOT version, so build it";115 cd .docker/ && docker build --no-cache --file ./Dockerfile-polkadot.${{ env.POLKADOT_BUILD_BRANCH }}.yml --tag uniquenetwork/builder-polkadot:${{ env.POLKADOT_BUILD_BRANCH }} .116 echo "Push needed POLKADOT version to the repository";117 docker push uniquenetwork/builder-polkadot:${{ env.POLKADOT_BUILD_BRANCH }}118 fi119 shell: bash120121 # Check ACALA version and build it if it doesn't exist in repository122 - name: Generate ENV related extend Dockerfile file for ACALA123 uses: cuchi/jinja2-action@v1.2.0124 with:125 template: .docker/Dockerfile-acala.j2126 output_file: .docker/Dockerfile-acala.${{ matrix.acala_version }}.yml127 variables: |128 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}129 ACALA_BUILD_BRANCH=${{ matrix.acala_version }}130131 - name: Check if the dockerhub repository contains the needed ACALA version132 run: |133 # aquire token134 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)135 export TOKEN=$TOKEN136137 # Get TAGS from DOCKERHUB repository138 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"]')139 # Show TAGS140 echo "ACALA TAGS:"141 echo $ACALA_TAGS142 # Check correct version ACALA and build it if it doesn't exist in ACALA TAGS143 if [[ ${ACALA_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.acala_version }}"($|[[:space:]]) ]]; then144 echo "Repository has needed ACALA version";145 docker pull uniquenetwork/builder-acala:${{ matrix.acala_version }}146 else147 echo "Repository has not needed ACALA version, so build it";148 cd .docker/ && docker build --no-cache --file ./Dockerfile-acala.${{ matrix.acala_version }}.yml --tag uniquenetwork/builder-acala:${{ matrix.acala_version }} .149 echo "Push needed ACALA version to the repository";150 docker push uniquenetwork/builder-acala:${{ matrix.acala_version }}151 fi152 shell: bash153154 # Check MOONBEAM version and build it if it doesn't exist in repository155 - name: Generate ENV related extend Dockerfile file for MOONBEAM156 uses: cuchi/jinja2-action@v1.2.0157 with:158 template: .docker/Dockerfile-moonbeam.j2159 output_file: .docker/Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml160 variables: |161 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}162 MOONBEAM_BUILD_BRANCH=${{ matrix.moonbeam_version }}163164 - name: Check if the dockerhub repository contains the needed MOONBEAM version165 run: |166 # aquire token167 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)168 export TOKEN=$TOKEN169170 # Get TAGS from DOCKERHUB repository171 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"]')172 # Show TAGS173 echo "MOONBEAM TAGS:"174 echo $MOONBEAM_TAGS175 # Check correct version MOONBEAM and build it if it doesn't exist in MOONBEAM TAGS176 if [[ ${MOONBEAM_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.moonbeam_version }}"($|[[:space:]]) ]]; then177 echo "Repository has needed MOONBEAM version";178 docker pull uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}179 else180 echo "Repository has not needed MOONBEAM version, so build it";181 cd .docker/ && docker build --no-cache --file ./Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml --tag uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }} .182 echo "Push needed MOONBEAM version to the repository";183 docker push uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}184 fi185 shell: bash186187188 # Check CUMULUS version and build it if it doesn't exist in repository189 - name: Generate ENV related extend Dockerfile file for CUMULUS190 uses: cuchi/jinja2-action@v1.2.0191 with:192 template: .docker/Dockerfile-cumulus.j2193 output_file: .docker/Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml194 variables: |195 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}196 CUMULUS_BUILD_BRANCH=${{ matrix.cumulus_version }}197198 - name: Check if the dockerhub repository contains the needed CUMULUS version199 run: | 200 # aquire token201 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)202 export TOKEN=$TOKEN203204 # Get TAGS from DOCKERHUB repository205 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"]')206 # Show TAGS207 echo "CUMULUS TAGS:"208 echo $CUMULUS_TAGS209 # Check correct version CUMULUS and build it if it doesn't exist in CUMULUS TAGS210 if [[ ${CUMULUS_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.cumulus_version }}"($|[[:space:]]) ]]; then211 echo "Repository has needed CUMULUS version";212 docker pull uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}213 else214 echo "Repository has not needed CUMULUS version, so build it";215 cd .docker/ && docker build --no-cache --file ./Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml --tag uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} .216 echo "Push needed CUMULUS version to the repository";217 docker push uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}218 fi219 shell: bash220221222 # Build main image for XCM 223 - name: Generate ENV related extend Dockerfile file224 uses: cuchi/jinja2-action@v1.2.0225 with:226 template: .docker/Dockerfile-xcm.j2227 output_file: .docker/Dockerfile-xcm.${{ matrix.network }}.yml228 variables: |229 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}230 NETWORK=${{ matrix.network }}231 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}232 POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}233 FEATURE=${{ matrix.features }}234 RUNTIME=${{ matrix.runtime }}235 BRANCH=${{ github.head_ref }}236 ACALA_BUILD_BRANCH=${{ matrix.acala_version }}237 MOONBEAM_BUILD_BRANCH=${{ matrix.moonbeam_version }}238 CUMULUS_BUILD_BRANCH=${{ matrix.cumulus_version }}239240 - name: Show build Dockerfile241 run: cat .docker/Dockerfile-xcm.${{ matrix.network }}.yml242243 - name: Show launch-config-xcm-${{ matrix.network }} configuration244 run: cat .docker/xcm-config/launch-config-xcm-${{ matrix.network }}.json245246 - name: Run find-and-replace to remove slashes from branch name247 uses: mad9000/actions-find-and-replace-string@2248 id: branchname249 with:250 source: ${{ github.head_ref }}251 find: '/'252 replace: '-'253254 - name: Pull chainql docker image255 run: docker pull uniquenetwork/builder-chainql:latest256257 - name: Build the stack258 run: cd .docker/ && docker build --no-cache --file ./Dockerfile-xcm.${{ matrix.network }}.yml --tag uniquenetwork/xcm-${{ matrix.network }}-testnet-local:nightly-${{ steps.branchname.outputs.value }}-${{ github.sha }} --tag uniquenetwork/xcm-${{ matrix.network }}-testnet-local:latest .259260 - name: Push docker image version261 run: docker push uniquenetwork/xcm-${{ matrix.network }}-testnet-local:nightly-${{ steps.branchname.outputs.value }}-${{ github.sha }}262263 - name: Push docker image latest264 run: docker push uniquenetwork/xcm-${{ matrix.network }}-testnet-local:latest265266 - name: Remove builder cache267 if: always() # run this step always268 run: |269 docker builder prune -f270 docker system prune -f1327114 xcm-tests:272 xcm-tests:273 needs: [prepare-execution-marix, xcm-build]274 # The type of runner that the job will run on275 runs-on: [XL]276277 timeout-minutes: 600278279 name: ${{ matrix.network }}280281 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.282283 strategy:284 matrix:285 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}286287 steps:288 - name: Skip if pull request is in Draft289 if: github.event.pull_request.draft == true290 run: exit 1291292 - name: Clean Workspace293 uses: AutoModality/action-clean@v1.1.0294295 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it296 - uses: actions/checkout@v3297 with:298 ref: ${{ github.head_ref }} #Checking out head commit299300 - name: Read .env file301 uses: xom9ikk/dotenv@v1.0.2302303 - name: Generate ENV related extend file for docker-compose304 uses: cuchi/jinja2-action@v1.2.0305 with:306 template: .docker/docker-compose.tmp-xcm-tests.j2307 output_file: .docker/docker-compose.xcm-tests.${{ matrix.network }}.yml308 variables: |309 NETWORK=${{ matrix.network }}310311 - name: Show build configuration312 run: cat .docker/docker-compose.xcm-tests.${{ matrix.network }}.yml313314 - uses: actions/setup-node@v3315 with:316 node-version: 16317318 - name: Build the stack319 run: docker-compose -f ".docker/docker-compose.xcm-tests.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300320321 # 🚀 POLKADOT LAUNCH COMPLETE 🚀322 - name: Check if docker logs consist messages related to testing of xcm tests 323 if: success()324 run: |325 counter=160326 function check_container_status {327 docker inspect -f {{.State.Running}} xcm-${{ matrix.network }}-testnet-local328 }329 function do_docker_logs {330 docker logs --details xcm-${{ matrix.network }}-testnet-local 2>&1331 }332 function is_started {333 if [ "$(check_container_status)" == "true" ]; then334 echo "Container: xcm-${{ matrix.network }}-testnet-local RUNNING";335 echo "Check Docker logs"336 DOCKER_LOGS=$(do_docker_logs)337 if [[ ${DOCKER_LOGS} = *"POLKADOT LAUNCH COMPLETE"* ]];then338 echo "🚀 POLKADOT LAUNCH COMPLETE 🚀"339 return 0340 else341 echo "Message not found in logs output, repeating..."342 return 1343 fi344 else345 echo "Container xcm-${{ matrix.network }}-testnet-local NOT RUNNING"346 echo "Halting all future checks"347 exit 1348 fi349 echo "something goes wrong"350 exit 1351 }352 while ! is_started; do353 echo "Waiting for special message in log files "354 sleep 30s355 counter=$(( $counter - 1 ))356 echo "Counter: $counter"357 if [ "$counter" -gt "0" ]; then358 continue359 else360 break361 fi362 done363 echo "Halting script"364 exit 0365 shell: bash36615 name: tests367 - name: Run XCM tests 368 working-directory: tests369 run: |370 yarn install371 yarn add mochawesome372 node scripts/readyness.js373 echo "Ready to start tests"374 yarn polkadot-types 375 NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW}376 env:377 RPC_URL: http://127.0.0.1:9933/378379 - name: XCM Test Report16 needs: [ xcm-testnet-build ]380 uses: phoenix-actions/test-reporting@v8381 id: test-report382 if: success() || failure() # run this step even if previous step failed383 with:384 name: XCM Tests ${{ matrix.network }} # Name of the check run which will be created385 path: tests/mochawesome-report/test-*.json # Path to test results386 reporter: mochawesome-json387 fail-on-error: 'false'388389 - name: Stop running containers390 if: always() # run this step always391 run: docker-compose -f ".docker/docker-compose.xcm-tests.${{ matrix.network }}.yml" down392393 - name: Clean Workspace394 if: always()17 uses: ./.github/workflows/xcm-tests_v2.yml395 uses: AutoModality/action-clean@v1.1.0396397 - name: Remove builder cache398 if: always() # run this step always399 run: |400 docker system prune -a -f184011920Cargo.lockdiffbeforeafterboth696 "once_cell",696 "once_cell",697]697]698699[[package]]700name = "bondrewd"701version = "0.1.14"702source = "registry+https://github.com/rust-lang/crates.io-index"703checksum = "6d1660fac8d3acced44dac64453fafedf5aab2de196b932c727e63e4ae42d1cc"704dependencies = [705 "bondrewd-derive",706]707708[[package]]709name = "bondrewd-derive"710version = "0.3.18"711source = "registry+https://github.com/rust-lang/crates.io-index"712checksum = "723da0dee1eef38edc021b0793f892bdc024500c6a5b0727a2efe16f0e0a6977"713dependencies = [714 "proc-macro2",715 "quote",716 "syn",717]698718699[[package]]719[[package]]700name = "bounded-vec"720name = "bounded-vec"4585 "value-bag",4605 "value-bag",4586]4606]46074608[[package]]4609name = "logtest"4610version = "2.0.0"4611source = "registry+https://github.com/rust-lang/crates.io-index"4612checksum = "eb3e43a8657c1d64516dcc9db8ca03826a4aceaf89d5ce1b37b59f6ff0e43026"4613dependencies = [4614 "lazy_static",4615 "log",4616]458746174588[[package]]4618[[package]]4589name = "lru"4619name = "lru"5163 "frame-system-rpc-runtime-api",5193 "frame-system-rpc-runtime-api",5164 "frame-try-runtime",5194 "frame-try-runtime",5165 "hex-literal",5195 "hex-literal",5196 "impl-trait-for-tuples",5166 "log",5197 "log",5198 "logtest",5199 "orml-tokens",5200 "orml-traits",5167 "orml-vesting",5201 "orml-vesting",5202 "orml-xtokens",5168 "pallet-app-promotion",5203 "pallet-app-promotion",5169 "pallet-aura",5204 "pallet-aura",5170 "pallet-balances",5205 "pallet-balances",5177 "pallet-evm-contract-helpers",5212 "pallet-evm-contract-helpers",5178 "pallet-evm-migration",5213 "pallet-evm-migration",5179 "pallet-evm-transaction-payment",5214 "pallet-evm-transaction-payment",5215 "pallet-foreign-assets",5180 "pallet-fungible",5216 "pallet-fungible",5181 "pallet-inflation",5217 "pallet-inflation",5182 "pallet-nonfungible",5218 "pallet-nonfungible",5281 "num-traits",5317 "num-traits",5282]5318]53195320[[package]]5321name = "orml-tokens"5322version = "0.4.1-dev"5323source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"5324dependencies = [5325 "frame-support",5326 "frame-system",5327 "orml-traits",5328 "parity-scale-codec 3.1.5",5329 "scale-info",5330 "serde",5331 "sp-runtime",5332 "sp-std",5333]53345335[[package]]5336name = "orml-traits"5337version = "0.4.1-dev"5338source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"5339dependencies = [5340 "frame-support",5341 "impl-trait-for-tuples",5342 "num-traits",5343 "orml-utilities",5344 "parity-scale-codec 3.1.5",5345 "scale-info",5346 "serde",5347 "sp-io",5348 "sp-runtime",5349 "sp-std",5350 "xcm",5351]53525353[[package]]5354name = "orml-utilities"5355version = "0.4.1-dev"5356source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"5357dependencies = [5358 "frame-support",5359 "parity-scale-codec 3.1.5",5360 "scale-info",5361 "serde",5362 "sp-io",5363 "sp-runtime",5364 "sp-std",5365]528353665284[[package]]5367[[package]]5285name = "orml-vesting"5368name = "orml-vesting"5296 "sp-std",5379 "sp-std",5297]5380]53815382[[package]]5383name = "orml-xcm-support"5384version = "0.4.1-dev"5385source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"5386dependencies = [5387 "frame-support",5388 "orml-traits",5389 "parity-scale-codec 3.1.5",5390 "sp-runtime",5391 "sp-std",5392 "xcm",5393 "xcm-executor",5394]53955396[[package]]5397name = "orml-xtokens"5398version = "0.4.1-dev"5399source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"5400dependencies = [5401 "cumulus-primitives-core",5402 "frame-support",5403 "frame-system",5404 "orml-traits",5405 "orml-xcm-support",5406 "pallet-xcm",5407 "parity-scale-codec 3.1.5",5408 "scale-info",5409 "serde",5410 "sp-io",5411 "sp-runtime",5412 "sp-std",5413 "xcm",5414 "xcm-executor",5415]529854165299[[package]]5417[[package]]5300name = "os_str_bytes"5418name = "os_str_bytes"5790 "up-sponsorship",5908 "up-sponsorship",5791]5909]59105911[[package]]5912name = "pallet-foreign-assets"5913version = "0.1.0"5914dependencies = [5915 "frame-benchmarking",5916 "frame-support",5917 "frame-system",5918 "hex",5919 "log",5920 "orml-tokens",5921 "pallet-balances",5922 "pallet-common",5923 "pallet-fungible",5924 "pallet-timestamp",5925 "parity-scale-codec 3.1.5",5926 "scale-info",5927 "serde",5928 "serde_json",5929 "sp-core",5930 "sp-io",5931 "sp-runtime",5932 "sp-std",5933 "up-data-structs",5934 "xcm",5935 "xcm-builder",5936 "xcm-executor",5937]579259385793[[package]]5939[[package]]5794name = "pallet-fungible"5940name = "pallet-fungible"647566216476[[package]]6622[[package]]6477name = "pallet-unique"6623name = "pallet-unique"6478version = "0.1.4"6624version = "0.2.0"6479dependencies = [6625dependencies = [6480 "ethereum",6626 "ethereum",6481 "evm-coder",6627 "evm-coder",8397 "frame-system-rpc-runtime-api",8543 "frame-system-rpc-runtime-api",8398 "frame-try-runtime",8544 "frame-try-runtime",8399 "hex-literal",8545 "hex-literal",8546 "impl-trait-for-tuples",8400 "log",8547 "log",8548 "logtest",8549 "orml-tokens",8550 "orml-traits",8401 "orml-vesting",8551 "orml-vesting",8552 "orml-xtokens",8402 "pallet-app-promotion",8553 "pallet-app-promotion",8403 "pallet-aura",8554 "pallet-aura",8404 "pallet-balances",8555 "pallet-balances",8411 "pallet-evm-contract-helpers",8562 "pallet-evm-contract-helpers",8412 "pallet-evm-migration",8563 "pallet-evm-migration",8413 "pallet-evm-transaction-payment",8564 "pallet-evm-transaction-payment",8565 "pallet-foreign-assets",8414 "pallet-fungible",8566 "pallet-fungible",8415 "pallet-inflation",8567 "pallet-inflation",8416 "pallet-nonfungible",8568 "pallet-nonfungible",12134source = "registry+https://github.com/rust-lang/crates.io-index"12286source = "registry+https://github.com/rust-lang/crates.io-index"12135checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"12287checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"12136dependencies = [12288dependencies = [12137 "cfg-if 0.1.10",12289 "cfg-if 1.0.0",12138 "digest 0.10.3",12290 "digest 0.10.3",12139 "rand 0.8.5",12291 "rand 0.8.5",12140 "static_assertions",12292 "static_assertions",12391 "frame-system-rpc-runtime-api",12543 "frame-system-rpc-runtime-api",12392 "frame-try-runtime",12544 "frame-try-runtime",12393 "hex-literal",12545 "hex-literal",12546 "impl-trait-for-tuples",12394 "log",12547 "log",12548 "logtest",12549 "orml-tokens",12550 "orml-traits",12395 "orml-vesting",12551 "orml-vesting",12552 "orml-xtokens",12396 "pallet-app-promotion",12553 "pallet-app-promotion",12397 "pallet-aura",12554 "pallet-aura",12398 "pallet-balances",12555 "pallet-balances",12405 "pallet-evm-contract-helpers",12562 "pallet-evm-contract-helpers",12406 "pallet-evm-migration",12563 "pallet-evm-migration",12407 "pallet-evm-transaction-payment",12564 "pallet-evm-transaction-payment",12565 "pallet-foreign-assets",12408 "pallet-fungible",12566 "pallet-fungible",12409 "pallet-inflation",12567 "pallet-inflation",12410 "pallet-nonfungible",12568 "pallet-nonfungible",12497name = "up-data-structs"12655name = "up-data-structs"12498version = "0.2.2"12656version = "0.2.2"12499dependencies = [12657dependencies = [12658 "bondrewd",12500 "derivative",12659 "derivative",12501 "frame-support",12660 "frame-support",12502 "frame-system",12661 "frame-system",Cargo.tomldiffbeforeafterboth6 'client/*',6 'client/*',7 'primitives/*',7 'primitives/*',8 'crates/*',8 'crates/*',9 'runtime/opal',10 'runtime/quartz',11 'runtime/unique',9 'runtime/tests',12 'runtime/tests',10]13]11exclude = ["runtime/unique", "runtime/quartz"]14default-members = ['node/*', 'runtime/opal']12[profile.release]15[profile.release]13panic = 'unwind'16panic = 'unwind'1417Makefilediffbeforeafterboth128bench-rmrk-equip:128bench-rmrk-equip:129 make _bench PALLET=proxy-rmrk-equip129 make _bench PALLET=proxy-rmrk-equip130131.PHONY: bench-foreign-assets132bench-foreign-assets:133 make _bench PALLET=foreign-assets 130134131.PHONY: bench-app-promotion135.PHONY: bench-app-promotion132bench-app-promotion:136bench-app-promotion:133 make _bench PALLET=app-promotion PALLET_DIR=app-promotion137 make _bench PALLET=app-promotion PALLET_DIR=app-promotion134 138 135.PHONY: bench139.PHONY: bench136bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-scheduler bench-rmrk-core bench-rmrk-equip140bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-scheduler bench-rmrk-core bench-rmrk-equip bench-foreign-assets137141README.mddiffbeforeafterboth195xtokens -> transfer195xtokens -> transfer196196197currencyId:197currencyId:198 ForeingAsset198 ForeignAsset199 <TOKEN_ID>199 <TOKEN_ID>200200201amount:201amount:crates/evm-coder/procedural/src/solidity_interface.rsdiffbeforeafterboth42 pascal_call_name: Ident,42 pascal_call_name: Ident,43 snake_call_name: Ident,43 snake_call_name: Ident,44 via: Option<(Type, Ident)>,44 via: Option<(Type, Ident)>,45 condition: Option<Expr>,45}46}46impl Is {47impl Is {47 fn expand_call_def(&self, gen_ref: &proc_macro2::TokenStream) -> proc_macro2::TokenStream {48 fn expand_call_def(&self, gen_ref: &proc_macro2::TokenStream) -> proc_macro2::TokenStream {64 generics: &proc_macro2::TokenStream,65 generics: &proc_macro2::TokenStream,65 ) -> proc_macro2::TokenStream {66 ) -> proc_macro2::TokenStream {66 let pascal_call_name = &self.pascal_call_name;67 let pascal_call_name = &self.pascal_call_name;68 let condition = self.condition.as_ref().map(|condition| {69 quote! {70 (#condition) &&71 }72 });67 quote! {73 quote! {68 <#pascal_call_name #generics>::supports_interface(interface_id)74 #condition <#pascal_call_name #generics>::supports_interface(this, interface_id)69 }75 }70 }76 }717793 .as_ref()99 .as_ref()94 .map(|(_, i)| quote! {.#i()})100 .map(|(_, i)| quote! {.#i()})95 .unwrap_or_default();101 .unwrap_or_default();102 let condition = self.condition.as_ref().map(|condition| {103 quote! {104 if ({let this = &self; (#condition)})105 }106 });96 quote! {107 quote! {97 #call_name::#name(call) => return <#via_typ as ::evm_coder::Callable<#pascal_call_name #generics>>::call(self #via_map, Msg {108 #call_name::#name(call) #condition => return <#via_typ as ::evm_coder::Callable<#pascal_call_name #generics>>::call(self #via_map, Msg {98 call,109 call,99 caller: c.caller,110 caller: c.caller,100 value: c.value,111 value: c.value,139 let name = input.parse::<Ident>()?;150 let name = input.parse::<Ident>()?;140 let lookahead = input.lookahead1();151 let lookahead = input.lookahead1();152153 let mut condition: Option<Expr> = None;141 let via = if lookahead.peek(syn::token::Paren) {154 let mut via: Option<(Type, Ident)> = None;155156 if lookahead.peek(syn::token::Paren) {142 let contents;157 let contents;143 parenthesized!(contents in input);158 parenthesized!(contents in input);159 let input = contents;160161 while !input.is_empty() {162 let lookahead = input.lookahead1();163 if lookahead.peek(Token![if]) {164 input.parse::<Token![if]>()?;165 let contents;166 parenthesized!(contents in input);167 let contents = contents.parse::<Expr>()?;168169 if condition.replace(contents).is_some() {170 return Err(syn::Error::new(input.span(), "condition is already set"));171 }172 } else if lookahead.peek(kw::via) {173 input.parse::<kw::via>()?;174 let contents;175 parenthesized!(contents in input);176144 let method = contents.parse::<Ident>()?;177 let method = contents.parse::<Ident>()?;145 contents.parse::<Token![,]>()?;178 contents.parse::<kw::returns>()?;146 let ty = contents.parse::<Type>()?;179 let ty = contents.parse::<Type>()?;180147 Some((ty, method))181 if via.replace((ty, method)).is_some() {182 return Err(syn::Error::new(input.span(), "via is already set"));183 }184 } else {185 return Err(lookahead.error());186 }187188 if input.peek(Token![,]) {189 input.parse::<Token![,]>()?;190 } else if !input.is_empty() {191 return Err(syn::Error::new(input.span(), "expected end"));192 }193 }148 } else if lookahead.peek(Token![,]) {194 } else if lookahead.peek(Token![,]) || input.is_empty() {149 None195 // Pass150 } else if input.is_empty() {151 None152 } else {196 } else {153 return Err(lookahead.error());197 return Err(lookahead.error());154 };198 };157 snake_call_name: pascal_ident_to_snake_call(&name),201 snake_call_name: pascal_ident_to_snake_call(&name),158 name,202 name,159 via,203 via,204 condition,160 });205 });161 if input.peek(Token![,]) {206 if input.peek(Token![,]) {162 input.parse::<Token![,]>()?;207 input.parse::<Token![,]>()?;495 syn::custom_keyword!(weight);540 syn::custom_keyword!(weight);496541497 syn::custom_keyword!(via);542 syn::custom_keyword!(via);543 syn::custom_keyword!(returns);498 syn::custom_keyword!(name);544 syn::custom_keyword!(name);499 syn::custom_keyword!(is);545 syn::custom_keyword!(is);500 syn::custom_keyword!(inline_is);546 syn::custom_keyword!(inline_is);996 #(#inline_interface_id)*1042 #(#inline_interface_id)*997 u32::to_be_bytes(interface_id)1043 u32::to_be_bytes(interface_id)998 }1044 }999 /// Is this contract implements specified ERC165 selector1000 pub fn supports_interface(interface_id: ::evm_coder::types::bytes4) -> bool {1001 interface_id != u32::to_be_bytes(0xffffff) && (1002 interface_id == ::evm_coder::ERC165Call::INTERFACE_ID ||1003 interface_id == Self::interface_id()1004 #(1005 || #supports_interface1006 )*1007 )1008 }1009 /// Generate solidity definitions for methods described in this interface1045 /// Generate solidity definitions for methods described in this interface1010 pub fn generate_solidity_interface(tc: &evm_coder::solidity::TypeCollector, is_impl: bool) {1046 pub fn generate_solidity_interface(tc: &evm_coder::solidity::TypeCollector, is_impl: bool) {1011 use evm_coder::solidity::*;1047 use evm_coder::solidity::*;1024 )*),1060 )*),1025 };1061 };102610621027 let mut out = string::new();1063 let mut out = ::evm_coder::types::string::new();1028 if #solidity_name.starts_with("Inline") {1064 if #solidity_name.starts_with("Inline") {1029 out.push_str("/// @dev inlined interface\n");1065 out.push_str("/// @dev inlined interface\n");1030 }1066 }1062 return Ok(None);1098 return Ok(None);1063 }1099 }1064 }1100 }1065 impl #generics ::evm_coder::Weighted for #call_name #gen_ref1101 impl #generics #call_name #gen_ref1102 #gen_where1103 {1104 /// Is this contract implements specified ERC165 selector1105 pub fn supports_interface(this: &#name, interface_id: ::evm_coder::types::bytes4) -> bool {1106 interface_id != u32::to_be_bytes(0xffffff) && (1107 interface_id == ::evm_coder::ERC165Call::INTERFACE_ID ||1108 interface_id == Self::interface_id()1109 #(1110 || #supports_interface1111 )*1112 )1113 }1114 }1115 impl #generics ::evm_coder::Weighted for #call_name #gen_ref1066 #gen_where1116 #gen_where1067 {1117 {1068 #[allow(unused_variables)]1118 #[allow(unused_variables)]1091 )*1141 )*1092 #call_name::ERC165Call(::evm_coder::ERC165Call::SupportsInterface {interface_id}, _) => {1142 #call_name::ERC165Call(::evm_coder::ERC165Call::SupportsInterface {interface_id}, _) => {1093 let mut writer = ::evm_coder::abi::AbiWriter::default();1143 let mut writer = ::evm_coder::abi::AbiWriter::default();1094 writer.bool(&<#call_name #gen_ref>::supports_interface(interface_id));1144 writer.bool(&<#call_name #gen_ref>::supports_interface(self, interface_id));1095 return Ok(writer.into());1145 return Ok(writer.into());1096 }1146 }1097 _ => {},1147 _ => {},1101 #(1151 #(1102 #call_variants_this,1152 #call_variants_this,1103 )*1153 )*1104 _ => unreachable!()1154 _ => Err(::evm_coder::execution::Error::from("method is not available").into()),1105 }1155 }1106 }1156 }1107 }1157 }crates/evm-coder/src/abi.rsdiffbeforeafterboth313 /// Finish writer, concatenating all internal buffers313 /// Finish writer, concatenating all internal buffers314 pub fn finish(mut self) -> Vec<u8> {314 pub fn finish(mut self) -> Vec<u8> {315 for (static_offset, part) in self.dynamic_part {315 for (static_offset, part) in self.dynamic_part {316 let part_offset = self.static_part.len() - self.had_call.then(|| 4).unwrap_or(0);316 let part_offset = self.static_part.len() - if self.had_call { 4 } else { 0 };317317318 let encoded_dynamic_offset = usize::to_be_bytes(part_offset);318 let encoded_dynamic_offset = usize::to_be_bytes(part_offset);319 self.static_part[static_offset + ABI_ALIGNMENT - encoded_dynamic_offset.len()319 self.static_part[static_offset + ABI_ALIGNMENT - encoded_dynamic_offset.len()crates/evm-coder/src/lib.rsdiffbeforeafterboth74/// #[solidity_interface(name = MyContract, is(SuperContract), inline_is(InlineContract))]74/// #[solidity_interface(name = MyContract, is(SuperContract), inline_is(InlineContract))]75/// impl Contract {75/// impl Contract {76/// /// Multiply two numbers76/// /// Multiply two numbers77/// /// @param a First number77/// /// @param a First number78/// /// @param b Second number78/// /// @param b Second number79/// /// @return uint32 Product of two passed numbers79/// /// @return uint32 Product of two passed numbers80/// /// @dev This function returns error in case of overflow80/// /// @dev This function returns error in case of overflow81/// #[weight(200 + a + b)]81/// #[weight(200 + a + b)]82/// #[solidity_interface(rename_selector = "mul")]82/// #[solidity_interface(rename_selector = "mul")]83/// fn mul(&mut self, a: uint32, b: uint32) -> Result<uint32> {83/// fn mul(&mut self, a: uint32, b: uint32) -> Result<uint32> {crates/evm-coder/tests/conditional_is.rsdiffbeforeafterbothno changes
crates/evm-coder/tests/generics.rsdiffbeforeafterboth17use std::marker::PhantomData;17use std::marker::PhantomData;18use evm_coder::{execution::Result, generate_stubgen, solidity_interface, types::*};18use evm_coder::{execution::Result, generate_stubgen, solidity_interface, types::*};191920struct Generic<T>(PhantomData<T>);20pub struct Generic<T>(PhantomData<T>);212122#[solidity_interface(name = GenericIs)]22#[solidity_interface(name = GenericIs)]23impl<T> Generic<T> {23impl<T> Generic<T> {crates/evm-coder/tests/random.rsdiffbeforeafterboth181819use evm_coder::{ToLog, execution::Result, solidity_interface, types::*, solidity, weight};19use evm_coder::{ToLog, execution::Result, solidity_interface, types::*, solidity, weight};202021struct Impls;21pub struct Impls;222223#[solidity_interface(name = OurInterface)]23#[solidity_interface(name = OurInterface)]24impl Impls {24impl Impls {crates/evm-coder/tests/solidity_generation.rsdiffbeforeafterboth161617use evm_coder::{execution::Result, generate_stubgen, solidity_interface, types::*};17use evm_coder::{execution::Result, generate_stubgen, solidity_interface, types::*};181819struct ERC20;19pub struct ERC20;202021#[solidity_interface(name = ERC20)]21#[solidity_interface(name = ERC20)]22impl ERC20 {22impl ERC20 {node/cli/Cargo.tomldiffbeforeafterboth302302303[dependencies]303[dependencies]304futures = '0.3.17'304futures = '0.3.17'305log = '0.4.14'305log = '0.4.16'306flexi_logger = "0.22.5"306flexi_logger = "0.22.5"307parking_lot = '0.12.1'307parking_lot = '0.12.1'308clap = "3.1.2"308clap = "3.1.2"node/cli/src/chain_spec.rsdiffbeforeafterboth65 Unknown(String),65 Unknown(String),66}66}6768#[cfg(not(feature = "unique-runtime"))]69/// PARA_ID for Opal/Quartz70const PARA_ID: u32 = 2095;7172#[cfg(feature = "unique-runtime")]73/// PARA_ID for Unique74const PARA_ID: u32 = 2037;677568pub trait RuntimeIdentification {76pub trait RuntimeIdentification {69 fn runtime_id(&self) -> RuntimeId;77 fn runtime_id(&self) -> RuntimeId;167 .collect(),175 .collect(),168 },176 },169 treasury: Default::default(),177 treasury: Default::default(),178 tokens: TokensConfig { balances: vec![] },170 sudo: SudoConfig {179 sudo: SudoConfig {171 key: Some($root_key),180 key: Some($root_key),172 },181 },235 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),244 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),236 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),245 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),237 ],246 ],238 1000247 PARA_ID239 )248 )240 },249 },241 // Bootnodes250 // Bootnodes250 // Extensions259 // Extensions251 Extensions {260 Extensions {252 relay_chain: "rococo-dev".into(),261 relay_chain: "rococo-dev".into(),253 para_id: 1000,262 para_id: PARA_ID,254 },263 },255 )264 )256}265}303 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),312 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),304 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),313 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),305 ],314 ],306 1000315 PARA_ID307 )316 )308 },317 },309 // Bootnodes318 // Bootnodes318 // Extensions327 // Extensions319 Extensions {328 Extensions {320 relay_chain: "westend-local".into(),329 relay_chain: "westend-local".into(),321 para_id: 1000,330 para_id: PARA_ID,322 },331 },323 )332 )324}333}pallets/app-promotion/Cargo.tomldiffbeforeafterboth66pallet-common ={ default-features = false, path = "../common" }66pallet-common ={ default-features = false, path = "../common" }67pallet-unique ={ default-features = false, path = "../unique" }67pallet-unique ={ default-features = false, path = "../unique" }68pallet-evm-contract-helpers ={ default-features = false, path = "../evm-contract-helpers" }68pallet-evm-contract-helpers ={ default-features = false, path = "../evm-contract-helpers" }6969pallet-evm-migration ={ default-features = false, path = "../evm-migration" }70[dev-dependencies]7071pallet-evm-migration ={ default-features = false, path = "../evm-migration" }71# [dev-dependencies]727273################################################################################73################################################################################7474pallets/app-promotion/src/benchmarking.rsdiffbeforeafterboth20use crate::Pallet as PromototionPallet;20use crate::Pallet as PromototionPallet;212122use sp_runtime::traits::Bounded;22use sp_runtime::traits::Bounded;23use sp_std::vec;242325use frame_benchmarking::{benchmarks, account};24use frame_benchmarking::{benchmarks, account};26use frame_support::traits::OnInitialize;25use frame_support::traits::OnInitialize;27use frame_system::{Origin, RawOrigin};26use frame_system::RawOrigin;28use pallet_unique::benchmarking::create_nft_collection;27use pallet_unique::benchmarking::create_nft_collection;29use pallet_evm_migration::Pallet as EvmMigrationPallet;28use pallet_evm_migration::Pallet as EvmMigrationPallet;3029pallets/app-promotion/src/lib.rsdiffbeforeafterboth589 let flush_stake = || -> DispatchResult {589 let flush_stake = || -> DispatchResult {590 if let Some(last_id) = &*last_id.borrow() {590 if let Some(last_id) = &*last_id.borrow() {591 if !income_acc.borrow().is_zero() {591 if !income_acc.borrow().is_zero() {592 <T::Currency as Currency<T::AccountId>>::transfer(592 <T::Currency as Currency<T::AccountId>>::transfer(593 &T::TreasuryAccountId::get(),593 &T::TreasuryAccountId::get(),594 last_id,594 last_id,595 *income_acc.borrow(),595 *income_acc.borrow(),596 ExistenceRequirement::KeepAlive,596 ExistenceRequirement::KeepAlive,597 )597 )?;598 .and_then(|_| {598599 Self::add_lock_balance(last_id, *income_acc.borrow())?;599 Self::add_lock_balance(last_id, *income_acc.borrow())?;600 <TotalStaked<T>>::try_mutate(|staked| {600 <TotalStaked<T>>::try_mutate(|staked| -> DispatchResult {601 staked601 *staked = staked602 .checked_add(&*income_acc.borrow())602 .checked_add(&*income_acc.borrow())603 .ok_or(ArithmeticError::Overflow.into())603 .ok_or(ArithmeticError::Overflow)?;604 Ok(())604 })605 })?;605 })?;606606607 Self::deposit_event(Event::StakingRecalculation(607 Self::deposit_event(Event::StakingRecalculation(608 last_id.clone(),608 last_id.clone(),pallets/common/src/benchmarking.rsdiffbeforeafterboth19use pallet_evm::account::CrossAccountId;19use pallet_evm::account::CrossAccountId;20use frame_benchmarking::{benchmarks, account};20use frame_benchmarking::{benchmarks, account};21use up_data_structs::{21use up_data_structs::{22 CollectionMode, CreateCollectionData, CollectionId, Property, PropertyKey, PropertyValue,22 CollectionMode, CollectionFlags, CreateCollectionData, CollectionId, Property, PropertyKey,23 CollectionPermissions, NestingPermissions, MAX_COLLECTION_NAME_LENGTH,23 PropertyValue, CollectionPermissions, NestingPermissions, MAX_COLLECTION_NAME_LENGTH,24 MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, MAX_PROPERTIES_PER_ITEM,24 MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, MAX_PROPERTIES_PER_ITEM,25};25};116 create_collection_raw(116 create_collection_raw(117 owner,117 owner,118 CollectionMode::NFT,118 CollectionMode::NFT,119 |owner, data| <Pallet<T>>::init_collection(owner, data, true),119 |owner, data| <Pallet<T>>::init_collection(owner, data, CollectionFlags::default()),120 |h| h,120 |h| h,121 )121 )122}122}pallets/common/src/erc.rsdiffbeforeafterboth194 /// Get current sponsor.194 /// Get current sponsor.195 ///195 ///196 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.196 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.197 fn get_collection_sponsor(&self) -> Result<(address, uint256)> {197 fn collection_sponsor(&self) -> Result<(address, uint256)> {198 let sponsor = match self.collection.sponsorship.sponsor() {198 let sponsor = match self.collection.sponsorship.sponsor() {199 Some(sponsor) => sponsor,199 Some(sponsor) => sponsor,200 None => return Ok(Default::default()),200 None => return Ok(Default::default()),406 true => {406 true => {407 let mut bv = OwnerRestrictedSet::new();407 let mut bv = OwnerRestrictedSet::new();408 for i in collections {408 for i in collections {409 bv.try_insert(crate::eth::map_eth_to_id(&i).ok_or(Error::Revert(409 bv.try_insert(crate::eth::map_eth_to_id(&i).ok_or_else(|| {410 "Can't convert address into collection id".into(),410 Error::Revert("Can't convert address into collection id".into())411 ))?)411 })?)412 .map_err(|_| "too many collections")?;412 .map_err(|_| "too many collections")?;413 }413 }414 let mut nesting = permissions.nesting().clone();414 let mut nesting = permissions.nesting().clone();pallets/common/src/lib.rsdiffbeforeafterboth70 COLLECTION_NUMBER_LIMIT,70 COLLECTION_NUMBER_LIMIT,71 Collection,71 Collection,72 RpcCollection,72 RpcCollection,73 CollectionFlags,73 CollectionId,74 CollectionId,74 CreateItemData,75 CreateItemData,75 MAX_TOKEN_PREFIX_LENGTH,76 MAX_TOKEN_PREFIX_LENGTH,252 }253 }253254254 /// Checks that the collection was created with, and must be operated upon through **Unique API**.255 /// Checks that the collection was created with, and must be operated upon through **Unique API**.255 /// Now check only the `external_collection` flag and if it's **true**, then return [`Error::CollectionIsExternal`] error.256 /// Now check only the `external` flag and if it's **true**, then return [`Error::CollectionIsExternal`] error.256 pub fn check_is_internal(&self) -> DispatchResult {257 pub fn check_is_internal(&self) -> DispatchResult {257 if self.external_collection {258 if self.flags.external {258 return Err(<Error<T>>::CollectionIsExternal)?;259 return Err(<Error<T>>::CollectionIsExternal)?;259 }260 }260261261 Ok(())262 Ok(())262 }263 }263264264 /// Checks that the collection was created with, and must be operated upon through an **assimilated API**.265 /// Checks that the collection was created with, and must be operated upon through an **assimilated API**.265 /// Now check only the `external_collection` flag and if it's **false**, then return [`Error::CollectionIsInternal`] error.266 /// Now check only the `external` flag and if it's **false**, then return [`Error::CollectionIsInternal`] error.266 pub fn check_is_external(&self) -> DispatchResult {267 pub fn check_is_external(&self) -> DispatchResult {267 if !self.external_collection {268 if !self.flags.external {268 return Err(<Error<T>>::CollectionIsInternal)?;269 return Err(<Error<T>>::CollectionIsInternal)?;269 }270 }270271792 sponsorship,793 sponsorship,793 limits,794 limits,794 permissions,795 permissions,795 external_collection,796 flags,796 } = <CollectionById<T>>::get(collection)?;797 } = <CollectionById<T>>::get(collection)?;797798798 let token_property_permissions = <CollectionPropertyPermissions<T>>::get(collection)799 let token_property_permissions = <CollectionPropertyPermissions<T>>::get(collection)822 permissions,823 permissions,823 token_property_permissions,824 token_property_permissions,824 properties,825 properties,825 read_only: external_collection,826 read_only: flags.external,827 foreign: flags.foreign,826 })828 })827 }829 }828}830}861 ///863 ///862 /// * `owner` - The owner of the collection.864 /// * `owner` - The owner of the collection.863 /// * `data` - Description of the created collection.865 /// * `data` - Description of the created collection.864 /// * `is_external` - Marks that collection managet by not "Unique network".866 /// * `flags` - Extra flags to store.865 pub fn init_collection(867 pub fn init_collection(866 owner: T::CrossAccountId,868 owner: T::CrossAccountId,867 data: CreateCollectionData<T::AccountId>,869 data: CreateCollectionData<T::AccountId>,868 is_external: bool,870 flags: CollectionFlags,869 ) -> Result<CollectionId, DispatchError> {871 ) -> Result<CollectionId, DispatchError> {870 {872 {871 ensure!(873 ensure!(909 Self::clamp_permissions(data.mode.clone(), &Default::default(), permissions)911 Self::clamp_permissions(data.mode.clone(), &Default::default(), permissions)910 })912 })911 .unwrap_or_else(|| Ok(CollectionPermissions::default()))?,913 .unwrap_or_else(|| Ok(CollectionPermissions::default()))?,912 external_collection: is_external,914 flags,913 };915 };914916915 let mut collection_properties = up_data_structs::CollectionProperties::get();917 let mut collection_properties = up_data_structs::CollectionProperties::get();pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth169 ///169 ///170 /// @param contractAddress The contract for which a sponsor is requested.170 /// @param contractAddress The contract for which a sponsor is requested.171 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.171 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.172 fn get_sponsor(&self, contract_address: address) -> Result<(address, uint256)> {172 fn sponsor(&self, contract_address: address) -> Result<(address, uint256)> {173 let sponsor =173 let sponsor =174 Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?;174 Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?;175 Ok(pallet_common::eth::convert_cross_account_to_tuple::<T>(175 Ok(pallet_common::eth::convert_cross_account_to_tuple::<T>(220 /// Get current contract sponsoring rate limit220 /// Get current contract sponsoring rate limit221 /// @param contractAddress Contract to get sponsoring rate limit of221 /// @param contractAddress Contract to get sponsoring rate limit of222 /// @return uint32 Amount of blocks between two sponsored transactions222 /// @return uint32 Amount of blocks between two sponsored transactions223 fn get_sponsoring_rate_limit(&self, contract_address: address) -> Result<uint32> {223 fn sponsoring_rate_limit(&self, contract_address: address) -> Result<uint32> {224 self.recorder().consume_sload()?;224 self.recorder().consume_sload()?;225225226 Ok(<SponsoringRateLimit<T>>::get(contract_address)226 Ok(<SponsoringRateLimit<T>>::get(contract_address)273 /// @param contractAddress Contract to get sponsoring fee limit of273 /// @param contractAddress Contract to get sponsoring fee limit of274 /// @return uint256 Maximum amount of fee that could be spent by single274 /// @return uint256 Maximum amount of fee that could be spent by single275 /// transaction275 /// transaction276 fn get_sponsoring_fee_limit(&self, contract_address: address) -> Result<uint256> {276 fn sponsoring_fee_limit(&self, contract_address: address) -> Result<uint256> {277 self.recorder().consume_sload()?;277 self.recorder().consume_sload()?;278278279 Ok(get_sponsoring_fee_limit::<T>(contract_address))279 Ok(get_sponsoring_fee_limit::<T>(contract_address))pallets/evm-contract-helpers/src/stubs/ContractHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/evm-contract-helpers/src/stubs/ContractHelpers.soldiffbeforeafterboth32}25}332634/// @title Magic contract, which allows users to reconfigure other contracts27/// @title Magic contract, which allows users to reconfigure other contracts35/// @dev the ERC-165 identifier for this interface is 0x172cb4fb28/// @dev the ERC-165 identifier for this interface is 0x30afad0436contract ContractHelpers is Dummy, ERC165, ContractHelpersEvents {29contract ContractHelpers is Dummy, ERC165, ContractHelpersEvents {37 /// Get user, which deployed specified contract30 /// Get user, which deployed specified contract38 /// @dev May return zero address in case if contract is deployed31 /// @dev May return zero address in case if contract is deployed105 ///94 ///106 /// @param contractAddress The contract for which a sponsor is requested.95 /// @param contractAddress The contract for which a sponsor is requested.107 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.96 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.108 /// @dev EVM selector for this function is: 0x743fc745,97 /// @dev EVM selector for this function is: 0x766c4f37,109 /// or in textual repr: getSponsor(address)98 /// or in textual repr: sponsor(address)110 function getSponsor(address contractAddress)99 function sponsor(address contractAddress) public view returns (Tuple0 memory) {111 public112 view113 returns (Tuple0 memory)173 /// Get current contract sponsoring rate limit150 /// Get current contract sponsoring rate limit174 /// @param contractAddress Contract to get sponsoring rate limit of151 /// @param contractAddress Contract to get sponsoring rate limit of175 /// @return uint32 Amount of blocks between two sponsored transactions152 /// @return uint32 Amount of blocks between two sponsored transactions176 /// @dev EVM selector for this function is: 0x610cfabd,153 /// @dev EVM selector for this function is: 0xf29694d8,177 /// or in textual repr: getSponsoringRateLimit(address)154 /// or in textual repr: sponsoringRateLimit(address)178 function getSponsoringRateLimit(address contractAddress)155 function sponsoringRateLimit(address contractAddress) public view returns (uint32) {179 public180 view181 returns (uint32)224 /// @param contractAddress Contract to get sponsoring fee limit of193 /// @param contractAddress Contract to get sponsoring fee limit of225 /// @return uint256 Maximum amount of fee that could be spent by single194 /// @return uint256 Maximum amount of fee that could be spent by single226 /// transaction195 /// transaction227 /// @dev EVM selector for this function is: 0xc3fdc9ee,196 /// @dev EVM selector for this function is: 0x75b73606,228 /// or in textual repr: getSponsoringFeeLimit(address)197 /// or in textual repr: sponsoringFeeLimit(address)229 function getSponsoringFeeLimit(address contractAddress)198 function sponsoringFeeLimit(address contractAddress) public view returns (uint256) {230 public231 view232 returns (uint256)pallets/foreign-assets/Cargo.tomldiffbeforeafterbothno changes
pallets/foreign-assets/src/benchmarking.rsdiffbeforeafterbothno changes
pallets/foreign-assets/src/impl_fungibles.rsdiffbeforeafterbothno changes
pallets/foreign-assets/src/lib.rsdiffbeforeafterbothno changes
pallets/foreign-assets/src/weights.rsdiffbeforeafterbothno changes
pallets/fungible/src/erc.rsdiffbeforeafterboth199 ERC20,199 ERC20,200 ERC20Mintable,200 ERC20Mintable,201 ERC20UniqueExtensions,201 ERC20UniqueExtensions,202 Collection(common_mut, CollectionHandle<T>),202 Collection(via(common_mut returns CollectionHandle<T>)),203 )203 )204)]204)]205impl<T: Config> FungibleHandle<T> where T::AccountId: From<[u8; 32]> + AsRef<[u8; 32]> {}205impl<T: Config> FungibleHandle<T> where T::AccountId: From<[u8; 32]> + AsRef<[u8; 32]> {}pallets/fungible/src/lib.rsdiffbeforeafterboth83use frame_support::{ensure};83use frame_support::{ensure};84use pallet_evm::account::CrossAccountId;84use pallet_evm::account::CrossAccountId;85use up_data_structs::{85use up_data_structs::{86 AccessMode, CollectionId, TokenId, CreateCollectionData, mapping::TokenAddressMapping,86 AccessMode, CollectionId, CollectionFlags, TokenId, CreateCollectionData,87 budget::Budget,87 mapping::TokenAddressMapping, budget::Budget,88};88};89use pallet_common::{89use pallet_common::{212 owner: T::CrossAccountId,212 owner: T::CrossAccountId,213 data: CreateCollectionData<T::AccountId>,213 data: CreateCollectionData<T::AccountId>,214 ) -> Result<CollectionId, DispatchError> {214 ) -> Result<CollectionId, DispatchError> {215 <PalletCommon<T>>::init_collection(owner, data, false)215 <PalletCommon<T>>::init_collection(owner, data, CollectionFlags::default())216 }216 }217218 /// Initializes the collection with ForeignCollection flag. Returns [CollectionId] on success, [DispatchError] otherwise.219 pub fn init_foreign_collection(220 owner: T::CrossAccountId,221 data: CreateCollectionData<T::AccountId>,222 ) -> Result<CollectionId, DispatchError> {223 let id = <PalletCommon<T>>::init_collection(224 owner,225 data,226 CollectionFlags {227 foreign: true,228 ..Default::default()229 },230 )?;231 Ok(id)232 }217233218 /// Destroys a collection.234 /// Destroys a collection.219 pub fn destroy_collection(235 pub fn destroy_collection(257 .checked_sub(amount)273 .checked_sub(amount)258 .ok_or(<CommonError<T>>::TokenValueTooLow)?;274 .ok_or(<CommonError<T>>::TokenValueTooLow)?;275276 // Foreign collection check277 ensure!(!collection.flags.foreign, <CommonError<T>>::NoPermission);259278260 if collection.permissions.access() == AccessMode::AllowList {279 if collection.permissions.access() == AccessMode::AllowList {261 collection.check_allowlist(owner)?;280 collection.check_allowlist(owner)?;288 Ok(())307 Ok(())289 }308 }309310 /// Burns the specified amount of the token.311 pub fn burn_foreign(312 collection: &FungibleHandle<T>,313 owner: &T::CrossAccountId,314 amount: u128,315 ) -> DispatchResult {316 let total_supply = <TotalSupply<T>>::get(collection.id)317 .checked_sub(amount)318 .ok_or(<CommonError<T>>::TokenValueTooLow)?;319320 let balance = <Balance<T>>::get((collection.id, owner))321 .checked_sub(amount)322 .ok_or(<CommonError<T>>::TokenValueTooLow)?;323 // =========324325 if balance == 0 {326 <Balance<T>>::remove((collection.id, owner));327 <PalletStructure<T>>::unnest_if_nested(owner, collection.id, TokenId::default());328 } else {329 <Balance<T>>::insert((collection.id, owner), balance);330 }331 <TotalSupply<T>>::insert(collection.id, total_supply);332333 <PalletEvm<T>>::deposit_log(334 ERC20Events::Transfer {335 from: *owner.as_eth(),336 to: H160::default(),337 value: amount.into(),338 }339 .to_log(collection_id_to_address(collection.id)),340 );341 <PalletCommon<T>>::deposit_event(CommonEvent::ItemDestroyed(342 collection.id,343 TokenId::default(),344 owner.clone(),345 amount,346 ));347 Ok(())348 }290349291 /// Transfers the specified amount of tokens. Will check that350 /// Transfers the specified amount of tokens. Will check that292 /// the transfer is allowed for the token.351 /// the transfer is allowed for the token.366 }425 }367426368 /// Minting tokens for multiple IDs.427 /// Minting tokens for multiple IDs.428 /// It is a utility function used in [`create_multiple_items`][`Pallet::create_multiple_items`]369 /// See [`create_item`][`Pallet::create_item`] for more details.429 /// and [`create_multiple_items_foreign`][`Pallet::create_multiple_items_foreign`]370 pub fn create_multiple_items(430 pub fn create_multiple_items_common(371 collection: &FungibleHandle<T>,431 collection: &FungibleHandle<T>,372 sender: &T::CrossAccountId,432 sender: &T::CrossAccountId,373 data: BTreeMap<T::CrossAccountId, u128>,433 data: BTreeMap<T::CrossAccountId, u128>,374 nesting_budget: &dyn Budget,434 nesting_budget: &dyn Budget,375 ) -> DispatchResult {435 ) -> DispatchResult {376 if !collection.is_owner_or_admin(sender) {377 ensure!(378 collection.permissions.mint_mode(),379 <CommonError<T>>::PublicMintingNotAllowed380 );381 collection.check_allowlist(sender)?;382383 for (owner, _) in data.iter() {384 collection.check_allowlist(owner)?;385 }386 }387388 let total_supply = data436 let total_supply = data389 .iter()437 .iter()442 Ok(())490 Ok(())443 }491 }492493 /// Minting tokens for multiple IDs.494 /// See [`create_item`][`Pallet::create_item`] for more details.495 pub fn create_multiple_items(496 collection: &FungibleHandle<T>,497 sender: &T::CrossAccountId,498 data: BTreeMap<T::CrossAccountId, u128>,499 nesting_budget: &dyn Budget,500 ) -> DispatchResult {501 // Foreign collection check502 ensure!(!collection.flags.foreign, <CommonError<T>>::NoPermission);503504 if !collection.is_owner_or_admin(sender) {505 ensure!(506 collection.permissions.mint_mode(),507 <CommonError<T>>::PublicMintingNotAllowed508 );509 collection.check_allowlist(sender)?;510511 for (owner, _) in data.iter() {512 collection.check_allowlist(owner)?;513 }514 }515516 Self::create_multiple_items_common(collection, sender, data, nesting_budget)517 }518519 /// Minting tokens for multiple IDs.520 /// See [`create_item_foreign`][`Pallet::create_item_foreign`] for more details.521 pub fn create_multiple_items_foreign(522 collection: &FungibleHandle<T>,523 sender: &T::CrossAccountId,524 data: BTreeMap<T::CrossAccountId, u128>,525 nesting_budget: &dyn Budget,526 ) -> DispatchResult {527 Self::create_multiple_items_common(collection, sender, data, nesting_budget)528 }444529445 fn set_allowance_unchecked(530 fn set_allowance_unchecked(446 collection: &FungibleHandle<T>,531 collection: &FungibleHandle<T>,615 )700 )616 }701 }702703 /// Creates fungible token.704 ///705 /// - `data`: Contains user who will become the owners of the tokens and amount706 /// of tokens he will receive.707 pub fn create_item_foreign(708 collection: &FungibleHandle<T>,709 sender: &T::CrossAccountId,710 data: CreateItemData<T>,711 nesting_budget: &dyn Budget,712 ) -> DispatchResult {713 Self::create_multiple_items_foreign(714 collection,715 sender,716 [(data.0, data.1)].into_iter().collect(),717 nesting_budget,718 )719 }617720618 /// Returns 10 tokens owners in no particular order721 /// Returns 10 tokens owners in no particular order619 ///722 ///pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth22}18}231924/// @title A contract that allows you to work with collections.20/// @title A contract that allows you to work with collections.25/// @dev the ERC-165 identifier for this interface is 0x9f70d4e021/// @dev the ERC-165 identifier for this interface is 0x47dbc10526contract Collection is Dummy, ERC165 {22contract Collection is Dummy, ERC165 {27 /// Set collection property.23 /// Set collection property.28 ///24 ///95 dummy = 0;85 dummy = 0;96 }86 }978788 /// Whether there is a pending sponsor.98 /// @dev EVM selector for this function is: 0x058ac185,89 /// @dev EVM selector for this function is: 0x058ac185,99 /// or in textual repr: hasCollectionPendingSponsor()90 /// or in textual repr: hasCollectionPendingSponsor()100 function hasCollectionPendingSponsor() public view returns (bool) {91 function hasCollectionPendingSponsor() public view returns (bool) {124 /// Get current sponsor.115 /// Get current sponsor.125 ///116 ///126 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.117 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.127 /// @dev EVM selector for this function is: 0xb66bbc14,118 /// @dev EVM selector for this function is: 0x6ec0a9f1,128 /// or in textual repr: getCollectionSponsor()119 /// or in textual repr: collectionSponsor()129 function getCollectionSponsor() public view returns (Tuple6 memory) {120 function collectionSponsor() public view returns (Tuple6 memory) {130 require(false, stub_error);121 require(false, stub_error);131 dummy;122 dummy;132 return Tuple6(0x0000000000000000000000000000000000000000, 0);123 return Tuple6(0x0000000000000000000000000000000000000000, 0);353 /// @return `Fungible` or `NFT` or `ReFungible`342 /// @return `Fungible` or `NFT` or `ReFungible`354 /// @dev EVM selector for this function is: 0xd34b55b8,343 /// @dev EVM selector for this function is: 0xd34b55b8,355 /// or in textual repr: uniqueCollectionType()344 /// or in textual repr: uniqueCollectionType()356 function uniqueCollectionType() public returns (string memory) {345 function uniqueCollectionType() public view returns (string memory) {357 require(false, stub_error);346 require(false, stub_error);358 dummy = 0;347 dummy;359 return "";348 return "";360 }349 }361350pallets/nonfungible/src/erc.rsdiffbeforeafterboth736 ERC721UniqueExtensions,736 ERC721UniqueExtensions,737 ERC721Mintable,737 ERC721Mintable,738 ERC721Burnable,738 ERC721Burnable,739 Collection(common_mut, CollectionHandle<T>),739 Collection(via(common_mut returns CollectionHandle<T>)),740 TokenProperties,740 TokenProperties,741 )741 )742)]742)]pallets/nonfungible/src/lib.rsdiffbeforeafterboth100 weights::{PostDispatchInfo, Pays},100 weights::{PostDispatchInfo, Pays},101};101};102use up_data_structs::{102use up_data_structs::{103 AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData,103 AccessMode, CollectionId, CollectionFlags, CustomDataLimit, TokenId, CreateCollectionData,104 mapping::TokenAddressMapping, budget::Budget, Property, PropertyPermission, PropertyKey,104 CreateNftExData, mapping::TokenAddressMapping, budget::Budget, Property, PropertyPermission,105 PropertyValue, PropertyKeyPermission, Properties, PropertyScope, TrySetProperty, TokenChild,105 PropertyKey, PropertyValue, PropertyKeyPermission, Properties, PropertyScope, TrySetProperty,106 AuxPropertyValue,106 TokenChild, AuxPropertyValue,411 <PalletCommon<T>>::init_collection(owner, data, is_external)411 <PalletCommon<T>>::init_collection(412 owner,413 data,414 CollectionFlags {415 external: is_external,416 ..Default::default()417 },418 )412 }419 }413420pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth99}91}10092101/// @title A contract that allows you to work with collections.93/// @title A contract that allows you to work with collections.102/// @dev the ERC-165 identifier for this interface is 0x9f70d4e094/// @dev the ERC-165 identifier for this interface is 0x47dbc105103contract Collection is Dummy, ERC165 {95contract Collection is Dummy, ERC165 {104 /// Set collection property.96 /// Set collection property.105 ///97 ///172 dummy = 0;158 dummy = 0;173 }159 }174160161 /// Whether there is a pending sponsor.175 /// @dev EVM selector for this function is: 0x058ac185,162 /// @dev EVM selector for this function is: 0x058ac185,176 /// or in textual repr: hasCollectionPendingSponsor()163 /// or in textual repr: hasCollectionPendingSponsor()177 function hasCollectionPendingSponsor() public view returns (bool) {164 function hasCollectionPendingSponsor() public view returns (bool) {201 /// Get current sponsor.188 /// Get current sponsor.202 ///189 ///203 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.190 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.204 /// @dev EVM selector for this function is: 0xb66bbc14,191 /// @dev EVM selector for this function is: 0x6ec0a9f1,205 /// or in textual repr: getCollectionSponsor()192 /// or in textual repr: collectionSponsor()206 function getCollectionSponsor() public view returns (Tuple17 memory) {193 function collectionSponsor() public view returns (Tuple17 memory) {207 require(false, stub_error);194 require(false, stub_error);208 dummy;195 dummy;209 return Tuple17(0x0000000000000000000000000000000000000000, 0);196 return Tuple17(0x0000000000000000000000000000000000000000, 0);430 /// @return `Fungible` or `NFT` or `ReFungible`415 /// @return `Fungible` or `NFT` or `ReFungible`431 /// @dev EVM selector for this function is: 0xd34b55b8,416 /// @dev EVM selector for this function is: 0xd34b55b8,432 /// or in textual repr: uniqueCollectionType()417 /// or in textual repr: uniqueCollectionType()433 function uniqueCollectionType() public returns (string memory) {418 function uniqueCollectionType() public view returns (string memory) {434 require(false, stub_error);419 require(false, stub_error);435 dummy = 0;420 dummy;436 return "";421 return "";437 }422 }438423pallets/refungible/src/erc.rsdiffbeforeafterboth785 ERC721UniqueExtensions,785 ERC721UniqueExtensions,786 ERC721Mintable,786 ERC721Mintable,787 ERC721Burnable,787 ERC721Burnable,788 Collection(common_mut, CollectionHandle<T>),788 Collection(via(common_mut returns CollectionHandle<T>)),789 TokenProperties,789 TokenProperties,790 )790 )791)]791)]pallets/refungible/src/lib.rsdiffbeforeafterboth112use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};112use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};113use sp_std::{vec::Vec, vec, collections::btree_map::BTreeMap};113use sp_std::{vec::Vec, vec, collections::btree_map::BTreeMap};114use up_data_structs::{114use up_data_structs::{115 AccessMode, budget::Budget, CollectionId, CollectionMode, CollectionPropertiesVec,115 AccessMode, budget::Budget, CollectionId, CollectionMode, CollectionFlags,116 CreateCollectionData, CustomDataLimit, mapping::TokenAddressMapping, MAX_ITEMS_PER_BATCH,116 CollectionPropertiesVec, CreateCollectionData, CustomDataLimit, mapping::TokenAddressMapping,117 MAX_REFUNGIBLE_PIECES, Property, PropertyKey, PropertyKeyPermission, PropertyPermission,117 MAX_ITEMS_PER_BATCH, MAX_REFUNGIBLE_PIECES, Property, PropertyKey, PropertyKeyPermission,118 PropertyScope, PropertyValue, TokenId, TrySetProperty,118 PropertyPermission, PropertyScope, PropertyValue, TokenId, TrySetProperty,375 owner: T::CrossAccountId,375 owner: T::CrossAccountId,376 data: CreateCollectionData<T::AccountId>,376 data: CreateCollectionData<T::AccountId>,377 ) -> Result<CollectionId, DispatchError> {377 ) -> Result<CollectionId, DispatchError> {378 <PalletCommon<T>>::init_collection(owner, data, false)378 <PalletCommon<T>>::init_collection(owner, data, CollectionFlags::default())379 }379 }380380381 /// Destroy RFT collection381 /// Destroy RFT collectionpallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth99}91}10092101/// @title A contract that allows you to work with collections.93/// @title A contract that allows you to work with collections.102/// @dev the ERC-165 identifier for this interface is 0x9f70d4e094/// @dev the ERC-165 identifier for this interface is 0x47dbc105103contract Collection is Dummy, ERC165 {95contract Collection is Dummy, ERC165 {104 /// Set collection property.96 /// Set collection property.105 ///97 ///172 dummy = 0;158 dummy = 0;173 }159 }174160161 /// Whether there is a pending sponsor.175 /// @dev EVM selector for this function is: 0x058ac185,162 /// @dev EVM selector for this function is: 0x058ac185,176 /// or in textual repr: hasCollectionPendingSponsor()163 /// or in textual repr: hasCollectionPendingSponsor()177 function hasCollectionPendingSponsor() public view returns (bool) {164 function hasCollectionPendingSponsor() public view returns (bool) {201 /// Get current sponsor.188 /// Get current sponsor.202 ///189 ///203 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.190 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.204 /// @dev EVM selector for this function is: 0xb66bbc14,191 /// @dev EVM selector for this function is: 0x6ec0a9f1,205 /// or in textual repr: getCollectionSponsor()192 /// or in textual repr: collectionSponsor()206 function getCollectionSponsor() public view returns (Tuple17 memory) {193 function collectionSponsor() public view returns (Tuple17 memory) {207 require(false, stub_error);194 require(false, stub_error);208 dummy;195 dummy;209 return Tuple17(0x0000000000000000000000000000000000000000, 0);196 return Tuple17(0x0000000000000000000000000000000000000000, 0);430 /// @return `Fungible` or `NFT` or `ReFungible`415 /// @return `Fungible` or `NFT` or `ReFungible`431 /// @dev EVM selector for this function is: 0xd34b55b8,416 /// @dev EVM selector for this function is: 0xd34b55b8,432 /// or in textual repr: uniqueCollectionType()417 /// or in textual repr: uniqueCollectionType()433 function uniqueCollectionType() public returns (string memory) {418 function uniqueCollectionType() public view returns (string memory) {434 require(false, stub_error);419 require(false, stub_error);435 dummy = 0;420 dummy;436 return "";421 return "";437 }422 }438423pallets/refungible/src/stubs/UniqueRefungibleToken.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungibleToken.soldiffbeforeafterbothno syntactic changes
pallets/scheduler/Cargo.tomldiffbeforeafterboth25frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }25frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }262627up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.27" }27up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.27" }28log = { version = "0.4.14", default-features = false }28log = { version = "0.4.16", default-features = false }292930[dev-dependencies]30[dev-dependencies]31sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }31sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }pallets/unique/src/eth/stubs/CollectionHelpers.rawdiffbeforeafterbothbinary blob — no preview
primitives/data-structs/Cargo.tomldiffbeforeafterboth27struct-versioning = { path = "../../crates/struct-versioning" }27struct-versioning = { path = "../../crates/struct-versioning" }28pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }28pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }29rmrk-traits = { default-features = false, path = "../rmrk-traits" }29rmrk-traits = { default-features = false, path = "../rmrk-traits" }30bondrewd = { version = "0.1.14", features = ["derive"], default-features = false }303131[features]32[features]32default = ["std"]33default = ["std"]primitives/data-structs/src/bondrewd_codec.rsdiffbeforeafterbothno changes
primitives/data-structs/src/lib.rsdiffbeforeafterboth36use sp_core::U256;36use sp_core::U256;37use sp_runtime::{ArithmeticError, sp_std::prelude::Vec, Permill};37use sp_runtime::{ArithmeticError, sp_std::prelude::Vec, Permill};38use codec::{Decode, Encode, EncodeLike, MaxEncodedLen};38use codec::{Decode, Encode, EncodeLike, MaxEncodedLen};39use bondrewd::Bitfields;39use frame_support::{BoundedVec, traits::ConstU32};40use frame_support::{BoundedVec, traits::ConstU32};40use derivative::Derivative;41use derivative::Derivative;41use scale_info::TypeInfo;42use scale_info::TypeInfo;54 FixedPart as RmrkFixedPart, SlotPart as RmrkSlotPart,55 FixedPart as RmrkFixedPart, SlotPart as RmrkSlotPart,55};56};565758mod bondrewd_codec;57mod bounded;59mod bounded;58pub mod budget;60pub mod budget;59pub mod mapping;61pub mod mapping;357pub type CollectionDescription = BoundedVec<u16, ConstU32<MAX_COLLECTION_DESCRIPTION_LENGTH>>;359pub type CollectionDescription = BoundedVec<u16, ConstU32<MAX_COLLECTION_DESCRIPTION_LENGTH>>;358pub type CollectionTokenPrefix = BoundedVec<u8, ConstU32<MAX_TOKEN_PREFIX_LENGTH>>;360pub type CollectionTokenPrefix = BoundedVec<u8, ConstU32<MAX_TOKEN_PREFIX_LENGTH>>;361362#[derive(Bitfields, Clone, Copy, PartialEq, Eq, Debug, Default)]363#[bondrewd(enforce_bytes = 1)]364pub struct CollectionFlags {365 /// Tokens in foreign collections can be transferred, but not burnt366 #[bondrewd(bits = "0..1")]367 pub foreign: bool,368 /// External collections can't be managed using `unique` api369 #[bondrewd(bits = "7..8")]370 pub external: bool,371372 #[bondrewd(reserve, bits = "1..7")]373 pub reserved: u8,374}375bondrewd_codec!(CollectionFlags);359376360/// Base structure for represent collection.377/// Base structure for represent collection.361///378///404 #[version(2.., upper(Default::default()))]421 #[version(2.., upper(Default::default()))]405 pub permissions: CollectionPermissions,422 pub permissions: CollectionPermissions,406423407 /// Marks that this collection is not "unique", and managed from external.408 #[version(2.., upper(false))]424 #[version(2.., upper(Default::default()))]409 pub external_collection: bool,425 pub flags: CollectionFlags,410426411 #[version(..2)]427 #[version(..2)]412 pub variable_on_chain_schema: BoundedVec<u8, ConstU32<VARIABLE_ON_CHAIN_SCHEMA_LIMIT>>,428 pub variable_on_chain_schema: BoundedVec<u8, ConstU32<VARIABLE_ON_CHAIN_SCHEMA_LIMIT>>,455 /// Is collection read only.471 /// Is collection read only.456 pub read_only: bool,472 pub read_only: bool,473474 /// Is collection is foreign.475 pub foreign: bool,457}476}458477459/// Data used for create collection.478/// Data used for create collection.primitives/data-structs/src/migration.rsdiffbeforeafterboth39 test_to_option(SponsoringRateLimit::Blocks(10));39 test_to_option(SponsoringRateLimit::Blocks(10));40}40}4142#[test]43fn collection_flags_have_same_encoding_as_bool() {44 use crate::CollectionFlags;45 use codec::Encode;4647 assert_eq!(48 true.encode(),49 CollectionFlags {50 external: true,51 ..Default::default()52 }53 .encode()54 );55 assert_eq!(56 false.encode(),57 CollectionFlags {58 external: false,59 ..Default::default()60 }61 .encode()62 );63}4164runtime/common/config/orml.rsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617use frame_support::parameter_types;17use frame_support::{18 parameter_types,19 traits::{Contains, Everything},20 weights::Weight,21};18use frame_system::EnsureSigned;22use frame_system::EnsureSigned;23use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key};24use sp_runtime::traits::Convert;25use xcm::v1::{Junction::*, Junctions::*, MultiLocation, NetworkId};26use xcm_builder::LocationInverter;27use xcm_executor::XcmExecutor;28use sp_std::{vec, vec::Vec};29use pallet_foreign_assets::{CurrencyId, NativeCurrency};19use crate::{Runtime, Event, RelayChainBlockNumberProvider};30use crate::{31 Runtime, Event, RelayChainBlockNumberProvider,32 runtime_common::config::{33 xcm::{34 SelfLocation, Weigher, XcmConfig, Ancestry,35 xcm_assets::{CurrencyIdConvert},36 },37 pallets::TreasuryAccountId,38 substrate::{MaxLocks, MaxReserves},39 },40};4120use up_common::{42use up_common::{21 types::{AccountId, Balance},43 types::{AccountId, Balance},22 constants::*,44 constants::*,23};45};4647// Signed version of balance48pub type Amount = i128;244925parameter_types! {50parameter_types! {26 pub const MinVestedTransfer: Balance = 10 * UNIQUE;51 pub const MinVestedTransfer: Balance = 10 * UNIQUE;27 pub const MaxVestingSchedules: u32 = 28;52 pub const MaxVestingSchedules: u32 = 28;5354 pub const BaseXcmWeight: Weight = 100_000_000; // TODO: recheck this55 pub const MaxAssetsForTransfer: usize = 2;28}56}5758parameter_type_with_key! {59 pub ParachainMinFee: |_location: MultiLocation| -> Option<u128> {60 Some(100_000_000_000)61 };62}6364parameter_type_with_key! {65 pub ExistentialDeposits: |currency_id: CurrencyId| -> Balance {66 match currency_id {67 CurrencyId::NativeAssetId(symbol) => match symbol {68 NativeCurrency::Here => 0,69 NativeCurrency::Parent=> 0,70 },71 _ => 100_00072 }73 };74}7576pub fn get_all_module_accounts() -> Vec<AccountId> {77 vec![TreasuryAccountId::get()]78}7980pub struct DustRemovalWhitelist;81impl Contains<AccountId> for DustRemovalWhitelist {82 fn contains(a: &AccountId) -> bool {83 get_all_module_accounts().contains(a)84 }85}8687pub struct AccountIdToMultiLocation;88impl Convert<AccountId, MultiLocation> for AccountIdToMultiLocation {89 fn convert(account: AccountId) -> MultiLocation {90 X1(AccountId32 {91 network: NetworkId::Any,92 id: account.into(),93 })94 .into()95 }96}299730impl orml_vesting::Config for Runtime {98impl orml_vesting::Config for Runtime {31 type Event = Event;99 type Event = Event;37 type BlockNumberProvider = RelayChainBlockNumberProvider<Runtime>;105 type BlockNumberProvider = RelayChainBlockNumberProvider<Runtime>;38}106}107108impl orml_tokens::Config for Runtime {109 type Event = Event;110 type Balance = Balance;111 type Amount = Amount;112 type CurrencyId = CurrencyId;113 type WeightInfo = ();114 type ExistentialDeposits = ExistentialDeposits;115 type OnDust = orml_tokens::TransferDust<Runtime, TreasuryAccountId>;116 type MaxLocks = MaxLocks;117 type MaxReserves = MaxReserves;118 // TODO: Add all module accounts119 type DustRemovalWhitelist = DustRemovalWhitelist;120 /// The id type for named reserves.121 type ReserveIdentifier = ();122 type OnNewTokenAccount = ();123 type OnKilledTokenAccount = ();124}125126impl orml_xtokens::Config for Runtime {127 type Event = Event;128 type Balance = Balance;129 type CurrencyId = CurrencyId;130 type CurrencyIdConvert = CurrencyIdConvert;131 type AccountIdToMultiLocation = AccountIdToMultiLocation;132 type SelfLocation = SelfLocation;133 type XcmExecutor = XcmExecutor<XcmConfig<Self>>;134 type Weigher = Weigher;135 type BaseXcmWeight = BaseXcmWeight;136 type LocationInverter = LocationInverter<Ancestry>;137 type MaxAssetsForTransfer = MaxAssetsForTransfer;138 type MinXcmFee = ParachainMinFee;139 type MultiLocationsFilter = Everything;140 type ReserveProvider = AbsoluteReserveProvider;141}39142runtime/common/config/pallets/foreign_asset.rsdiffbeforeafterbothno changes
runtime/common/config/pallets/mod.rsdiffbeforeafterboth40#[cfg(feature = "scheduler")]40#[cfg(feature = "scheduler")]41pub mod scheduler;41pub mod scheduler;4243#[cfg(feature = "foreign-assets")]44pub mod foreign_asset;424543#[cfg(feature = "app-promotion")]46#[cfg(feature = "app-promotion")]44pub mod app_promotion;47pub mod app_promotion;runtime/common/config/xcm.rsdiffbeforeafterbothno changes
runtime/common/config/xcm/foreignassets.rsdiffbeforeafterbothno changes
runtime/common/config/xcm/mod.rsdiffbeforeafterbothno changes
runtime/common/config/xcm/nativeassets.rsdiffbeforeafterbothno changes
runtime/common/construct_runtime/mod.rsdiffbeforeafterboth42 Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,42 Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,43 Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,43 Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,44 Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,44 Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,45 // Vesting: pallet_vesting::{Pallet, Call, Config<T>, Storage, Event<T>} = 37,4546 XTokens: orml_xtokens = 38,47 Tokens: orml_tokens = 39,46 // Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,48 // Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,474948 // XCM helpers.50 // XCM helpers.65 Common: pallet_common::{Pallet, Storage, Event<T>} = 66,67 Common: pallet_common::{Pallet, Storage, Event<T>} = 66,66 Fungible: pallet_fungible::{Pallet, Storage} = 67,68 Fungible: pallet_fungible::{Pallet, Storage} = 67,676968 #[runtimes(opal)]70 #[runtimes(opal, quartz)]69 Refungible: pallet_refungible::{Pallet, Storage} = 68,71 Refungible: pallet_refungible::{Pallet, Storage} = 68,707271 Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,73 Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,80 #[runtimes(opal)]82 #[runtimes(opal)]81 AppPromotion: pallet_app_promotion::{Pallet, Call, Storage, Event<T>} = 73,83 AppPromotion: pallet_app_promotion::{Pallet, Call, Storage, Event<T>} = 73,8485 #[runtimes(opal)]86 ForeignAssets: pallet_foreign_assets::{Pallet, Call, Storage, Event<T>} = 80,828783 // Frontier88 // Frontier84 EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,89 EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,runtime/common/mod.rsdiffbeforeafterboth24pub mod sponsoring;24pub mod sponsoring;25pub mod weights;25pub mod weights;2627#[cfg(test)]28pub mod tests;262927use sp_core::H160;30use sp_core::H160;28use frame_support::traits::{Currency, OnUnbalanced, Imbalance};31use frame_support::traits::{Currency, OnUnbalanced, Imbalance};798280pub type SignedExtra = (83pub type SignedExtra = (81 frame_system::CheckSpecVersion<Runtime>,84 frame_system::CheckSpecVersion<Runtime>,82 // system::CheckTxVersion<Runtime>,85 frame_system::CheckTxVersion<Runtime>,83 frame_system::CheckGenesis<Runtime>,86 frame_system::CheckGenesis<Runtime>,84 frame_system::CheckEra<Runtime>,87 frame_system::CheckEra<Runtime>,85 frame_system::CheckNonce<Runtime>,88 frame_system::CheckNonce<Runtime>,runtime/common/runtime_apis.rsdiffbeforeafterboth688 #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]688 #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]689 list_benchmark!(list, extra, pallet_proxy_rmrk_equip, RmrkEquip);689 list_benchmark!(list, extra, pallet_proxy_rmrk_equip, RmrkEquip);690691 #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]692 list_benchmark!(list, extra, pallet_foreign_assets, ForeignAssets);693690694691 // list_benchmark!(list, extra, pallet_evm_coder_substrate, EvmCoderSubstrate);695 // list_benchmark!(list, extra, pallet_evm_coder_substrate, EvmCoderSubstrate);744 #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]748 #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]745 add_benchmark!(params, batches, pallet_proxy_rmrk_equip, RmrkEquip);749 add_benchmark!(params, batches, pallet_proxy_rmrk_equip, RmrkEquip);750751 #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]752 add_benchmark!(params, batches, pallet_foreign_assets, ForeignAssets);746753747 // add_benchmark!(params, batches, pallet_evm_coder_substrate, EvmCoderSubstrate);754 // add_benchmark!(params, batches, pallet_evm_coder_substrate, EvmCoderSubstrate);748755runtime/common/tests/mod.rsdiffbeforeafterbothno changes
runtime/common/tests/xcm.rsdiffbeforeafterbothno changes
runtime/opal/Cargo.tomldiffbeforeafterboth35 'pallet-nonfungible/runtime-benchmarks',35 'pallet-nonfungible/runtime-benchmarks',36 'pallet-proxy-rmrk-core/runtime-benchmarks',36 'pallet-proxy-rmrk-core/runtime-benchmarks',37 'pallet-proxy-rmrk-equip/runtime-benchmarks',37 'pallet-proxy-rmrk-equip/runtime-benchmarks',38 'pallet-foreign-assets/runtime-benchmarks',38 'pallet-unique/runtime-benchmarks',39 'pallet-unique/runtime-benchmarks',39 'pallet-inflation/runtime-benchmarks',40 'pallet-inflation/runtime-benchmarks',40 'pallet-app-promotion/runtime-benchmarks',41 'pallet-app-promotion/runtime-benchmarks',123 'up-sponsorship/std',124 'up-sponsorship/std',124125125 "orml-vesting/std",126 "orml-vesting/std",127 "orml-tokens/std",128 "orml-xtokens/std",129 "orml-traits/std",130 "pallet-foreign-assets/std"126]131]127limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']132limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']128opal-runtime = ['refungible', 'scheduler', 'rmrk', 'app-promotion']133opal-runtime = ['refungible', 'scheduler', 'rmrk', 'app-promotion', 'foreign-assets']129134130refungible = []135refungible = []131scheduler = []136scheduler = []132rmrk = []137rmrk = []138foreign-assets = []133app-promotion = []139app-promotion = []134140135################################################################################141################################################################################403version = "0.4.1-dev"409version = "0.4.1-dev"404default-features = false410default-features = false411412[dependencies.orml-xtokens]413git = "https://github.com/open-web3-stack/open-runtime-module-library"414branch = "polkadot-v0.9.27"415version = "0.4.1-dev"416default-features = false417418[dependencies.orml-tokens]419git = "https://github.com/open-web3-stack/open-runtime-module-library"420branch = "polkadot-v0.9.27"421version = "0.4.1-dev"422default-features = false423424[dependencies.orml-traits]425git = "https://github.com/open-web3-stack/open-runtime-module-library"426branch = "polkadot-v0.9.27"427version = "0.4.1-dev"428default-features = false405429406################################################################################430################################################################################407# local dependencies431# local dependencies442fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }466fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }443fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }467fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }444evm-coder = { default-features = false, path = '../../crates/evm-coder' }468evm-coder = { default-features = false, path = '../../crates/evm-coder' }445up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.27" }469up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.27' }470pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }446471447################################################################################472################################################################################473# Other Dependencies474475impl-trait-for-tuples = "0.2.2"476477################################################################################478# Dev Dependencies479480[dev-dependencies.logtest]481version = "2.0.0"482483################################################################################448# Build Dependencies484# Build Dependencies449485450[build-dependencies.substrate-wasm-builder]486[build-dependencies.substrate-wasm-builder]runtime/opal/src/lib.rsdiffbeforeafterboth35#[path = "../../common/mod.rs"]35#[path = "../../common/mod.rs"]36mod runtime_common;36mod runtime_common;3738pub mod xcm_barrier;3940#[cfg(test)]41mod tests;374238pub use runtime_common::*;43pub use runtime_common::*;394445 spec_name: create_runtime_str!(RUNTIME_NAME),50 spec_name: create_runtime_str!(RUNTIME_NAME),46 impl_name: create_runtime_str!(RUNTIME_NAME),51 impl_name: create_runtime_str!(RUNTIME_NAME),47 authoring_version: 1,52 authoring_version: 1,48 spec_version: 927020,53 spec_version: 927030,49 impl_version: 0,54 impl_version: 0,50 apis: RUNTIME_API_VERSIONS,55 apis: RUNTIME_API_VERSIONS,51 transaction_version: 2,56 transaction_version: 2,runtime/opal/src/tests/logcapture.rsdiffbeforeafterbothno changes
runtime/opal/src/tests/mod.rsdiffbeforeafterbothno changes
runtime/opal/src/tests/xcm.rsdiffbeforeafterbothno changes
runtime/opal/src/xcm_barrier.rsdiffbeforeafterbothno changes
runtime/quartz/Cargo.tomldiffbeforeafterboth36 'pallet-proxy-rmrk-core/runtime-benchmarks',36 'pallet-proxy-rmrk-core/runtime-benchmarks',37 'pallet-proxy-rmrk-equip/runtime-benchmarks',37 'pallet-proxy-rmrk-equip/runtime-benchmarks',38 'pallet-unique/runtime-benchmarks',38 'pallet-unique/runtime-benchmarks',39 'pallet-foreign-assets/runtime-benchmarks',39 'pallet-inflation/runtime-benchmarks',40 'pallet-inflation/runtime-benchmarks',40 'pallet-unique-scheduler/runtime-benchmarks',41 'pallet-unique-scheduler/runtime-benchmarks',41 'pallet-xcm/runtime-benchmarks',42 'pallet-xcm/runtime-benchmarks',116 'xcm-builder/std',117 'xcm-builder/std',117 'xcm-executor/std',118 'xcm-executor/std',118 'up-common/std',119 'up-common/std',120 'rmrk-rpc/std',121 'evm-coder/std',122 'up-sponsorship/std',119123120 "orml-vesting/std",124 "orml-vesting/std",125 "orml-tokens/std",126 "orml-xtokens/std",127 "orml-traits/std",128 "pallet-foreign-assets/std"121]129]122limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']130limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']123quartz-runtime = []131quartz-runtime = ['refungible']124132125refungible = []133refungible = []126scheduler = []134scheduler = []127rmrk = []135rmrk = []136foreign-assets = []128137129################################################################################138################################################################################130# Substrate Dependencies139# Substrate Dependencies397version = "0.4.1-dev"406version = "0.4.1-dev"398default-features = false407default-features = false408409[dependencies.orml-xtokens]410git = "https://github.com/open-web3-stack/open-runtime-module-library"411branch = "polkadot-v0.9.27"412version = "0.4.1-dev"413default-features = false414415[dependencies.orml-tokens]416git = "https://github.com/open-web3-stack/open-runtime-module-library"417branch = "polkadot-v0.9.27"418version = "0.4.1-dev"419default-features = false420421[dependencies.orml-traits]422git = "https://github.com/open-web3-stack/open-runtime-module-library"423branch = "polkadot-v0.9.27"424version = "0.4.1-dev"425default-features = false426399427400################################################################################428################################################################################443fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }471fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }444fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }472fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }445evm-coder = { default-features = false, path = '../../crates/evm-coder' }473evm-coder = { default-features = false, path = '../../crates/evm-coder' }446up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.27" }474up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.27' }475pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }447476448################################################################################477################################################################################478# Other Dependencies479480impl-trait-for-tuples = "0.2.2"481482################################################################################483# Dev Dependencies484485[dev-dependencies.logtest]486version = "2.0.0"487488################################################################################449# Build Dependencies489# Build Dependencies450490451[build-dependencies.substrate-wasm-builder]491[build-dependencies.substrate-wasm-builder]runtime/quartz/src/lib.rsdiffbeforeafterboth35#[path = "../../common/mod.rs"]35#[path = "../../common/mod.rs"]36mod runtime_common;36mod runtime_common;3738pub mod xcm_barrier;3940#[cfg(test)]41mod tests;374238pub use runtime_common::*;43pub use runtime_common::*;394445 spec_name: create_runtime_str!(RUNTIME_NAME),50 spec_name: create_runtime_str!(RUNTIME_NAME),46 impl_name: create_runtime_str!(RUNTIME_NAME),51 impl_name: create_runtime_str!(RUNTIME_NAME),47 authoring_version: 1,52 authoring_version: 1,48 spec_version: 927020,53 spec_version: 927030,49 impl_version: 0,54 impl_version: 0,50 apis: RUNTIME_API_VERSIONS,55 apis: RUNTIME_API_VERSIONS,51 transaction_version: 2,56 transaction_version: 2,runtime/quartz/src/tests/logcapture.rsdiffbeforeafterbothno changes
runtime/quartz/src/tests/mod.rsdiffbeforeafterbothno changes
runtime/quartz/src/tests/xcm.rsdiffbeforeafterbothno changes
runtime/quartz/src/xcm_barrier.rsdiffbeforeafterbothno changes
runtime/unique/Cargo.tomldiffbeforeafterboth36 'pallet-proxy-rmrk-core/runtime-benchmarks',36 'pallet-proxy-rmrk-core/runtime-benchmarks',37 'pallet-proxy-rmrk-equip/runtime-benchmarks',37 'pallet-proxy-rmrk-equip/runtime-benchmarks',38 'pallet-unique/runtime-benchmarks',38 'pallet-unique/runtime-benchmarks',39 'pallet-foreign-assets/runtime-benchmarks',39 'pallet-inflation/runtime-benchmarks',40 'pallet-inflation/runtime-benchmarks',40 'pallet-unique-scheduler/runtime-benchmarks',41 'pallet-unique-scheduler/runtime-benchmarks',41 'pallet-xcm/runtime-benchmarks',42 'pallet-xcm/runtime-benchmarks',117 'xcm-builder/std',118 'xcm-builder/std',118 'xcm-executor/std',119 'xcm-executor/std',119 'up-common/std',120 'up-common/std',121 'rmrk-rpc/std',122 'evm-coder/std',123 'up-sponsorship/std',120124121 "orml-vesting/std",125 "orml-vesting/std",126 "orml-tokens/std",127 "orml-xtokens/std",128 "orml-traits/std",129 "pallet-foreign-assets/std"122]130]123limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']131limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']124unique-runtime = []132unique-runtime = []125133126refungible = []134refungible = []127scheduler = []135scheduler = []128rmrk = []136rmrk = []137foreign-assets = []129138130################################################################################139################################################################################131# Substrate Dependencies140# Substrate Dependencies398version = "0.4.1-dev"407version = "0.4.1-dev"399default-features = false408default-features = false400409410[dependencies.orml-xtokens]411git = "https://github.com/open-web3-stack/open-runtime-module-library"412branch = "polkadot-v0.9.27"413version = "0.4.1-dev"414default-features = false415416[dependencies.orml-tokens]417git = "https://github.com/open-web3-stack/open-runtime-module-library"418branch = "polkadot-v0.9.27"419version = "0.4.1-dev"420default-features = false421422[dependencies.orml-traits]423git = "https://github.com/open-web3-stack/open-runtime-module-library"424branch = "polkadot-v0.9.27"425version = "0.4.1-dev"426default-features = false401################################################################################427################################################################################402# local dependencies428# local dependencies403429437fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }463fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }438fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }464fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27-fee-limit" }439evm-coder = { default-features = false, path = '../../crates/evm-coder' }465evm-coder = { default-features = false, path = '../../crates/evm-coder' }440up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.27" }466up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.27' }467pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }441468442################################################################################469################################################################################470# Other Dependencies471472impl-trait-for-tuples = "0.2.2"473474################################################################################475# Dev Dependencies476477[dev-dependencies.logtest]478version = "2.0.0"479480################################################################################443# Build Dependencies481# Build Dependencies444482445[build-dependencies.substrate-wasm-builder]483[build-dependencies.substrate-wasm-builder]runtime/unique/src/lib.rsdiffbeforeafterboth35#[path = "../../common/mod.rs"]35#[path = "../../common/mod.rs"]36mod runtime_common;36mod runtime_common;3738pub mod xcm_barrier;3940#[cfg(test)]41mod tests;374238pub use runtime_common::*;43pub use runtime_common::*;394445 spec_name: create_runtime_str!(RUNTIME_NAME),50 spec_name: create_runtime_str!(RUNTIME_NAME),46 impl_name: create_runtime_str!(RUNTIME_NAME),51 impl_name: create_runtime_str!(RUNTIME_NAME),47 authoring_version: 1,52 authoring_version: 1,48 spec_version: 927020,53 spec_version: 927030,49 impl_version: 0,54 impl_version: 0,50 apis: RUNTIME_API_VERSIONS,55 apis: RUNTIME_API_VERSIONS,51 transaction_version: 2,56 transaction_version: 2,runtime/unique/src/tests/logcapture.rsdiffbeforeafterbothno changes
runtime/unique/src/tests/mod.rsdiffbeforeafterbothno changes
runtime/unique/src/tests/xcm.rsdiffbeforeafterbothno changes
runtime/unique/src/xcm_barrier.rsdiffbeforeafterbothno changes
tests/package.jsondiffbeforeafterboth49 "testConfirmSponsorship": "mocha --timeout 9999999 -r ts-node/register ./**/confirmSponsorship.test.ts",49 "testConfirmSponsorship": "mocha --timeout 9999999 -r ts-node/register ./**/confirmSponsorship.test.ts",50 "testRemoveCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/removeCollectionAdmin.test.ts",50 "testRemoveCollectionAdmin": "mocha --timeout 9999999 -r ts-node/register ./**/removeCollectionAdmin.test.ts",51 "testRemoveCollectionSponsor": "mocha --timeout 9999999 -r ts-node/register ./**/removeCollectionSponsor.test.ts",51 "testRemoveCollectionSponsor": "mocha --timeout 9999999 -r ts-node/register ./**/removeCollectionSponsor.test.ts",52 "testRemoveFromAllowList": "mocha --timeout 9999999 -r ts-node/register ./**/removeFromAllowList.test.ts",53 "testAllowLists": "mocha --timeout 9999999 -r ts-node/register ./**/allowLists.test.ts",52 "testAllowLists": "mocha --timeout 9999999 -r ts-node/register ./**/allowLists.test.ts",54 "testConnection": "mocha --timeout 9999999 -r ts-node/register ./**/connection.test.ts",53 "testConnection": "mocha --timeout 9999999 -r ts-node/register ./**/connection.test.ts",55 "testContracts": "mocha --timeout 9999999 -r ts-node/register ./**/contracts.test.ts",54 "testContracts": "mocha --timeout 9999999 -r ts-node/register ./**/contracts.test.ts",65 "testTransfer": "mocha --timeout 9999999 -r ts-node/register ./**/transfer.test.ts",64 "testTransfer": "mocha --timeout 9999999 -r ts-node/register ./**/transfer.test.ts",66 "testBurnItem": "mocha --timeout 9999999 -r ts-node/register ./**/burnItem.test.ts",65 "testBurnItem": "mocha --timeout 9999999 -r ts-node/register ./**/burnItem.test.ts",67 "testAdminTransferAndBurn": "mocha --timeout 9999999 -r ts-node/register ./**/adminTransferAndBurn.test.ts",66 "testAdminTransferAndBurn": "mocha --timeout 9999999 -r ts-node/register ./**/adminTransferAndBurn.test.ts",68 "testSetMintPermission": "mocha --timeout 9999999 -r ts-node/register ./**/setMintPermission.test.ts",67 "testSetPermissions": "mocha --timeout 9999999 -r ts-node/register ./**/setPermissions.test.ts",69 "testSetPublicAccessMode": "mocha --timeout 9999999 -r ts-node/register ./**/setPublicAccessMode.test.ts",70 "testCreditFeesToTreasury": "mocha --timeout 9999999 -r ts-node/register ./**/creditFeesToTreasury.test.ts",68 "testCreditFeesToTreasury": "mocha --timeout 9999999 -r ts-node/register ./**/creditFeesToTreasury.test.ts",71 "testContractSponsoring": "mocha --timeout 9999999 -r ts-node/register ./**/contractSponsoring.test.ts",69 "testContractSponsoring": "mocha --timeout 9999999 -r ts-node/register ./**/contractSponsoring.test.ts",72 "testEnableContractSponsoring": "mocha --timeout 9999999 -r ts-node/register ./**/enableContractSponsoring.test.ts",70 "testEnableContractSponsoring": "mocha --timeout 9999999 -r ts-node/register ./**/enableContractSponsoring.test.ts",78 "testInflation": "mocha --timeout 9999999 -r ts-node/register ./**/inflation.test.ts",76 "testInflation": "mocha --timeout 9999999 -r ts-node/register ./**/inflation.test.ts",79 "testScheduler": "mocha --timeout 9999999 -r ts-node/register ./**/scheduler.test.ts",77 "testScheduler": "mocha --timeout 9999999 -r ts-node/register ./**/scheduler.test.ts",80 "testSchedulingEVM": "mocha --timeout 9999999 -r ts-node/register ./**/eth/scheduling.test.ts",78 "testSchedulingEVM": "mocha --timeout 9999999 -r ts-node/register ./**/eth/scheduling.test.ts",79 "testXcmUnique": "RUN_XCM_TESTS=1 mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmUnique.test.ts",80 "testXcmQuartz": "RUN_XCM_TESTS=1 mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmQuartz.test.ts",81 "testXcmOpal": "RUN_XCM_TESTS=1 mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmOpal.test.ts",82 "testXcmTransferAcala": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferAcala.test.ts acalaId=2000 uniqueId=5000",83 "testXcmTransferStatemine": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferStatemine.test.ts statemineId=1000 uniqueId=5000",81 "testXcmTransfer": "mocha --timeout 9999999 -r ts-node/register ./**/xcmTransfer.test.ts",84 "testXcmTransferMoonbeam": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferMoonbeam.test.ts",82 "testPalletPresence": "mocha --timeout 9999999 -r ts-node/register ./**/pallet-presence.test.ts",85 "testPalletPresence": "mocha --timeout 9999999 -r ts-node/register ./**/pallet-presence.test.ts",83 "testBlockProduction": "mocha --timeout 9999999 -r ts-node/register ./**/block-production.test.ts",86 "testBlockProduction": "mocha --timeout 9999999 -r ts-node/register ./**/block-production.test.ts",84 "testEnableDisableTransfers": "mocha --timeout 9999999 -r ts-node/register ./**/enableDisableTransfer.test.ts",87 "testEnableDisableTransfers": "mocha --timeout 9999999 -r ts-node/register ./**/enableDisableTransfer.test.ts",tests/scripts/readyness.jsdiffbeforeafterboth1const { ApiPromise, WsProvider } = require('@polkadot/api');1const { ApiPromise, WsProvider } = require('@polkadot/api');223const connect = async () => {3const connect = async () => {4 const wsEndpoint = 'ws://127.0.0.1:9944'4 const wsEndpoint = 'ws://127.0.0.1:9944';5 const api = new ApiPromise({provider: new WsProvider(wsEndpoint)});5 const api = new ApiPromise({provider: new WsProvider(wsEndpoint)});6 await api.isReadyOrError;6 await api.isReadyOrError;7715 return new Promise(resolve => {15 return new Promise(resolve => {16 setTimeout(() => resolve(), time);16 setTimeout(() => resolve(), time);17 });17 });18}18};191920const main = async () => {20const main = async () => {21 while(true) {21 while(true) {tests/src/addToAllowList.test.tsdiffbeforeafterbothno changes
tests/src/addToContractAllowList.test.tsdiffbeforeafterboth27chai.use(chaiAsPromised);27chai.use(chaiAsPromised);28const expect = chai.expect;28const expect = chai.expect;292930// todo:playgrounds skipped ~ postponed30describe.skip('Integration Test addToContractAllowList', () => {31describe.skip('Integration Test addToContractAllowList', () => {313232 it('Add an address to a contract allow list', async () => {33 it('Add an address to a contract allow list', async () => {tests/src/allowLists.test.tsdiffbeforeafterboth161617import {IKeyringPair} from '@polkadot/types/types';17import {IKeyringPair} from '@polkadot/types/types';18import {usingPlaygrounds, expect, itSub} from './util/playgrounds';18import {usingPlaygrounds, expect, itSub} from './util/playgrounds';19import {ICollectionPermissions} from './util/playgrounds/types';192020describe('Integration Test ext. Allow list tests', () => {21describe('Integration Test ext. Allow list tests', () => {21 let alice: IKeyringPair;22 let alice: IKeyringPair;25 before(async () => {26 before(async () => {26 await usingPlaygrounds(async (helper, privateKey) => {27 await usingPlaygrounds(async (helper, privateKey) => {27 const donor = privateKey('//Alice');28 const donor = privateKey('//Alice');28 [alice, bob, charlie] = await helper.arrange.createAccounts([100n, 100n, 100n], donor);29 [alice, bob, charlie] = await helper.arrange.createAccounts([30n, 10n, 10n], donor);29 });30 });30 });31 });313232 itSub('Owner can add address to allow list', async ({helper}) => {33 describe('Positive', async () => {34 itSub('Owner can add address to allow list', async ({helper}) => {33 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});35 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});34 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});36 // allow list does not need to be enabled to add someone in advance37 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});35 const allowList = await helper.nft.getAllowList(collectionId);38 const allowList = await helper.nft.getAllowList(collectionId);36 expect(allowList).to.be.deep.contains({Substrate: bob.address});39 expect(allowList).to.deep.contain({Substrate: bob.address});37 });40 });384139 itSub('Admin can add address to allow list', async ({helper}) => {42 itSub('Admin can add address to allow list', async ({helper}) => {40 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});43 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});41 await helper.nft.addAdmin(alice, collectionId, {Substrate: bob.address});44 await helper.nft.addAdmin(alice, collectionId, {Substrate: bob.address});424543 await helper.nft.addToAllowList(bob, collectionId, {Substrate: charlie.address});46 // allow list does not need to be enabled to add someone in advance47 await helper.nft.addToAllowList(bob, collectionId, {Substrate: charlie.address});44 const allowList = await helper.nft.getAllowList(collectionId);48 const allowList = await helper.nft.getAllowList(collectionId);45 expect(allowList).to.be.deep.contains({Substrate: charlie.address});49 expect(allowList).to.deep.contain({Substrate: charlie.address});46 });50 });475148 itSub('Non-privileged user cannot add address to allow list', async ({helper}) => {52 itSub('If address is already added to allow list, nothing happens', async ({helper}) => {49 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});53 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});50 const addToAllowListTx = async () => helper.nft.addToAllowList(bob, collectionId, {Substrate: charlie.address});54 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});55 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});51 await expect(addToAllowListTx()).to.be.rejectedWith(/common\.NoPermission/);56 const allowList = await helper.nft.getAllowList(collectionId);57 expect(allowList).to.deep.contain({Substrate: bob.address});58 });52 });59 });536054 itSub('Nobody can add address to allow list of non-existing collection', async ({helper}) => {61 describe('Negative', async () => {62 itSub('Nobody can add address to allow list of non-existing collection', async ({helper}) => {55 const collectionId = (1<<32) - 1;63 const collectionId = (1<<32) - 1;56 const addToAllowListTx = async () => helper.nft.addToAllowList(bob, collectionId, {Substrate: charlie.address});64 await expect(helper.nft.addToAllowList(bob, collectionId, {Substrate: charlie.address}))57 await expect(addToAllowListTx()).to.be.rejectedWith(/common\.CollectionNotFound/);65 .to.be.rejectedWith(/common\.CollectionNotFound/);58 });66 });596760 itSub('Nobody can add address to allow list of destroyed collection', async ({helper}) => {68 itSub('Nobody can add address to allow list of destroyed collection', async ({helper}) => {61 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});69 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});62 await helper.collection.burn(alice, collectionId);70 await helper.collection.burn(alice, collectionId);63 const addToAllowListTx = async () => helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});71 await expect(helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address}))72 .to.be.rejectedWith(/common\.CollectionNotFound/);64 await expect(addToAllowListTx()).to.be.rejectedWith(/common\.CollectionNotFound/);73 });7475 itSub('Non-privileged user cannot add address to allow list', async ({helper}) => {76 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});77 await expect(helper.nft.addToAllowList(bob, collectionId, {Substrate: charlie.address}))78 .to.be.rejectedWith(/common\.NoPermission/);79 });65 });80 });81});668267 itSub('If address is already added to allow list, nothing happens', async ({helper}) => {83describe('Integration Test ext. Remove from Allow List', () => {68 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});84 let alice: IKeyringPair;85 let bob: IKeyringPair;86 let charlie: IKeyringPair;8788 before(async () => {69 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});89 await usingPlaygrounds(async (helper, privateKey) => {70 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});90 const donor = privateKey('//Alice');71 const allowList = await helper.nft.getAllowList(collectionId);91 [alice, bob, charlie] = await helper.arrange.createAccounts([30n, 10n, 10n], donor);72 expect(allowList).to.be.deep.contains({Substrate: bob.address});92 });73 });93 });749475 itSub('Owner can remove address from allow list', async ({helper}) => {95 describe('Positive', async () => {96 itSub('Owner can remove address from allow list', async ({helper}) => {76 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});97 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});77 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});98 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});789979 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: bob.address});100 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: bob.address});8010181 const allowList = await helper.nft.getAllowList(collectionId);102 const allowList = await helper.nft.getAllowList(collectionId);8210383 expect(allowList).to.be.not.deep.contains({Substrate: bob.address});104 expect(allowList).to.not.deep.contain({Substrate: bob.address});84 });105 });8510686 itSub('Admin can remove address from allow list', async ({helper}) => {107 itSub('Admin can remove address from allow list', async ({helper}) => {87 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});108 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});88 await helper.nft.addAdmin(alice, collectionId, {Substrate: charlie.address});109 await helper.nft.addAdmin(alice, collectionId, {Substrate: charlie.address});89 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});110 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});90 await helper.collection.removeFromAllowList(charlie, collectionId, {Substrate: bob.address});111 await helper.collection.removeFromAllowList(charlie, collectionId, {Substrate: bob.address});9111292 const allowList = await helper.nft.getAllowList(collectionId);113 const allowList = await helper.nft.getAllowList(collectionId);114 expect(allowList).to.not.deep.contain({Substrate: bob.address});115 });9311694 expect(allowList).to.be.not.deep.contains({Substrate: bob.address});117 itSub('If address is already removed from allow list, nothing happens', async ({helper}) => {118 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});119 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});120 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: bob.address});95 });121 const allowListBefore = await helper.nft.getAllowList(collectionId);122 expect(allowListBefore).to.not.deep.contain({Substrate: bob.address});9612397 itSub('Non-privileged user cannot remove address from allow list', async ({helper}) => {124 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: bob.address});98 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});99 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});100 const removeTx = async () => helper.collection.removeFromAllowList(bob, collectionId, {Substrate: charlie.address});101 await expect(removeTx()).to.be.rejectedWith(/common\.NoPermission/);102 const allowList = await helper.nft.getAllowList(collectionId);103125104 expect(allowList).to.be.deep.contains({Substrate: charlie.address});126 const allowListAfter = await helper.nft.getAllowList(collectionId);127 expect(allowListAfter).to.not.deep.contain({Substrate: bob.address});128 });105 });129 });106130107 itSub('Nobody can remove address from allow list of non-existing collection', async ({helper}) => {131 describe('Negative', async () => {132 itSub('Non-privileged user cannot remove address from allow list', async ({helper}) => {133 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});134 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});135 await expect(helper.collection.removeFromAllowList(charlie, collectionId, {Substrate: charlie.address}))136 .to.be.rejectedWith(/common\.NoPermission/);137138 const allowList = await helper.nft.getAllowList(collectionId);139 expect(allowList).to.deep.contain({Substrate: charlie.address});140 });141142 itSub('Nobody can remove address from allow list of non-existing collection', async ({helper}) => {108 const collectionId = (1<<32) - 1;143 const collectionId = (1<<32) - 1;109 const removeTx = async () => helper.collection.removeFromAllowList(bob, collectionId, {Substrate: charlie.address});144 await expect(helper.collection.removeFromAllowList(bob, collectionId, {Substrate: charlie.address}))145 .to.be.rejectedWith(/common\.CollectionNotFound/);146 });147148 itSub('Nobody can remove address from allow list of deleted collection', async ({helper}) => {149 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});150 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});110 await expect(removeTx()).to.be.rejectedWith(/common\.CollectionNotFound/);151 await helper.collection.burn(alice, collectionId);152153 await expect(helper.collection.removeFromAllowList(alice, collectionId, {Substrate: bob.address}))154 .to.be.rejectedWith(/common\.CollectionNotFound/);155 });111 });156 });157});112158113 itSub('Nobody can remove address from allow list of deleted collection', async ({helper}) => {159describe('Integration Test ext. Transfer if included in Allow List', () => {114 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});160 let alice: IKeyringPair;115 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});161 let bob: IKeyringPair;116 await helper.collection.burn(alice, collectionId);162 let charlie: IKeyringPair;117 const removeTx = async () => helper.collection.removeFromAllowList(alice, collectionId, {Substrate: bob.address});118163119 await expect(removeTx()).to.be.rejectedWith(/common\.CollectionNotFound/);164 before(async () => {165 await usingPlaygrounds(async (helper, privateKey) => {166 const donor = privateKey('//Alice');167 [alice, bob, charlie] = await helper.arrange.createAccounts([30n, 10n, 10n], donor);168 });120 });169 });121170122 itSub('If address is already removed from allow list, nothing happens', async ({helper}) => {171 describe('Positive', async () => {172 itSub('If Public Access mode is set to AllowList, tokens can be transferred to a allowlisted address with transfer.', async ({helper}) => {123 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});173 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});124 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});174 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});175 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});176 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});125 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: bob.address});177 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});126 const allowListBefore = await helper.nft.getAllowList(collectionId);178 await helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address});179 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);127 expect(allowListBefore).to.be.not.deep.contains({Substrate: bob.address});180 expect(owner.Substrate).to.be.equal(charlie.address);181 });128182129 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: bob.address});183 itSub('If Public Access mode is set to AllowList, tokens can be transferred to a allowlisted address with transferFrom.', async ({helper}) => {184 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});185 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});186 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});187 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});188 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});189 await helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: charlie.address});130190131 const allowListAfter = await helper.nft.getAllowList(collectionId);191 await helper.nft.transferTokenFrom(alice, collectionId, tokenId, {Substrate: alice.address}, {Substrate: charlie.address});192 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);132 expect(allowListAfter).to.be.not.deep.contains({Substrate: bob.address});193 expect(owner.Substrate).to.be.equal(charlie.address);133 });194 });134195135 itSub('If Public Access mode is set to AllowList, tokens can’t be transferred from a non-allowlisted address with transfer or transferFrom. Test1', async ({helper}) => {196 itSub('If Public Access mode is set to AllowList, tokens can be transferred from a allowlisted address with transfer', async ({helper}) => {136 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});197 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});137 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});198 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});138 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});199 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});200 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});139 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});201 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});140202141 const transferResult = async () => helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address});203 await helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address});142 await expect(transferResult()).to.be.rejectedWith(/common\.AddressNotInAllowlist/);204 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);205 expect(owner.Substrate).to.be.equal(charlie.address);143 });206 });144207145 itSub('If Public Access mode is set to AllowList, tokens can’t be transferred from a non-allowlisted address with transfer or transferFrom. Test2', async ({helper}) => {208 itSub('If Public Access mode is set to AllowList, tokens can be transferred from a allowlisted address with transferFrom', async ({helper}) => {146 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});209 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});147 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});210 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});148 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});211 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});149 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});212 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});150 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});213 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});151 await helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: charlie.address});214 await helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: charlie.address});152 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: alice.address});153215154 const transferResult = async () => helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address});216 await helper.nft.transferTokenFrom(alice, collectionId, tokenId, {Substrate: alice.address}, {Substrate: charlie.address});155 await expect(transferResult()).to.be.rejectedWith(/common\.AddressNotInAllowlist/);217 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);218 expect(owner.Substrate).to.be.equal(charlie.address);219 });156 });220 });157221158 itSub('If Public Access mode is set to AllowList, tokens can’t be transferred to a non-allowlisted address with transfer or transferFrom. Test1', async ({helper}) => {222 describe('Negative', async () => {223 itSub('If Public Access mode is set to AllowList, tokens can\'t be transferred from a non-allowlisted address with transfer or transferFrom. Test1', async ({helper}) => {159 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});224 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});160 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});225 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});161 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});226 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});162 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});227 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});163228164 const transferResult = async () => helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address});229 await expect(helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address}))165 await expect(transferResult()).to.be.rejectedWith(/common\.AddressNotInAllowlist/);230 .to.be.rejectedWith(/common\.AddressNotInAllowlist/);166 });231 });167232168 itSub('If Public Access mode is set to AllowList, tokens can’t be transferred to a non-allowlisted address with transfer or transferFrom. Test2', async ({helper}) => {233 itSub('If Public Access mode is set to AllowList, tokens can\'t be transferred from a non-allowlisted address with transfer or transferFrom. Test2', async ({helper}) => {169 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});234 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});170 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});235 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});171 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});236 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});172 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});237 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});173 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});238 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});239 await helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: charlie.address});240 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: alice.address});174241175 await helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: charlie.address});242 await expect(helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address}))176 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: alice.address});243 .to.be.rejectedWith(/common\.AddressNotInAllowlist/);244 });177245178 const transferResult = async () => helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address});246 itSub('If Public Access mode is set to AllowList, tokens can\'t be transferred to a non-allowlisted address with transfer or transferFrom. Test1', async ({helper}) => {247 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});248 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});179 await expect(transferResult()).to.be.rejectedWith(/common\.AddressNotInAllowlist/);249 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});180 });250 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});181251182 itSub('If Public Access mode is set to AllowList, tokens can’t be destroyed by a non-allowlisted address (even if itSub owned them before enabling AllowList mode)', async ({helper}) => {252 await expect(helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address}))183 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});184 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});185 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});186 const burnTx = async () => helper.nft.burnToken(bob, collectionId, tokenId);253 .to.be.rejectedWith(/common\.AddressNotInAllowlist/);187 await expect(burnTx()).to.be.rejectedWith(/common\.NoPermission/);188 });254 });189255190 itSub('If Public Access mode is set to AllowList, token transfers can’t be Approved by a non-allowlisted address (see Approve method)', async ({helper}) => {256 itSub('If Public Access mode is set to AllowList, tokens can\'t be transferred to a non-allowlisted address with transfer or transferFrom. Test2', async ({helper}) => {191 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});257 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});192 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});258 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});193 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});259 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});194 const approveTx = async () => helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: bob.address});260 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});195 await expect(approveTx()).to.be.rejectedWith(/common\.AddressNotInAllowlist/);261 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});196 });197262198 itSub('If Public Access mode is set to AllowList, tokens can be transferred to a allowlisted address with transfer.', async ({helper}) => {263 await helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: charlie.address});199 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});200 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});201 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});264 await helper.collection.removeFromAllowList(alice, collectionId, {Substrate: alice.address});202 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});203 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});204 await helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address});205 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);206 expect(owner.Substrate).to.be.equal(charlie.address);207 });208265209 itSub('If Public Access mode is set to AllowList, tokens can be transferred to a allowlisted address with transferFrom.', async ({helper}) => {266 await expect(helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address}))210 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});211 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});212 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});213 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});267 .to.be.rejectedWith(/common\.AddressNotInAllowlist/);214 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});215 await helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: charlie.address});268 });216269217 await helper.nft.transferTokenFrom(alice, collectionId, tokenId, {Substrate: alice.address}, {Substrate: charlie.address});270 itSub('If Public Access mode is set to AllowList, tokens can\'t be destroyed by a non-allowlisted address (even if it owned them before enabling AllowList mode)', async ({helper}) => {271 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});272 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});273 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});274 await expect(helper.nft.burnToken(bob, collectionId, tokenId))275 .to.be.rejectedWith(/common\.NoPermission/);276 });277278 itSub('If Public Access mode is set to AllowList, token transfers can\'t be Approved by a non-allowlisted address (see Approve method)', async ({helper}) => {279 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});218 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);280 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});219 expect(owner.Substrate).to.be.equal(charlie.address);281 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});282 await expect(helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: bob.address}))283 .to.be.rejectedWith(/common\.AddressNotInAllowlist/);284 });220 });285 });286});221287222 itSub('If Public Access mode is set to AllowList, tokens can be transferred from a allowlisted address with transfer', async ({helper}) => {288describe('Integration Test ext. Mint if included in Allow List', () => {223 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});289 let alice: IKeyringPair;224 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});290 let bob: IKeyringPair;225 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});226 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});227 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});228291229 await helper.nft.transferToken(alice, collectionId, tokenId, {Substrate: charlie.address});292 before(async () => {293 await usingPlaygrounds(async (helper, privateKey) => {294 const donor = privateKey('//Alice');230 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);295 [alice, bob] = await helper.arrange.createAccounts([100n, 100n], donor);231 expect(owner.Substrate).to.be.equal(charlie.address);296 });232 });297 });233298234 itSub('If Public Access mode is set to AllowList, tokens can be transferred from a allowlisted address with transferFrom', async ({helper}) => {299 const permissionSet: ICollectionPermissions[] = [235 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});300 {access: 'Normal', mintMode: false},236 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});301 {access: 'Normal', mintMode: true},237 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList'});302 {access: 'AllowList', mintMode: false},238 await helper.nft.addToAllowList(alice, collectionId, {Substrate: alice.address});239 await helper.nft.addToAllowList(alice, collectionId, {Substrate: charlie.address});303 {access: 'AllowList', mintMode: true},240 await helper.nft.approveToken(alice, collectionId, tokenId, {Substrate: charlie.address});304 ];241305242 await helper.nft.transferTokenFrom(alice, collectionId, tokenId, {Substrate: alice.address}, {Substrate: charlie.address});306 const testPermissionSuite = async (permissions: ICollectionPermissions) => {243 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);307 const allowlistedMintingShouldFail = !permissions.mintMode!;244 expect(owner.Substrate).to.be.equal(charlie.address);245 });246308247 itSub('If Public Access mode is set to AllowList, and Mint Permission is set to false, tokens can be created by owner', async ({helper}) => {309 const appropriateRejectionMessage = permissions.mintMode! ? /common\.AddressNotInAllowlist/ : /common\.PublicMintingNotAllowed/;248 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});249 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList', mintMode: false});250 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});251 const token = await helper.nft.getToken(collectionId, tokenId);252 expect(token).to.be.not.null;253 });254310255 itSub('If Public Access mode is set to AllowList, and Mint Permission is set to false, tokens can be created by admin', async ({helper}) => {311 const allowlistedMintingTest = () => itSub(312 `With the condtions above, tokens can${allowlistedMintingShouldFail ? '\'t' : ''} be created by allow-listed addresses`,313 async ({helper}) => {256 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});314 const collection = await helper.nft.mintCollection(alice, {});257 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList', mintMode: false});315 await collection.setPermissions(alice, permissions);258 await helper.collection.addAdmin(alice, collectionId, {Substrate: bob.address});259 const {tokenId} = await helper.nft.mintToken(bob, {collectionId: collectionId, owner: bob.address});316 await collection.addToAllowList(alice, {Substrate: bob.address});260 const token = await helper.nft.getToken(collectionId, tokenId);261 expect(token).to.be.not.null;262 });263317264 itSub('If Public Access mode is set to AllowList, and Mint Permission is set to false, tokens cannot be created by non-privileged and allow-listed address', async ({helper}) => {318 if (allowlistedMintingShouldFail)265 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});319 await expect(collection.mintToken(bob, {Substrate: bob.address})).to.be.rejectedWith(appropriateRejectionMessage);266 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList', mintMode: false});267 await helper.collection.addToAllowList(alice, collectionId, {Substrate: bob.address});320 else268 const mintTokenTx = async () => helper.nft.mintToken(bob, {collectionId: collectionId, owner: bob.address});321 await expect(collection.mintToken(bob, {Substrate: bob.address})).to.not.be.rejected;269 await expect(mintTokenTx()).to.be.rejectedWith(/common\.PublicMintingNotAllowed/);270 });322 },323 );271324272 itSub('If Public Access mode is set to AllowList, and Mint Permission is set to false, tokens cannot be created by non-privileged and non-allow listed address', async ({helper}) => {273 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});274 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList', mintMode: false});275 const mintTokenTx = async () => helper.nft.mintToken(bob, {collectionId: collectionId, owner: bob.address});276 await expect(mintTokenTx()).to.be.rejectedWith(/common\.PublicMintingNotAllowed/);277 });278325279 itSub('If Public Access mode is set to AllowList, and Mint Permission is set to true, tokens can be created by owner', async ({helper}) => {326 describe(`Public Access Mode = ${permissions.access}, Mint Mode = ${permissions.mintMode}`, async () => {327 describe('Positive', async () => {328 itSub('With the condtions above, tokens can be created by owner', async ({helper}) => {280 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});329 const collection = await helper.nft.mintCollection(alice, {});281 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList', mintMode: true});330 await collection.setPermissions(alice, permissions);282 const {tokenId} = await helper.nft.mintToken(alice, {collectionId: collectionId, owner: alice.address});331 await expect(collection.mintToken(alice, {Substrate: alice.address})).to.not.be.rejected;283 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);284 expect(owner.Substrate).to.be.equal(alice.address);285 });332 });286333287 itSub('If Public Access mode is set to AllowList, and Mint Permission is set to true, tokens can be created by admin', async ({helper}) => {334 itSub('With the condtions above, tokens can be created by admin', async ({helper}) => {288 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});335 const collection = await helper.nft.mintCollection(alice, {});289 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList', mintMode: true});336 await collection.setPermissions(alice, permissions);290 await helper.nft.addAdmin(alice, collectionId, {Substrate: bob.address});337 await collection.addAdmin(alice, {Substrate: bob.address});291 const {tokenId} = await helper.nft.mintToken(bob, {collectionId: collectionId, owner: bob.address});338 await expect(collection.mintToken(bob, {Substrate: bob.address})).to.not.be.rejected;292 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);293 expect(owner.Substrate).to.be.equal(bob.address);294 });339 });295340296 itSub('If Public Access mode is set to AllowList, and Mint Permission is set to true, tokens cannot be created by non-privileged and non-allow listed address', async ({helper}) => {341 if (!allowlistedMintingShouldFail) allowlistedMintingTest();297 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});298 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList', mintMode: true});342 });299 const mintTokenTx = async () => helper.nft.mintToken(bob, {collectionId: collectionId, owner: bob.address});300 await expect(mintTokenTx()).to.be.rejectedWith(/common\.AddressNotInAllowlist/);301 });302343303 itSub('If Public Access mode is set to AllowList, and Mint Permission is set to true, tokens can be created by non-privileged and allow listed address', async ({helper}) => {344 describe('Negative', async () => {345 itSub('With the condtions above, tokens can\'t be created by non-priviliged non-allow-listed address', async ({helper}) => {304 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});346 const collection = await helper.nft.mintCollection(alice, {name: 'col', description: 'descr', tokenPrefix: 'COL'});305 await helper.nft.setPermissions(alice, collectionId, {access: 'AllowList', mintMode: true});347 await collection.setPermissions(alice, permissions);306 await helper.nft.addToAllowList(alice, collectionId, {Substrate: bob.address});348 await expect(collection.mintToken(bob, {Substrate: bob.address}))307 const {tokenId} = await helper.nft.mintToken(bob, {collectionId: collectionId, owner: bob.address});349 .to.be.rejectedWith(appropriateRejectionMessage);350 });351308 const owner = await helper.nft.getTokenOwner(collectionId, tokenId);352 if (allowlistedMintingShouldFail) allowlistedMintingTest();309 expect(owner.Substrate).to.be.equal(bob.address);353 });354 });355 };356357 for (const permissions of permissionSet) {358 testPermissionSuite(permissions);310 });359 }311});360});312361tests/src/app-promotion.test.tsdiffbeforeafterboth20 getModuleNames,20 getModuleNames,21 Pallets,21 Pallets,22} from './util/helpers';22} from './util/helpers';2324import chai from 'chai';23import {itSub, usingPlaygrounds} from './util/playgrounds';25import chaiAsPromised from 'chai-as-promised';26import {usingPlaygrounds} from './util/playgrounds';2728import {encodeAddress} from '@polkadot/util-crypto';24import {encodeAddress} from '@polkadot/util-crypto';29import {stringToU8a} from '@polkadot/util';25import {stringToU8a} from '@polkadot/util';30import {SponsoringMode, contractHelpers, createEthAccountWithBalance, deployFlipper, itWeb3, transferBalanceToEth} from './eth/util/helpers';26import {SponsoringMode} from './eth/util/helpers';31import {DevUniqueHelper} from './util/playgrounds/unique.dev';27import {DevUniqueHelper} from './util/playgrounds/unique.dev';32chai.use(chaiAsPromised);33const expect = chai.expect;28import {itEth, expect} from './eth/util/playgrounds';342935let alice: IKeyringPair;30let alice: IKeyringPair;36let palletAdmin: IKeyringPair;31let palletAdmin: IKeyringPair;37let nominal: bigint;32let nominal: bigint;38const palletAddress = calculatePalleteAddress('appstake');33const palletAddress = calculatePalleteAddress('appstake');39let accounts: IKeyringPair[] = [];34let accounts: IKeyringPair[] = [];40const LOCKING_PERIOD = 20n; // 20 blocks of relay35const LOCKING_PERIOD = 20n; // 20 blocks of relay41const UNLOCKING_PERIOD = 10n; // 20 blocks of parachain36const UNLOCKING_PERIOD = 10n; // 10 blocks of parachain42const rewardAvailableInBlock = (stakedInBlock: bigint) => (stakedInBlock - stakedInBlock % LOCKING_PERIOD) + (LOCKING_PERIOD * 2n);37const rewardAvailableInBlock = (stakedInBlock: bigint) => (stakedInBlock - stakedInBlock % LOCKING_PERIOD) + (LOCKING_PERIOD * 2n);433844const beforeEach = async (context: Mocha.Context) => {45 await usingPlaygrounds(async (helper, privateKey) => {46 if (!getModuleNames(helper.api!).includes(Pallets.AppPromotion)) context.skip();47 alice = privateKey('//Alice');48 palletAdmin = privateKey('//Charlie'); // TODO use custom address49 await helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address})));50 nominal = helper.balance.getOneTokenNominal();51 await helper.balance.transferToSubstrate(alice, palletAdmin.address, 1000n * nominal);52 await helper.balance.transferToSubstrate(alice, palletAddress, 1000n * nominal);53 accounts = await helper.arrange.createCrowd(100, 1000n, alice); // create accounts-pool to speed up tests54 });55};5657describe('app-promotions.stake extrinsic', () => {39describe('App promotion', () => {58 before(async function () {40 before(async function () {59 await beforeEach(this);41 await usingPlaygrounds(async (helper, privateKey) => {42 if (!getModuleNames(helper.api!).includes(Pallets.AppPromotion)) this.skip();43 alice = privateKey('//Alice');44 palletAdmin = privateKey('//Charlie'); // TODO use custom address45 await helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address})));46 nominal = helper.balance.getOneTokenNominal();47 await helper.balance.transferToSubstrate(alice, palletAdmin.address, 1000n * nominal);48 await helper.balance.transferToSubstrate(alice, palletAddress, 1000n * nominal);49 accounts = await helper.arrange.createCrowd(100, 1000n, alice); // create accounts-pool to speed up tests50 });60 });51 });615262 it('should "lock" staking balance, add it to "staked" map, and increase "totalStaked" amount', async () => {53 describe('stake extrinsic', () => { 63 await usingPlaygrounds(async (helper) => {54 itSub('should "lock" staking balance, add it to "staked" map, and increase "totalStaked" amount', async ({helper}) => {64 const [staker, recepient] = [accounts.pop()!, accounts.pop()!];55 const [staker, recepient] = [accounts.pop()!, accounts.pop()!];65 const totalStakedBefore = await helper.staking.getTotalStaked();56 const totalStakedBefore = await helper.staking.getTotalStaked();6657 67 // Minimum stake amount is 100:58 // Minimum stake amount is 100:68 await expect(helper.staking.stake(staker, 100n * nominal - 1n)).to.be.eventually.rejected;59 await expect(helper.staking.stake(staker, 100n * nominal - 1n)).to.be.rejected;69 await helper.staking.stake(staker, 100n * nominal);60 await helper.staking.stake(staker, 100n * nominal);7061 71 // Staker balance is: miscFrozen: 100, feeFrozen: 100, reserved: 0n...62 // Staker balance is: miscFrozen: 100, feeFrozen: 100, reserved: 0n...72 // ...so he can not transfer 90063 // ...so he can not transfer 90073 expect (await helper.balance.getSubstrateFull(staker.address)).to.contain({miscFrozen: 100n * nominal, feeFrozen: 100n * nominal, reserved: 0n});64 expect (await helper.balance.getSubstrateFull(staker.address)).to.contain({miscFrozen: 100n * nominal, feeFrozen: 100n * nominal, reserved: 0n});74 await expect(helper.balance.transferToSubstrate(staker, recepient.address, 900n * nominal)).to.be.rejected;65 await expect(helper.balance.transferToSubstrate(staker, recepient.address, 900n * nominal)).to.be.rejectedWith('balances.LiquidityRestrictions');75 66 76 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(100n * nominal);67 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(100n * nominal);77 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);68 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);78 // it is potentially flaky test. Promotion can credited some tokens. Maybe we need to use closeTo? 69 // it is potentially flaky test. Promotion can credited some tokens. Maybe we need to use closeTo? 79 expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedBefore + 100n * nominal); // total tokens amount staked in app-promotion increased 70 expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedBefore + 100n * nominal); // total tokens amount staked in app-promotion increased 8071 81 72 82 await helper.staking.stake(staker, 200n * nominal);73 await helper.staking.stake(staker, 200n * nominal);83 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(300n * nominal);74 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(300n * nominal);84 expect((await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map((x) => x[1])).to.be.deep.equal([100n * nominal, 200n * nominal]);75 const totalStakedPerBlock = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});76 expect(totalStakedPerBlock[0].amount).to.equal(100n * nominal);77 expect(totalStakedPerBlock[1].amount).to.equal(200n * nominal);85 });78 });86 });79 8788 it('should allow to create maximum 10 stakes for account', async () => {80 itSub('should allow to create maximum 10 stakes for account', async ({helper}) => {89 await usingPlaygrounds(async (helper) => {90 const [staker] = await helper.arrange.createAccounts([2000n], alice);81 const [staker] = await helper.arrange.createAccounts([2000n], alice);91 for (let i = 0; i < 10; i++) {82 for (let i = 0; i < 10; i++) {92 await helper.staking.stake(staker, 100n * nominal);83 await helper.staking.stake(staker, 100n * nominal);93 }84 }9485 95 // can have 10 stakes86 // can have 10 stakes96 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(1000n * nominal);87 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(1000n * nominal);97 expect(await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).to.have.length(10);88 expect(await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).to.have.length(10);9889 99 await expect(helper.staking.stake(staker, 100n * nominal)).to.be.rejected;90 await expect(helper.staking.stake(staker, 100n * nominal)).to.be.rejectedWith('appPromotion.NoPermission');10091 101 // After unstake can stake again92 // After unstake can stake again102 await helper.staking.unstake(staker);93 await helper.staking.unstake(staker);103 await helper.staking.stake(staker, 100n * nominal);94 await helper.staking.stake(staker, 100n * nominal);104 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.equal(100n * nominal);95 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.equal(100n * nominal);105 });96 });106 });97 107 108 it('should reject transaction if stake amount is more than total free balance minus frozen', async () => {98 itSub('should reject transaction if stake amount is more than total free balance minus frozen', async ({helper}) => {109 await usingPlaygrounds(async helper => { 110 const staker = accounts.pop()!;99 const staker = accounts.pop()!;111100 112 // Can't stake full balance because Alice needs to pay some fee101 // Can't stake full balance because Alice needs to pay some fee113 await expect(helper.staking.stake(staker, 1000n * nominal)).to.be.eventually.rejected;102 await expect(helper.staking.stake(staker, 1000n * nominal)).to.be.rejected;114 await helper.staking.stake(staker, 500n * nominal);103 await helper.staking.stake(staker, 500n * nominal);115104 116 // Can't stake 500 tkn because Alice has Less than 500 transferable;105 // Can't stake 500 tkn because Alice has Less than 500 transferable;117 await expect(helper.staking.stake(staker, 500n * nominal)).to.be.eventually.rejected; 106 await expect(helper.staking.stake(staker, 500n * nominal)).to.be.rejectedWith('balances.LiquidityRestrictions'); 118 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(500n * nominal);107 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(500n * nominal);119 });108 });120 });109 121 122 it('for different accounts in one block is possible', async () => {110 itSub('for different accounts in one block is possible', async ({helper}) => {123 await usingPlaygrounds(async helper => {124 const crowd = [accounts.pop()!, accounts.pop()!, accounts.pop()!, accounts.pop()!];111 const crowd = [accounts.pop()!, accounts.pop()!, accounts.pop()!, accounts.pop()!];125 112 126 const crowdStartsToStake = crowd.map(user => helper.staking.stake(user, 100n * nominal));113 const crowdStartsToStake = crowd.map(user => helper.staking.stake(user, 100n * nominal));127 await expect(Promise.all(crowdStartsToStake)).to.be.eventually.fulfilled;114 await expect(Promise.all(crowdStartsToStake)).to.be.fulfilled;128115 129 const crowdStakes = await Promise.all(crowd.map(address => helper.staking.getTotalStaked({Substrate: address.address})));116 const crowdStakes = await Promise.all(crowd.map(address => helper.staking.getTotalStaked({Substrate: address.address})));130 expect(crowdStakes).to.deep.equal([100n * nominal, 100n * nominal, 100n * nominal, 100n * nominal]);117 expect(crowdStakes).to.deep.equal([100n * nominal, 100n * nominal, 100n * nominal, 100n * nominal]);131 });118 });132 });119 });133});120 134135describe('unstake balance extrinsic', () => { 121 describe('unstake extrinsic', () => { 136 before(async function () {122 itSub('should change balance state from "frozen" to "reserved", add it to "pendingUnstake" map, and subtract it from totalStaked', async ({helper}) => {137 await beforeEach(this);138 });139140 it('should change balance state from "frozen" to "reserved", add it to "pendingUnstake" map, and subtract it from totalStaked', async () => {141 await usingPlaygrounds(async helper => {142 const [staker, recepient] = [accounts.pop()!, accounts.pop()!];123 const [staker, recepient] = [accounts.pop()!, accounts.pop()!];143 const totalStakedBefore = await helper.staking.getTotalStaked();124 const totalStakedBefore = await helper.staking.getTotalStaked();144 await helper.staking.stake(staker, 900n * nominal);125 await helper.staking.stake(staker, 900n * nominal);145 await helper.staking.unstake(staker);126 await helper.staking.unstake(staker);146127 147 // Right after unstake balance is reserved128 // Right after unstake balance is reserved148 // Staker can not transfer 129 // Staker can not transfer 149 expect(await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 900n * nominal, miscFrozen: 0n, feeFrozen: 0n});130 expect(await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 900n * nominal, miscFrozen: 0n, feeFrozen: 0n});150 await expect(helper.balance.transferToSubstrate(staker, recepient.address, 100n * nominal)).to.be.rejected;131 await expect(helper.balance.transferToSubstrate(staker, recepient.address, 100n * nominal)).to.be.rejectedWith('balances.InsufficientBalance');151 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(900n * nominal);132 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(900n * nominal);152 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(0n);133 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(0n);153 expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedBefore);134 expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedBefore);154 });135 });155 });136 156157 it('should unlock balance after unlocking period ends and remove it from "pendingUnstake"', async () => {137 itSub('should unlock balance after unlocking period ends and remove it from "pendingUnstake"', async ({helper}) => {158 await usingPlaygrounds(async (helper) => {159 const staker = accounts.pop()!;138 const staker = accounts.pop()!;160 await helper.staking.stake(staker, 100n * nominal);139 await helper.staking.stake(staker, 100n * nominal);161 await helper.staking.unstake(staker);140 await helper.staking.unstake(staker);162 const unstakedInBlock = (await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address}))[0][0];141 const [pendingUnstake] = await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address});163142 164 // Wait for unstaking period. Balance now free ~1000; reserved, frozen, miscFrozeb: 0n143 // Wait for unstaking period. Balance now free ~1000; reserved, frozen, miscFrozeb: 0n165 await helper.wait.forParachainBlockNumber(unstakedInBlock);144 await helper.wait.forParachainBlockNumber(pendingUnstake.block);166 expect(await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 0n, miscFrozen: 0n, feeFrozen: 0n});145 expect(await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 0n, miscFrozen: 0n, feeFrozen: 0n});167 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);146 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);168147 169 // staker can transfer:148 // staker can transfer:170 await helper.balance.transferToSubstrate(staker, alice.address, 998n * nominal);149 await helper.balance.transferToSubstrate(staker, alice.address, 998n * nominal);171 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(1n);150 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(1n);172 });151 });173 });152 174175 it('should successfully unstake multiple stakes', async () => {153 itSub('should successfully unstake multiple stakes', async ({helper}) => {176 await usingPlaygrounds(async helper => {177 const staker = accounts.pop()!;154 const staker = accounts.pop()!;178 await helper.staking.stake(staker, 100n * nominal);155 await helper.staking.stake(staker, 100n * nominal);179 await helper.staking.stake(staker, 200n * nominal);156 await helper.staking.stake(staker, 200n * nominal);180 await helper.staking.stake(staker, 300n * nominal);157 await helper.staking.stake(staker, 300n * nominal);181158 182 // staked: [100, 200, 300]; unstaked: 0159 // staked: [100, 200, 300]; unstaked: 0183 let pendingUnstake = await helper.staking.getPendingUnstake({Substrate: staker.address});160 let totalPendingUnstake = await helper.staking.getPendingUnstake({Substrate: staker.address});184 let unstakedPerBlock = (await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address})).map(stake => stake[1]);161 let pendingUnstake = await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address});185 let stakedPerBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map(stake => stake[1]);162 let stakes = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});186 expect(pendingUnstake).to.be.deep.equal(0n);163 expect(totalPendingUnstake).to.be.deep.equal(0n);187 expect(unstakedPerBlock).to.be.deep.equal([]);164 expect(pendingUnstake).to.be.deep.equal([]);188 expect(stakedPerBlock).to.be.deep.equal([100n * nominal, 200n * nominal, 300n * nominal]);165 expect(stakes[0].amount).to.equal(100n * nominal);166 expect(stakes[1].amount).to.equal(200n * nominal);167 expect(stakes[2].amount).to.equal(300n * nominal);189 168 190 // Can unstake multiple stakes169 // Can unstake multiple stakes191 await helper.staking.unstake(staker);170 await helper.staking.unstake(staker);192 const unstakingBlock = (await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address}))[0][0];171 pendingUnstake = await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address});193 pendingUnstake = await helper.staking.getPendingUnstake({Substrate: staker.address});172 totalPendingUnstake = await helper.staking.getPendingUnstake({Substrate: staker.address});194 unstakedPerBlock = (await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address})).map(stake => stake[1]);173 stakes = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});195 stakedPerBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map(stake => stake[1]);196 expect(pendingUnstake).to.be.equal(600n * nominal);174 expect(totalPendingUnstake).to.be.equal(600n * nominal);197 expect(stakedPerBlock).to.be.deep.equal([]);175 expect(stakes).to.be.deep.equal([]);198 expect(unstakedPerBlock).to.be.deep.equal([600n * nominal]);176 expect(pendingUnstake[0].amount).to.equal(600n * nominal);199177 200 expect (await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 600n * nominal, feeFrozen: 0n, miscFrozen: 0n});178 expect (await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 600n * nominal, feeFrozen: 0n, miscFrozen: 0n});201 await helper.wait.forParachainBlockNumber(unstakingBlock);179 await helper.wait.forParachainBlockNumber(pendingUnstake[0].block);202 expect (await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 0n, feeFrozen: 0n, miscFrozen: 0n});180 expect (await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 0n, feeFrozen: 0n, miscFrozen: 0n});203 expect (await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);181 expect (await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);204 });182 });205 });183 206207 it('should not have any effects if no active stakes', async () => {184 itSub('should not have any effects if no active stakes', async ({helper}) => {208 await usingPlaygrounds(async (helper) => {209 const staker = accounts.pop()!;185 const staker = accounts.pop()!;210 186 211 // unstake has no effect if no stakes at all187 // unstake has no effect if no stakes at all212 await helper.staking.unstake(staker);188 await helper.staking.unstake(staker);213 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(0n);189 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(0n);214 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n); // TODO bigint closeTo helper190 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n); // TODO bigint closeTo helper215191 216 // TODO stake() unstake() waitUnstaked() unstake();192 // TODO stake() unstake() waitUnstaked() unstake();217193 218 // can't unstake if there are only pendingUnstakes194 // can't unstake if there are only pendingUnstakes219 await helper.staking.stake(staker, 100n * nominal);195 await helper.staking.stake(staker, 100n * nominal);220 await helper.staking.unstake(staker);196 await helper.staking.unstake(staker);221 await helper.staking.unstake(staker);197 await helper.staking.unstake(staker);222198 223 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(100n * nominal);199 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(100n * nominal);224 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(0n);200 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(0n);225 });201 });226 });202 227228 it('should keep different unlocking block for each unlocking stake', async () => {203 itSub('should keep different unlocking block for each unlocking stake', async ({helper}) => {229 await usingPlaygrounds(async (helper) => {230 const staker = accounts.pop()!;204 const staker = accounts.pop()!;231 await helper.staking.stake(staker, 100n * nominal);205 await helper.staking.stake(staker, 100n * nominal);232 await helper.staking.unstake(staker);206 await helper.staking.unstake(staker);233 await helper.staking.stake(staker, 120n * nominal);207 await helper.staking.stake(staker, 120n * nominal);234 await helper.staking.unstake(staker);208 await helper.staking.unstake(staker);235209 236 const unstakingPerBlock = await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address});210 const unstakingPerBlock = await helper.staking.getPendingUnstakePerBlock({Substrate: staker.address});237 expect(unstakingPerBlock).has.length(2);211 expect(unstakingPerBlock).has.length(2);238 expect(unstakingPerBlock[0][1]).to.equal(100n * nominal);212 expect(unstakingPerBlock[0].amount).to.equal(100n * nominal);239 expect(unstakingPerBlock[1][1]).to.equal(120n * nominal);213 expect(unstakingPerBlock[1].amount).to.equal(120n * nominal);240 });214 });241 });215 242243 it('should be possible for different accounts in one block', async () => {216 itSub('should be possible for different accounts in one block', async ({helper}) => {244 await usingPlaygrounds(async (helper) => {245 const stakers = [accounts.pop()!, accounts.pop()!, accounts.pop()!];217 const stakers = [accounts.pop()!, accounts.pop()!, accounts.pop()!];246218 247 await Promise.all(stakers.map(staker => helper.staking.stake(staker, 100n * nominal)));219 await Promise.all(stakers.map(staker => helper.staking.stake(staker, 100n * nominal)));248 await Promise.all(stakers.map(staker => helper.staking.unstake(staker)));220 await Promise.all(stakers.map(staker => helper.staking.unstake(staker)));249221 250 await Promise.all(stakers.map(async (staker) => {222 await Promise.all(stakers.map(async (staker) => {251 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(100n * nominal);223 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(100n * nominal);252 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(0n);224 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(0n);253 }));225 }));254 });226 });255 });227 });256});228 257258describe('Admin adress', () => {229 describe('admin adress', () => {259 before(async function () {230 itSub('can be set by sudo only', async ({helper}) => {260 await beforeEach(this);261 });262263 it('can be set by sudo only', async () => {264 await usingPlaygrounds(async (helper) => {265 const nonAdmin = accounts.pop()!;231 const nonAdmin = accounts.pop()!;266 // nonAdmin can not set admin not from himself nor as a sudo232 // nonAdmin can not set admin not from himself nor as a sudo267 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.appPromotion.setAdminAddress({Substrate: nonAdmin.address}))).to.be.eventually.rejected;233 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.appPromotion.setAdminAddress({Substrate: nonAdmin.address}))).to.be.rejected;268 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: nonAdmin.address})))).to.be.eventually.rejected;234 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: nonAdmin.address})))).to.be.rejected;269235 270 // Alice can236 // Alice can271 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address})))).to.be.eventually.fulfilled;237 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address})))).to.be.fulfilled;272 });238 });273 });239 274 275 it('can be any valid CrossAccountId', async () => {240 itSub('can be any valid CrossAccountId', async ({helper}) => {276 // We are not going to set an eth address as a sponsor,241 // We are not going to set an eth address as a sponsor,277 // but we do want to check, it doesn't break anything;242 // but we do want to check, it doesn't break anything;278 await usingPlaygrounds(async (helper) => {279 const account = accounts.pop()!;243 const account = accounts.pop()!;280 const ethAccount = helper.address.substrateToEth(account.address); 244 const ethAccount = helper.address.substrateToEth(account.address); 281 // Alice sets Ethereum address as a sudo. Then Substrate address back...245 // Alice sets Ethereum address as a sudo. Then Substrate address back...282 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Ethereum: ethAccount})))).to.be.eventually.fulfilled;246 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Ethereum: ethAccount})))).to.be.fulfilled;283 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address})))).to.be.eventually.fulfilled;247 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address})))).to.be.fulfilled;284 248 285 // ...It doesn't break anything;249 // ...It doesn't break anything;286 const collection = await helper.nft.mintCollection(account, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});250 const collection = await helper.nft.mintCollection(account, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});287 await expect(helper.signTransaction(account, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.eventually.rejected;251 await expect(helper.signTransaction(account, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.rejected;288 });252 });289 });253 290291 it('can be reassigned', async () => {254 itSub('can be reassigned', async ({helper}) => {292 await usingPlaygrounds(async (helper) => {293 const [oldAdmin, newAdmin, collectionOwner] = [accounts.pop()!, accounts.pop()!, accounts.pop()!];255 const [oldAdmin, newAdmin, collectionOwner] = [accounts.pop()!, accounts.pop()!, accounts.pop()!];294 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});256 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});295 257 296 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress(normalizeAccountId(oldAdmin))))).to.be.eventually.fulfilled;258 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress(normalizeAccountId(oldAdmin))))).to.be.fulfilled;297 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress(normalizeAccountId(newAdmin))))).to.be.eventually.fulfilled;259 await expect(helper.signTransaction(alice, helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress(normalizeAccountId(newAdmin))))).to.be.fulfilled;298 await expect(helper.signTransaction(oldAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.eventually.rejected;260 await expect(helper.signTransaction(oldAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.rejected;299 261 300 await expect(helper.signTransaction(newAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.eventually.fulfilled;262 await expect(helper.signTransaction(newAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.fulfilled;301 });263 });302 });264 });303});265 304305describe('App-promotion collection sponsoring', () => {266 describe('collection sponsoring', () => {306 before(async function () {267 before(async function () {307 await beforeEach(this);268 await usingPlaygrounds(async (helper) => {308 await usingPlaygrounds(async (helper) => {309 const tx = helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address}));269 const tx = helper.api!.tx.sudo.sudo(helper.api!.tx.appPromotion.setAdminAddress({Substrate: palletAdmin.address}));310 await helper.signTransaction(alice, tx);270 await helper.signTransaction(alice, tx);271 });311 });272 });312 });273 313314 it('should actually sponsor transactions', async () => {274 itSub('should actually sponsor transactions', async ({helper}) => {315 await usingPlaygrounds(async (helper) => {316 const [collectionOwner, tokenSender, receiver] = [accounts.pop()!, accounts.pop()!, accounts.pop()!];275 const [collectionOwner, tokenSender, receiver] = [accounts.pop()!, accounts.pop()!, accounts.pop()!];317 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'Name', description: 'Description', tokenPrefix: 'Prefix', limits: {sponsorTransferTimeout: 0}});276 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'Name', description: 'Description', tokenPrefix: 'Prefix', limits: {sponsorTransferTimeout: 0}});318 const token = await collection.mintToken(collectionOwner, {Substrate: tokenSender.address});277 const token = await collection.mintToken(collectionOwner, {Substrate: tokenSender.address});319 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId));278 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId));320 const palletBalanceBefore = await helper.balance.getSubstrate(palletAddress);279 const palletBalanceBefore = await helper.balance.getSubstrate(palletAddress);321280 322 await token.transfer(tokenSender, {Substrate: receiver.address});281 await token.transfer(tokenSender, {Substrate: receiver.address});323 expect (await token.getOwner()).to.be.deep.equal({Substrate: receiver.address});282 expect (await token.getOwner()).to.be.deep.equal({Substrate: receiver.address});324 const palletBalanceAfter = await helper.balance.getSubstrate(palletAddress);283 const palletBalanceAfter = await helper.balance.getSubstrate(palletAddress);325284 326 // senders balance the same, transaction has sponsored285 // senders balance the same, transaction has sponsored327 expect (await helper.balance.getSubstrate(tokenSender.address)).to.be.equal(1000n * nominal);286 expect (await helper.balance.getSubstrate(tokenSender.address)).to.be.equal(1000n * nominal);328 expect (palletBalanceBefore > palletBalanceAfter).to.be.true;287 expect (palletBalanceBefore > palletBalanceAfter).to.be.true;329 });288 });330 });289 331332 it('can not be set by non admin', async () => {290 itSub('can not be set by non admin', async ({helper}) => {333 await usingPlaygrounds(async (helper) => {334 const [collectionOwner, nonAdmin] = [accounts.pop()!, accounts.pop()!];291 const [collectionOwner, nonAdmin] = [accounts.pop()!, accounts.pop()!];335292 336 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});293 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});337 294 338 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.eventually.rejected;295 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.rejected;339 expect((await collection.getData())?.raw.sponsorship).to.equal('Disabled');296 expect((await collection.getData())?.raw.sponsorship).to.equal('Disabled');340 });297 });341 });298 342343 it('should set pallet address as confirmed admin', async () => {299 itSub('should set pallet address as confirmed admin', async ({helper}) => {344 await usingPlaygrounds(async (helper) => {345 const [collectionOwner, oldSponsor] = [accounts.pop()!, accounts.pop()!];300 const [collectionOwner, oldSponsor] = [accounts.pop()!, accounts.pop()!];346 301 347 // Can set sponsoring for collection without sponsor302 // Can set sponsoring for collection without sponsor348 const collectionWithoutSponsor = await helper.nft.mintCollection(collectionOwner, {name: 'No-sponsor', description: 'New Collection', tokenPrefix: 'Promotion'});303 const collectionWithoutSponsor = await helper.nft.mintCollection(collectionOwner, {name: 'No-sponsor', description: 'New Collection', tokenPrefix: 'Promotion'});349 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionWithoutSponsor.collectionId))).to.be.eventually.fulfilled;304 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionWithoutSponsor.collectionId))).to.be.fulfilled;350 expect((await collectionWithoutSponsor.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});305 expect((await collectionWithoutSponsor.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});351306 352 // Can set sponsoring for collection with unconfirmed sponsor307 // Can set sponsoring for collection with unconfirmed sponsor353 const collectionWithUnconfirmedSponsor = await helper.nft.mintCollection(collectionOwner, {name: 'Unconfirmed', description: 'New Collection', tokenPrefix: 'Promotion', pendingSponsor: oldSponsor.address});308 const collectionWithUnconfirmedSponsor = await helper.nft.mintCollection(collectionOwner, {name: 'Unconfirmed', description: 'New Collection', tokenPrefix: 'Promotion', pendingSponsor: oldSponsor.address});354 expect((await collectionWithUnconfirmedSponsor.getData())?.raw.sponsorship).to.be.deep.equal({Unconfirmed: oldSponsor.address});309 expect((await collectionWithUnconfirmedSponsor.getData())?.raw.sponsorship).to.be.deep.equal({Unconfirmed: oldSponsor.address});355 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionWithUnconfirmedSponsor.collectionId))).to.be.eventually.fulfilled;310 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionWithUnconfirmedSponsor.collectionId))).to.be.fulfilled;356 expect((await collectionWithUnconfirmedSponsor.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});311 expect((await collectionWithUnconfirmedSponsor.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});357312 358 // Can set sponsoring for collection with confirmed sponsor313 // Can set sponsoring for collection with confirmed sponsor359 const collectionWithConfirmedSponsor = await helper.nft.mintCollection(collectionOwner, {name: 'Confirmed', description: 'New Collection', tokenPrefix: 'Promotion', pendingSponsor: oldSponsor.address});314 const collectionWithConfirmedSponsor = await helper.nft.mintCollection(collectionOwner, {name: 'Confirmed', description: 'New Collection', tokenPrefix: 'Promotion', pendingSponsor: oldSponsor.address});360 await collectionWithConfirmedSponsor.confirmSponsorship(oldSponsor);315 await collectionWithConfirmedSponsor.confirmSponsorship(oldSponsor);361 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionWithConfirmedSponsor.collectionId))).to.be.eventually.fulfilled;316 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionWithConfirmedSponsor.collectionId))).to.be.fulfilled;362 expect((await collectionWithConfirmedSponsor.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});317 expect((await collectionWithConfirmedSponsor.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});363 });318 });364 });319 365366 it('can be overwritten by collection owner', async () => { 320 itSub('can be overwritten by collection owner', async ({helper}) => { 367 await usingPlaygrounds(async (helper) => {368 const [collectionOwner, newSponsor] = [accounts.pop()!, accounts.pop()!];321 const [collectionOwner, newSponsor] = [accounts.pop()!, accounts.pop()!];369 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});322 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});370 const collectionId = collection.collectionId;323 const collectionId = collection.collectionId;371 324 372 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionId))).to.be.eventually.fulfilled;325 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionId))).to.be.fulfilled;373 326 374 // Collection limits still can be changed by the owner327 // Collection limits still can be changed by the owner375 expect(await collection.setLimits(collectionOwner, {sponsorTransferTimeout: 0})).to.be.true;328 expect(await collection.setLimits(collectionOwner, {sponsorTransferTimeout: 0})).to.be.true;376 expect((await collection.getData())?.raw.limits.sponsorTransferTimeout).to.be.equal(0);329 expect((await collection.getData())?.raw.limits.sponsorTransferTimeout).to.be.equal(0);377 expect((await collection.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});330 expect((await collection.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});378331 379 // Collection sponsor can be changed too332 // Collection sponsor can be changed too380 expect((await collection.setSponsor(collectionOwner, newSponsor.address))).to.be.true;333 expect((await collection.setSponsor(collectionOwner, newSponsor.address))).to.be.true;381 expect((await collection.getData())?.raw.sponsorship).to.be.deep.equal({Unconfirmed: newSponsor.address});334 expect((await collection.getData())?.raw.sponsorship).to.be.deep.equal({Unconfirmed: newSponsor.address});382 });335 });383 });336 384 385 it('should not overwrite collection limits set by the owner earlier', async () => {337 itSub('should not overwrite collection limits set by the owner earlier', async ({helper}) => {386 await usingPlaygrounds(async (helper) => {387 const limits = {ownerCanDestroy: true, ownerCanTransfer: true, sponsorTransferTimeout: 0};338 const limits = {ownerCanDestroy: true, ownerCanTransfer: true, sponsorTransferTimeout: 0};388 const collectionWithLimits = await helper.nft.mintCollection(alice, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion', limits});339 const collectionWithLimits = await helper.nft.mintCollection(alice, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion', limits});389340 390 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionWithLimits.collectionId))).to.be.eventually.fulfilled;341 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collectionWithLimits.collectionId))).to.be.fulfilled;391 expect((await collectionWithLimits.getData())?.raw.limits).to.be.deep.contain(limits);342 expect((await collectionWithLimits.getData())?.raw.limits).to.be.deep.contain(limits);392 });343 });393 });344 394 395 it('should reject transaction if collection doesn\'t exist', async () => {345 itSub('should reject transaction if collection doesn\'t exist', async ({helper}) => {396 await usingPlaygrounds(async (helper) => {397 const collectionOwner = accounts.pop()!;346 const collectionOwner = accounts.pop()!;398 347 399 // collection has never existed348 // collection has never existed400 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(999999999))).to.be.eventually.rejected;349 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(999999999))).to.be.rejected;401 // collection has been burned350 // collection has been burned402 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});351 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});403 await collection.burn(collectionOwner);352 await collection.burn(collectionOwner);404353 405 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.eventually.rejected;354 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.rejected;406 });355 });407 });356 });408});357 409410describe('app-promotion stopSponsoringCollection', () => {358 describe('stopSponsoringCollection', () => {411 before(async function () {359 itSub('can not be called by non-admin', async ({helper}) => { 412 await beforeEach(this);413 });414415 it('can not be called by non-admin', async () => { 416 await usingPlaygrounds(async (helper) => {417 const [collectionOwner, nonAdmin] = [accounts.pop()!, accounts.pop()!];360 const [collectionOwner, nonAdmin] = [accounts.pop()!, accounts.pop()!];418 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});361 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});419 362 420 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.eventually.fulfilled;363 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId))).to.be.fulfilled;421 364 422 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(collection.collectionId))).to.be.eventually.rejected;365 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(collection.collectionId))).to.be.rejected;423 expect((await collection.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});366 expect((await collection.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: palletAddress});424 });367 });425 });368 426427 it('should set sponsoring as disabled', async () => {369 itSub('should set sponsoring as disabled', async ({helper}) => {428 await usingPlaygrounds(async (helper) => {429 const [collectionOwner, recepient] = [accounts.pop()!, accounts.pop()!];370 const [collectionOwner, recepient] = [accounts.pop()!, accounts.pop()!];430 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion', limits: {sponsorTransferTimeout: 0}});371 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion', limits: {sponsorTransferTimeout: 0}});431 const token = await collection.mintToken(collectionOwner, {Substrate: collectionOwner.address});372 const token = await collection.mintToken(collectionOwner, {Substrate: collectionOwner.address});432 373 433 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId));374 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorCollection(collection.collectionId));434 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(collection.collectionId));375 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(collection.collectionId));435 376 436 expect((await collection.getData())?.raw.sponsorship).to.be.equal('Disabled');377 expect((await collection.getData())?.raw.sponsorship).to.be.equal('Disabled');437378 438 // Transactions are not sponsored anymore:379 // Transactions are not sponsored anymore:439 const ownerBalanceBefore = await helper.balance.getSubstrate(collectionOwner.address);380 const ownerBalanceBefore = await helper.balance.getSubstrate(collectionOwner.address);440 await token.transfer(collectionOwner, {Substrate: recepient.address});381 await token.transfer(collectionOwner, {Substrate: recepient.address});441 const ownerBalanceAfter = await helper.balance.getSubstrate(collectionOwner.address);382 const ownerBalanceAfter = await helper.balance.getSubstrate(collectionOwner.address);442 expect(ownerBalanceAfter < ownerBalanceBefore).to.be.equal(true);383 expect(ownerBalanceAfter < ownerBalanceBefore).to.be.equal(true);443 });384 });444 });385 445446 it('should not affect collection which is not sponsored by pallete', async () => {386 itSub('should not affect collection which is not sponsored by pallete', async ({helper}) => {447 await usingPlaygrounds(async (helper) => {448 const collectionOwner = accounts.pop()!;387 const collectionOwner = accounts.pop()!;449 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion', pendingSponsor: collectionOwner.address});388 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion', pendingSponsor: collectionOwner.address});450 await collection.confirmSponsorship(collectionOwner);389 await collection.confirmSponsorship(collectionOwner);451 390 452 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(collection.collectionId))).to.be.eventually.rejected;391 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(collection.collectionId))).to.be.rejected;453 392 454 expect((await collection.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: collectionOwner.address});393 expect((await collection.getData())?.raw.sponsorship).to.be.deep.equal({Confirmed: collectionOwner.address});455 });394 });456 });395 457458 it('should reject transaction if collection does not exist', async () => { 396 itSub('should reject transaction if collection does not exist', async ({helper}) => { 459 await usingPlaygrounds(async (helper) => {460 const collectionOwner = accounts.pop()!;397 const collectionOwner = accounts.pop()!;461 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});398 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});462 399 463 await collection.burn(collectionOwner);400 await collection.burn(collectionOwner);464 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(collection.collectionId))).to.be.eventually.rejected;401 await expect(helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.stopSponsoringCollection', [collection.collectionId], true)).to.be.rejectedWith('common.CollectionNotFound');465 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(999999999))).to.be.eventually.rejected;402 await expect(helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.stopSponsoringCollection', [999_999_999], true)).to.be.rejectedWith('common.CollectionNotFound');466 });403 });467 });404 });468});405 469470describe('app-promotion contract sponsoring', () => {406 describe('contract sponsoring', () => {471 before(async function () {407 itEth('should set palletes address as a sponsor', async ({helper}) => {472 await beforeEach(this);473 });474475 itWeb3('should set palletes address as a sponsor', async ({api, web3, privateKeyWrapper}) => {476 await usingPlaygrounds(async (helper) => {408 const contractOwner = (await helper.eth.createAccountWithBalance(alice, 1000n)).toLowerCase();477 const contractOwner = (await createEthAccountWithBalance(api, web3, privateKeyWrapper)).toLowerCase();478 const flipper = await deployFlipper(web3, contractOwner);409 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);479 const contractMethods = contractHelpers(web3, contractOwner);410 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);480411 481 await helper.signTransaction(palletAdmin, api.tx.appPromotion.sponsorContract(flipper.options.address));412 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address]);482 413 483 expect(await contractMethods.methods.hasSponsor(flipper.options.address).call()).to.be.true; 414 expect(await contractHelper.methods.hasSponsor(flipper.options.address).call()).to.be.true; 484 expect((await api.query.evmContractHelpers.owner(flipper.options.address)).toJSON()).to.be.equal(contractOwner); 415 expect((await helper.api!.query.evmContractHelpers.owner(flipper.options.address)).toJSON()).to.be.equal(contractOwner); 485 expect((await api.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({416 expect((await helper.api!.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({486 confirmed: {417 confirmed: {487 substrate: palletAddress,418 substrate: palletAddress,488 },419 },489 });420 });490 });421 });491 });422 492493 itWeb3('should overwrite sponsoring mode and existed sponsor', async ({api, web3, privateKeyWrapper}) => {423 itEth('should overwrite sponsoring mode and existed sponsor', async ({helper}) => {494 await usingPlaygrounds(async (helper) => {424 const contractOwner = (await helper.eth.createAccountWithBalance(alice, 1000n)).toLowerCase();495 const contractOwner = (await createEthAccountWithBalance(api, web3, privateKeyWrapper)).toLowerCase();496 const flipper = await deployFlipper(web3, contractOwner);425 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);497 const contractMethods = contractHelpers(web3, contractOwner);426 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);498427 499 await expect(contractMethods.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.not.rejected;428 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;500429 501 // Contract is self sponsored430 // Contract is self sponsored502 expect((await api.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.be.deep.equal({431 expect((await helper.api!.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.be.deep.equal({503 confirmed: {432 confirmed: {504 ethereum: flipper.options.address.toLowerCase(),433 ethereum: flipper.options.address.toLowerCase(),505 },434 },506 });435 });507436 508 // set promotion sponsoring437 // set promotion sponsoring509 await helper.signTransaction(palletAdmin, api.tx.appPromotion.sponsorContract(flipper.options.address));438 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true);510439 511 // new sponsor is pallet address440 // new sponsor is pallet address512 expect(await contractMethods.methods.hasSponsor(flipper.options.address).call()).to.be.true; 441 expect(await contractHelper.methods.hasSponsor(flipper.options.address).call()).to.be.true; 513 expect((await api.query.evmContractHelpers.owner(flipper.options.address)).toJSON()).to.be.equal(contractOwner); 442 expect((await helper.callRpc('api.query.evmContractHelpers.owner', [flipper.options.address])).toJSON()).to.be.equal(contractOwner); 514 expect((await api.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({443 expect((await helper.callRpc('api.query.evmContractHelpers.sponsoring', [flipper.options.address])).toJSON()).to.deep.equal({515 confirmed: {444 confirmed: {516 substrate: palletAddress,445 substrate: palletAddress,517 },446 },518 });447 });519 });448 });520 });449 521522 itWeb3('can be overwritten by contract owner', async ({api, web3, privateKeyWrapper}) => {450 itEth('can be overwritten by contract owner', async ({helper}) => {523 await usingPlaygrounds(async (helper) => { 451 const contractOwner = (await helper.eth.createAccountWithBalance(alice, 1000n)).toLowerCase();524 const contractOwner = (await createEthAccountWithBalance(api, web3, privateKeyWrapper)).toLowerCase();525 const flipper = await deployFlipper(web3, contractOwner);452 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);526 const contractMethods = contractHelpers(web3, contractOwner);453 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);527454 528 // contract sponsored by pallet455 // contract sponsored by pallet529 await helper.signTransaction(palletAdmin, api.tx.appPromotion.sponsorContract(flipper.options.address));456 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true);530457 531 // owner sets self sponsoring458 // owner sets self sponsoring532 await expect(contractMethods.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.not.rejected;459 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.not.rejected;533460 534 expect(await contractMethods.methods.hasSponsor(flipper.options.address).call()).to.be.true; 461 expect(await contractHelper.methods.hasSponsor(flipper.options.address).call()).to.be.true; 535 expect((await api.query.evmContractHelpers.owner(flipper.options.address)).toJSON()).to.be.equal(contractOwner); 462 expect((await helper.api!.query.evmContractHelpers.owner(flipper.options.address)).toJSON()).to.be.equal(contractOwner); 536 expect((await api.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({463 expect((await helper.api!.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({537 confirmed: {464 confirmed: {538 ethereum: flipper.options.address.toLowerCase(),465 ethereum: flipper.options.address.toLowerCase(),539 },466 },540 });467 });541 });468 });542 });469 543544 itWeb3('can not be set by non admin', async ({api, web3, privateKeyWrapper}) => {470 itEth('can not be set by non admin', async ({helper}) => {545 await usingPlaygrounds(async (helper) => { 546 const nonAdmin = accounts.pop()!;471 const nonAdmin = accounts.pop()!;547 const contractOwner = (await createEthAccountWithBalance(api, web3, privateKeyWrapper)).toLowerCase();472 const contractOwner = (await helper.eth.createAccountWithBalance(alice, 1000n)).toLowerCase();548 const flipper = await deployFlipper(web3, contractOwner);473 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);549 const contractMethods = contractHelpers(web3, contractOwner);474 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);550475 551 await expect(contractMethods.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.not.rejected;476 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;552477 553 // nonAdmin calls sponsorContract478 // nonAdmin calls sponsorContract554 await expect(helper.signTransaction(nonAdmin, api.tx.appPromotion.sponsorContract(flipper.options.address))).to.be.rejected;479 await expect(helper.executeExtrinsic(nonAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true)).to.be.rejectedWith('appPromotion.NoPermission');555480 556 // contract still self-sponsored 481 // contract still self-sponsored 557 expect((await api.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({482 expect((await helper.api!.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({558 confirmed: {483 confirmed: {559 ethereum: flipper.options.address.toLowerCase(),484 ethereum: flipper.options.address.toLowerCase(),560 },485 },561 });486 });562 });487 });563488 564 itWeb3('should be rejected for non-contract address', async ({api, web3, privateKeyWrapper}) => {489 itEth('should actually sponsor transactions', async ({helper}) => {565 await usingPlaygrounds(async (helper) => {490 // Contract caller566567 });491 const caller = await helper.eth.createAccountWithBalance(alice, 1000n);568 });569 });570571 itWeb3('should actually sponsor transactions', async ({api, web3, privateKeyWrapper}) => {492 const palletBalanceBefore = await helper.balance.getSubstrate(palletAddress);572 await usingPlaygrounds(async (helper) => { 493 573 const caller = await createEthAccountWithBalance(api, web3, privateKeyWrapper);494 // Deploy flipper574 const contractOwner = (await createEthAccountWithBalance(api, web3, privateKeyWrapper)).toLowerCase();495 const contractOwner = (await helper.eth.createAccountWithBalance(alice, 1000n)).toLowerCase();575 const flipper = await deployFlipper(web3, contractOwner);496 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);576 const contractHelper = contractHelpers(web3, contractOwner);497 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);498 499 // Owner sets to sponsor every tx577 await contractHelper.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: contractOwner});500 await contractHelper.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: contractOwner});578 await contractHelper.methods.setSponsoringMode(flipper.options.address, SponsoringMode.Generous).send({from: contractOwner});501 await contractHelper.methods.setSponsoringMode(flipper.options.address, SponsoringMode.Generous).send({from: contractOwner});579 await transferBalanceToEth(api, alice, flipper.options.address, 1000n);502 await helper.eth.transferBalanceFromSubstrate(alice, flipper.options.address, 1000n); // transferBalanceToEth(api, alice, flipper.options.address, 1000n);580503 581 await helper.signTransaction(palletAdmin, api.tx.appPromotion.sponsorContract(flipper.options.address));504 // Set promotion to the Flipper505 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.sponsorContract(flipper.options.address));506 507 // Caller calls Flipper582 await flipper.methods.flip().send({from: caller});508 await flipper.methods.flip().send({from: caller});583 expect(await flipper.methods.getValue().call()).to.be.true;509 expect(await flipper.methods.getValue().call()).to.be.true;584510 511 // The contracts and caller balances have not changed585 const callerBalance = await helper.balance.getEthereum(caller);512 const callerBalance = await helper.balance.getEthereum(caller);586 const contractBalanceAfter = await helper.balance.getEthereum(flipper.options.address);513 const contractBalanceAfter = await helper.balance.getEthereum(flipper.options.address);587588 expect(callerBalance).to.be.equal(1000n * nominal);514 expect(callerBalance).to.be.equal(1000n * nominal);589 expect(1000n * nominal > contractBalanceAfter).to.be.true;515 expect(1000n * nominal === contractBalanceAfter).to.be.true;516 517 // The pallet balance has decreased518 const palletBalanceAfter = await helper.balance.getSubstrate(palletAddress);519 expect(palletBalanceAfter < palletBalanceBefore).to.be.true;590 });520 });591 });521 });592});522 593594describe('app-promotion stopSponsoringContract', () => { 523 describe('stopSponsoringContract', () => { 595 before(async function () {524 itEth('should remove pallet address from contract sponsors', async ({helper}) => {596 await beforeEach(this);597 });598599 itWeb3('should remove pallet address from contract sponsors', async ({api, web3, privateKeyWrapper}) => {600 await usingPlaygrounds(async (helper) => { 525 const caller = await helper.eth.createAccountWithBalance(alice, 1000n);601 const caller = await createEthAccountWithBalance(api, web3, privateKeyWrapper);602 const contractOwner = (await createEthAccountWithBalance(api, web3, privateKeyWrapper)).toLowerCase();526 const contractOwner = (await helper.eth.createAccountWithBalance(alice, 1000n)).toLowerCase();603 const flipper = await deployFlipper(web3, contractOwner);527 const flipper = await helper.eth.deployFlipper(contractOwner);604 await transferBalanceToEth(api, alice, flipper.options.address);528 await helper.eth.transferBalanceFromSubstrate(alice, flipper.options.address);605 const contractHelper = contractHelpers(web3, contractOwner);529 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);530 606 await contractHelper.methods.setSponsoringMode(flipper.options.address, SponsoringMode.Generous).send({from: contractOwner});531 await contractHelper.methods.setSponsoringMode(flipper.options.address, SponsoringMode.Generous).send({from: contractOwner});607 await helper.signTransaction(palletAdmin, api.tx.appPromotion.sponsorContract(flipper.options.address));532 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true);608 await helper.signTransaction(palletAdmin, api.tx.appPromotion.stopSponsoringContract(flipper.options.address));533 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.stopSponsoringContract', [flipper.options.address], true);609534 610 expect(await contractHelper.methods.hasSponsor(flipper.options.address).call()).to.be.false; 535 expect(await contractHelper.methods.hasSponsor(flipper.options.address).call()).to.be.false; 611 expect((await api.query.evmContractHelpers.owner(flipper.options.address)).toJSON()).to.be.equal(contractOwner); 536 expect((await helper.api!.query.evmContractHelpers.owner(flipper.options.address)).toJSON()).to.be.equal(contractOwner); 612 expect((await api.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({537 expect((await helper.api!.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({613 disabled: null,538 disabled: null,614 });539 });615540 616 await flipper.methods.flip().send({from: caller});541 await flipper.methods.flip().send({from: caller});617 expect(await flipper.methods.getValue().call()).to.be.true;542 expect(await flipper.methods.getValue().call()).to.be.true;618543 619 const callerBalance = await helper.balance.getEthereum(caller);544 const callerBalance = await helper.balance.getEthereum(caller);620 const contractBalanceAfter = await helper.balance.getEthereum(flipper.options.address);545 const contractBalanceAfter = await helper.balance.getEthereum(flipper.options.address);621546 622 // caller payed for call547 // caller payed for call623 expect(1000n * nominal > callerBalance).to.be.true;548 expect(1000n * nominal > callerBalance).to.be.true;624 expect(contractBalanceAfter).to.be.equal(1000n * nominal);549 expect(contractBalanceAfter).to.be.equal(1000n * nominal);625 });550 });626 });551 627628 itWeb3('can not be called by non-admin', async ({api, web3, privateKeyWrapper}) => {552 itEth('can not be called by non-admin', async ({helper}) => {629 await usingPlaygrounds(async (helper) => { 630 const nonAdmin = accounts.pop()!;553 const nonAdmin = accounts.pop()!;631 const contractOwner = (await createEthAccountWithBalance(api, web3, privateKeyWrapper)).toLowerCase();554 const contractOwner = (await helper.eth.createAccountWithBalance(alice, 1000n)).toLowerCase();632 const flipper = await deployFlipper(web3, contractOwner);555 const flipper = await helper.eth.deployFlipper(contractOwner);633556 634 await helper.signTransaction(palletAdmin, api.tx.appPromotion.sponsorContract(flipper.options.address));557 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address]);635 await expect(helper.signTransaction(nonAdmin, api.tx.appPromotion.stopSponsoringContract(flipper.options.address))).to.be.rejected;558 await expect(helper.executeExtrinsic(nonAdmin, 'api.tx.appPromotion.stopSponsoringContract', [flipper.options.address]))559 .to.be.rejectedWith(/appPromotion\.NoPermission/);636 });560 });637 });561 638639 itWeb3('should not affect a contract which is not sponsored by pallete', async ({api, web3, privateKeyWrapper}) => {562 itEth('should not affect a contract which is not sponsored by pallete', async ({helper}) => {640 await usingPlaygrounds(async (helper) => { 641 const nonAdmin = accounts.pop()!;563 const nonAdmin = accounts.pop()!;642 const contractOwner = (await createEthAccountWithBalance(api, web3, privateKeyWrapper)).toLowerCase();564 const contractOwner = (await helper.eth.createAccountWithBalance(alice, 1000n)).toLowerCase();643 const flipper = await deployFlipper(web3, contractOwner);565 const flipper = await helper.eth.deployFlipper(contractOwner);644 const contractHelper = contractHelpers(web3, contractOwner);566 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);645 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.not.rejected;567 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;646568 647 await expect(helper.signTransaction(nonAdmin, api.tx.appPromotion.stopSponsoringContract(flipper.options.address))).to.be.rejected;569 await expect(helper.executeExtrinsic(nonAdmin, 'api.tx.appPromotion.stopSponsoringContract', [flipper.options.address], true)).to.be.rejectedWith('appPromotion.NoPermission');648 });570 });649 });571 });650});572 651652describe('app-promotion rewards', () => {573 describe('rewards', () => {653 before(async function () {574 itSub('can not be called by non admin', async ({helper}) => {654 await beforeEach(this);655 });656657 it('can not be called by non admin', async () => {658 await usingPlaygrounds(async (helper) => {659 const nonAdmin = accounts.pop()!;575 const nonAdmin = accounts.pop()!;660 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.appPromotion.payoutStakers(100))).to.be.rejected;576 await expect(helper.admin.payoutStakers(nonAdmin, 100)).to.be.rejectedWith('appPromotion.NoPermission');661 });577 });662 });578 663664 it('should credit 0.05% for staking period', async () => { 579 itSub('should increase total staked', async ({helper}) => {665 await usingPlaygrounds(async helper => {666 const staker = accounts.pop()!;580 const staker = accounts.pop()!;667581 const totalStakedBefore = await helper.staking.getTotalStaked();582 await helper.staking.stake(staker, 100n * nominal);583 584 // Wait for rewards and pay585 const [stakedInBlock] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});586 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock.block));587 const totalPayout = (await helper.admin.payoutStakers(palletAdmin, 100)).reduce((prev, payout) => prev + payout.payout, 0n);588 589 const totalStakedAfter = await helper.staking.getTotalStaked();590 expect(totalStakedAfter).to.equal(totalStakedBefore + (100n * nominal) + totalPayout);591 // staker can unstake592 await helper.staking.unstake(staker);593 expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedAfter - calculateIncome(100n * nominal, 10n));594 });595 596 itSub('should credit 0.05% for staking period', async ({helper}) => { 597 const staker = accounts.pop()!;598 668 await waitPromotionPeriodDoesntEnd(helper);599 await waitPromotionPeriodDoesntEnd(helper);669 600 670 await helper.staking.stake(staker, 100n * nominal);601 await helper.staking.stake(staker, 100n * nominal);671 await helper.staking.stake(staker, 200n * nominal);602 await helper.staking.stake(staker, 200n * nominal);672603 673 // wait rewards are available:604 // wait rewards are available:674 const stakedInBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address}))[1][0];605 const [_, stake2] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});675 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock));606 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake2.block));676607 677 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));608 const payoutToStaker = (await helper.admin.payoutStakers(palletAdmin, 100)).find((payout) => payout.staker === staker.address)?.payout;678609 expect(payoutToStaker + 300n * nominal).to.equal(calculateIncome(300n * nominal, 10n));610 679 const totalStakedPerBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map(s => s[1]);611 const totalStakedPerBlock = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});680 expect(totalStakedPerBlock).to.be.deep.equal([calculateIncome(100n * nominal, 10n), calculateIncome(200n * nominal, 10n)]);612 expect(totalStakedPerBlock[0].amount).to.equal(calculateIncome(100n * nominal, 10n));613 expect(totalStakedPerBlock[1].amount).to.equal(calculateIncome(200n * nominal, 10n));681 });614 });682 });615 683684 it('shoud be paid for more than one period if payments was missed', async () => {616 itSub('shoud be paid for more than one period if payments was missed', async ({helper}) => {685 await usingPlaygrounds(async (helper) => {686 const staker = accounts.pop()!;617 const staker = accounts.pop()!;687618 688 await helper.staking.stake(staker, 100n * nominal);619 await helper.staking.stake(staker, 100n * nominal);689 // wait for two rewards are available:620 // wait for two rewards are available:690 const stakedInBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address}))[0][0];621 let [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});691 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock) + LOCKING_PERIOD);622 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block) + LOCKING_PERIOD);692623 693 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));624 await helper.admin.payoutStakers(palletAdmin, 100);694 const stakedPerBlock = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});625 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});695 const frozenBalanceShouldBe = calculateIncome(100n * nominal, 10n, 2);626 const frozenBalanceShouldBe = calculateIncome(100n * nominal, 10n, 2);696 expect(stakedPerBlock[0][1]).to.be.equal(frozenBalanceShouldBe);627 expect(stake.amount).to.be.equal(frozenBalanceShouldBe);697628 698 const stakerFullBalance = await helper.balance.getSubstrateFull(staker.address);629 const stakerFullBalance = await helper.balance.getSubstrateFull(staker.address);699630 700 expect(stakerFullBalance).to.contain({reserved: 0n, feeFrozen: frozenBalanceShouldBe, miscFrozen: frozenBalanceShouldBe});631 expect(stakerFullBalance).to.contain({reserved: 0n, feeFrozen: frozenBalanceShouldBe, miscFrozen: frozenBalanceShouldBe});701 });632 });702 });633 703 704 it('should not be credited for unstaked (reserved) balance', async () => {634 itSub('should not be credited for unstaked (reserved) balance', async ({helper}) => {705 await usingPlaygrounds(async helper => {706 // staker unstakes before rewards has been payed635 // staker unstakes before rewards has been payed707 const staker = accounts.pop()!;636 const staker = accounts.pop()!;708 await helper.staking.stake(staker, 100n * nominal);637 await helper.staking.stake(staker, 100n * nominal);709 const stakedInBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address}))[0][0];638 const [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});710 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock) + LOCKING_PERIOD);639 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block) + LOCKING_PERIOD);711 await helper.staking.unstake(staker);640 await helper.staking.unstake(staker);712 641 713 // so he did not receive any rewards642 // so he did not receive any rewards714 const totalBalanceBefore = await helper.balance.getSubstrate(staker.address);643 const totalBalanceBefore = await helper.balance.getSubstrate(staker.address);715 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));644 await helper.admin.payoutStakers(palletAdmin, 100);716 const totalBalanceAfter = await helper.balance.getSubstrate(staker.address);645 const totalBalanceAfter = await helper.balance.getSubstrate(staker.address);717646 718 expect(totalBalanceBefore).to.be.equal(totalBalanceAfter);647 expect(totalBalanceBefore).to.be.equal(totalBalanceAfter);719 });648 });720 });649 721 722 it('should bring compound interest', async () => {650 itSub('should bring compound interest', async ({helper}) => {723 await usingPlaygrounds(async helper => {724 const staker = accounts.pop()!;651 const staker = accounts.pop()!;725 652 726 await helper.staking.stake(staker, 100n * nominal);653 await helper.staking.stake(staker, 100n * nominal);727654 728 const stakedInBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address}))[0][0];655 let [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});729 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock));656 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block));730 657 731 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));658 await helper.admin.payoutStakers(palletAdmin, 100);732 let totalStakedPerBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map(s => s[1]);659 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});733 expect(totalStakedPerBlock).to.deep.equal([calculateIncome(100n * nominal, 10n)]);660 expect(stake.amount).to.equal(calculateIncome(100n * nominal, 10n));734 661 735 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock) + LOCKING_PERIOD);662 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block) + LOCKING_PERIOD);736 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));663 await helper.admin.payoutStakers(palletAdmin, 100);737 totalStakedPerBlock = (await helper.staking.getTotalStakedPerBlock({Substrate: staker.address})).map(s => s[1]);664 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});738 expect(totalStakedPerBlock).to.deep.equal([calculateIncome(100n * nominal, 10n, 2)]); 665 expect(stake.amount).to.equal(calculateIncome(100n * nominal, 10n, 2));739 });666 });740 });667 741742 it.skip('can be paid 1000 rewards in a time', async () => {668 itSub.skip('can be paid 1000 rewards in a time', async ({helper}) => {743 // all other stakes should be unstaked669 // all other stakes should be unstaked744 await usingPlaygrounds(async (helper) => {745 const oneHundredStakers = await helper.arrange.createCrowd(100, 1050n, alice);670 const oneHundredStakers = await helper.arrange.createCrowd(100, 1050n, alice);746671 747 // stakers stakes 10 times each672 // stakers stakes 10 times each748 for (let i = 0; i < 10; i++) {673 for (let i = 0; i < 10; i++) {749 await Promise.all(oneHundredStakers.map(staker => helper.staking.stake(staker, 100n * nominal)));674 await Promise.all(oneHundredStakers.map(staker => helper.staking.stake(staker, 100n * nominal)));750 }675 }751 await helper.wait.newBlocks(40);676 await helper.wait.newBlocks(40);752 const result = await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));677 await helper.admin.payoutStakers(palletAdmin, 100);753 });678 });754 });679 755756 it.skip('can handle 40.000 rewards', async () => {680 itSub.skip('can handle 40.000 rewards', async ({helper}) => {757 await usingPlaygrounds(async (helper) => {758 const [donor] = await helper.arrange.createAccounts([7_000_000n], alice);681 const [donor] = await helper.arrange.createAccounts([7_000_000n], alice);759 const crowdStakes = async () => {682 const crowdStakes = async () => {760 // each account in the crowd stakes 2 times683 // each account in the crowd stakes 2 times763 await Promise.all(crowd.map(account => helper.staking.stake(account, 100n * nominal)));686 await Promise.all(crowd.map(account => helper.staking.stake(account, 100n * nominal)));764 // 687 // 765 };688 };766689 767 for (let i = 0; i < 40; i++) {690 for (let i = 0; i < 40; i++) {768 await crowdStakes();691 await crowdStakes();769 }692 }770693 771 // TODO pay rewards for some period694 // TODO pay rewards for some period772 });695 });773 });696 });tests/src/block-production.test.tsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import usingApi from './substrate/substrate-api';17import {ApiPromise} from '@polkadot/api';18import {expect} from 'chai';18import {expect, itSub} from './util/playgrounds';19import {ApiPromise} from '@polkadot/api';201921const BLOCK_TIME_MS = 12000;20const BLOCK_TIME_MS = 12000;22const TOLERANCE_MS = 3000;21const TOLERANCE_MS = 3000;37}36}383739describe('Block Production smoke test', () => {38describe('Block Production smoke test', () => {40 it('Node produces new blocks', async () => {39 itSub('Node produces new blocks', async ({helper}) => {41 await usingApi(async (api) => {40 const blocks: number[] | undefined = await getBlocks(helper.api!);42 const blocks: number[] | undefined = await getBlocks(api);43 expect(blocks[0]).to.be.lessThan(blocks[1]);41 expect(blocks[0]).to.be.lessThan(blocks[1]);44 });45 });42 });46});43});4744tests/src/connection.test.tsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import usingApi from './substrate/substrate-api';18import {WsProvider} from '@polkadot/api';17import {itSub, expect, usingPlaygrounds} from './util/playgrounds';19import * as chai from 'chai';20import chaiAsPromised from 'chai-as-promised';2122chai.use(chaiAsPromised);2324const expect = chai.expect;251826describe('Connection smoke test', () => {19describe('Connection smoke test', () => {27 it('Connection can be established', async () => {20 itSub('Connection can be established', async ({helper}) => {28 await usingApi(async api => {21 const health = (await helper.callRpc('api.rpc.system.health')).toJSON();29 const health = await api.rpc.system.health();30 expect(health).to.be.not.empty;22 expect(health).to.be.not.empty;31 });32 });23 });332434 it('Cannot connect to 255.255.255.255', async () => {25 it('Cannot connect to 255.255.255.255', async () => {35 const neverConnectProvider = new WsProvider('ws://255.255.255.255:9944');36 await expect((async () => {26 await expect((async () => {37 await usingApi(async api => {27 await usingPlaygrounds(async helper => {38 await api.rpc.system.health();28 await helper.callRpc('api.rpc.system.health');39 }, {provider: neverConnectProvider});29 }, 'ws://255.255.255.255:9944');40 })()).to.be.eventually.rejected;30 })()).to.be.eventually.rejected;41 });31 });42});32});tests/src/contracts.test.tsdiffbeforeafterboth47const gasLimit = 9000n * 1000000n;47const gasLimit = 9000n * 1000000n;48const marketContractAddress = '5CYN9j3YvRkqxewoxeSvRbhAym4465C57uMmX5j4yz99L5H6';48const marketContractAddress = '5CYN9j3YvRkqxewoxeSvRbhAym4465C57uMmX5j4yz99L5H6';494950// todo:playgrounds skipped ~ postponed50describe.skip('Contracts', () => {51describe.skip('Contracts', () => {51 it('Can deploy smart contract Flipper, instantiate it and call it\'s get and flip messages.', async () => {52 it('Can deploy smart contract Flipper, instantiate it and call it\'s get and flip messages.', async () => {52 await usingApi(async (api, privateKeyWrapper) => {53 await usingApi(async (api, privateKeyWrapper) => {tests/src/enableContractSponsoring.test.tsdiffbeforeafterboth29chai.use(chaiAsPromised);29chai.use(chaiAsPromised);30const expect = chai.expect;30const expect = chai.expect;313132// todo:playgrounds skipped ~ postponed32describe.skip('Integration Test enableContractSponsoring', () => {33describe.skip('Integration Test enableContractSponsoring', () => {33 it('ensure tx fee is paid from endowment', async () => {34 it('ensure tx fee is paid from endowment', async () => {34 await usingApi(async (api, privateKeyWrapper) => {35 await usingApi(async (api, privateKeyWrapper) => {tests/src/eth/api/ContractHelpers.soldiffbeforeafterboth23}20}242125/// @title Magic contract, which allows users to reconfigure other contracts22/// @title Magic contract, which allows users to reconfigure other contracts26/// @dev the ERC-165 identifier for this interface is 0x172cb4fb23/// @dev the ERC-165 identifier for this interface is 0x30afad0427interface ContractHelpers is Dummy, ERC165, ContractHelpersEvents {24interface ContractHelpers is Dummy, ERC165, ContractHelpersEvents {28 /// Get user, which deployed specified contract25 /// Get user, which deployed specified contract29 /// @dev May return zero address in case if contract is deployed26 /// @dev May return zero address in case if contract is deployed73 ///67 ///74 /// @param contractAddress The contract for which a sponsor is requested.68 /// @param contractAddress The contract for which a sponsor is requested.75 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.69 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.76 /// @dev EVM selector for this function is: 0x743fc745,70 /// @dev EVM selector for this function is: 0x766c4f37,77 /// or in textual repr: getSponsor(address)71 /// or in textual repr: sponsor(address)78 function getSponsor(address contractAddress)72 function sponsor(address contractAddress) external view returns (Tuple0 memory);79 external80 view81 returns (Tuple0 memory);113 /// Get current contract sponsoring rate limit98 /// Get current contract sponsoring rate limit114 /// @param contractAddress Contract to get sponsoring rate limit of99 /// @param contractAddress Contract to get sponsoring rate limit of115 /// @return uint32 Amount of blocks between two sponsored transactions100 /// @return uint32 Amount of blocks between two sponsored transactions116 /// @dev EVM selector for this function is: 0x610cfabd,101 /// @dev EVM selector for this function is: 0xf29694d8,117 /// or in textual repr: getSponsoringRateLimit(address)102 /// or in textual repr: sponsoringRateLimit(address)118 function getSponsoringRateLimit(address contractAddress)103 function sponsoringRateLimit(address contractAddress) external view returns (uint32);119 external120 view121 returns (uint32);146 /// @param contractAddress Contract to get sponsoring fee limit of126 /// @param contractAddress Contract to get sponsoring fee limit of147 /// @return uint256 Maximum amount of fee that could be spent by single127 /// @return uint256 Maximum amount of fee that could be spent by single148 /// transaction128 /// transaction149 /// @dev EVM selector for this function is: 0xc3fdc9ee,129 /// @dev EVM selector for this function is: 0x75b73606,150 /// or in textual repr: getSponsoringFeeLimit(address)130 /// or in textual repr: sponsoringFeeLimit(address)151 function getSponsoringFeeLimit(address contractAddress)131 function sponsoringFeeLimit(address contractAddress) external view returns (uint256);152 external153 view154 returns (uint256);tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth13}13}141415/// @title A contract that allows you to work with collections.15/// @title A contract that allows you to work with collections.16/// @dev the ERC-165 identifier for this interface is 0x9f70d4e016/// @dev the ERC-165 identifier for this interface is 0x47dbc10517interface Collection is Dummy, ERC165 {17interface Collection is Dummy, ERC165 {18 /// Set collection property.18 /// Set collection property.19 ///19 ///62 /// or in textual repr: setCollectionSponsorSubstrate(uint256)58 /// or in textual repr: setCollectionSponsorSubstrate(uint256)63 function setCollectionSponsorSubstrate(uint256 sponsor) external;59 function setCollectionSponsorSubstrate(uint256 sponsor) external;646061 /// Whether there is a pending sponsor.65 /// @dev EVM selector for this function is: 0x058ac185,62 /// @dev EVM selector for this function is: 0x058ac185,66 /// or in textual repr: hasCollectionPendingSponsor()63 /// or in textual repr: hasCollectionPendingSponsor()67 function hasCollectionPendingSponsor() external view returns (bool);64 function hasCollectionPendingSponsor() external view returns (bool);81 /// Get current sponsor.78 /// Get current sponsor.82 ///79 ///83 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.80 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.84 /// @dev EVM selector for this function is: 0xb66bbc14,81 /// @dev EVM selector for this function is: 0x6ec0a9f1,85 /// or in textual repr: getCollectionSponsor()82 /// or in textual repr: collectionSponsor()86 function getCollectionSponsor() external view returns (Tuple6 memory);83 function collectionSponsor() external view returns (Tuple6 memory);878488 /// Set limits for the collection.85 /// Set limits for the collection.89 /// @dev Throws error if limit not found.86 /// @dev Throws error if limit not found.227 /// @return `Fungible` or `NFT` or `ReFungible`223 /// @return `Fungible` or `NFT` or `ReFungible`228 /// @dev EVM selector for this function is: 0xd34b55b8,224 /// @dev EVM selector for this function is: 0xd34b55b8,229 /// or in textual repr: uniqueCollectionType()225 /// or in textual repr: uniqueCollectionType()230 function uniqueCollectionType() external returns (string memory);226 function uniqueCollectionType() external view returns (string memory);231227232 /// Get collection owner.228 /// Get collection owner.233 ///229 ///tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth65}62}666367/// @title A contract that allows you to work with collections.64/// @title A contract that allows you to work with collections.68/// @dev the ERC-165 identifier for this interface is 0x9f70d4e065/// @dev the ERC-165 identifier for this interface is 0x47dbc10569interface Collection is Dummy, ERC165 {66interface Collection is Dummy, ERC165 {70 /// Set collection property.67 /// Set collection property.71 ///68 ///114 /// or in textual repr: setCollectionSponsorSubstrate(uint256)107 /// or in textual repr: setCollectionSponsorSubstrate(uint256)115 function setCollectionSponsorSubstrate(uint256 sponsor) external;108 function setCollectionSponsorSubstrate(uint256 sponsor) external;116109110 /// Whether there is a pending sponsor.117 /// @dev EVM selector for this function is: 0x058ac185,111 /// @dev EVM selector for this function is: 0x058ac185,118 /// or in textual repr: hasCollectionPendingSponsor()112 /// or in textual repr: hasCollectionPendingSponsor()119 function hasCollectionPendingSponsor() external view returns (bool);113 function hasCollectionPendingSponsor() external view returns (bool);133 /// Get current sponsor.127 /// Get current sponsor.134 ///128 ///135 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.129 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.136 /// @dev EVM selector for this function is: 0xb66bbc14,130 /// @dev EVM selector for this function is: 0x6ec0a9f1,137 /// or in textual repr: getCollectionSponsor()131 /// or in textual repr: collectionSponsor()138 function getCollectionSponsor() external view returns (Tuple17 memory);132 function collectionSponsor() external view returns (Tuple17 memory);139133140 /// Set limits for the collection.134 /// Set limits for the collection.141 /// @dev Throws error if limit not found.135 /// @dev Throws error if limit not found.279 /// @return `Fungible` or `NFT` or `ReFungible`272 /// @return `Fungible` or `NFT` or `ReFungible`280 /// @dev EVM selector for this function is: 0xd34b55b8,273 /// @dev EVM selector for this function is: 0xd34b55b8,281 /// or in textual repr: uniqueCollectionType()274 /// or in textual repr: uniqueCollectionType()282 function uniqueCollectionType() external returns (string memory);275 function uniqueCollectionType() external view returns (string memory);283276284 /// Get collection owner.277 /// Get collection owner.285 ///278 ///tests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth65}62}666367/// @title A contract that allows you to work with collections.64/// @title A contract that allows you to work with collections.68/// @dev the ERC-165 identifier for this interface is 0x9f70d4e065/// @dev the ERC-165 identifier for this interface is 0x47dbc10569interface Collection is Dummy, ERC165 {66interface Collection is Dummy, ERC165 {70 /// Set collection property.67 /// Set collection property.71 ///68 ///114 /// or in textual repr: setCollectionSponsorSubstrate(uint256)107 /// or in textual repr: setCollectionSponsorSubstrate(uint256)115 function setCollectionSponsorSubstrate(uint256 sponsor) external;108 function setCollectionSponsorSubstrate(uint256 sponsor) external;116109110 /// Whether there is a pending sponsor.117 /// @dev EVM selector for this function is: 0x058ac185,111 /// @dev EVM selector for this function is: 0x058ac185,118 /// or in textual repr: hasCollectionPendingSponsor()112 /// or in textual repr: hasCollectionPendingSponsor()119 function hasCollectionPendingSponsor() external view returns (bool);113 function hasCollectionPendingSponsor() external view returns (bool);133 /// Get current sponsor.127 /// Get current sponsor.134 ///128 ///135 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.129 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.136 /// @dev EVM selector for this function is: 0xb66bbc14,130 /// @dev EVM selector for this function is: 0x6ec0a9f1,137 /// or in textual repr: getCollectionSponsor()131 /// or in textual repr: collectionSponsor()138 function getCollectionSponsor() external view returns (Tuple17 memory);132 function collectionSponsor() external view returns (Tuple17 memory);139133140 /// Set limits for the collection.134 /// Set limits for the collection.141 /// @dev Throws error if limit not found.135 /// @dev Throws error if limit not found.279 /// @return `Fungible` or `NFT` or `ReFungible`272 /// @return `Fungible` or `NFT` or `ReFungible`280 /// @dev EVM selector for this function is: 0xd34b55b8,273 /// @dev EVM selector for this function is: 0xd34b55b8,281 /// or in textual repr: uniqueCollectionType()274 /// or in textual repr: uniqueCollectionType()282 function uniqueCollectionType() external returns (string memory);275 function uniqueCollectionType() external view returns (string memory);283276284 /// Get collection owner.277 /// Get collection owner.285 ///278 ///tests/src/eth/api/UniqueRefungibleToken.soldiffbeforeafterbothno syntactic changes
tests/src/eth/collectionSponsoring.test.tsdiffbeforeafterboth56 await submitTransactionAsync(sponsor, confirmTx);56 await submitTransactionAsync(sponsor, confirmTx);57 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;57 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;58 58 59 const sponsorTuple = await collectionEvm.methods.getCollectionSponsor().call({from: owner});59 const sponsorTuple = await collectionEvm.methods.collectionSponsor().call({from: owner});60 expect(bigIntToSub(api, BigInt(sponsorTuple[1]))).to.be.eq(sponsor.address);60 expect(bigIntToSub(api, BigInt(sponsorTuple[1]))).to.be.eq(sponsor.address);61 });61 });626277 77 78 await collectionEvm.methods.removeCollectionSponsor().send({from: owner});78 await collectionEvm.methods.removeCollectionSponsor().send({from: owner});79 79 80 const sponsorTuple = await collectionEvm.methods.getCollectionSponsor().call({from: owner});80 const sponsorTuple = await collectionEvm.methods.collectionSponsor().call({from: owner});81 expect(sponsorTuple.field_0).to.be.eq('0x0000000000000000000000000000000000000000');81 expect(sponsorTuple.field_0).to.be.eq('0x0000000000000000000000000000000000000000');82 });82 });8383tests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth223 const helpers = contractHelpers(web3, owner);223 const helpers = contractHelpers(web3, owner);224 await helpers.methods.selfSponsoredEnable(flipper.options.address).send();224 await helpers.methods.selfSponsoredEnable(flipper.options.address).send();225 225 226 const result = await helpers.methods.getSponsor(flipper.options.address).call();226 const result = await helpers.methods.sponsor(flipper.options.address).call();227227228 expect(result[0]).to.be.eq(flipper.options.address);228 expect(result[0]).to.be.eq(flipper.options.address);229 expect(result[1]).to.be.eq('0');229 expect(result[1]).to.be.eq('0');237 await helpers.methods.setSponsor(flipper.options.address, sponsor).send();237 await helpers.methods.setSponsor(flipper.options.address, sponsor).send();238 await helpers.methods.confirmSponsorship(flipper.options.address).send({from: sponsor});238 await helpers.methods.confirmSponsorship(flipper.options.address).send({from: sponsor});239 239 240 const result = await helpers.methods.getSponsor(flipper.options.address).call();240 const result = await helpers.methods.sponsor(flipper.options.address).call();241241242 expect(result[0]).to.be.eq(sponsor);242 expect(result[0]).to.be.eq(sponsor);243 expect(result[1]).to.be.eq('0');243 expect(result[1]).to.be.eq('0');482 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);482 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);483 const flipper = await deployFlipper(web3, owner);483 const flipper = await deployFlipper(web3, owner);484 const helpers = contractHelpers(web3, owner);484 const helpers = contractHelpers(web3, owner);485 expect(await helpers.methods.getSponsoringRateLimit(flipper.options.address).call()).to.be.equals('7200');485 expect(await helpers.methods.sponsoringRateLimit(flipper.options.address).call()).to.be.equals('7200');486 });486 });487});487});488488551 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);551 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);552 const flipper = await deployFlipper(web3, owner);552 const flipper = await deployFlipper(web3, owner);553 const helpers = contractHelpers(web3, owner);553 const helpers = contractHelpers(web3, owner);554 expect(await helpers.methods.getSponsoringFeeLimit(flipper.options.address).call()).to.be.equals('115792089237316195423570985008687907853269984665640564039457584007913129639935');554 expect(await helpers.methods.sponsoringFeeLimit(flipper.options.address).call()).to.be.equals('115792089237316195423570985008687907853269984665640564039457584007913129639935');555 });555 });556556557 itWeb3('Set fee limit', async ({api, web3, privateKeyWrapper}) => {557 itWeb3('Set fee limit', async ({api, web3, privateKeyWrapper}) => {558 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);558 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);559 const flipper = await deployFlipper(web3, owner);559 const flipper = await deployFlipper(web3, owner);560 const helpers = contractHelpers(web3, owner);560 const helpers = contractHelpers(web3, owner);561 await helpers.methods.setSponsoringFeeLimit(flipper.options.address, 100).send();561 await helpers.methods.setSponsoringFeeLimit(flipper.options.address, 100).send();562 expect(await helpers.methods.getSponsoringFeeLimit(flipper.options.address).call()).to.be.equals('100');562 expect(await helpers.methods.sponsoringFeeLimit(flipper.options.address).call()).to.be.equals('100');563 });563 });564564565 itWeb3('Negative test - set fee limit by non-owner', async ({api, web3, privateKeyWrapper}) => {565 itWeb3('Negative test - set fee limit by non-owner', async ({api, web3, privateKeyWrapper}) => {tests/src/eth/fungibleAbi.jsondiffbeforeafterboth157 "stateMutability": "view",157 "stateMutability": "view",158 "type": "function"158 "type": "function"159 },159 },160 {161 "inputs": [],162 "name": "collectionSponsor",163 "outputs": [164 {165 "components": [166 { "internalType": "address", "name": "field_0", "type": "address" },167 { "internalType": "uint256", "name": "field_1", "type": "uint256" }168 ],169 "internalType": "struct Tuple6",170 "name": "",171 "type": "tuple"172 }173 ],174 "stateMutability": "view",175 "type": "function"176 },160 {177 {161 "inputs": [],178 "inputs": [],162 "name": "confirmCollectionSponsorship",179 "name": "confirmCollectionSponsorship",185 "stateMutability": "nonpayable",202 "stateMutability": "nonpayable",186 "type": "function"203 "type": "function"187 },204 },188 {189 "inputs": [],190 "name": "getCollectionSponsor",191 "outputs": [192 {193 "components": [194 { "internalType": "address", "name": "field_0", "type": "address" },195 { "internalType": "uint256", "name": "field_1", "type": "uint256" }196 ],197 "internalType": "struct Tuple6",198 "name": "",199 "type": "tuple"200 }201 ],202 "stateMutability": "view",203 "type": "function"204 },205 {205 {206 "inputs": [],206 "inputs": [],207 "name": "hasCollectionPendingSponsor",207 "name": "hasCollectionPendingSponsor",453 "inputs": [],453 "inputs": [],454 "name": "uniqueCollectionType",454 "name": "uniqueCollectionType",455 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],455 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],456 "stateMutability": "nonpayable",456 "stateMutability": "view",457 "type": "function"457 "type": "function"458 }458 }459]459]tests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth187 "stateMutability": "view",187 "stateMutability": "view",188 "type": "function"188 "type": "function"189 },189 },190 {191 "inputs": [],192 "name": "collectionSponsor",193 "outputs": [194 {195 "components": [196 { "internalType": "address", "name": "field_0", "type": "address" },197 { "internalType": "uint256", "name": "field_1", "type": "uint256" }198 ],199 "internalType": "struct Tuple17",200 "name": "",201 "type": "tuple"202 }203 ],204 "stateMutability": "view",205 "type": "function"206 },190 {207 {191 "inputs": [],208 "inputs": [],192 "name": "confirmCollectionSponsorship",209 "name": "confirmCollectionSponsorship",234 "stateMutability": "view",251 "stateMutability": "view",235 "type": "function"252 "type": "function"236 },253 },237 {238 "inputs": [],239 "name": "getCollectionSponsor",240 "outputs": [241 {242 "components": [243 { "internalType": "address", "name": "field_0", "type": "address" },244 { "internalType": "uint256", "name": "field_1", "type": "uint256" }245 ],246 "internalType": "struct Tuple17",247 "name": "",248 "type": "tuple"249 }250 ],251 "stateMutability": "view",252 "type": "function"253 },254 {254 {255 "inputs": [],255 "inputs": [],256 "name": "hasCollectionPendingSponsor",256 "name": "hasCollectionPendingSponsor",651 "inputs": [],651 "inputs": [],652 "name": "uniqueCollectionType",652 "name": "uniqueCollectionType",653 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],653 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],654 "stateMutability": "nonpayable",654 "stateMutability": "view",655 "type": "function"655 "type": "function"656 }656 }657]657]tests/src/eth/reFungibleAbi.jsondiffbeforeafterboth187 "stateMutability": "view",187 "stateMutability": "view",188 "type": "function"188 "type": "function"189 },189 },190 {191 "inputs": [],192 "name": "collectionSponsor",193 "outputs": [194 {195 "components": [196 { "internalType": "address", "name": "field_0", "type": "address" },197 { "internalType": "uint256", "name": "field_1", "type": "uint256" }198 ],199 "internalType": "struct Tuple17",200 "name": "",201 "type": "tuple"202 }203 ],204 "stateMutability": "view",205 "type": "function"206 },190 {207 {191 "inputs": [],208 "inputs": [],192 "name": "confirmCollectionSponsorship",209 "name": "confirmCollectionSponsorship",234 "stateMutability": "view",251 "stateMutability": "view",235 "type": "function"252 "type": "function"236 },253 },237 {238 "inputs": [],239 "name": "getCollectionSponsor",240 "outputs": [241 {242 "components": [243 { "internalType": "address", "name": "field_0", "type": "address" },244 { "internalType": "uint256", "name": "field_1", "type": "uint256" }245 ],246 "internalType": "struct Tuple17",247 "name": "",248 "type": "tuple"249 }250 ],251 "stateMutability": "view",252 "type": "function"253 },254 {254 {255 "inputs": [],255 "inputs": [],256 "name": "hasCollectionPendingSponsor",256 "name": "hasCollectionPendingSponsor",660 "inputs": [],660 "inputs": [],661 "name": "uniqueCollectionType",661 "name": "uniqueCollectionType",662 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],662 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],663 "stateMutability": "nonpayable",663 "stateMutability": "view",664 "type": "function"664 "type": "function"665 }665 }666]666]tests/src/eth/util/contractHelpersAbi.jsondiffbeforeafterboth103 "stateMutability": "view",103 "stateMutability": "view",104 "type": "function"104 "type": "function"105 },105 },106 {107 "inputs": [108 {109 "internalType": "address",110 "name": "contractAddress",111 "type": "address"112 }113 ],114 "name": "getSponsor",115 "outputs": [116 {117 "components": [118 { "internalType": "address", "name": "field_0", "type": "address" },119 { "internalType": "uint256", "name": "field_1", "type": "uint256" }120 ],121 "internalType": "struct Tuple0",122 "name": "",123 "type": "tuple"124 }125 ],126 "stateMutability": "view",127 "type": "function"128 },129 {130 "inputs": [131 {132 "internalType": "address",133 "name": "contractAddress",134 "type": "address"135 }136 ],137 "name": "getSponsoringFeeLimit",138 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],139 "stateMutability": "view",140 "type": "function"141 },142 {143 "inputs": [144 {145 "internalType": "address",146 "name": "contractAddress",147 "type": "address"148 }149 ],150 "name": "getSponsoringRateLimit",151 "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }],152 "stateMutability": "view",153 "type": "function"154 },155 {106 {156 "inputs": [107 "inputs": [157 {108 {260 "stateMutability": "nonpayable",211 "stateMutability": "nonpayable",261 "type": "function"212 "type": "function"262 },213 },214 {215 "inputs": [216 {217 "internalType": "address",218 "name": "contractAddress",219 "type": "address"220 }221 ],222 "name": "sponsor",223 "outputs": [224 {225 "components": [226 { "internalType": "address", "name": "field_0", "type": "address" },227 { "internalType": "uint256", "name": "field_1", "type": "uint256" }228 ],229 "internalType": "struct Tuple0",230 "name": "",231 "type": "tuple"232 }233 ],234 "stateMutability": "view",235 "type": "function"236 },263 {237 {264 "inputs": [238 "inputs": [265 {239 {273 "stateMutability": "view",247 "stateMutability": "view",274 "type": "function"248 "type": "function"275 },249 },250 {251 "inputs": [252 {253 "internalType": "address",254 "name": "contractAddress",255 "type": "address"256 }257 ],258 "name": "sponsoringFeeLimit",259 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],260 "stateMutability": "view",261 "type": "function"262 },263 {264 "inputs": [265 {266 "internalType": "address",267 "name": "contractAddress",268 "type": "address"269 }270 ],271 "name": "sponsoringRateLimit",272 "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }],273 "stateMutability": "view",274 "type": "function"275 },276 {276 {277 "inputs": [277 "inputs": [278 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }278 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }tests/src/eth/util/playgrounds/unique.dev.tsdiffbeforeafterboth199 `);199 `);200 }200 }201202 async deployFlipper(signer: string): Promise<Contract> {203 return await this.helper.ethContract.deployByCode(signer, 'Flipper', `204 // SPDX-License-Identifier: UNLICENSED205 pragma solidity ^0.8.6;206207 contract Flipper {208 bool value = false;209 function flip() public {210 value = !value;211 }212 function getValue() public view returns (bool) {213 return value;214 }215 }216 `);217 }201}218} 202 219 203 tests/src/evmCoder.test.tsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import {IKeyringPair} from '@polkadot/types/types';17import Web3 from 'web3';18import Web3 from 'web3';18import {createEthAccountWithBalance, createNonfungibleCollection, GAS_ARGS, itWeb3} from './eth/util/helpers';19import {itEth, expect, usingEthPlaygrounds} from './eth/util/playgrounds';19import * as solc from 'solc';20import * as solc from 'solc';2021import chai from 'chai';22const expect = chai.expect;232124async function compileTestContract(collectionAddress: string, contractAddress: string) {22async function compileTestContract(collectionAddress: string, contractAddress: string) {25 const input = {23 const input = {79 };77 };80}78}817982async function deployTestContract(web3: Web3, owner: string, collectionAddress: string, contractAddress: string) {80async function deployTestContract(web3: Web3, owner: string, collectionAddress: string, contractAddress: string, gas: number) {83 const compiled = await compileTestContract(collectionAddress, contractAddress);81 const compiled = await compileTestContract(collectionAddress, contractAddress);84 const fractionalizerContract = new web3.eth.Contract(compiled.abi, undefined, {82 const fractionalizerContract = new web3.eth.Contract(compiled.abi, undefined, {85 data: compiled.object,83 data: compiled.object,86 from: owner,84 from: owner,87 ...GAS_ARGS,85 gas,88 });86 });89 return await fractionalizerContract.deploy({data: compiled.object}).send({from: owner});87 return await fractionalizerContract.deploy({data: compiled.object}).send({from: owner});90}88}918992describe('Evm Coder tests', () => {90describe('Evm Coder tests', () => {91 let donor: IKeyringPair;9293 before(async function() {94 await usingEthPlaygrounds(async (_helper, privateKey) => {95 donor = privateKey('//Alice');96 });97 });98 93 itWeb3('Call non-existing function', async ({api, web3, privateKeyWrapper}) => {99 itEth('Call non-existing function', async ({helper}) => {94 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);100 const owner = await helper.eth.createAccountWithBalance(donor);95 const {collectionIdAddress} = await createNonfungibleCollection(api, web3, owner);101 const collection = await helper.eth.createNonfungibleCollection(owner, 'EVMCODER', '', 'TEST');96 const contract = await deployTestContract(web3, owner, collectionIdAddress, '0x1bfed5D614b886b9Ab2eA4CBAc22A96B7EC29c9c');102 const contract = await deployTestContract(helper.getWeb3(), owner, collection.collectionAddress, '0x1bfed5D614b886b9Ab2eA4CBAc22A96B7EC29c9c', helper.eth.DEFAULT_GAS);97 const testContract = await deployTestContract(web3, owner, collectionIdAddress, contract.options.address);103 const testContract = await deployTestContract(helper.getWeb3(), owner, collection.collectionAddress, contract.options.address, helper.eth.DEFAULT_GAS);98 {104 {99 const result = await testContract.methods.test1().send();105 const result = await testContract.methods.test1().send();100 expect(result.events.Result.returnValues).to.deep.equal({106 expect(result.events.Result.returnValues).to.deep.equal({tests/src/fungible.test.tsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import {IKeyringPair} from '@polkadot/types/types';17import {IKeyringPair} from '@polkadot/types/types';18import {U128_MAX} from './util/helpers';19import {itSub, usingPlaygrounds, expect} from './util/playgrounds';18import {itSub, usingPlaygrounds, expect} from './util/playgrounds';201921// todo:playgrounds get rid of globals22let alice: IKeyringPair;20const U128_MAX = (1n << 128n) - 1n;23let bob: IKeyringPair;242125describe('integration test: Fungible functionality:', () => {22describe('integration test: Fungible functionality:', () => {23 let alice: IKeyringPair;24 let bob: IKeyringPair;2526 before(async () => {26 before(async () => {27 await usingPlaygrounds(async (helper, privateKey) => {27 await usingPlaygrounds(async (helper, privateKey) => {28 alice = privateKey('//Alice');28 const donor = privateKey('//Alice');29 bob = privateKey('//Bob');29 [alice, bob] = await helper.arrange.createAccounts([100n, 10n], donor);30 });30 });31 });31 });323282 expect(await collection.getBalance({Substrate: bob.address})).to.be.equal(60n);82 expect(await collection.getBalance({Substrate: bob.address})).to.be.equal(60n);83 expect(await collection.getBalance(ethAcc)).to.be.equal(140n);83 expect(await collection.getBalance(ethAcc)).to.be.equal(140n);848485 await expect(collection.transfer(alice, {Substrate: bob.address}, 350n)).to.eventually.be.rejected;85 await expect(collection.transfer(alice, {Substrate: bob.address}, 350n)).to.eventually.be.rejectedWith(/common\.TokenValueTooLow/);86 });86 });878788 itSub('Tokens multiple creation', async ({helper}) => {88 itSub('Tokens multiple creation', async ({helper}) => {tests/src/inflation.test.tsdiffbeforeafterboth14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import chai from 'chai';18import chaiAsPromised from 'chai-as-promised';17import {IKeyringPair} from '@polkadot/types/types';19import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';18import {expect, itSub, usingPlaygrounds} from './util/playgrounds';201921chai.use(chaiAsPromised);20// todo:playgrounds requires sudo, look into on the later stage22const expect = chai.expect;2324describe('integration test: Inflation', () => {21describe('integration test: Inflation', () => {22 let superuser: IKeyringPair;2324 before(async () => {25 await usingPlaygrounds(async (_, privateKey) => {26 superuser = privateKey('//Alice');27 });28 });29 25 it('First year inflation is 10%', async () => {30 itSub('First year inflation is 10%', async ({helper}) => {26 await usingApi(async (api, privateKeyWrapper) => {2728 // Make sure non-sudo can't start inflation31 // Make sure non-sudo can't start inflation29 const tx = api.tx.inflation.startInflation(1);32 const [bob] = await helper.arrange.createAccounts([10n], superuser);3330 const bob = privateKeyWrapper('//Bob');34 await expect(helper.executeExtrinsic(bob, 'api.tx.inflation.startInflation', [1])).to.be.rejectedWith(/BadOrigin/);3536 // Make sure superuser can't start inflation without explicit sudo31 await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;37 await expect(helper.executeExtrinsic(superuser, 'api.tx.inflation.startInflation', [1])).to.be.rejectedWith(/BadOrigin/);323833 // Start inflation on relay block 1 (Alice is sudo)39 // Start inflation on relay block 1 (Alice is sudo)34 const alice = privateKeyWrapper('//Alice');40 const tx = helper.constructApiCall('api.tx.inflation.startInflation', [1]);35 const sudoTx = api.tx.sudo.sudo(tx as any);41 await expect(helper.executeExtrinsic(superuser, 'api.tx.sudo.sudo', [tx])).to.not.be.rejected;36 await submitTransactionAsync(alice, sudoTx);374238 const blockInterval = (api.consts.inflation.inflationBlockInterval).toBigInt();43 const blockInterval = (helper.api!.consts.inflation.inflationBlockInterval as any).toBigInt();39 const totalIssuanceStart = (await api.query.inflation.startingYearTotalIssuance()).toBigInt();44 const totalIssuanceStart = ((await helper.api!.query.inflation.startingYearTotalIssuance()) as any).toBigInt();40 const blockInflation = (await api.query.inflation.blockInflation()).toBigInt();45 const blockInflation = (await helper.api!.query.inflation.blockInflation() as any).toBigInt();414642 const YEAR = 5259600n; // 6-second block. Blocks in one year47 const YEAR = 5259600n; // 6-second block. Blocks in one year43 // const YEAR = 2629800n; // 12-second block. Blocks in one year48 // const YEAR = 2629800n; // 12-second block. Blocks in one year49 const expectedInflation = totalExpectedInflation / totalActualInflation - 1n;54 const expectedInflation = totalExpectedInflation / totalActualInflation - 1n;505551 expect(Math.abs(Number(expectedInflation))).to.be.lessThanOrEqual(tolerance);56 expect(Math.abs(Number(expectedInflation))).to.be.lessThanOrEqual(tolerance);52 });53 });57 });5455});58});tests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth9import type { Option, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';9import type { Option, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { Codec } from '@polkadot/types-codec/types';10import type { Codec } from '@polkadot/types-codec/types';11import type { Perbill, Permill } from '@polkadot/types/interfaces/runtime';11import type { Perbill, Permill } from '@polkadot/types/interfaces/runtime';12import type { FrameSupportPalletId, FrameSupportWeightsRuntimeDbWeight, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion } from '@polkadot/types/lookup';12import type { FrameSupportPalletId, FrameSupportWeightsRuntimeDbWeight, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion, XcmV1MultiLocation } from '@polkadot/types/lookup';131314export type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;14export type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;151524 * Decimals for the `Currency`.24 * Decimals for the `Currency`.25 **/25 **/26 nominal: u128 & AugmentedConst<ApiType>;26 nominal: u128 & AugmentedConst<ApiType>;27 /**27 /**28 * The app's pallet id, used for deriving its sovereign account ID.28 * The app's pallet id, used for deriving its sovereign account address.29 **/29 **/30 palletId: FrameSupportPalletId & AugmentedConst<ApiType>;30 palletId: FrameSupportPalletId & AugmentedConst<ApiType>;31 /**31 /**32 * In parachain blocks.32 * In parachain blocks.155 **/155 **/156 [key: string]: Codec;156 [key: string]: Codec;157 };157 };158 tokens: {159 maxLocks: u32 & AugmentedConst<ApiType>;160 /**161 * The maximum number of named reserves that can exist on an account.162 **/163 maxReserves: u32 & AugmentedConst<ApiType>;164 /**165 * Generic const166 **/167 [key: string]: Codec;168 };158 transactionPayment: {169 transactionPayment: {159 /**170 /**160 * A fee mulitplier for `Operational` extrinsics to compute "virtual tip" to boost their171 * A fee mulitplier for `Operational` extrinsics to compute "virtual tip" to boost their232 **/243 **/233 [key: string]: Codec;244 [key: string]: Codec;234 };245 };246 xTokens: {247 /**248 * Base XCM weight.249 * 250 * The actually weight for an XCM message is `T::BaseXcmWeight +251 * T::Weigher::weight(&msg)`.252 **/253 baseXcmWeight: u64 & AugmentedConst<ApiType>;254 /**255 * Self chain location.256 **/257 selfLocation: XcmV1MultiLocation & AugmentedConst<ApiType>;258 /**259 * Generic const260 **/261 [key: string]: Codec;262 };235 } // AugmentedConsts263 } // AugmentedConsts236} // declare module264} // declare module237265tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth302 * This method is only executable by contract owner302 * This method is only executable by contract owner303 **/303 **/304 NoPermission: AugmentedError<ApiType>;304 NoPermission: AugmentedError<ApiType>;305 /**306 * Number of methods that sponsored limit is defined for exceeds maximum.307 **/308 TooManyMethodsHaveSponsoredLimit: AugmentedError<ApiType>;305 /**309 /**306 * Generic error310 * Generic error307 **/311 **/321 **/325 **/322 [key: string]: AugmentedError<ApiType>;326 [key: string]: AugmentedError<ApiType>;323 };327 };328 foreignAssets: {329 /**330 * AssetId exists331 **/332 AssetIdExisted: AugmentedError<ApiType>;333 /**334 * AssetId not exists335 **/336 AssetIdNotExists: AugmentedError<ApiType>;337 /**338 * The given location could not be used (e.g. because it cannot be expressed in the339 * desired version of XCM).340 **/341 BadLocation: AugmentedError<ApiType>;342 /**343 * MultiLocation existed344 **/345 MultiLocationExisted: AugmentedError<ApiType>;346 /**347 * Generic error348 **/349 [key: string]: AugmentedError<ApiType>;350 };324 fungible: {351 fungible: {325 /**352 /**326 * Fungible token does not support nesting.353 * Fungible token does not support nesting.697 **/724 **/698 [key: string]: AugmentedError<ApiType>;725 [key: string]: AugmentedError<ApiType>;699 };726 };727 tokens: {728 /**729 * Cannot convert Amount into Balance type730 **/731 AmountIntoBalanceFailed: AugmentedError<ApiType>;732 /**733 * The balance is too low734 **/735 BalanceTooLow: AugmentedError<ApiType>;736 /**737 * Beneficiary account must pre-exist738 **/739 DeadAccount: AugmentedError<ApiType>;740 /**741 * Value too low to create account due to existential deposit742 **/743 ExistentialDeposit: AugmentedError<ApiType>;744 /**745 * Transfer/payment would kill account746 **/747 KeepAlive: AugmentedError<ApiType>;748 /**749 * Failed because liquidity restrictions due to locking750 **/751 LiquidityRestrictions: AugmentedError<ApiType>;752 /**753 * Failed because the maximum locks was exceeded754 **/755 MaxLocksExceeded: AugmentedError<ApiType>;756 TooManyReserves: AugmentedError<ApiType>;757 /**758 * Generic error759 **/760 [key: string]: AugmentedError<ApiType>;761 };700 treasury: {762 treasury: {701 /**763 /**702 * The spend origin is valid but the amount it is allowed to spend is lower than the764 * The spend origin is valid but the amount it is allowed to spend is lower than the802 **/864 **/803 [key: string]: AugmentedError<ApiType>;865 [key: string]: AugmentedError<ApiType>;804 };866 };867 xTokens: {868 /**869 * Asset has no reserve location.870 **/871 AssetHasNoReserve: AugmentedError<ApiType>;872 /**873 * The specified index does not exist in a MultiAssets struct.874 **/875 AssetIndexNonExistent: AugmentedError<ApiType>;876 /**877 * The version of the `Versioned` value used is not able to be878 * interpreted.879 **/880 BadVersion: AugmentedError<ApiType>;881 /**882 * Could not re-anchor the assets to declare the fees for the883 * destination chain.884 **/885 CannotReanchor: AugmentedError<ApiType>;886 /**887 * The destination `MultiLocation` provided cannot be inverted.888 **/889 DestinationNotInvertible: AugmentedError<ApiType>;890 /**891 * We tried sending distinct asset and fee but they have different892 * reserve chains.893 **/894 DistinctReserveForAssetAndFee: AugmentedError<ApiType>;895 /**896 * Fee is not enough.897 **/898 FeeNotEnough: AugmentedError<ApiType>;899 /**900 * Could not get ancestry of asset reserve location.901 **/902 InvalidAncestry: AugmentedError<ApiType>;903 /**904 * The MultiAsset is invalid.905 **/906 InvalidAsset: AugmentedError<ApiType>;907 /**908 * Invalid transfer destination.909 **/910 InvalidDest: AugmentedError<ApiType>;911 /**912 * MinXcmFee not registered for certain reserve location913 **/914 MinXcmFeeNotDefined: AugmentedError<ApiType>;915 /**916 * Not cross-chain transfer.917 **/918 NotCrossChainTransfer: AugmentedError<ApiType>;919 /**920 * Currency is not cross-chain transferable.921 **/922 NotCrossChainTransferableCurrency: AugmentedError<ApiType>;923 /**924 * Not supported MultiLocation925 **/926 NotSupportedMultiLocation: AugmentedError<ApiType>;927 /**928 * The number of assets to be sent is over the maximum.929 **/930 TooManyAssetsBeingSent: AugmentedError<ApiType>;931 /**932 * The message's weight could not be determined.933 **/934 UnweighableMessage: AugmentedError<ApiType>;935 /**936 * XCM execution failed.937 **/938 XcmExecutionFailed: AugmentedError<ApiType>;939 /**940 * The transfering asset amount is zero.941 **/942 ZeroAmount: AugmentedError<ApiType>;943 /**944 * The fee is zero.945 **/946 ZeroFee: AugmentedError<ApiType>;947 /**948 * Generic error949 **/950 [key: string]: AugmentedError<ApiType>;951 };805 } // AugmentedErrors952 } // AugmentedErrors806} // declare module953} // declare module807954tests/src/interfaces/augment-api-events.tsdiffbeforeafterboth9import type { Bytes, Null, Option, Result, U256, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';9import type { Bytes, Null, Option, Result, U256, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';10import type { ITuple } from '@polkadot/types-codec/types';10import type { ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';11import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';12import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';12import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetMultiAssets, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';131314export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;14export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;151516declare module '@polkadot/api-base/types/events' {16declare module '@polkadot/api-base/types/events' {17 interface AugmentedEvents<ApiType extends ApiTypes> {17 interface AugmentedEvents<ApiType extends ApiTypes> {18 appPromotion: {18 appPromotion: {19 /**19 /**20 * The admin was set20 * The admin was set21 * 21 * 22 * # Arguments22 * # Arguments23 * * AccountId: ID of the admin23 * * AccountId: account address of the admin24 **/24 **/25 SetAdmin: AugmentedEvent<ApiType, [AccountId32]>;25 SetAdmin: AugmentedEvent<ApiType, [AccountId32]>;26 /**26 /**27 * Staking was performed27 * Staking was performed28 * 28 * 29 * # Arguments29 * # Arguments30 * * AccountId: ID of the staker30 * * AccountId: account of the staker31 * * Balance : staking amount31 * * Balance : staking amount32 **/32 **/33 Stake: AugmentedEvent<ApiType, [AccountId32, u128]>;33 Stake: AugmentedEvent<ApiType, [AccountId32, u128]>;34 /**34 /**35 * Staking recalculation was performed35 * Staking recalculation was performed36 * 36 * 37 * # Arguments37 * # Arguments38 * * AccountId: ID of the staker.38 * * AccountId: account of the staker.39 * * Balance : recalculation base39 * * Balance : recalculation base40 * * Balance : total income40 * * Balance : total income41 **/41 **/42 StakingRecalculation: AugmentedEvent<ApiType, [AccountId32, u128, u128]>;42 StakingRecalculation: AugmentedEvent<ApiType, [AccountId32, u128, u128]>;43 /**43 /**44 * Unstaking was performed44 * Unstaking was performed45 * 45 * 46 * # Arguments46 * # Arguments47 * * AccountId: ID of the staker47 * * AccountId: account of the staker48 * * Balance : unstaking amount48 * * Balance : unstaking amount49 **/49 **/50 Unstake: AugmentedEvent<ApiType, [AccountId32, u128]>;50 Unstake: AugmentedEvent<ApiType, [AccountId32, u128]>;51 /**51 /**52 * Generic event52 * Generic event264 **/264 **/265 [key: string]: AugmentedEvent<ApiType>;265 [key: string]: AugmentedEvent<ApiType>;266 };266 };267 foreignAssets: {268 /**269 * The asset registered.270 **/271 AssetRegistered: AugmentedEvent<ApiType, [assetId: PalletForeignAssetsAssetIds, metadata: PalletForeignAssetsModuleAssetMetadata], { assetId: PalletForeignAssetsAssetIds, metadata: PalletForeignAssetsModuleAssetMetadata }>;272 /**273 * The asset updated.274 **/275 AssetUpdated: AugmentedEvent<ApiType, [assetId: PalletForeignAssetsAssetIds, metadata: PalletForeignAssetsModuleAssetMetadata], { assetId: PalletForeignAssetsAssetIds, metadata: PalletForeignAssetsModuleAssetMetadata }>;276 /**277 * The foreign asset registered.278 **/279 ForeignAssetRegistered: AugmentedEvent<ApiType, [assetId: u32, assetAddress: XcmV1MultiLocation, metadata: PalletForeignAssetsModuleAssetMetadata], { assetId: u32, assetAddress: XcmV1MultiLocation, metadata: PalletForeignAssetsModuleAssetMetadata }>;280 /**281 * The foreign asset updated.282 **/283 ForeignAssetUpdated: AugmentedEvent<ApiType, [assetId: u32, assetAddress: XcmV1MultiLocation, metadata: PalletForeignAssetsModuleAssetMetadata], { assetId: u32, assetAddress: XcmV1MultiLocation, metadata: PalletForeignAssetsModuleAssetMetadata }>;284 /**285 * Generic event286 **/287 [key: string]: AugmentedEvent<ApiType>;288 };267 parachainSystem: {289 parachainSystem: {268 /**290 /**269 * Downward messages were processed using the given weight.291 * Downward messages were processed using the given weight.525 **/547 **/526 [key: string]: AugmentedEvent<ApiType>;548 [key: string]: AugmentedEvent<ApiType>;527 };549 };550 tokens: {551 /**552 * A balance was set by root.553 **/554 BalanceSet: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, who: AccountId32, free: u128, reserved: u128], { currencyId: PalletForeignAssetsAssetIds, who: AccountId32, free: u128, reserved: u128 }>;555 /**556 * Deposited some balance into an account557 **/558 Deposited: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128 }>;559 /**560 * An account was removed whose balance was non-zero but below561 * ExistentialDeposit, resulting in an outright loss.562 **/563 DustLost: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128 }>;564 /**565 * An account was created with some free balance.566 **/567 Endowed: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128 }>;568 /**569 * Some locked funds were unlocked570 **/571 LockRemoved: AugmentedEvent<ApiType, [lockId: U8aFixed, currencyId: PalletForeignAssetsAssetIds, who: AccountId32], { lockId: U8aFixed, currencyId: PalletForeignAssetsAssetIds, who: AccountId32 }>;572 /**573 * Some funds are locked574 **/575 LockSet: AugmentedEvent<ApiType, [lockId: U8aFixed, currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128], { lockId: U8aFixed, currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128 }>;576 /**577 * Some balance was reserved (moved from free to reserved).578 **/579 Reserved: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128 }>;580 /**581 * Some reserved balance was repatriated (moved from reserved to582 * another account).583 **/584 ReserveRepatriated: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, from: AccountId32, to: AccountId32, amount: u128, status: FrameSupportTokensMiscBalanceStatus], { currencyId: PalletForeignAssetsAssetIds, from: AccountId32, to: AccountId32, amount: u128, status: FrameSupportTokensMiscBalanceStatus }>;585 /**586 * Some balances were slashed (e.g. due to mis-behavior)587 **/588 Slashed: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, who: AccountId32, freeAmount: u128, reservedAmount: u128], { currencyId: PalletForeignAssetsAssetIds, who: AccountId32, freeAmount: u128, reservedAmount: u128 }>;589 /**590 * The total issuance of an currency has been set591 **/592 TotalIssuanceSet: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, amount: u128], { currencyId: PalletForeignAssetsAssetIds, amount: u128 }>;593 /**594 * Transfer succeeded.595 **/596 Transfer: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, from: AccountId32, to: AccountId32, amount: u128], { currencyId: PalletForeignAssetsAssetIds, from: AccountId32, to: AccountId32, amount: u128 }>;597 /**598 * Some balance was unreserved (moved from reserved to free).599 **/600 Unreserved: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128 }>;601 /**602 * Some balances were withdrawn (e.g. pay for transaction fee)603 **/604 Withdrawn: AugmentedEvent<ApiType, [currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeignAssetsAssetIds, who: AccountId32, amount: u128 }>;605 /**606 * Generic event607 **/608 [key: string]: AugmentedEvent<ApiType>;609 };528 transactionPayment: {610 transactionPayment: {529 /**611 /**530 * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,612 * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,713 **/795 **/714 [key: string]: AugmentedEvent<ApiType>;796 [key: string]: AugmentedEvent<ApiType>;715 };797 };798 xTokens: {799 /**800 * Transferred `MultiAsset` with fee.801 **/802 TransferredMultiAssets: AugmentedEvent<ApiType, [sender: AccountId32, assets: XcmV1MultiassetMultiAssets, fee: XcmV1MultiAsset, dest: XcmV1MultiLocation], { sender: AccountId32, assets: XcmV1MultiassetMultiAssets, fee: XcmV1MultiAsset, dest: XcmV1MultiLocation }>;803 /**804 * Generic event805 **/806 [key: string]: AugmentedEvent<ApiType>;807 };716 } // AugmentedEvents808 } // AugmentedEvents717} // declare module809} // declare module718810tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth9import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';9import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';10import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';11import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';12import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild } from '@polkadot/types/lookup';12import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';13import type { Observable } from '@polkadot/types/types';13import type { Observable } from '@polkadot/types/types';141415export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;15export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;18declare module '@polkadot/api-base/types/storage' {18declare module '@polkadot/api-base/types/storage' {19 interface AugmentedQueries<ApiType extends ApiTypes> {19 interface AugmentedQueries<ApiType extends ApiTypes> {20 appPromotion: {20 appPromotion: {21 /**22 * Stores the `admin` account. Some extrinsics can only be executed if they were signed by `admin`.23 **/21 admin: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;24 admin: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;22 /**25 /**23 * Stores a key for record for which the next revenue recalculation would be performed.26 * Stores a key for record for which the next revenue recalculation would be performed.24 * If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.27 * If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.25 **/28 **/26 nextCalculatedRecord: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[AccountId32, u32]>>>, []> & QueryableStorageEntry<ApiType, []>;29 nextCalculatedRecord: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[AccountId32, u32]>>>, []> & QueryableStorageEntry<ApiType, []>;30 /**31 * Stores amount of stakes for an `Account`.32 * 33 * * **Key** - Staker account.34 * * **Value** - Amount of stakes.35 **/27 pendingUnstake: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[AccountId32, u128]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;36 pendingUnstake: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[AccountId32, u128]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;28 /**37 /**29 * Amount of tokens staked by account in the blocknumber.38 * Stores the amount of tokens staked by account in the blocknumber.30 **/39 * 40 * * **Key1** - Staker account.41 * * **Key2** - Relay block number when the stake was made.42 * * **(Balance, BlockNumber)** - Balance of the stake.43 * The number of the relay block in which we must perform the interest recalculation44 **/31 staked: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<ITuple<[u128, u32]>>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;45 staked: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<ITuple<[u128, u32]>>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;32 /**46 /**33 * Amount of stakes for an Account47 * Stores amount of stakes for an `Account`.34 **/48 * 49 * * **Key** - Staker account.50 * * **Value** - Amount of stakes.51 **/35 stakesPerAccount: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<u8>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;52 stakesPerAccount: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<u8>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;53 /**54 * Stores the total staked amount.55 **/36 totalStaked: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;56 totalStaked: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;37 /**57 /**38 * Generic query58 * Generic query245 **/265 **/246 owner: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<H160>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;266 owner: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<H160>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;247 selfSponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;267 selfSponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<bool>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;248 /**249 * Storage for last sponsored block.250 * 251 * * **Key1** - contract address.252 * * **Key2** - sponsored user address.253 * * **Value** - last sponsored block number.254 **/255 sponsorBasket: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<Option<u32>>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;268 sponsorBasket: AugmentedQuery<ApiType, (arg1: H160 | string | Uint8Array, arg2: H160 | string | Uint8Array) => Observable<Option<u32>>, [H160, H160]> & QueryableStorageEntry<ApiType, [H160, H160]>;256 /**269 /**257 * Store for contract sponsorship state.270 * Store for contract sponsorship state.260 * * **Value** - sponsorship state.273 * * **Value** - sponsorship state.261 **/274 **/262 sponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<UpDataStructsSponsorshipStateBasicCrossAccountIdRepr>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;275 sponsoring: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<UpDataStructsSponsorshipStateBasicCrossAccountIdRepr>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;276 /**277 * Storage for last sponsored block.278 * 279 * * **Key1** - contract address.280 * * **Key2** - sponsored user address.281 * * **Value** - last sponsored block number.282 **/283 sponsoringFeeLimit: AugmentedQuery<ApiType, (arg: H160 | string | Uint8Array) => Observable<BTreeMap<u32, U256>>, [H160]> & QueryableStorageEntry<ApiType, [H160]>;263 /**284 /**264 * Store for sponsoring mode.285 * Store for sponsoring mode.265 * 286 * 289 **/310 **/290 [key: string]: QueryableStorageEntry<ApiType>;311 [key: string]: QueryableStorageEntry<ApiType>;291 };312 };313 foreignAssets: {314 /**315 * The storages for assets to fungible collection binding316 * 317 **/318 assetBinding: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;319 /**320 * The storages for AssetMetadatas.321 * 322 * AssetMetadatas: map AssetIds => Option<AssetMetadata>323 **/324 assetMetadatas: AugmentedQuery<ApiType, (arg: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Option<PalletForeignAssetsModuleAssetMetadata>>, [PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [PalletForeignAssetsAssetIds]>;325 /**326 * The storages for MultiLocations.327 * 328 * ForeignAssetLocations: map ForeignAssetId => Option<MultiLocation>329 **/330 foreignAssetLocations: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<XcmV1MultiLocation>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;331 /**332 * The storages for CurrencyIds.333 * 334 * LocationToCurrencyIds: map MultiLocation => Option<ForeignAssetId>335 **/336 locationToCurrencyIds: AugmentedQuery<ApiType, (arg: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array) => Observable<Option<u32>>, [XcmV1MultiLocation]> & QueryableStorageEntry<ApiType, [XcmV1MultiLocation]>;337 /**338 * Next available Foreign AssetId ID.339 * 340 * NextForeignAssetId: ForeignAssetId341 **/342 nextForeignAssetId: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;343 /**344 * Generic query345 **/346 [key: string]: QueryableStorageEntry<ApiType>;347 };292 fungible: {348 fungible: {293 /**349 /**294 * Storage for assets delegated to a limited extent to other users.350 * Storage for assets delegated to a limited extent to other users.744 **/800 **/745 [key: string]: QueryableStorageEntry<ApiType>;801 [key: string]: QueryableStorageEntry<ApiType>;746 };802 };803 tokens: {804 /**805 * The balance of a token type under an account.806 * 807 * NOTE: If the total is ever zero, decrease account ref account.808 * 809 * NOTE: This is only used in the case that this module is used to store810 * balances.811 **/812 accounts: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<OrmlTokensAccountData>, [AccountId32, PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeignAssetsAssetIds]>;813 /**814 * Any liquidity locks of a token type under an account.815 * NOTE: Should only be accessed when setting, changing and freeing a lock.816 **/817 locks: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Vec<OrmlTokensBalanceLock>>, [AccountId32, PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeignAssetsAssetIds]>;818 /**819 * Named reserves on some account balances.820 **/821 reserves: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Vec<OrmlTokensReserveData>>, [AccountId32, PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeignAssetsAssetIds]>;822 /**823 * The total issuance of a token type.824 **/825 totalIssuance: AugmentedQuery<ApiType, (arg: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<u128>, [PalletForeignAssetsAssetIds]> & QueryableStorageEntry<ApiType, [PalletForeignAssetsAssetIds]>;826 /**827 * Generic query828 **/829 [key: string]: QueryableStorageEntry<ApiType>;830 };747 transactionPayment: {831 transactionPayment: {748 nextFeeMultiplier: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;832 nextFeeMultiplier: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;749 storageVersion: AugmentedQuery<ApiType, () => Observable<PalletTransactionPaymentReleases>, []> & QueryableStorageEntry<ApiType, []>;833 storageVersion: AugmentedQuery<ApiType, () => Observable<PalletTransactionPaymentReleases>, []> & QueryableStorageEntry<ApiType, []>;tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth9import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';9import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';10import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';11import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';12import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';12import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';131314export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;14export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;15export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;15export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;18declare module '@polkadot/api-base/types/submittable' {18declare module '@polkadot/api-base/types/submittable' {19 interface AugmentedSubmittables<ApiType extends ApiTypes> {19 interface AugmentedSubmittables<ApiType extends ApiTypes> {20 appPromotion: {20 appPromotion: {21 /**22 * Recalculates interest for the specified number of stakers.23 * If all stakers are not recalculated, the next call of the extrinsic24 * will continue the recalculation, from those stakers for whom this25 * was not perform in last call.26 * 27 * # Permissions28 * 29 * * Pallet admin30 * 31 * # Arguments32 * 33 * * `stakers_number`: the number of stakers for which recalculation will be performed34 **/21 payoutStakers: AugmentedSubmittable<(stakersNumber: Option<u8> | null | Uint8Array | u8 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u8>]>;35 payoutStakers: AugmentedSubmittable<(stakersNumber: Option<u8> | null | Uint8Array | u8 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u8>]>;36 /**37 * Sets an address as the the admin.38 * 39 * # Permissions40 * 41 * * Sudo42 * 43 * # Arguments44 * 45 * * `admin`: account of the new admin.46 **/22 setAdminAddress: AugmentedSubmittable<(admin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr]>;47 setAdminAddress: AugmentedSubmittable<(admin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr]>;48 /**49 * Sets the pallet to be the sponsor for the collection.50 * 51 * # Permissions52 * 53 * * Pallet admin54 * 55 * # Arguments56 * 57 * * `collection_id`: ID of the collection that will be sponsored by `pallet_id`58 **/23 sponsorCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;59 sponsorCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;60 /**61 * Sets the pallet to be the sponsor for the contract.62 * 63 * # Permissions64 * 65 * * Pallet admin66 * 67 * # Arguments68 * 69 * * `contract_id`: the contract address that will be sponsored by `pallet_id`70 **/24 sponsorContract: AugmentedSubmittable<(contractId: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;71 sponsorContract: AugmentedSubmittable<(contractId: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;72 /**73 * Stakes the amount of native tokens.74 * Sets `amount` to the locked state.75 * The maximum number of stakes for a staker is 10.76 * 77 * # Arguments78 * 79 * * `amount`: in native tokens.80 **/25 stake: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128]>;81 stake: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128]>;82 /**83 * Removes the pallet as the sponsor for the collection.84 * Returns [`NoPermission`][`Error::NoPermission`]85 * if the pallet wasn't the sponsor.86 * 87 * # Permissions88 * 89 * * Pallet admin90 * 91 * # Arguments92 * 93 * * `collection_id`: ID of the collection that is sponsored by `pallet_id`94 **/26 stopSponsoringCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;95 stopSponsoringCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;96 /**97 * Removes the pallet as the sponsor for the contract.98 * Returns [`NoPermission`][`Error::NoPermission`]99 * if the pallet wasn't the sponsor.100 * 101 * # Permissions102 * 103 * * Pallet admin104 * 105 * # Arguments106 * 107 * * `contract_id`: the contract address that is sponsored by `pallet_id`108 **/27 stopSponsoringContract: AugmentedSubmittable<(contractId: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;109 stopSponsoringContract: AugmentedSubmittable<(contractId: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;110 /**111 * Unstakes all stakes.112 * Moves the sum of all stakes to the `reserved` state.113 * After the end of `PendingInterval` this sum becomes completely114 * free for further use.115 **/28 unstake: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;116 unstake: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;29 /**117 /**30 * Generic tx118 * Generic tx216 **/304 **/217 [key: string]: SubmittableExtrinsicFunction<ApiType>;305 [key: string]: SubmittableExtrinsicFunction<ApiType>;218 };306 };307 foreignAssets: {308 registerForeignAsset: AugmentedSubmittable<(owner: AccountId32 | string | Uint8Array, location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, metadata: PalletForeignAssetsModuleAssetMetadata | { name?: any; symbol?: any; decimals?: any; minimalBalance?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, XcmVersionedMultiLocation, PalletForeignAssetsModuleAssetMetadata]>;309 updateForeignAsset: AugmentedSubmittable<(foreignAssetId: u32 | AnyNumber | Uint8Array, location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, metadata: PalletForeignAssetsModuleAssetMetadata | { name?: any; symbol?: any; decimals?: any; minimalBalance?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, XcmVersionedMultiLocation, PalletForeignAssetsModuleAssetMetadata]>;310 /**311 * Generic tx312 **/313 [key: string]: SubmittableExtrinsicFunction<ApiType>;314 };219 inflation: {315 inflation: {220 /**316 /**221 * This method sets the inflation start date. Can be only called once.317 * This method sets the inflation start date. Can be only called once.905 **/1001 **/906 [key: string]: SubmittableExtrinsicFunction<ApiType>;1002 [key: string]: SubmittableExtrinsicFunction<ApiType>;907 };1003 };1004 tokens: {1005 /**1006 * Exactly as `transfer`, except the origin must be root and the source1007 * account may be specified.1008 * 1009 * The dispatch origin for this call must be _Root_.1010 * 1011 * - `source`: The sender of the transfer.1012 * - `dest`: The recipient of the transfer.1013 * - `currency_id`: currency type.1014 * - `amount`: free balance amount to tranfer.1015 **/1016 forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, PalletForeignAssetsAssetIds, Compact<u128>]>;1017 /**1018 * Set the balances of a given account.1019 * 1020 * This will alter `FreeBalance` and `ReservedBalance` in storage. it1021 * will also decrease the total issuance of the system1022 * (`TotalIssuance`). If the new free or reserved balance is below the1023 * existential deposit, it will reap the `AccountInfo`.1024 * 1025 * The dispatch origin for this call is `root`.1026 **/1027 setBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, newFree: Compact<u128> | AnyNumber | Uint8Array, newReserved: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletForeignAssetsAssetIds, Compact<u128>, Compact<u128>]>;1028 /**1029 * Transfer some liquid free balance to another account.1030 * 1031 * `transfer` will set the `FreeBalance` of the sender and receiver.1032 * It will decrease the total issuance of the system by the1033 * `TransferFee`. If the sender's account is below the existential1034 * deposit as a result of the transfer, the account will be reaped.1035 * 1036 * The dispatch origin for this call must be `Signed` by the1037 * transactor.1038 * 1039 * - `dest`: The recipient of the transfer.1040 * - `currency_id`: currency type.1041 * - `amount`: free balance amount to tranfer.1042 **/1043 transfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletForeignAssetsAssetIds, Compact<u128>]>;1044 /**1045 * Transfer all remaining balance to the given account.1046 * 1047 * NOTE: This function only attempts to transfer _transferable_1048 * balances. This means that any locked, reserved, or existential1049 * deposits (when `keep_alive` is `true`), will not be transferred by1050 * this function. To ensure that this function results in a killed1051 * account, you might need to prepare the account by removing any1052 * reference counters, storage deposits, etc...1053 * 1054 * The dispatch origin for this call must be `Signed` by the1055 * transactor.1056 * 1057 * - `dest`: The recipient of the transfer.1058 * - `currency_id`: currency type.1059 * - `keep_alive`: A boolean to determine if the `transfer_all`1060 * operation should send all of the funds the account has, causing1061 * the sender account to be killed (false), or transfer everything1062 * except at least the existential deposit, which will guarantee to1063 * keep the sender account alive (true).1064 **/1065 transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletForeignAssetsAssetIds, bool]>;1066 /**1067 * Same as the [`transfer`] call, but with a check that the transfer1068 * will not kill the origin account.1069 * 1070 * 99% of the time you want [`transfer`] instead.1071 * 1072 * The dispatch origin for this call must be `Signed` by the1073 * transactor.1074 * 1075 * - `dest`: The recipient of the transfer.1076 * - `currency_id`: currency type.1077 * - `amount`: free balance amount to tranfer.1078 **/1079 transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletForeignAssetsAssetIds, Compact<u128>]>;1080 /**1081 * Generic tx1082 **/1083 [key: string]: SubmittableExtrinsicFunction<ApiType>;1084 };908 treasury: {1085 treasury: {909 /**1086 /**910 * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary1087 * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary1565 **/1742 **/1566 [key: string]: SubmittableExtrinsicFunction<ApiType>;1743 [key: string]: SubmittableExtrinsicFunction<ApiType>;1567 };1744 };1745 xTokens: {1746 /**1747 * Transfer native currencies.1748 * 1749 * `dest_weight` is the weight for XCM execution on the dest chain, and1750 * it would be charged from the transferred assets. If set below1751 * requirements, the execution may fail and assets wouldn't be1752 * received.1753 * 1754 * It's a no-op if any error on local XCM execution or message sending.1755 * Note sending assets out per se doesn't guarantee they would be1756 * received. Receiving depends on if the XCM message could be delivered1757 * by the network, and if the receiving chain would handle1758 * messages correctly.1759 **/1760 transfer: AugmentedSubmittable<(currencyId: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array, dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, destWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletForeignAssetsAssetIds, u128, XcmVersionedMultiLocation, u64]>;1761 /**1762 * Transfer `MultiAsset`.1763 * 1764 * `dest_weight` is the weight for XCM execution on the dest chain, and1765 * it would be charged from the transferred assets. If set below1766 * requirements, the execution may fail and assets wouldn't be1767 * received.1768 * 1769 * It's a no-op if any error on local XCM execution or message sending.1770 * Note sending assets out per se doesn't guarantee they would be1771 * received. Receiving depends on if the XCM message could be delivered1772 * by the network, and if the receiving chain would handle1773 * messages correctly.1774 **/1775 transferMultiasset: AugmentedSubmittable<(asset: XcmVersionedMultiAsset | { V0: any } | { V1: any } | string | Uint8Array, dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, destWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiAsset, XcmVersionedMultiLocation, u64]>;1776 /**1777 * Transfer several `MultiAsset` specifying the item to be used as fee1778 * 1779 * `dest_weight` is the weight for XCM execution on the dest chain, and1780 * it would be charged from the transferred assets. If set below1781 * requirements, the execution may fail and assets wouldn't be1782 * received.1783 * 1784 * `fee_item` is index of the MultiAssets that we want to use for1785 * payment1786 * 1787 * It's a no-op if any error on local XCM execution or message sending.1788 * Note sending assets out per se doesn't guarantee they would be1789 * received. Receiving depends on if the XCM message could be delivered1790 * by the network, and if the receiving chain would handle1791 * messages correctly.1792 **/1793 transferMultiassets: AugmentedSubmittable<(assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeItem: u32 | AnyNumber | Uint8Array, dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, destWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiAssets, u32, XcmVersionedMultiLocation, u64]>;1794 /**1795 * Transfer `MultiAsset` specifying the fee and amount as separate.1796 * 1797 * `dest_weight` is the weight for XCM execution on the dest chain, and1798 * it would be charged from the transferred assets. If set below1799 * requirements, the execution may fail and assets wouldn't be1800 * received.1801 * 1802 * `fee` is the multiasset to be spent to pay for execution in1803 * destination chain. Both fee and amount will be subtracted form the1804 * callers balance For now we only accept fee and asset having the same1805 * `MultiLocation` id.1806 * 1807 * If `fee` is not high enough to cover for the execution costs in the1808 * destination chain, then the assets will be trapped in the1809 * destination chain1810 * 1811 * It's a no-op if any error on local XCM execution or message sending.1812 * Note sending assets out per se doesn't guarantee they would be1813 * received. Receiving depends on if the XCM message could be delivered1814 * by the network, and if the receiving chain would handle1815 * messages correctly.1816 **/1817 transferMultiassetWithFee: AugmentedSubmittable<(asset: XcmVersionedMultiAsset | { V0: any } | { V1: any } | string | Uint8Array, fee: XcmVersionedMultiAsset | { V0: any } | { V1: any } | string | Uint8Array, dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, destWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiAsset, XcmVersionedMultiAsset, XcmVersionedMultiLocation, u64]>;1818 /**1819 * Transfer several currencies specifying the item to be used as fee1820 * 1821 * `dest_weight` is the weight for XCM execution on the dest chain, and1822 * it would be charged from the transferred assets. If set below1823 * requirements, the execution may fail and assets wouldn't be1824 * received.1825 * 1826 * `fee_item` is index of the currencies tuple that we want to use for1827 * payment1828 * 1829 * It's a no-op if any error on local XCM execution or message sending.1830 * Note sending assets out per se doesn't guarantee they would be1831 * received. Receiving depends on if the XCM message could be delivered1832 * by the network, and if the receiving chain would handle1833 * messages correctly.1834 **/1835 transferMulticurrencies: AugmentedSubmittable<(currencies: Vec<ITuple<[PalletForeignAssetsAssetIds, u128]>> | ([PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, u128 | AnyNumber | Uint8Array])[], feeItem: u32 | AnyNumber | Uint8Array, dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, destWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[PalletForeignAssetsAssetIds, u128]>>, u32, XcmVersionedMultiLocation, u64]>;1836 /**1837 * Transfer native currencies specifying the fee and amount as1838 * separate.1839 * 1840 * `dest_weight` is the weight for XCM execution on the dest chain, and1841 * it would be charged from the transferred assets. If set below1842 * requirements, the execution may fail and assets wouldn't be1843 * received.1844 * 1845 * `fee` is the amount to be spent to pay for execution in destination1846 * chain. Both fee and amount will be subtracted form the callers1847 * balance.1848 * 1849 * If `fee` is not high enough to cover for the execution costs in the1850 * destination chain, then the assets will be trapped in the1851 * destination chain1852 * 1853 * It's a no-op if any error on local XCM execution or message sending.1854 * Note sending assets out per se doesn't guarantee they would be1855 * received. Receiving depends on if the XCM message could be delivered1856 * by the network, and if the receiving chain would handle1857 * messages correctly.1858 **/1859 transferWithFee: AugmentedSubmittable<(currencyId: PalletForeignAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array, fee: u128 | AnyNumber | Uint8Array, dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, destWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletForeignAssetsAssetIds, u128, u128, XcmVersionedMultiLocation, u64]>;1860 /**1861 * Generic tx1862 **/1863 [key: string]: SubmittableExtrinsicFunction<ApiType>;1864 };1568 } // AugmentedSubmittables1865 } // AugmentedSubmittables1569} // declare module1866} // declare module15701867tests/src/interfaces/augment-types.tsdiffbeforeafterboth5// this is required to allow for ambient/previous definitions5// this is required to allow for ambient/previous definitions6import '@polkadot/types/types/registry';6import '@polkadot/types/types/registry';778import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';8import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';9import type { Data, StorageKey } from '@polkadot/types';9import type { Data, StorageKey } from '@polkadot/types';10import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';10import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';11import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';11import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';790 OriginKindV0: OriginKindV0;790 OriginKindV0: OriginKindV0;791 OriginKindV1: OriginKindV1;791 OriginKindV1: OriginKindV1;792 OriginKindV2: OriginKindV2;792 OriginKindV2: OriginKindV2;793 OrmlTokensAccountData: OrmlTokensAccountData;794 OrmlTokensBalanceLock: OrmlTokensBalanceLock;795 OrmlTokensModuleCall: OrmlTokensModuleCall;796 OrmlTokensModuleError: OrmlTokensModuleError;797 OrmlTokensModuleEvent: OrmlTokensModuleEvent;798 OrmlTokensReserveData: OrmlTokensReserveData;793 OrmlVestingModuleCall: OrmlVestingModuleCall;799 OrmlVestingModuleCall: OrmlVestingModuleCall;794 OrmlVestingModuleError: OrmlVestingModuleError;800 OrmlVestingModuleError: OrmlVestingModuleError;795 OrmlVestingModuleEvent: OrmlVestingModuleEvent;801 OrmlVestingModuleEvent: OrmlVestingModuleEvent;796 OrmlVestingVestingSchedule: OrmlVestingVestingSchedule;802 OrmlVestingVestingSchedule: OrmlVestingVestingSchedule;803 OrmlXtokensModuleCall: OrmlXtokensModuleCall;804 OrmlXtokensModuleError: OrmlXtokensModuleError;805 OrmlXtokensModuleEvent: OrmlXtokensModuleEvent;797 OutboundHrmpMessage: OutboundHrmpMessage;806 OutboundHrmpMessage: OutboundHrmpMessage;798 OutboundLaneData: OutboundLaneData;807 OutboundLaneData: OutboundLaneData;799 OutboundMessageFee: OutboundMessageFee;808 OutboundMessageFee: OutboundMessageFee;841 PalletEvmEvent: PalletEvmEvent;850 PalletEvmEvent: PalletEvmEvent;842 PalletEvmMigrationCall: PalletEvmMigrationCall;851 PalletEvmMigrationCall: PalletEvmMigrationCall;843 PalletEvmMigrationError: PalletEvmMigrationError;852 PalletEvmMigrationError: PalletEvmMigrationError;853 PalletForeignAssetsAssetIds: PalletForeignAssetsAssetIds;854 PalletForeignAssetsModuleAssetMetadata: PalletForeignAssetsModuleAssetMetadata;855 PalletForeignAssetsModuleCall: PalletForeignAssetsModuleCall;856 PalletForeignAssetsModuleError: PalletForeignAssetsModuleError;857 PalletForeignAssetsModuleEvent: PalletForeignAssetsModuleEvent;858 PalletForeignAssetsNativeCurrency: PalletForeignAssetsNativeCurrency;844 PalletFungibleError: PalletFungibleError;859 PalletFungibleError: PalletFungibleError;845 PalletId: PalletId;860 PalletId: PalletId;846 PalletInflationCall: PalletInflationCall;861 PalletInflationCall: PalletInflationCall;1422 XcmV2WeightLimit: XcmV2WeightLimit;1437 XcmV2WeightLimit: XcmV2WeightLimit;1423 XcmV2Xcm: XcmV2Xcm;1438 XcmV2Xcm: XcmV2Xcm;1424 XcmVersion: XcmVersion;1439 XcmVersion: XcmVersion;1440 XcmVersionedMultiAsset: XcmVersionedMultiAsset;1425 XcmVersionedMultiAssets: XcmVersionedMultiAssets;1441 XcmVersionedMultiAssets: XcmVersionedMultiAssets;1426 XcmVersionedMultiLocation: XcmVersionedMultiLocation;1442 XcmVersionedMultiLocation: XcmVersionedMultiLocation;1427 XcmVersionedXcm: XcmVersionedXcm;1443 XcmVersionedXcm: XcmVersionedXcm;tests/src/interfaces/default/types.tsdiffbeforeafterboth747/** @name OpalRuntimeRuntime */747/** @name OpalRuntimeRuntime */748export interface OpalRuntimeRuntime extends Null {}748export interface OpalRuntimeRuntime extends Null {}749750/** @name OrmlTokensAccountData */751export interface OrmlTokensAccountData extends Struct {752 readonly free: u128;753 readonly reserved: u128;754 readonly frozen: u128;755}756757/** @name OrmlTokensBalanceLock */758export interface OrmlTokensBalanceLock extends Struct {759 readonly id: U8aFixed;760 readonly amount: u128;761}762763/** @name OrmlTokensModuleCall */764export interface OrmlTokensModuleCall extends Enum {765 readonly isTransfer: boolean;766 readonly asTransfer: {767 readonly dest: MultiAddress;768 readonly currencyId: PalletForeignAssetsAssetIds;769 readonly amount: Compact<u128>;770 } & Struct;771 readonly isTransferAll: boolean;772 readonly asTransferAll: {773 readonly dest: MultiAddress;774 readonly currencyId: PalletForeignAssetsAssetIds;775 readonly keepAlive: bool;776 } & Struct;777 readonly isTransferKeepAlive: boolean;778 readonly asTransferKeepAlive: {779 readonly dest: MultiAddress;780 readonly currencyId: PalletForeignAssetsAssetIds;781 readonly amount: Compact<u128>;782 } & Struct;783 readonly isForceTransfer: boolean;784 readonly asForceTransfer: {785 readonly source: MultiAddress;786 readonly dest: MultiAddress;787 readonly currencyId: PalletForeignAssetsAssetIds;788 readonly amount: Compact<u128>;789 } & Struct;790 readonly isSetBalance: boolean;791 readonly asSetBalance: {792 readonly who: MultiAddress;793 readonly currencyId: PalletForeignAssetsAssetIds;794 readonly newFree: Compact<u128>;795 readonly newReserved: Compact<u128>;796 } & Struct;797 readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';798}799800/** @name OrmlTokensModuleError */801export interface OrmlTokensModuleError extends Enum {802 readonly isBalanceTooLow: boolean;803 readonly isAmountIntoBalanceFailed: boolean;804 readonly isLiquidityRestrictions: boolean;805 readonly isMaxLocksExceeded: boolean;806 readonly isKeepAlive: boolean;807 readonly isExistentialDeposit: boolean;808 readonly isDeadAccount: boolean;809 readonly isTooManyReserves: boolean;810 readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';811}812813/** @name OrmlTokensModuleEvent */814export interface OrmlTokensModuleEvent extends Enum {815 readonly isEndowed: boolean;816 readonly asEndowed: {817 readonly currencyId: PalletForeignAssetsAssetIds;818 readonly who: AccountId32;819 readonly amount: u128;820 } & Struct;821 readonly isDustLost: boolean;822 readonly asDustLost: {823 readonly currencyId: PalletForeignAssetsAssetIds;824 readonly who: AccountId32;825 readonly amount: u128;826 } & Struct;827 readonly isTransfer: boolean;828 readonly asTransfer: {829 readonly currencyId: PalletForeignAssetsAssetIds;830 readonly from: AccountId32;831 readonly to: AccountId32;832 readonly amount: u128;833 } & Struct;834 readonly isReserved: boolean;835 readonly asReserved: {836 readonly currencyId: PalletForeignAssetsAssetIds;837 readonly who: AccountId32;838 readonly amount: u128;839 } & Struct;840 readonly isUnreserved: boolean;841 readonly asUnreserved: {842 readonly currencyId: PalletForeignAssetsAssetIds;843 readonly who: AccountId32;844 readonly amount: u128;845 } & Struct;846 readonly isReserveRepatriated: boolean;847 readonly asReserveRepatriated: {848 readonly currencyId: PalletForeignAssetsAssetIds;849 readonly from: AccountId32;850 readonly to: AccountId32;851 readonly amount: u128;852 readonly status: FrameSupportTokensMiscBalanceStatus;853 } & Struct;854 readonly isBalanceSet: boolean;855 readonly asBalanceSet: {856 readonly currencyId: PalletForeignAssetsAssetIds;857 readonly who: AccountId32;858 readonly free: u128;859 readonly reserved: u128;860 } & Struct;861 readonly isTotalIssuanceSet: boolean;862 readonly asTotalIssuanceSet: {863 readonly currencyId: PalletForeignAssetsAssetIds;864 readonly amount: u128;865 } & Struct;866 readonly isWithdrawn: boolean;867 readonly asWithdrawn: {868 readonly currencyId: PalletForeignAssetsAssetIds;869 readonly who: AccountId32;870 readonly amount: u128;871 } & Struct;872 readonly isSlashed: boolean;873 readonly asSlashed: {874 readonly currencyId: PalletForeignAssetsAssetIds;875 readonly who: AccountId32;876 readonly freeAmount: u128;877 readonly reservedAmount: u128;878 } & Struct;879 readonly isDeposited: boolean;880 readonly asDeposited: {881 readonly currencyId: PalletForeignAssetsAssetIds;882 readonly who: AccountId32;883 readonly amount: u128;884 } & Struct;885 readonly isLockSet: boolean;886 readonly asLockSet: {887 readonly lockId: U8aFixed;888 readonly currencyId: PalletForeignAssetsAssetIds;889 readonly who: AccountId32;890 readonly amount: u128;891 } & Struct;892 readonly isLockRemoved: boolean;893 readonly asLockRemoved: {894 readonly lockId: U8aFixed;895 readonly currencyId: PalletForeignAssetsAssetIds;896 readonly who: AccountId32;897 } & Struct;898 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'BalanceSet' | 'TotalIssuanceSet' | 'Withdrawn' | 'Slashed' | 'Deposited' | 'LockSet' | 'LockRemoved';899}900901/** @name OrmlTokensReserveData */902export interface OrmlTokensReserveData extends Struct {903 readonly id: Null;904 readonly amount: u128;905}749906750/** @name OrmlVestingModuleCall */907/** @name OrmlVestingModuleCall */751export interface OrmlVestingModuleCall extends Enum {908export interface OrmlVestingModuleCall extends Enum {806 readonly perPeriod: Compact<u128>;963 readonly perPeriod: Compact<u128>;807}964}965966/** @name OrmlXtokensModuleCall */967export interface OrmlXtokensModuleCall extends Enum {968 readonly isTransfer: boolean;969 readonly asTransfer: {970 readonly currencyId: PalletForeignAssetsAssetIds;971 readonly amount: u128;972 readonly dest: XcmVersionedMultiLocation;973 readonly destWeight: u64;974 } & Struct;975 readonly isTransferMultiasset: boolean;976 readonly asTransferMultiasset: {977 readonly asset: XcmVersionedMultiAsset;978 readonly dest: XcmVersionedMultiLocation;979 readonly destWeight: u64;980 } & Struct;981 readonly isTransferWithFee: boolean;982 readonly asTransferWithFee: {983 readonly currencyId: PalletForeignAssetsAssetIds;984 readonly amount: u128;985 readonly fee: u128;986 readonly dest: XcmVersionedMultiLocation;987 readonly destWeight: u64;988 } & Struct;989 readonly isTransferMultiassetWithFee: boolean;990 readonly asTransferMultiassetWithFee: {991 readonly asset: XcmVersionedMultiAsset;992 readonly fee: XcmVersionedMultiAsset;993 readonly dest: XcmVersionedMultiLocation;994 readonly destWeight: u64;995 } & Struct;996 readonly isTransferMulticurrencies: boolean;997 readonly asTransferMulticurrencies: {998 readonly currencies: Vec<ITuple<[PalletForeignAssetsAssetIds, u128]>>;999 readonly feeItem: u32;1000 readonly dest: XcmVersionedMultiLocation;1001 readonly destWeight: u64;1002 } & Struct;1003 readonly isTransferMultiassets: boolean;1004 readonly asTransferMultiassets: {1005 readonly assets: XcmVersionedMultiAssets;1006 readonly feeItem: u32;1007 readonly dest: XcmVersionedMultiLocation;1008 readonly destWeight: u64;1009 } & Struct;1010 readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';1011}10121013/** @name OrmlXtokensModuleError */1014export interface OrmlXtokensModuleError extends Enum {1015 readonly isAssetHasNoReserve: boolean;1016 readonly isNotCrossChainTransfer: boolean;1017 readonly isInvalidDest: boolean;1018 readonly isNotCrossChainTransferableCurrency: boolean;1019 readonly isUnweighableMessage: boolean;1020 readonly isXcmExecutionFailed: boolean;1021 readonly isCannotReanchor: boolean;1022 readonly isInvalidAncestry: boolean;1023 readonly isInvalidAsset: boolean;1024 readonly isDestinationNotInvertible: boolean;1025 readonly isBadVersion: boolean;1026 readonly isDistinctReserveForAssetAndFee: boolean;1027 readonly isZeroFee: boolean;1028 readonly isZeroAmount: boolean;1029 readonly isTooManyAssetsBeingSent: boolean;1030 readonly isAssetIndexNonExistent: boolean;1031 readonly isFeeNotEnough: boolean;1032 readonly isNotSupportedMultiLocation: boolean;1033 readonly isMinXcmFeeNotDefined: boolean;1034 readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';1035}10361037/** @name OrmlXtokensModuleEvent */1038export interface OrmlXtokensModuleEvent extends Enum {1039 readonly isTransferredMultiAssets: boolean;1040 readonly asTransferredMultiAssets: {1041 readonly sender: AccountId32;1042 readonly assets: XcmV1MultiassetMultiAssets;1043 readonly fee: XcmV1MultiAsset;1044 readonly dest: XcmV1MultiLocation;1045 } & Struct;1046 readonly type: 'TransferredMultiAssets';1047}8081048809/** @name PalletAppPromotionCall */1049/** @name PalletAppPromotionCall */810export interface PalletAppPromotionCall extends Enum {1050export interface PalletAppPromotionCall extends Enum {1186export interface PalletEvmContractHelpersError extends Enum {1426export interface PalletEvmContractHelpersError extends Enum {1187 readonly isNoPermission: boolean;1427 readonly isNoPermission: boolean;1188 readonly isNoPendingSponsor: boolean;1428 readonly isNoPendingSponsor: boolean;1429 readonly isTooManyMethodsHaveSponsoredLimit: boolean;1189 readonly type: 'NoPermission' | 'NoPendingSponsor';1430 readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit';1190}1431}119114321192/** @name PalletEvmContractHelpersEvent */1433/** @name PalletEvmContractHelpersEvent */1264 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';1505 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';1265}1506}15071508/** @name PalletForeignAssetsAssetIds */1509export interface PalletForeignAssetsAssetIds extends Enum {1510 readonly isForeignAssetId: boolean;1511 readonly asForeignAssetId: u32;1512 readonly isNativeAssetId: boolean;1513 readonly asNativeAssetId: PalletForeignAssetsNativeCurrency;1514 readonly type: 'ForeignAssetId' | 'NativeAssetId';1515}15161517/** @name PalletForeignAssetsModuleAssetMetadata */1518export interface PalletForeignAssetsModuleAssetMetadata extends Struct {1519 readonly name: Bytes;1520 readonly symbol: Bytes;1521 readonly decimals: u8;1522 readonly minimalBalance: u128;1523}15241525/** @name PalletForeignAssetsModuleCall */1526export interface PalletForeignAssetsModuleCall extends Enum {1527 readonly isRegisterForeignAsset: boolean;1528 readonly asRegisterForeignAsset: {1529 readonly owner: AccountId32;1530 readonly location: XcmVersionedMultiLocation;1531 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1532 } & Struct;1533 readonly isUpdateForeignAsset: boolean;1534 readonly asUpdateForeignAsset: {1535 readonly foreignAssetId: u32;1536 readonly location: XcmVersionedMultiLocation;1537 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1538 } & Struct;1539 readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';1540}15411542/** @name PalletForeignAssetsModuleError */1543export interface PalletForeignAssetsModuleError extends Enum {1544 readonly isBadLocation: boolean;1545 readonly isMultiLocationExisted: boolean;1546 readonly isAssetIdNotExists: boolean;1547 readonly isAssetIdExisted: boolean;1548 readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';1549}15501551/** @name PalletForeignAssetsModuleEvent */1552export interface PalletForeignAssetsModuleEvent extends Enum {1553 readonly isForeignAssetRegistered: boolean;1554 readonly asForeignAssetRegistered: {1555 readonly assetId: u32;1556 readonly assetAddress: XcmV1MultiLocation;1557 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1558 } & Struct;1559 readonly isForeignAssetUpdated: boolean;1560 readonly asForeignAssetUpdated: {1561 readonly assetId: u32;1562 readonly assetAddress: XcmV1MultiLocation;1563 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1564 } & Struct;1565 readonly isAssetRegistered: boolean;1566 readonly asAssetRegistered: {1567 readonly assetId: PalletForeignAssetsAssetIds;1568 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1569 } & Struct;1570 readonly isAssetUpdated: boolean;1571 readonly asAssetUpdated: {1572 readonly assetId: PalletForeignAssetsAssetIds;1573 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1574 } & Struct;1575 readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';1576}15771578/** @name PalletForeignAssetsNativeCurrency */1579export interface PalletForeignAssetsNativeCurrency extends Enum {1580 readonly isHere: boolean;1581 readonly isParent: boolean;1582 readonly type: 'Here' | 'Parent';1583}126615841267/** @name PalletFungibleError */1585/** @name PalletFungibleError */1268export interface PalletFungibleError extends Enum {1586export interface PalletFungibleError extends Enum {2492 readonly sponsorship: UpDataStructsSponsorshipStateAccountId32;2810 readonly sponsorship: UpDataStructsSponsorshipStateAccountId32;2493 readonly limits: UpDataStructsCollectionLimits;2811 readonly limits: UpDataStructsCollectionLimits;2494 readonly permissions: UpDataStructsCollectionPermissions;2812 readonly permissions: UpDataStructsCollectionPermissions;2495 readonly externalCollection: bool;2813 readonly flags: U8aFixed;2496}2814}249728152498/** @name UpDataStructsCollectionLimits */2816/** @name UpDataStructsCollectionLimits */2666 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2984 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2667 readonly properties: Vec<UpDataStructsProperty>;2985 readonly properties: Vec<UpDataStructsProperty>;2668 readonly readOnly: bool;2986 readonly readOnly: bool;2987 readonly foreign: bool;2669}2988}267029892671/** @name UpDataStructsSponsoringRateLimit */2990/** @name UpDataStructsSponsoringRateLimit */3441/** @name XcmV2Xcm */3760/** @name XcmV2Xcm */3442export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}3761export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}37623763/** @name XcmVersionedMultiAsset */3764export interface XcmVersionedMultiAsset extends Enum {3765 readonly isV0: boolean;3766 readonly asV0: XcmV0MultiAsset;3767 readonly isV1: boolean;3768 readonly asV1: XcmV1MultiAsset;3769 readonly type: 'V0' | 'V1';3770}344337713444/** @name XcmVersionedMultiAssets */3772/** @name XcmVersionedMultiAssets */3445export interface XcmVersionedMultiAssets extends Enum {3773export interface XcmVersionedMultiAssets extends Enum {tests/src/interfaces/lookup.tsdiffbeforeafterboth322 periodCount: 'u32',322 periodCount: 'u32',323 perPeriod: 'Compact<u128>'323 perPeriod: 'Compact<u128>'324 },324 },325 /**325 /**326 * Lookup39: cumulus_pallet_xcmp_queue::pallet::Event<T>326 * Lookup39: orml_xtokens::module::Event<T>327 **/327 **/328 CumulusPalletXcmpQueueEvent: {328 OrmlXtokensModuleEvent: {329 _enum: {329 _enum: {330 Success: {331 messageHash: 'Option<H256>',332 weight: 'u64',333 },334 Fail: {335 messageHash: 'Option<H256>',336 error: 'XcmV2TraitsError',337 weight: 'u64',338 },339 BadVersion: {340 messageHash: 'Option<H256>',341 },342 BadFormat: {343 messageHash: 'Option<H256>',344 },345 UpwardMessageSent: {346 messageHash: 'Option<H256>',347 },348 XcmpMessageSent: {349 messageHash: 'Option<H256>',350 },351 OverweightEnqueued: {330 TransferredMultiAssets: {352 sender: 'u32',331 sender: 'AccountId32',353 sentAt: 'u32',332 assets: 'XcmV1MultiassetMultiAssets',354 index: 'u64',333 fee: 'XcmV1MultiAsset',355 required: 'u64',334 dest: 'XcmV1MultiLocation'356 },335 }357 OverweightServiced: {358 index: 'u64',359 used: 'u64'360 }361 }336 }362 },337 },363 /**338 /**364 * Lookup41: xcm::v2::traits::Error339 * Lookup40: xcm::v1::multiasset::MultiAssets365 **/340 **/366 XcmV2TraitsError: {341 XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',367 _enum: {368 Overflow: 'Null',369 Unimplemented: 'Null',370 UntrustedReserveLocation: 'Null',371 UntrustedTeleportLocation: 'Null',372 MultiLocationFull: 'Null',373 MultiLocationNotInvertible: 'Null',374 BadOrigin: 'Null',375 InvalidLocation: 'Null',376 AssetNotFound: 'Null',377 FailedToTransactAsset: 'Null',378 NotWithdrawable: 'Null',379 LocationCannotHold: 'Null',380 ExceedsMaxMessageSize: 'Null',381 DestinationUnsupported: 'Null',382 Transport: 'Null',383 Unroutable: 'Null',384 UnknownClaim: 'Null',385 FailedToDecode: 'Null',386 MaxWeightInvalid: 'Null',387 NotHoldingFees: 'Null',388 TooExpensive: 'Null',389 Trap: 'u64',390 UnhandledXcmVersion: 'Null',391 WeightLimitReached: 'u64',392 Barrier: 'Null',393 WeightNotComputable: 'Null'394 }395 },396 /**342 /**397 * Lookup43: pallet_xcm::pallet::Event<T>343 * Lookup42: xcm::v1::multiasset::MultiAsset398 **/344 **/399 PalletXcmEvent: {345 XcmV1MultiAsset: {400 _enum: {401 Attempted: 'XcmV2TraitsOutcome',402 Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',403 UnexpectedResponse: '(XcmV1MultiLocation,u64)',346 id: 'XcmV1MultiassetAssetId',404 ResponseReady: '(u64,XcmV2Response)',405 Notified: '(u64,u8,u8)',406 NotifyOverweight: '(u64,u8,u8,u64,u64)',407 NotifyDispatchError: '(u64,u8,u8)',408 NotifyDecodeFailed: '(u64,u8,u8)',409 InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',410 InvalidResponderVersion: '(XcmV1MultiLocation,u64)',411 ResponseTaken: 'u64',412 AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',413 VersionChangeNotified: '(XcmV1MultiLocation,u32)',414 SupportedVersionChanged: '(XcmV1MultiLocation,u32)',347 fun: 'XcmV1MultiassetFungibility'415 NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',416 NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'417 }418 },348 },419 /**349 /**420 * Lookup44: xcm::v2::traits::Outcome350 * Lookup43: xcm::v1::multiasset::AssetId421 **/351 **/422 XcmV2TraitsOutcome: {352 XcmV1MultiassetAssetId: {423 _enum: {353 _enum: {424 Complete: 'u64',425 Incomplete: '(u64,XcmV2TraitsError)',354 Concrete: 'XcmV1MultiLocation',426 Error: 'XcmV2TraitsError'355 Abstract: 'Bytes'427 }356 }428 },357 },429 /**358 /**430 * Lookup45: xcm::v1::multilocation::MultiLocation359 * Lookup44: xcm::v1::multilocation::MultiLocation431 **/360 **/432 XcmV1MultiLocation: {361 XcmV1MultiLocation: {433 parents: 'u8',362 parents: 'u8',434 interior: 'XcmV1MultilocationJunctions'363 interior: 'XcmV1MultilocationJunctions'435 },364 },436 /**365 /**437 * Lookup46: xcm::v1::multilocation::Junctions366 * Lookup45: xcm::v1::multilocation::Junctions438 **/367 **/439 XcmV1MultilocationJunctions: {368 XcmV1MultilocationJunctions: {440 _enum: {369 _enum: {441 Here: 'Null',370 Here: 'Null',449 X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'378 X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'450 }379 }451 },380 },452 /**381 /**453 * Lookup47: xcm::v1::junction::Junction382 * Lookup46: xcm::v1::junction::Junction454 **/383 **/455 XcmV1Junction: {384 XcmV1Junction: {456 _enum: {385 _enum: {457 Parachain: 'Compact<u32>',386 Parachain: 'Compact<u32>',477 }406 }478 }407 }479 },408 },480 /**409 /**481 * Lookup49: xcm::v0::junction::NetworkId410 * Lookup48: xcm::v0::junction::NetworkId482 **/411 **/483 XcmV0JunctionNetworkId: {412 XcmV0JunctionNetworkId: {484 _enum: {413 _enum: {485 Any: 'Null',414 Any: 'Null',488 Kusama: 'Null'417 Kusama: 'Null'489 }418 }490 },419 },491 /**420 /**492 * Lookup53: xcm::v0::junction::BodyId421 * Lookup52: xcm::v0::junction::BodyId493 **/422 **/494 XcmV0JunctionBodyId: {423 XcmV0JunctionBodyId: {495 _enum: {424 _enum: {496 Unit: 'Null',425 Unit: 'Null',502 Judicial: 'Null'431 Judicial: 'Null'503 }432 }504 },433 },505 /**434 /**506 * Lookup54: xcm::v0::junction::BodyPart435 * Lookup53: xcm::v0::junction::BodyPart507 **/436 **/508 XcmV0JunctionBodyPart: {437 XcmV0JunctionBodyPart: {509 _enum: {438 _enum: {510 Voice: 'Null',439 Voice: 'Null',525 }454 }526 }455 }527 },456 },457 /**458 * Lookup54: xcm::v1::multiasset::Fungibility459 **/460 XcmV1MultiassetFungibility: {461 _enum: {462 Fungible: 'Compact<u128>',463 NonFungible: 'XcmV1MultiassetAssetInstance'464 }465 },466 /**467 * Lookup55: xcm::v1::multiasset::AssetInstance468 **/469 XcmV1MultiassetAssetInstance: {470 _enum: {471 Undefined: 'Null',472 Index: 'Compact<u128>',473 Array4: '[u8;4]',474 Array8: '[u8;8]',475 Array16: '[u8;16]',476 Array32: '[u8;32]',477 Blob: 'Bytes'478 }479 },480 /**481 * Lookup58: orml_tokens::module::Event<T>482 **/483 OrmlTokensModuleEvent: {484 _enum: {485 Endowed: {486 currencyId: 'PalletForeignAssetsAssetIds',487 who: 'AccountId32',488 amount: 'u128',489 },490 DustLost: {491 currencyId: 'PalletForeignAssetsAssetIds',492 who: 'AccountId32',493 amount: 'u128',494 },495 Transfer: {496 currencyId: 'PalletForeignAssetsAssetIds',497 from: 'AccountId32',498 to: 'AccountId32',499 amount: 'u128',500 },501 Reserved: {502 currencyId: 'PalletForeignAssetsAssetIds',503 who: 'AccountId32',504 amount: 'u128',505 },506 Unreserved: {507 currencyId: 'PalletForeignAssetsAssetIds',508 who: 'AccountId32',509 amount: 'u128',510 },511 ReserveRepatriated: {512 currencyId: 'PalletForeignAssetsAssetIds',513 from: 'AccountId32',514 to: 'AccountId32',515 amount: 'u128',516 status: 'FrameSupportTokensMiscBalanceStatus',517 },518 BalanceSet: {519 currencyId: 'PalletForeignAssetsAssetIds',520 who: 'AccountId32',521 free: 'u128',522 reserved: 'u128',523 },524 TotalIssuanceSet: {525 currencyId: 'PalletForeignAssetsAssetIds',526 amount: 'u128',527 },528 Withdrawn: {529 currencyId: 'PalletForeignAssetsAssetIds',530 who: 'AccountId32',531 amount: 'u128',532 },533 Slashed: {534 currencyId: 'PalletForeignAssetsAssetIds',535 who: 'AccountId32',536 freeAmount: 'u128',537 reservedAmount: 'u128',538 },539 Deposited: {540 currencyId: 'PalletForeignAssetsAssetIds',541 who: 'AccountId32',542 amount: 'u128',543 },544 LockSet: {545 lockId: '[u8;8]',546 currencyId: 'PalletForeignAssetsAssetIds',547 who: 'AccountId32',548 amount: 'u128',549 },550 LockRemoved: {551 lockId: '[u8;8]',552 currencyId: 'PalletForeignAssetsAssetIds',553 who: 'AccountId32'554 }555 }556 },557 /**558 * Lookup59: pallet_foreign_assets::AssetIds559 **/560 PalletForeignAssetsAssetIds: {561 _enum: {562 ForeignAssetId: 'u32',563 NativeAssetId: 'PalletForeignAssetsNativeCurrency'564 }565 },566 /**567 * Lookup60: pallet_foreign_assets::NativeCurrency568 **/569 PalletForeignAssetsNativeCurrency: {570 _enum: ['Here', 'Parent']571 },572 /**573 * Lookup61: cumulus_pallet_xcmp_queue::pallet::Event<T>574 **/575 CumulusPalletXcmpQueueEvent: {576 _enum: {577 Success: {578 messageHash: 'Option<H256>',579 weight: 'u64',580 },581 Fail: {582 messageHash: 'Option<H256>',583 error: 'XcmV2TraitsError',584 weight: 'u64',585 },586 BadVersion: {587 messageHash: 'Option<H256>',588 },589 BadFormat: {590 messageHash: 'Option<H256>',591 },592 UpwardMessageSent: {593 messageHash: 'Option<H256>',594 },595 XcmpMessageSent: {596 messageHash: 'Option<H256>',597 },598 OverweightEnqueued: {599 sender: 'u32',600 sentAt: 'u32',601 index: 'u64',602 required: 'u64',603 },604 OverweightServiced: {605 index: 'u64',606 used: 'u64'607 }608 }609 },610 /**611 * Lookup63: xcm::v2::traits::Error612 **/613 XcmV2TraitsError: {614 _enum: {615 Overflow: 'Null',616 Unimplemented: 'Null',617 UntrustedReserveLocation: 'Null',618 UntrustedTeleportLocation: 'Null',619 MultiLocationFull: 'Null',620 MultiLocationNotInvertible: 'Null',621 BadOrigin: 'Null',622 InvalidLocation: 'Null',623 AssetNotFound: 'Null',624 FailedToTransactAsset: 'Null',625 NotWithdrawable: 'Null',626 LocationCannotHold: 'Null',627 ExceedsMaxMessageSize: 'Null',628 DestinationUnsupported: 'Null',629 Transport: 'Null',630 Unroutable: 'Null',631 UnknownClaim: 'Null',632 FailedToDecode: 'Null',633 MaxWeightInvalid: 'Null',634 NotHoldingFees: 'Null',635 TooExpensive: 'Null',636 Trap: 'u64',637 UnhandledXcmVersion: 'Null',638 WeightLimitReached: 'u64',639 Barrier: 'Null',640 WeightNotComputable: 'Null'641 }642 },643 /**644 * Lookup65: pallet_xcm::pallet::Event<T>645 **/646 PalletXcmEvent: {647 _enum: {648 Attempted: 'XcmV2TraitsOutcome',649 Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',650 UnexpectedResponse: '(XcmV1MultiLocation,u64)',651 ResponseReady: '(u64,XcmV2Response)',652 Notified: '(u64,u8,u8)',653 NotifyOverweight: '(u64,u8,u8,u64,u64)',654 NotifyDispatchError: '(u64,u8,u8)',655 NotifyDecodeFailed: '(u64,u8,u8)',656 InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',657 InvalidResponderVersion: '(XcmV1MultiLocation,u64)',658 ResponseTaken: 'u64',659 AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',660 VersionChangeNotified: '(XcmV1MultiLocation,u32)',661 SupportedVersionChanged: '(XcmV1MultiLocation,u32)',662 NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',663 NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'664 }665 },666 /**667 * Lookup66: xcm::v2::traits::Outcome668 **/669 XcmV2TraitsOutcome: {670 _enum: {671 Complete: 'u64',672 Incomplete: '(u64,XcmV2TraitsError)',673 Error: 'XcmV2TraitsError'674 }675 },528 /**676 /**529 * Lookup55: xcm::v2::Xcm<Call>677 * Lookup67: xcm::v2::Xcm<Call>530 **/678 **/531 XcmV2Xcm: 'Vec<XcmV2Instruction>',679 XcmV2Xcm: 'Vec<XcmV2Instruction>',532 /**680 /**533 * Lookup57: xcm::v2::Instruction<Call>681 * Lookup69: xcm::v2::Instruction<Call>534 **/682 **/535 XcmV2Instruction: {683 XcmV2Instruction: {536 _enum: {684 _enum: {537 WithdrawAsset: 'XcmV1MultiassetMultiAssets',685 WithdrawAsset: 'XcmV1MultiassetMultiAssets',627 UnsubscribeVersion: 'Null'775 UnsubscribeVersion: 'Null'628 }776 }629 },777 },630 /**631 * Lookup58: xcm::v1::multiasset::MultiAssets632 **/633 XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',634 /**635 * Lookup60: xcm::v1::multiasset::MultiAsset636 **/637 XcmV1MultiAsset: {638 id: 'XcmV1MultiassetAssetId',639 fun: 'XcmV1MultiassetFungibility'640 },641 /**642 * Lookup61: xcm::v1::multiasset::AssetId643 **/644 XcmV1MultiassetAssetId: {645 _enum: {646 Concrete: 'XcmV1MultiLocation',647 Abstract: 'Bytes'648 }649 },650 /**651 * Lookup62: xcm::v1::multiasset::Fungibility652 **/653 XcmV1MultiassetFungibility: {654 _enum: {655 Fungible: 'Compact<u128>',656 NonFungible: 'XcmV1MultiassetAssetInstance'657 }658 },659 /**660 * Lookup63: xcm::v1::multiasset::AssetInstance661 **/662 XcmV1MultiassetAssetInstance: {663 _enum: {664 Undefined: 'Null',665 Index: 'Compact<u128>',666 Array4: '[u8;4]',667 Array8: '[u8;8]',668 Array16: '[u8;16]',669 Array32: '[u8;32]',670 Blob: 'Bytes'671 }672 },673 /**778 /**674 * Lookup66: xcm::v2::Response779 * Lookup70: xcm::v2::Response675 **/780 **/676 XcmV2Response: {781 XcmV2Response: {677 _enum: {782 _enum: {678 Null: 'Null',783 Null: 'Null',681 Version: 'u32'786 Version: 'u32'682 }787 }683 },788 },684 /**789 /**685 * Lookup69: xcm::v0::OriginKind790 * Lookup73: xcm::v0::OriginKind686 **/791 **/687 XcmV0OriginKind: {792 XcmV0OriginKind: {688 _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']793 _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']689 },794 },690 /**795 /**691 * Lookup70: xcm::double_encoded::DoubleEncoded<T>796 * Lookup74: xcm::double_encoded::DoubleEncoded<T>692 **/797 **/693 XcmDoubleEncoded: {798 XcmDoubleEncoded: {694 encoded: 'Bytes'799 encoded: 'Bytes'695 },800 },696 /**801 /**697 * Lookup71: xcm::v1::multiasset::MultiAssetFilter802 * Lookup75: xcm::v1::multiasset::MultiAssetFilter698 **/803 **/699 XcmV1MultiassetMultiAssetFilter: {804 XcmV1MultiassetMultiAssetFilter: {700 _enum: {805 _enum: {701 Definite: 'XcmV1MultiassetMultiAssets',806 Definite: 'XcmV1MultiassetMultiAssets',702 Wild: 'XcmV1MultiassetWildMultiAsset'807 Wild: 'XcmV1MultiassetWildMultiAsset'703 }808 }704 },809 },705 /**810 /**706 * Lookup72: xcm::v1::multiasset::WildMultiAsset811 * Lookup76: xcm::v1::multiasset::WildMultiAsset707 **/812 **/708 XcmV1MultiassetWildMultiAsset: {813 XcmV1MultiassetWildMultiAsset: {709 _enum: {814 _enum: {710 All: 'Null',815 All: 'Null',714 }819 }715 }820 }716 },821 },717 /**822 /**718 * Lookup73: xcm::v1::multiasset::WildFungibility823 * Lookup77: xcm::v1::multiasset::WildFungibility719 **/824 **/720 XcmV1MultiassetWildFungibility: {825 XcmV1MultiassetWildFungibility: {721 _enum: ['Fungible', 'NonFungible']826 _enum: ['Fungible', 'NonFungible']722 },827 },723 /**828 /**724 * Lookup74: xcm::v2::WeightLimit829 * Lookup78: xcm::v2::WeightLimit725 **/830 **/726 XcmV2WeightLimit: {831 XcmV2WeightLimit: {727 _enum: {832 _enum: {728 Unlimited: 'Null',833 Unlimited: 'Null',729 Limited: 'Compact<u64>'834 Limited: 'Compact<u64>'730 }835 }731 },836 },732 /**837 /**733 * Lookup76: xcm::VersionedMultiAssets838 * Lookup80: xcm::VersionedMultiAssets734 **/839 **/735 XcmVersionedMultiAssets: {840 XcmVersionedMultiAssets: {736 _enum: {841 _enum: {737 V0: 'Vec<XcmV0MultiAsset>',842 V0: 'Vec<XcmV0MultiAsset>',738 V1: 'XcmV1MultiassetMultiAssets'843 V1: 'XcmV1MultiassetMultiAssets'739 }844 }740 },845 },741 /**846 /**742 * Lookup78: xcm::v0::multi_asset::MultiAsset847 * Lookup82: xcm::v0::multi_asset::MultiAsset743 **/848 **/744 XcmV0MultiAsset: {849 XcmV0MultiAsset: {745 _enum: {850 _enum: {746 None: 'Null',851 None: 'Null',777 }882 }778 }883 }779 },884 },780 /**885 /**781 * Lookup79: xcm::v0::multi_location::MultiLocation886 * Lookup83: xcm::v0::multi_location::MultiLocation782 **/887 **/783 XcmV0MultiLocation: {888 XcmV0MultiLocation: {784 _enum: {889 _enum: {785 Null: 'Null',890 Null: 'Null',793 X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'898 X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'794 }899 }795 },900 },796 /**901 /**797 * Lookup80: xcm::v0::junction::Junction902 * Lookup84: xcm::v0::junction::Junction798 **/903 **/799 XcmV0Junction: {904 XcmV0Junction: {800 _enum: {905 _enum: {801 Parent: 'Null',906 Parent: 'Null',822 }927 }823 }928 }824 },929 },825 /**930 /**826 * Lookup81: xcm::VersionedMultiLocation931 * Lookup85: xcm::VersionedMultiLocation827 **/932 **/828 XcmVersionedMultiLocation: {933 XcmVersionedMultiLocation: {829 _enum: {934 _enum: {830 V0: 'XcmV0MultiLocation',935 V0: 'XcmV0MultiLocation',831 V1: 'XcmV1MultiLocation'936 V1: 'XcmV1MultiLocation'832 }937 }833 },938 },834 /**939 /**835 * Lookup82: cumulus_pallet_xcm::pallet::Event<T>940 * Lookup86: cumulus_pallet_xcm::pallet::Event<T>836 **/941 **/837 CumulusPalletXcmEvent: {942 CumulusPalletXcmEvent: {838 _enum: {943 _enum: {839 InvalidFormat: '[u8;8]',944 InvalidFormat: '[u8;8]',840 UnsupportedVersion: '[u8;8]',945 UnsupportedVersion: '[u8;8]',841 ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'946 ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'842 }947 }843 },948 },844 /**949 /**845 * Lookup83: cumulus_pallet_dmp_queue::pallet::Event<T>950 * Lookup87: cumulus_pallet_dmp_queue::pallet::Event<T>846 **/951 **/847 CumulusPalletDmpQueueEvent: {952 CumulusPalletDmpQueueEvent: {848 _enum: {953 _enum: {849 InvalidFormat: {954 InvalidFormat: {872 }977 }873 }978 }874 },979 },875 /**980 /**876 * Lookup84: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>981 * Lookup88: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>877 **/982 **/878 PalletUniqueRawEvent: {983 PalletUniqueRawEvent: {879 _enum: {984 _enum: {880 CollectionSponsorRemoved: 'u32',985 CollectionSponsorRemoved: 'u32',889 CollectionPermissionSet: 'u32'994 CollectionPermissionSet: 'u32'890 }995 }891 },996 },892 /**997 /**893 * Lookup85: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>998 * Lookup89: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>894 **/999 **/895 PalletEvmAccountBasicCrossAccountIdRepr: {1000 PalletEvmAccountBasicCrossAccountIdRepr: {896 _enum: {1001 _enum: {897 Substrate: 'AccountId32',1002 Substrate: 'AccountId32',898 Ethereum: 'H160'1003 Ethereum: 'H160'899 }1004 }900 },1005 },901 /**1006 /**902 * Lookup88: pallet_unique_scheduler::pallet::Event<T>1007 * Lookup92: pallet_unique_scheduler::pallet::Event<T>903 **/1008 **/904 PalletUniqueSchedulerEvent: {1009 PalletUniqueSchedulerEvent: {905 _enum: {1010 _enum: {906 Scheduled: {1011 Scheduled: {923 }1028 }924 }1029 }925 },1030 },926 /**1031 /**927 * Lookup91: frame_support::traits::schedule::LookupError1032 * Lookup95: frame_support::traits::schedule::LookupError928 **/1033 **/929 FrameSupportScheduleLookupError: {1034 FrameSupportScheduleLookupError: {930 _enum: ['Unknown', 'BadFormat']1035 _enum: ['Unknown', 'BadFormat']931 },1036 },932 /**1037 /**933 * Lookup92: pallet_common::pallet::Event<T>1038 * Lookup96: pallet_common::pallet::Event<T>934 **/1039 **/935 PalletCommonEvent: {1040 PalletCommonEvent: {936 _enum: {1041 _enum: {937 CollectionCreated: '(u32,u8,AccountId32)',1042 CollectionCreated: '(u32,u8,AccountId32)',947 PropertyPermissionSet: '(u32,Bytes)'1052 PropertyPermissionSet: '(u32,Bytes)'948 }1053 }949 },1054 },950 /**1055 /**951 * Lookup95: pallet_structure::pallet::Event<T>1056 * Lookup99: pallet_structure::pallet::Event<T>952 **/1057 **/953 PalletStructureEvent: {1058 PalletStructureEvent: {954 _enum: {1059 _enum: {955 Executed: 'Result<Null, SpRuntimeDispatchError>'1060 Executed: 'Result<Null, SpRuntimeDispatchError>'956 }1061 }957 },1062 },958 /**1063 /**959 * Lookup96: pallet_rmrk_core::pallet::Event<T>1064 * Lookup100: pallet_rmrk_core::pallet::Event<T>960 **/1065 **/961 PalletRmrkCoreEvent: {1066 PalletRmrkCoreEvent: {962 _enum: {1067 _enum: {963 CollectionCreated: {1068 CollectionCreated: {1032 }1137 }1033 }1138 }1034 },1139 },1035 /**1140 /**1036 * Lookup97: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1141 * Lookup101: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1037 **/1142 **/1038 RmrkTraitsNftAccountIdOrCollectionNftTuple: {1143 RmrkTraitsNftAccountIdOrCollectionNftTuple: {1039 _enum: {1144 _enum: {1040 AccountId: 'AccountId32',1145 AccountId: 'AccountId32',1041 CollectionAndNftTuple: '(u32,u32)'1146 CollectionAndNftTuple: '(u32,u32)'1042 }1147 }1043 },1148 },1044 /**1149 /**1045 * Lookup102: pallet_rmrk_equip::pallet::Event<T>1150 * Lookup106: pallet_rmrk_equip::pallet::Event<T>1046 **/1151 **/1047 PalletRmrkEquipEvent: {1152 PalletRmrkEquipEvent: {1048 _enum: {1153 _enum: {1049 BaseCreated: {1154 BaseCreated: {1056 }1161 }1057 }1162 }1058 },1163 },1059 /**1164 /**1060 * Lookup103: pallet_app_promotion::pallet::Event<T>1165 * Lookup107: pallet_app_promotion::pallet::Event<T>1061 **/1166 **/1062 PalletAppPromotionEvent: {1167 PalletAppPromotionEvent: {1063 _enum: {1168 _enum: {1064 StakingRecalculation: '(AccountId32,u128,u128)',1169 StakingRecalculation: '(AccountId32,u128,u128)',1067 SetAdmin: 'AccountId32'1172 SetAdmin: 'AccountId32'1068 }1173 }1069 },1174 },1175 /**1176 * Lookup108: pallet_foreign_assets::module::Event<T>1177 **/1178 PalletForeignAssetsModuleEvent: {1179 _enum: {1180 ForeignAssetRegistered: {1181 assetId: 'u32',1182 assetAddress: 'XcmV1MultiLocation',1183 metadata: 'PalletForeignAssetsModuleAssetMetadata',1184 },1185 ForeignAssetUpdated: {1186 assetId: 'u32',1187 assetAddress: 'XcmV1MultiLocation',1188 metadata: 'PalletForeignAssetsModuleAssetMetadata',1189 },1190 AssetRegistered: {1191 assetId: 'PalletForeignAssetsAssetIds',1192 metadata: 'PalletForeignAssetsModuleAssetMetadata',1193 },1194 AssetUpdated: {1195 assetId: 'PalletForeignAssetsAssetIds',1196 metadata: 'PalletForeignAssetsModuleAssetMetadata'1197 }1198 }1199 },1200 /**1201 * Lookup109: pallet_foreign_assets::module::AssetMetadata<Balance>1202 **/1203 PalletForeignAssetsModuleAssetMetadata: {1204 name: 'Bytes',1205 symbol: 'Bytes',1206 decimals: 'u8',1207 minimalBalance: 'u128'1208 },1070 /**1209 /**1071 * Lookup104: pallet_evm::pallet::Event<T>1210 * Lookup110: pallet_evm::pallet::Event<T>1072 **/1211 **/1073 PalletEvmEvent: {1212 PalletEvmEvent: {1074 _enum: {1213 _enum: {1075 Log: 'EthereumLog',1214 Log: 'EthereumLog',1081 BalanceWithdraw: '(AccountId32,H160,U256)'1220 BalanceWithdraw: '(AccountId32,H160,U256)'1082 }1221 }1083 },1222 },1084 /**1223 /**1085 * Lookup105: ethereum::log::Log1224 * Lookup111: ethereum::log::Log1086 **/1225 **/1087 EthereumLog: {1226 EthereumLog: {1088 address: 'H160',1227 address: 'H160',1089 topics: 'Vec<H256>',1228 topics: 'Vec<H256>',1090 data: 'Bytes'1229 data: 'Bytes'1091 },1230 },1092 /**1231 /**1093 * Lookup109: pallet_ethereum::pallet::Event1232 * Lookup115: pallet_ethereum::pallet::Event1094 **/1233 **/1095 PalletEthereumEvent: {1234 PalletEthereumEvent: {1096 _enum: {1235 _enum: {1097 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'1236 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'1098 }1237 }1099 },1238 },1100 /**1239 /**1101 * Lookup110: evm_core::error::ExitReason1240 * Lookup116: evm_core::error::ExitReason1102 **/1241 **/1103 EvmCoreErrorExitReason: {1242 EvmCoreErrorExitReason: {1104 _enum: {1243 _enum: {1105 Succeed: 'EvmCoreErrorExitSucceed',1244 Succeed: 'EvmCoreErrorExitSucceed',1108 Fatal: 'EvmCoreErrorExitFatal'1247 Fatal: 'EvmCoreErrorExitFatal'1109 }1248 }1110 },1249 },1111 /**1250 /**1112 * Lookup111: evm_core::error::ExitSucceed1251 * Lookup117: evm_core::error::ExitSucceed1113 **/1252 **/1114 EvmCoreErrorExitSucceed: {1253 EvmCoreErrorExitSucceed: {1115 _enum: ['Stopped', 'Returned', 'Suicided']1254 _enum: ['Stopped', 'Returned', 'Suicided']1116 },1255 },1117 /**1256 /**1118 * Lookup112: evm_core::error::ExitError1257 * Lookup118: evm_core::error::ExitError1119 **/1258 **/1120 EvmCoreErrorExitError: {1259 EvmCoreErrorExitError: {1121 _enum: {1260 _enum: {1122 StackUnderflow: 'Null',1261 StackUnderflow: 'Null',1136 InvalidCode: 'Null'1275 InvalidCode: 'Null'1137 }1276 }1138 },1277 },1139 /**1278 /**1140 * Lookup115: evm_core::error::ExitRevert1279 * Lookup121: evm_core::error::ExitRevert1141 **/1280 **/1142 EvmCoreErrorExitRevert: {1281 EvmCoreErrorExitRevert: {1143 _enum: ['Reverted']1282 _enum: ['Reverted']1144 },1283 },1145 /**1284 /**1146 * Lookup116: evm_core::error::ExitFatal1285 * Lookup122: evm_core::error::ExitFatal1147 **/1286 **/1148 EvmCoreErrorExitFatal: {1287 EvmCoreErrorExitFatal: {1149 _enum: {1288 _enum: {1150 NotSupported: 'Null',1289 NotSupported: 'Null',1153 Other: 'Text'1292 Other: 'Text'1154 }1293 }1155 },1294 },1156 /**1295 /**1157 * Lookup117: pallet_evm_contract_helpers::pallet::Event<T>1296 * Lookup123: pallet_evm_contract_helpers::pallet::Event<T>1158 **/1297 **/1159 PalletEvmContractHelpersEvent: {1298 PalletEvmContractHelpersEvent: {1160 _enum: {1299 _enum: {1161 ContractSponsorSet: '(H160,AccountId32)',1300 ContractSponsorSet: '(H160,AccountId32)',1162 ContractSponsorshipConfirmed: '(H160,AccountId32)',1301 ContractSponsorshipConfirmed: '(H160,AccountId32)',1163 ContractSponsorRemoved: 'H160'1302 ContractSponsorRemoved: 'H160'1164 }1303 }1165 },1304 },1166 /**1305 /**1167 * Lookup118: frame_system::Phase1306 * Lookup124: frame_system::Phase1168 **/1307 **/1169 FrameSystemPhase: {1308 FrameSystemPhase: {1170 _enum: {1309 _enum: {1171 ApplyExtrinsic: 'u32',1310 ApplyExtrinsic: 'u32',1172 Finalization: 'Null',1311 Finalization: 'Null',1173 Initialization: 'Null'1312 Initialization: 'Null'1174 }1313 }1175 },1314 },1176 /**1315 /**1177 * Lookup120: frame_system::LastRuntimeUpgradeInfo1316 * Lookup126: frame_system::LastRuntimeUpgradeInfo1178 **/1317 **/1179 FrameSystemLastRuntimeUpgradeInfo: {1318 FrameSystemLastRuntimeUpgradeInfo: {1180 specVersion: 'Compact<u32>',1319 specVersion: 'Compact<u32>',1181 specName: 'Text'1320 specName: 'Text'1182 },1321 },1183 /**1322 /**1184 * Lookup121: frame_system::pallet::Call<T>1323 * Lookup127: frame_system::pallet::Call<T>1185 **/1324 **/1186 FrameSystemCall: {1325 FrameSystemCall: {1187 _enum: {1326 _enum: {1188 fill_block: {1327 fill_block: {1218 }1357 }1219 }1358 }1220 },1359 },1221 /**1360 /**1222 * Lookup126: frame_system::limits::BlockWeights1361 * Lookup132: frame_system::limits::BlockWeights1223 **/1362 **/1224 FrameSystemLimitsBlockWeights: {1363 FrameSystemLimitsBlockWeights: {1225 baseBlock: 'u64',1364 baseBlock: 'u64',1226 maxBlock: 'u64',1365 maxBlock: 'u64',1227 perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'1366 perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'1228 },1367 },1229 /**1368 /**1230 * Lookup127: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>1369 * Lookup133: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>1231 **/1370 **/1232 FrameSupportWeightsPerDispatchClassWeightsPerClass: {1371 FrameSupportWeightsPerDispatchClassWeightsPerClass: {1233 normal: 'FrameSystemLimitsWeightsPerClass',1372 normal: 'FrameSystemLimitsWeightsPerClass',1234 operational: 'FrameSystemLimitsWeightsPerClass',1373 operational: 'FrameSystemLimitsWeightsPerClass',1235 mandatory: 'FrameSystemLimitsWeightsPerClass'1374 mandatory: 'FrameSystemLimitsWeightsPerClass'1236 },1375 },1237 /**1376 /**1238 * Lookup128: frame_system::limits::WeightsPerClass1377 * Lookup134: frame_system::limits::WeightsPerClass1239 **/1378 **/1240 FrameSystemLimitsWeightsPerClass: {1379 FrameSystemLimitsWeightsPerClass: {1241 baseExtrinsic: 'u64',1380 baseExtrinsic: 'u64',1242 maxExtrinsic: 'Option<u64>',1381 maxExtrinsic: 'Option<u64>',1243 maxTotal: 'Option<u64>',1382 maxTotal: 'Option<u64>',1244 reserved: 'Option<u64>'1383 reserved: 'Option<u64>'1245 },1384 },1246 /**1385 /**1247 * Lookup130: frame_system::limits::BlockLength1386 * Lookup136: frame_system::limits::BlockLength1248 **/1387 **/1249 FrameSystemLimitsBlockLength: {1388 FrameSystemLimitsBlockLength: {1250 max: 'FrameSupportWeightsPerDispatchClassU32'1389 max: 'FrameSupportWeightsPerDispatchClassU32'1251 },1390 },1252 /**1391 /**1253 * Lookup131: frame_support::weights::PerDispatchClass<T>1392 * Lookup137: frame_support::weights::PerDispatchClass<T>1254 **/1393 **/1255 FrameSupportWeightsPerDispatchClassU32: {1394 FrameSupportWeightsPerDispatchClassU32: {1256 normal: 'u32',1395 normal: 'u32',1257 operational: 'u32',1396 operational: 'u32',1258 mandatory: 'u32'1397 mandatory: 'u32'1259 },1398 },1260 /**1399 /**1261 * Lookup132: frame_support::weights::RuntimeDbWeight1400 * Lookup138: frame_support::weights::RuntimeDbWeight1262 **/1401 **/1263 FrameSupportWeightsRuntimeDbWeight: {1402 FrameSupportWeightsRuntimeDbWeight: {1264 read: 'u64',1403 read: 'u64',1265 write: 'u64'1404 write: 'u64'1266 },1405 },1267 /**1406 /**1268 * Lookup133: sp_version::RuntimeVersion1407 * Lookup139: sp_version::RuntimeVersion1269 **/1408 **/1270 SpVersionRuntimeVersion: {1409 SpVersionRuntimeVersion: {1271 specName: 'Text',1410 specName: 'Text',1272 implName: 'Text',1411 implName: 'Text',1277 transactionVersion: 'u32',1416 transactionVersion: 'u32',1278 stateVersion: 'u8'1417 stateVersion: 'u8'1279 },1418 },1280 /**1419 /**1281 * Lookup138: frame_system::pallet::Error<T>1420 * Lookup144: frame_system::pallet::Error<T>1282 **/1421 **/1283 FrameSystemError: {1422 FrameSystemError: {1284 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1423 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1285 },1424 },1286 /**1425 /**1287 * Lookup139: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1426 * Lookup145: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1288 **/1427 **/1289 PolkadotPrimitivesV2PersistedValidationData: {1428 PolkadotPrimitivesV2PersistedValidationData: {1290 parentHead: 'Bytes',1429 parentHead: 'Bytes',1291 relayParentNumber: 'u32',1430 relayParentNumber: 'u32',1292 relayParentStorageRoot: 'H256',1431 relayParentStorageRoot: 'H256',1293 maxPovSize: 'u32'1432 maxPovSize: 'u32'1294 },1433 },1295 /**1434 /**1296 * Lookup142: polkadot_primitives::v2::UpgradeRestriction1435 * Lookup148: polkadot_primitives::v2::UpgradeRestriction1297 **/1436 **/1298 PolkadotPrimitivesV2UpgradeRestriction: {1437 PolkadotPrimitivesV2UpgradeRestriction: {1299 _enum: ['Present']1438 _enum: ['Present']1300 },1439 },1301 /**1440 /**1302 * Lookup143: sp_trie::storage_proof::StorageProof1441 * Lookup149: sp_trie::storage_proof::StorageProof1303 **/1442 **/1304 SpTrieStorageProof: {1443 SpTrieStorageProof: {1305 trieNodes: 'BTreeSet<Bytes>'1444 trieNodes: 'BTreeSet<Bytes>'1306 },1445 },1307 /**1446 /**1308 * Lookup145: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1447 * Lookup151: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1309 **/1448 **/1310 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1449 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1311 dmqMqcHead: 'H256',1450 dmqMqcHead: 'H256',1312 relayDispatchQueueSize: '(u32,u32)',1451 relayDispatchQueueSize: '(u32,u32)',1313 ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1452 ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1314 egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1453 egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1315 },1454 },1316 /**1455 /**1317 * Lookup148: polkadot_primitives::v2::AbridgedHrmpChannel1456 * Lookup154: polkadot_primitives::v2::AbridgedHrmpChannel1318 **/1457 **/1319 PolkadotPrimitivesV2AbridgedHrmpChannel: {1458 PolkadotPrimitivesV2AbridgedHrmpChannel: {1320 maxCapacity: 'u32',1459 maxCapacity: 'u32',1321 maxTotalSize: 'u32',1460 maxTotalSize: 'u32',1324 totalSize: 'u32',1463 totalSize: 'u32',1325 mqcHead: 'Option<H256>'1464 mqcHead: 'Option<H256>'1326 },1465 },1327 /**1466 /**1328 * Lookup149: polkadot_primitives::v2::AbridgedHostConfiguration1467 * Lookup155: polkadot_primitives::v2::AbridgedHostConfiguration1329 **/1468 **/1330 PolkadotPrimitivesV2AbridgedHostConfiguration: {1469 PolkadotPrimitivesV2AbridgedHostConfiguration: {1331 maxCodeSize: 'u32',1470 maxCodeSize: 'u32',1332 maxHeadDataSize: 'u32',1471 maxHeadDataSize: 'u32',1338 validationUpgradeCooldown: 'u32',1477 validationUpgradeCooldown: 'u32',1339 validationUpgradeDelay: 'u32'1478 validationUpgradeDelay: 'u32'1340 },1479 },1341 /**1480 /**1342 * Lookup155: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1481 * Lookup161: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1343 **/1482 **/1344 PolkadotCorePrimitivesOutboundHrmpMessage: {1483 PolkadotCorePrimitivesOutboundHrmpMessage: {1345 recipient: 'u32',1484 recipient: 'u32',1346 data: 'Bytes'1485 data: 'Bytes'1347 },1486 },1348 /**1487 /**1349 * Lookup156: cumulus_pallet_parachain_system::pallet::Call<T>1488 * Lookup162: cumulus_pallet_parachain_system::pallet::Call<T>1350 **/1489 **/1351 CumulusPalletParachainSystemCall: {1490 CumulusPalletParachainSystemCall: {1352 _enum: {1491 _enum: {1353 set_validation_data: {1492 set_validation_data: {1364 }1503 }1365 }1504 }1366 },1505 },1367 /**1506 /**1368 * Lookup157: cumulus_primitives_parachain_inherent::ParachainInherentData1507 * Lookup163: cumulus_primitives_parachain_inherent::ParachainInherentData1369 **/1508 **/1370 CumulusPrimitivesParachainInherentParachainInherentData: {1509 CumulusPrimitivesParachainInherentParachainInherentData: {1371 validationData: 'PolkadotPrimitivesV2PersistedValidationData',1510 validationData: 'PolkadotPrimitivesV2PersistedValidationData',1372 relayChainState: 'SpTrieStorageProof',1511 relayChainState: 'SpTrieStorageProof',1373 downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1512 downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1374 horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1513 horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1375 },1514 },1376 /**1515 /**1377 * Lookup159: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1516 * Lookup165: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1378 **/1517 **/1379 PolkadotCorePrimitivesInboundDownwardMessage: {1518 PolkadotCorePrimitivesInboundDownwardMessage: {1380 sentAt: 'u32',1519 sentAt: 'u32',1381 msg: 'Bytes'1520 msg: 'Bytes'1382 },1521 },1383 /**1522 /**1384 * Lookup162: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1523 * Lookup168: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1385 **/1524 **/1386 PolkadotCorePrimitivesInboundHrmpMessage: {1525 PolkadotCorePrimitivesInboundHrmpMessage: {1387 sentAt: 'u32',1526 sentAt: 'u32',1388 data: 'Bytes'1527 data: 'Bytes'1389 },1528 },1390 /**1529 /**1391 * Lookup165: cumulus_pallet_parachain_system::pallet::Error<T>1530 * Lookup171: cumulus_pallet_parachain_system::pallet::Error<T>1392 **/1531 **/1393 CumulusPalletParachainSystemError: {1532 CumulusPalletParachainSystemError: {1394 _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1533 _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1395 },1534 },1396 /**1535 /**1397 * Lookup167: pallet_balances::BalanceLock<Balance>1536 * Lookup173: pallet_balances::BalanceLock<Balance>1398 **/1537 **/1399 PalletBalancesBalanceLock: {1538 PalletBalancesBalanceLock: {1400 id: '[u8;8]',1539 id: '[u8;8]',1401 amount: 'u128',1540 amount: 'u128',1402 reasons: 'PalletBalancesReasons'1541 reasons: 'PalletBalancesReasons'1403 },1542 },1404 /**1543 /**1405 * Lookup168: pallet_balances::Reasons1544 * Lookup174: pallet_balances::Reasons1406 **/1545 **/1407 PalletBalancesReasons: {1546 PalletBalancesReasons: {1408 _enum: ['Fee', 'Misc', 'All']1547 _enum: ['Fee', 'Misc', 'All']1409 },1548 },1410 /**1549 /**1411 * Lookup171: pallet_balances::ReserveData<ReserveIdentifier, Balance>1550 * Lookup177: pallet_balances::ReserveData<ReserveIdentifier, Balance>1412 **/1551 **/1413 PalletBalancesReserveData: {1552 PalletBalancesReserveData: {1414 id: '[u8;16]',1553 id: '[u8;16]',1415 amount: 'u128'1554 amount: 'u128'1416 },1555 },1417 /**1556 /**1418 * Lookup173: pallet_balances::Releases1557 * Lookup179: pallet_balances::Releases1419 **/1558 **/1420 PalletBalancesReleases: {1559 PalletBalancesReleases: {1421 _enum: ['V1_0_0', 'V2_0_0']1560 _enum: ['V1_0_0', 'V2_0_0']1422 },1561 },1423 /**1562 /**1424 * Lookup174: pallet_balances::pallet::Call<T, I>1563 * Lookup180: pallet_balances::pallet::Call<T, I>1425 **/1564 **/1426 PalletBalancesCall: {1565 PalletBalancesCall: {1427 _enum: {1566 _enum: {1428 transfer: {1567 transfer: {1453 }1592 }1454 }1593 }1455 },1594 },1456 /**1595 /**1457 * Lookup177: pallet_balances::pallet::Error<T, I>1596 * Lookup183: pallet_balances::pallet::Error<T, I>1458 **/1597 **/1459 PalletBalancesError: {1598 PalletBalancesError: {1460 _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1599 _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1461 },1600 },1462 /**1601 /**1463 * Lookup179: pallet_timestamp::pallet::Call<T>1602 * Lookup185: pallet_timestamp::pallet::Call<T>1464 **/1603 **/1465 PalletTimestampCall: {1604 PalletTimestampCall: {1466 _enum: {1605 _enum: {1467 set: {1606 set: {1468 now: 'Compact<u64>'1607 now: 'Compact<u64>'1469 }1608 }1470 }1609 }1471 },1610 },1472 /**1611 /**1473 * Lookup181: pallet_transaction_payment::Releases1612 * Lookup187: pallet_transaction_payment::Releases1474 **/1613 **/1475 PalletTransactionPaymentReleases: {1614 PalletTransactionPaymentReleases: {1476 _enum: ['V1Ancient', 'V2']1615 _enum: ['V1Ancient', 'V2']1477 },1616 },1478 /**1617 /**1479 * Lookup182: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1618 * Lookup188: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1480 **/1619 **/1481 PalletTreasuryProposal: {1620 PalletTreasuryProposal: {1482 proposer: 'AccountId32',1621 proposer: 'AccountId32',1483 value: 'u128',1622 value: 'u128',1484 beneficiary: 'AccountId32',1623 beneficiary: 'AccountId32',1485 bond: 'u128'1624 bond: 'u128'1486 },1625 },1487 /**1626 /**1488 * Lookup185: pallet_treasury::pallet::Call<T, I>1627 * Lookup191: pallet_treasury::pallet::Call<T, I>1489 **/1628 **/1490 PalletTreasuryCall: {1629 PalletTreasuryCall: {1491 _enum: {1630 _enum: {1492 propose_spend: {1631 propose_spend: {1508 }1647 }1509 }1648 }1510 },1649 },1511 /**1650 /**1512 * Lookup188: frame_support::PalletId1651 * Lookup194: frame_support::PalletId1513 **/1652 **/1514 FrameSupportPalletId: '[u8;8]',1653 FrameSupportPalletId: '[u8;8]',1515 /**1654 /**1516 * Lookup189: pallet_treasury::pallet::Error<T, I>1655 * Lookup195: pallet_treasury::pallet::Error<T, I>1517 **/1656 **/1518 PalletTreasuryError: {1657 PalletTreasuryError: {1519 _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1658 _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1520 },1659 },1521 /**1660 /**1522 * Lookup190: pallet_sudo::pallet::Call<T>1661 * Lookup196: pallet_sudo::pallet::Call<T>1523 **/1662 **/1524 PalletSudoCall: {1663 PalletSudoCall: {1525 _enum: {1664 _enum: {1526 sudo: {1665 sudo: {1542 }1681 }1543 }1682 }1544 },1683 },1545 /**1684 /**1546 * Lookup192: orml_vesting::module::Call<T>1685 * Lookup198: orml_vesting::module::Call<T>1547 **/1686 **/1548 OrmlVestingModuleCall: {1687 OrmlVestingModuleCall: {1549 _enum: {1688 _enum: {1550 claim: 'Null',1689 claim: 'Null',1561 }1700 }1562 }1701 }1563 },1702 },1703 /**1704 * Lookup200: orml_xtokens::module::Call<T>1705 **/1706 OrmlXtokensModuleCall: {1707 _enum: {1708 transfer: {1709 currencyId: 'PalletForeignAssetsAssetIds',1710 amount: 'u128',1711 dest: 'XcmVersionedMultiLocation',1712 destWeight: 'u64',1713 },1714 transfer_multiasset: {1715 asset: 'XcmVersionedMultiAsset',1716 dest: 'XcmVersionedMultiLocation',1717 destWeight: 'u64',1718 },1719 transfer_with_fee: {1720 currencyId: 'PalletForeignAssetsAssetIds',1721 amount: 'u128',1722 fee: 'u128',1723 dest: 'XcmVersionedMultiLocation',1724 destWeight: 'u64',1725 },1726 transfer_multiasset_with_fee: {1727 asset: 'XcmVersionedMultiAsset',1728 fee: 'XcmVersionedMultiAsset',1729 dest: 'XcmVersionedMultiLocation',1730 destWeight: 'u64',1731 },1732 transfer_multicurrencies: {1733 currencies: 'Vec<(PalletForeignAssetsAssetIds,u128)>',1734 feeItem: 'u32',1735 dest: 'XcmVersionedMultiLocation',1736 destWeight: 'u64',1737 },1738 transfer_multiassets: {1739 assets: 'XcmVersionedMultiAssets',1740 feeItem: 'u32',1741 dest: 'XcmVersionedMultiLocation',1742 destWeight: 'u64'1743 }1744 }1745 },1746 /**1747 * Lookup201: xcm::VersionedMultiAsset1748 **/1749 XcmVersionedMultiAsset: {1750 _enum: {1751 V0: 'XcmV0MultiAsset',1752 V1: 'XcmV1MultiAsset'1753 }1754 },1755 /**1756 * Lookup204: orml_tokens::module::Call<T>1757 **/1758 OrmlTokensModuleCall: {1759 _enum: {1760 transfer: {1761 dest: 'MultiAddress',1762 currencyId: 'PalletForeignAssetsAssetIds',1763 amount: 'Compact<u128>',1764 },1765 transfer_all: {1766 dest: 'MultiAddress',1767 currencyId: 'PalletForeignAssetsAssetIds',1768 keepAlive: 'bool',1769 },1770 transfer_keep_alive: {1771 dest: 'MultiAddress',1772 currencyId: 'PalletForeignAssetsAssetIds',1773 amount: 'Compact<u128>',1774 },1775 force_transfer: {1776 source: 'MultiAddress',1777 dest: 'MultiAddress',1778 currencyId: 'PalletForeignAssetsAssetIds',1779 amount: 'Compact<u128>',1780 },1781 set_balance: {1782 who: 'MultiAddress',1783 currencyId: 'PalletForeignAssetsAssetIds',1784 newFree: 'Compact<u128>',1785 newReserved: 'Compact<u128>'1786 }1787 }1788 },1564 /**1789 /**1565 * Lookup194: cumulus_pallet_xcmp_queue::pallet::Call<T>1790 * Lookup205: cumulus_pallet_xcmp_queue::pallet::Call<T>1566 **/1791 **/1567 CumulusPalletXcmpQueueCall: {1792 CumulusPalletXcmpQueueCall: {1568 _enum: {1793 _enum: {1569 service_overweight: {1794 service_overweight: {1610 }1835 }1611 }1836 }1612 },1837 },1613 /**1838 /**1614 * Lookup195: pallet_xcm::pallet::Call<T>1839 * Lookup206: pallet_xcm::pallet::Call<T>1615 **/1840 **/1616 PalletXcmCall: {1841 PalletXcmCall: {1617 _enum: {1842 _enum: {1618 send: {1843 send: {1664 }1889 }1665 }1890 }1666 },1891 },1667 /**1892 /**1668 * Lookup196: xcm::VersionedXcm<Call>1893 * Lookup207: xcm::VersionedXcm<Call>1669 **/1894 **/1670 XcmVersionedXcm: {1895 XcmVersionedXcm: {1671 _enum: {1896 _enum: {1672 V0: 'XcmV0Xcm',1897 V0: 'XcmV0Xcm',1673 V1: 'XcmV1Xcm',1898 V1: 'XcmV1Xcm',1674 V2: 'XcmV2Xcm'1899 V2: 'XcmV2Xcm'1675 }1900 }1676 },1901 },1677 /**1902 /**1678 * Lookup197: xcm::v0::Xcm<Call>1903 * Lookup208: xcm::v0::Xcm<Call>1679 **/1904 **/1680 XcmV0Xcm: {1905 XcmV0Xcm: {1681 _enum: {1906 _enum: {1682 WithdrawAsset: {1907 WithdrawAsset: {1728 }1953 }1729 }1954 }1730 },1955 },1731 /**1956 /**1732 * Lookup199: xcm::v0::order::Order<Call>1957 * Lookup210: xcm::v0::order::Order<Call>1733 **/1958 **/1734 XcmV0Order: {1959 XcmV0Order: {1735 _enum: {1960 _enum: {1736 Null: 'Null',1961 Null: 'Null',1771 }1996 }1772 }1997 }1773 },1998 },1774 /**1999 /**1775 * Lookup201: xcm::v0::Response2000 * Lookup212: xcm::v0::Response1776 **/2001 **/1777 XcmV0Response: {2002 XcmV0Response: {1778 _enum: {2003 _enum: {1779 Assets: 'Vec<XcmV0MultiAsset>'2004 Assets: 'Vec<XcmV0MultiAsset>'1780 }2005 }1781 },2006 },1782 /**2007 /**1783 * Lookup202: xcm::v1::Xcm<Call>2008 * Lookup213: xcm::v1::Xcm<Call>1784 **/2009 **/1785 XcmV1Xcm: {2010 XcmV1Xcm: {1786 _enum: {2011 _enum: {1787 WithdrawAsset: {2012 WithdrawAsset: {1838 UnsubscribeVersion: 'Null'2063 UnsubscribeVersion: 'Null'1839 }2064 }1840 },2065 },1841 /**2066 /**1842 * Lookup204: xcm::v1::order::Order<Call>2067 * Lookup215: xcm::v1::order::Order<Call>1843 **/2068 **/1844 XcmV1Order: {2069 XcmV1Order: {1845 _enum: {2070 _enum: {1846 Noop: 'Null',2071 Noop: 'Null',1883 }2108 }1884 }2109 }1885 },2110 },1886 /**2111 /**1887 * Lookup206: xcm::v1::Response2112 * Lookup217: xcm::v1::Response1888 **/2113 **/1889 XcmV1Response: {2114 XcmV1Response: {1890 _enum: {2115 _enum: {1891 Assets: 'XcmV1MultiassetMultiAssets',2116 Assets: 'XcmV1MultiassetMultiAssets',1892 Version: 'u32'2117 Version: 'u32'1893 }2118 }1894 },2119 },1895 /**2120 /**1896 * Lookup220: cumulus_pallet_xcm::pallet::Call<T>2121 * Lookup231: cumulus_pallet_xcm::pallet::Call<T>1897 **/2122 **/1898 CumulusPalletXcmCall: 'Null',2123 CumulusPalletXcmCall: 'Null',1899 /**2124 /**1900 * Lookup221: cumulus_pallet_dmp_queue::pallet::Call<T>2125 * Lookup232: cumulus_pallet_dmp_queue::pallet::Call<T>1901 **/2126 **/1902 CumulusPalletDmpQueueCall: {2127 CumulusPalletDmpQueueCall: {1903 _enum: {2128 _enum: {1904 service_overweight: {2129 service_overweight: {1907 }2132 }1908 }2133 }1909 },2134 },1910 /**2135 /**1911 * Lookup222: pallet_inflation::pallet::Call<T>2136 * Lookup233: pallet_inflation::pallet::Call<T>1912 **/2137 **/1913 PalletInflationCall: {2138 PalletInflationCall: {1914 _enum: {2139 _enum: {1915 start_inflation: {2140 start_inflation: {1916 inflationStartRelayBlock: 'u32'2141 inflationStartRelayBlock: 'u32'1917 }2142 }1918 }2143 }1919 },2144 },1920 /**2145 /**1921 * Lookup223: pallet_unique::Call<T>2146 * Lookup234: pallet_unique::Call<T>1922 **/2147 **/1923 PalletUniqueCall: {2148 PalletUniqueCall: {1924 _enum: {2149 _enum: {1925 create_collection: {2150 create_collection: {2049 }2274 }2050 }2275 }2051 },2276 },2052 /**2277 /**2053 * Lookup228: up_data_structs::CollectionMode2278 * Lookup239: up_data_structs::CollectionMode2054 **/2279 **/2055 UpDataStructsCollectionMode: {2280 UpDataStructsCollectionMode: {2056 _enum: {2281 _enum: {2057 NFT: 'Null',2282 NFT: 'Null',2058 Fungible: 'u8',2283 Fungible: 'u8',2059 ReFungible: 'Null'2284 ReFungible: 'Null'2060 }2285 }2061 },2286 },2062 /**2287 /**2063 * Lookup229: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2288 * Lookup240: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2064 **/2289 **/2065 UpDataStructsCreateCollectionData: {2290 UpDataStructsCreateCollectionData: {2066 mode: 'UpDataStructsCollectionMode',2291 mode: 'UpDataStructsCollectionMode',2067 access: 'Option<UpDataStructsAccessMode>',2292 access: 'Option<UpDataStructsAccessMode>',2074 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2299 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2075 properties: 'Vec<UpDataStructsProperty>'2300 properties: 'Vec<UpDataStructsProperty>'2076 },2301 },2077 /**2302 /**2078 * Lookup231: up_data_structs::AccessMode2303 * Lookup242: up_data_structs::AccessMode2079 **/2304 **/2080 UpDataStructsAccessMode: {2305 UpDataStructsAccessMode: {2081 _enum: ['Normal', 'AllowList']2306 _enum: ['Normal', 'AllowList']2082 },2307 },2083 /**2308 /**2084 * Lookup233: up_data_structs::CollectionLimits2309 * Lookup244: up_data_structs::CollectionLimits2085 **/2310 **/2086 UpDataStructsCollectionLimits: {2311 UpDataStructsCollectionLimits: {2087 accountTokenOwnershipLimit: 'Option<u32>',2312 accountTokenOwnershipLimit: 'Option<u32>',2088 sponsoredDataSize: 'Option<u32>',2313 sponsoredDataSize: 'Option<u32>',2094 ownerCanDestroy: 'Option<bool>',2319 ownerCanDestroy: 'Option<bool>',2095 transfersEnabled: 'Option<bool>'2320 transfersEnabled: 'Option<bool>'2096 },2321 },2097 /**2322 /**2098 * Lookup235: up_data_structs::SponsoringRateLimit2323 * Lookup246: up_data_structs::SponsoringRateLimit2099 **/2324 **/2100 UpDataStructsSponsoringRateLimit: {2325 UpDataStructsSponsoringRateLimit: {2101 _enum: {2326 _enum: {2102 SponsoringDisabled: 'Null',2327 SponsoringDisabled: 'Null',2103 Blocks: 'u32'2328 Blocks: 'u32'2104 }2329 }2105 },2330 },2106 /**2331 /**2107 * Lookup238: up_data_structs::CollectionPermissions2332 * Lookup249: up_data_structs::CollectionPermissions2108 **/2333 **/2109 UpDataStructsCollectionPermissions: {2334 UpDataStructsCollectionPermissions: {2110 access: 'Option<UpDataStructsAccessMode>',2335 access: 'Option<UpDataStructsAccessMode>',2111 mintMode: 'Option<bool>',2336 mintMode: 'Option<bool>',2112 nesting: 'Option<UpDataStructsNestingPermissions>'2337 nesting: 'Option<UpDataStructsNestingPermissions>'2113 },2338 },2114 /**2339 /**2115 * Lookup240: up_data_structs::NestingPermissions2340 * Lookup251: up_data_structs::NestingPermissions2116 **/2341 **/2117 UpDataStructsNestingPermissions: {2342 UpDataStructsNestingPermissions: {2118 tokenOwner: 'bool',2343 tokenOwner: 'bool',2119 collectionAdmin: 'bool',2344 collectionAdmin: 'bool',2120 restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2345 restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2121 },2346 },2122 /**2347 /**2123 * Lookup242: up_data_structs::OwnerRestrictedSet2348 * Lookup253: up_data_structs::OwnerRestrictedSet2124 **/2349 **/2125 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2350 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2126 /**2351 /**2127 * Lookup247: up_data_structs::PropertyKeyPermission2352 * Lookup258: up_data_structs::PropertyKeyPermission2128 **/2353 **/2129 UpDataStructsPropertyKeyPermission: {2354 UpDataStructsPropertyKeyPermission: {2130 key: 'Bytes',2355 key: 'Bytes',2131 permission: 'UpDataStructsPropertyPermission'2356 permission: 'UpDataStructsPropertyPermission'2132 },2357 },2133 /**2358 /**2134 * Lookup248: up_data_structs::PropertyPermission2359 * Lookup259: up_data_structs::PropertyPermission2135 **/2360 **/2136 UpDataStructsPropertyPermission: {2361 UpDataStructsPropertyPermission: {2137 mutable: 'bool',2362 mutable: 'bool',2138 collectionAdmin: 'bool',2363 collectionAdmin: 'bool',2139 tokenOwner: 'bool'2364 tokenOwner: 'bool'2140 },2365 },2141 /**2366 /**2142 * Lookup251: up_data_structs::Property2367 * Lookup262: up_data_structs::Property2143 **/2368 **/2144 UpDataStructsProperty: {2369 UpDataStructsProperty: {2145 key: 'Bytes',2370 key: 'Bytes',2146 value: 'Bytes'2371 value: 'Bytes'2147 },2372 },2148 /**2373 /**2149 * Lookup254: up_data_structs::CreateItemData2374 * Lookup265: up_data_structs::CreateItemData2150 **/2375 **/2151 UpDataStructsCreateItemData: {2376 UpDataStructsCreateItemData: {2152 _enum: {2377 _enum: {2153 NFT: 'UpDataStructsCreateNftData',2378 NFT: 'UpDataStructsCreateNftData',2154 Fungible: 'UpDataStructsCreateFungibleData',2379 Fungible: 'UpDataStructsCreateFungibleData',2155 ReFungible: 'UpDataStructsCreateReFungibleData'2380 ReFungible: 'UpDataStructsCreateReFungibleData'2156 }2381 }2157 },2382 },2158 /**2383 /**2159 * Lookup255: up_data_structs::CreateNftData2384 * Lookup266: up_data_structs::CreateNftData2160 **/2385 **/2161 UpDataStructsCreateNftData: {2386 UpDataStructsCreateNftData: {2162 properties: 'Vec<UpDataStructsProperty>'2387 properties: 'Vec<UpDataStructsProperty>'2163 },2388 },2164 /**2389 /**2165 * Lookup256: up_data_structs::CreateFungibleData2390 * Lookup267: up_data_structs::CreateFungibleData2166 **/2391 **/2167 UpDataStructsCreateFungibleData: {2392 UpDataStructsCreateFungibleData: {2168 value: 'u128'2393 value: 'u128'2169 },2394 },2170 /**2395 /**2171 * Lookup257: up_data_structs::CreateReFungibleData2396 * Lookup268: up_data_structs::CreateReFungibleData2172 **/2397 **/2173 UpDataStructsCreateReFungibleData: {2398 UpDataStructsCreateReFungibleData: {2174 pieces: 'u128',2399 pieces: 'u128',2175 properties: 'Vec<UpDataStructsProperty>'2400 properties: 'Vec<UpDataStructsProperty>'2176 },2401 },2177 /**2402 /**2178 * Lookup260: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2403 * Lookup271: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2179 **/2404 **/2180 UpDataStructsCreateItemExData: {2405 UpDataStructsCreateItemExData: {2181 _enum: {2406 _enum: {2182 NFT: 'Vec<UpDataStructsCreateNftExData>',2407 NFT: 'Vec<UpDataStructsCreateNftExData>',2185 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2410 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2186 }2411 }2187 },2412 },2188 /**2413 /**2189 * Lookup262: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2414 * Lookup273: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2190 **/2415 **/2191 UpDataStructsCreateNftExData: {2416 UpDataStructsCreateNftExData: {2192 properties: 'Vec<UpDataStructsProperty>',2417 properties: 'Vec<UpDataStructsProperty>',2193 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2418 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2194 },2419 },2195 /**2420 /**2196 * Lookup269: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2421 * Lookup280: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2197 **/2422 **/2198 UpDataStructsCreateRefungibleExSingleOwner: {2423 UpDataStructsCreateRefungibleExSingleOwner: {2199 user: 'PalletEvmAccountBasicCrossAccountIdRepr',2424 user: 'PalletEvmAccountBasicCrossAccountIdRepr',2200 pieces: 'u128',2425 pieces: 'u128',2201 properties: 'Vec<UpDataStructsProperty>'2426 properties: 'Vec<UpDataStructsProperty>'2202 },2427 },2203 /**2428 /**2204 * Lookup271: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2429 * Lookup282: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2205 **/2430 **/2206 UpDataStructsCreateRefungibleExMultipleOwners: {2431 UpDataStructsCreateRefungibleExMultipleOwners: {2207 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2432 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2208 properties: 'Vec<UpDataStructsProperty>'2433 properties: 'Vec<UpDataStructsProperty>'2209 },2434 },2210 /**2435 /**2211 * Lookup272: pallet_unique_scheduler::pallet::Call<T>2436 * Lookup283: pallet_unique_scheduler::pallet::Call<T>2212 **/2437 **/2213 PalletUniqueSchedulerCall: {2438 PalletUniqueSchedulerCall: {2214 _enum: {2439 _enum: {2215 schedule_named: {2440 schedule_named: {2231 }2456 }2232 }2457 }2233 },2458 },2234 /**2459 /**2235 * Lookup274: frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>2460 * Lookup285: frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>2236 **/2461 **/2237 FrameSupportScheduleMaybeHashed: {2462 FrameSupportScheduleMaybeHashed: {2238 _enum: {2463 _enum: {2239 Value: 'Call',2464 Value: 'Call',2240 Hash: 'H256'2465 Hash: 'H256'2241 }2466 }2242 },2467 },2243 /**2468 /**2244 * Lookup275: pallet_configuration::pallet::Call<T>2469 * Lookup286: pallet_configuration::pallet::Call<T>2245 **/2470 **/2246 PalletConfigurationCall: {2471 PalletConfigurationCall: {2247 _enum: {2472 _enum: {2248 set_weight_to_fee_coefficient_override: {2473 set_weight_to_fee_coefficient_override: {2253 }2478 }2254 }2479 }2255 },2480 },2256 /**2481 /**2257 * Lookup276: pallet_template_transaction_payment::Call<T>2482 * Lookup287: pallet_template_transaction_payment::Call<T>2258 **/2483 **/2259 PalletTemplateTransactionPaymentCall: 'Null',2484 PalletTemplateTransactionPaymentCall: 'Null',2260 /**2485 /**2261 * Lookup277: pallet_structure::pallet::Call<T>2486 * Lookup288: pallet_structure::pallet::Call<T>2262 **/2487 **/2263 PalletStructureCall: 'Null',2488 PalletStructureCall: 'Null',2264 /**2489 /**2265 * Lookup278: pallet_rmrk_core::pallet::Call<T>2490 * Lookup289: pallet_rmrk_core::pallet::Call<T>2266 **/2491 **/2267 PalletRmrkCoreCall: {2492 PalletRmrkCoreCall: {2268 _enum: {2493 _enum: {2269 create_collection: {2494 create_collection: {2352 }2577 }2353 }2578 }2354 },2579 },2355 /**2580 /**2356 * Lookup284: rmrk_traits::resource::ResourceTypes<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2581 * Lookup295: rmrk_traits::resource::ResourceTypes<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2357 **/2582 **/2358 RmrkTraitsResourceResourceTypes: {2583 RmrkTraitsResourceResourceTypes: {2359 _enum: {2584 _enum: {2360 Basic: 'RmrkTraitsResourceBasicResource',2585 Basic: 'RmrkTraitsResourceBasicResource',2361 Composable: 'RmrkTraitsResourceComposableResource',2586 Composable: 'RmrkTraitsResourceComposableResource',2362 Slot: 'RmrkTraitsResourceSlotResource'2587 Slot: 'RmrkTraitsResourceSlotResource'2363 }2588 }2364 },2589 },2365 /**2590 /**2366 * Lookup286: rmrk_traits::resource::BasicResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2591 * Lookup297: rmrk_traits::resource::BasicResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2367 **/2592 **/2368 RmrkTraitsResourceBasicResource: {2593 RmrkTraitsResourceBasicResource: {2369 src: 'Option<Bytes>',2594 src: 'Option<Bytes>',2370 metadata: 'Option<Bytes>',2595 metadata: 'Option<Bytes>',2371 license: 'Option<Bytes>',2596 license: 'Option<Bytes>',2372 thumb: 'Option<Bytes>'2597 thumb: 'Option<Bytes>'2373 },2598 },2374 /**2599 /**2375 * Lookup288: rmrk_traits::resource::ComposableResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2600 * Lookup299: rmrk_traits::resource::ComposableResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2376 **/2601 **/2377 RmrkTraitsResourceComposableResource: {2602 RmrkTraitsResourceComposableResource: {2378 parts: 'Vec<u32>',2603 parts: 'Vec<u32>',2379 base: 'u32',2604 base: 'u32',2382 license: 'Option<Bytes>',2607 license: 'Option<Bytes>',2383 thumb: 'Option<Bytes>'2608 thumb: 'Option<Bytes>'2384 },2609 },2385 /**2610 /**2386 * Lookup289: rmrk_traits::resource::SlotResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2611 * Lookup300: rmrk_traits::resource::SlotResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2387 **/2612 **/2388 RmrkTraitsResourceSlotResource: {2613 RmrkTraitsResourceSlotResource: {2389 base: 'u32',2614 base: 'u32',2390 src: 'Option<Bytes>',2615 src: 'Option<Bytes>',2393 license: 'Option<Bytes>',2618 license: 'Option<Bytes>',2394 thumb: 'Option<Bytes>'2619 thumb: 'Option<Bytes>'2395 },2620 },2396 /**2621 /**2397 * Lookup292: pallet_rmrk_equip::pallet::Call<T>2622 * Lookup303: pallet_rmrk_equip::pallet::Call<T>2398 **/2623 **/2399 PalletRmrkEquipCall: {2624 PalletRmrkEquipCall: {2400 _enum: {2625 _enum: {2401 create_base: {2626 create_base: {2414 }2639 }2415 }2640 }2416 },2641 },2417 /**2642 /**2418 * Lookup295: rmrk_traits::part::PartType<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2643 * Lookup306: rmrk_traits::part::PartType<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2419 **/2644 **/2420 RmrkTraitsPartPartType: {2645 RmrkTraitsPartPartType: {2421 _enum: {2646 _enum: {2422 FixedPart: 'RmrkTraitsPartFixedPart',2647 FixedPart: 'RmrkTraitsPartFixedPart',2423 SlotPart: 'RmrkTraitsPartSlotPart'2648 SlotPart: 'RmrkTraitsPartSlotPart'2424 }2649 }2425 },2650 },2426 /**2651 /**2427 * Lookup297: rmrk_traits::part::FixedPart<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2652 * Lookup308: rmrk_traits::part::FixedPart<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2428 **/2653 **/2429 RmrkTraitsPartFixedPart: {2654 RmrkTraitsPartFixedPart: {2430 id: 'u32',2655 id: 'u32',2431 z: 'u32',2656 z: 'u32',2432 src: 'Bytes'2657 src: 'Bytes'2433 },2658 },2434 /**2659 /**2435 * Lookup298: rmrk_traits::part::SlotPart<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2660 * Lookup309: rmrk_traits::part::SlotPart<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2436 **/2661 **/2437 RmrkTraitsPartSlotPart: {2662 RmrkTraitsPartSlotPart: {2438 id: 'u32',2663 id: 'u32',2439 equippable: 'RmrkTraitsPartEquippableList',2664 equippable: 'RmrkTraitsPartEquippableList',2440 src: 'Bytes',2665 src: 'Bytes',2441 z: 'u32'2666 z: 'u32'2442 },2667 },2443 /**2668 /**2444 * Lookup299: rmrk_traits::part::EquippableList<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2669 * Lookup310: rmrk_traits::part::EquippableList<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2445 **/2670 **/2446 RmrkTraitsPartEquippableList: {2671 RmrkTraitsPartEquippableList: {2447 _enum: {2672 _enum: {2448 All: 'Null',2673 All: 'Null',2449 Empty: 'Null',2674 Empty: 'Null',2450 Custom: 'Vec<u32>'2675 Custom: 'Vec<u32>'2451 }2676 }2452 },2677 },2453 /**2678 /**2454 * Lookup301: rmrk_traits::theme::Theme<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>, S>>2679 * Lookup312: rmrk_traits::theme::Theme<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>, S>>2455 **/2680 **/2456 RmrkTraitsTheme: {2681 RmrkTraitsTheme: {2457 name: 'Bytes',2682 name: 'Bytes',2458 properties: 'Vec<RmrkTraitsThemeThemeProperty>',2683 properties: 'Vec<RmrkTraitsThemeThemeProperty>',2459 inherit: 'bool'2684 inherit: 'bool'2460 },2685 },2461 /**2686 /**2462 * Lookup303: rmrk_traits::theme::ThemeProperty<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2687 * Lookup314: rmrk_traits::theme::ThemeProperty<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2463 **/2688 **/2464 RmrkTraitsThemeThemeProperty: {2689 RmrkTraitsThemeThemeProperty: {2465 key: 'Bytes',2690 key: 'Bytes',2466 value: 'Bytes'2691 value: 'Bytes'2467 },2692 },2468 /**2693 /**2469 * Lookup305: pallet_app_promotion::pallet::Call<T>2694 * Lookup316: pallet_app_promotion::pallet::Call<T>2470 **/2695 **/2471 PalletAppPromotionCall: {2696 PalletAppPromotionCall: {2472 _enum: {2697 _enum: {2473 set_admin_address: {2698 set_admin_address: {2494 }2719 }2495 }2720 }2496 },2721 },2722 /**2723 * Lookup318: pallet_foreign_assets::module::Call<T>2724 **/2725 PalletForeignAssetsModuleCall: {2726 _enum: {2727 register_foreign_asset: {2728 owner: 'AccountId32',2729 location: 'XcmVersionedMultiLocation',2730 metadata: 'PalletForeignAssetsModuleAssetMetadata',2731 },2732 update_foreign_asset: {2733 foreignAssetId: 'u32',2734 location: 'XcmVersionedMultiLocation',2735 metadata: 'PalletForeignAssetsModuleAssetMetadata'2736 }2737 }2738 },2497 /**2739 /**2498 * Lookup307: pallet_evm::pallet::Call<T>2740 * Lookup319: pallet_evm::pallet::Call<T>2499 **/2741 **/2500 PalletEvmCall: {2742 PalletEvmCall: {2501 _enum: {2743 _enum: {2502 withdraw: {2744 withdraw: {2537 }2779 }2538 }2780 }2539 },2781 },2540 /**2782 /**2541 * Lookup311: pallet_ethereum::pallet::Call<T>2783 * Lookup323: pallet_ethereum::pallet::Call<T>2542 **/2784 **/2543 PalletEthereumCall: {2785 PalletEthereumCall: {2544 _enum: {2786 _enum: {2545 transact: {2787 transact: {2546 transaction: 'EthereumTransactionTransactionV2'2788 transaction: 'EthereumTransactionTransactionV2'2547 }2789 }2548 }2790 }2549 },2791 },2550 /**2792 /**2551 * Lookup312: ethereum::transaction::TransactionV22793 * Lookup324: ethereum::transaction::TransactionV22552 **/2794 **/2553 EthereumTransactionTransactionV2: {2795 EthereumTransactionTransactionV2: {2554 _enum: {2796 _enum: {2555 Legacy: 'EthereumTransactionLegacyTransaction',2797 Legacy: 'EthereumTransactionLegacyTransaction',2556 EIP2930: 'EthereumTransactionEip2930Transaction',2798 EIP2930: 'EthereumTransactionEip2930Transaction',2557 EIP1559: 'EthereumTransactionEip1559Transaction'2799 EIP1559: 'EthereumTransactionEip1559Transaction'2558 }2800 }2559 },2801 },2560 /**2802 /**2561 * Lookup313: ethereum::transaction::LegacyTransaction2803 * Lookup325: ethereum::transaction::LegacyTransaction2562 **/2804 **/2563 EthereumTransactionLegacyTransaction: {2805 EthereumTransactionLegacyTransaction: {2564 nonce: 'U256',2806 nonce: 'U256',2565 gasPrice: 'U256',2807 gasPrice: 'U256',2569 input: 'Bytes',2811 input: 'Bytes',2570 signature: 'EthereumTransactionTransactionSignature'2812 signature: 'EthereumTransactionTransactionSignature'2571 },2813 },2572 /**2814 /**2573 * Lookup314: ethereum::transaction::TransactionAction2815 * Lookup326: ethereum::transaction::TransactionAction2574 **/2816 **/2575 EthereumTransactionTransactionAction: {2817 EthereumTransactionTransactionAction: {2576 _enum: {2818 _enum: {2577 Call: 'H160',2819 Call: 'H160',2578 Create: 'Null'2820 Create: 'Null'2579 }2821 }2580 },2822 },2581 /**2823 /**2582 * Lookup315: ethereum::transaction::TransactionSignature2824 * Lookup327: ethereum::transaction::TransactionSignature2583 **/2825 **/2584 EthereumTransactionTransactionSignature: {2826 EthereumTransactionTransactionSignature: {2585 v: 'u64',2827 v: 'u64',2586 r: 'H256',2828 r: 'H256',2587 s: 'H256'2829 s: 'H256'2588 },2830 },2589 /**2831 /**2590 * Lookup317: ethereum::transaction::EIP2930Transaction2832 * Lookup329: ethereum::transaction::EIP2930Transaction2591 **/2833 **/2592 EthereumTransactionEip2930Transaction: {2834 EthereumTransactionEip2930Transaction: {2593 chainId: 'u64',2835 chainId: 'u64',2594 nonce: 'U256',2836 nonce: 'U256',2602 r: 'H256',2844 r: 'H256',2603 s: 'H256'2845 s: 'H256'2604 },2846 },2605 /**2847 /**2606 * Lookup319: ethereum::transaction::AccessListItem2848 * Lookup331: ethereum::transaction::AccessListItem2607 **/2849 **/2608 EthereumTransactionAccessListItem: {2850 EthereumTransactionAccessListItem: {2609 address: 'H160',2851 address: 'H160',2610 storageKeys: 'Vec<H256>'2852 storageKeys: 'Vec<H256>'2611 },2853 },2612 /**2854 /**2613 * Lookup320: ethereum::transaction::EIP1559Transaction2855 * Lookup332: ethereum::transaction::EIP1559Transaction2614 **/2856 **/2615 EthereumTransactionEip1559Transaction: {2857 EthereumTransactionEip1559Transaction: {2616 chainId: 'u64',2858 chainId: 'u64',2617 nonce: 'U256',2859 nonce: 'U256',2626 r: 'H256',2868 r: 'H256',2627 s: 'H256'2869 s: 'H256'2628 },2870 },2629 /**2871 /**2630 * Lookup321: pallet_evm_migration::pallet::Call<T>2872 * Lookup333: pallet_evm_migration::pallet::Call<T>2631 **/2873 **/2632 PalletEvmMigrationCall: {2874 PalletEvmMigrationCall: {2633 _enum: {2875 _enum: {2634 begin: {2876 begin: {2644 }2886 }2645 }2887 }2646 },2888 },2647 /**2889 /**2648 * Lookup324: pallet_sudo::pallet::Error<T>2890 * Lookup336: pallet_sudo::pallet::Error<T>2649 **/2891 **/2650 PalletSudoError: {2892 PalletSudoError: {2651 _enum: ['RequireSudo']2893 _enum: ['RequireSudo']2652 },2894 },2653 /**2895 /**2654 * Lookup326: orml_vesting::module::Error<T>2896 * Lookup338: orml_vesting::module::Error<T>2655 **/2897 **/2656 OrmlVestingModuleError: {2898 OrmlVestingModuleError: {2657 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2899 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2658 },2900 },2901 /**2902 * Lookup339: orml_xtokens::module::Error<T>2903 **/2904 OrmlXtokensModuleError: {2905 _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']2906 },2907 /**2908 * Lookup342: orml_tokens::BalanceLock<Balance>2909 **/2910 OrmlTokensBalanceLock: {2911 id: '[u8;8]',2912 amount: 'u128'2913 },2914 /**2915 * Lookup344: orml_tokens::AccountData<Balance>2916 **/2917 OrmlTokensAccountData: {2918 free: 'u128',2919 reserved: 'u128',2920 frozen: 'u128'2921 },2922 /**2923 * Lookup346: orml_tokens::ReserveData<ReserveIdentifier, Balance>2924 **/2925 OrmlTokensReserveData: {2926 id: 'Null',2927 amount: 'u128'2928 },2929 /**2930 * Lookup348: orml_tokens::module::Error<T>2931 **/2932 OrmlTokensModuleError: {2933 _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']2934 },2659 /**2935 /**2660 * Lookup328: cumulus_pallet_xcmp_queue::InboundChannelDetails2936 * Lookup350: cumulus_pallet_xcmp_queue::InboundChannelDetails2661 **/2937 **/2662 CumulusPalletXcmpQueueInboundChannelDetails: {2938 CumulusPalletXcmpQueueInboundChannelDetails: {2663 sender: 'u32',2939 sender: 'u32',2664 state: 'CumulusPalletXcmpQueueInboundState',2940 state: 'CumulusPalletXcmpQueueInboundState',2665 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2941 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2666 },2942 },2667 /**2943 /**2668 * Lookup329: cumulus_pallet_xcmp_queue::InboundState2944 * Lookup351: cumulus_pallet_xcmp_queue::InboundState2669 **/2945 **/2670 CumulusPalletXcmpQueueInboundState: {2946 CumulusPalletXcmpQueueInboundState: {2671 _enum: ['Ok', 'Suspended']2947 _enum: ['Ok', 'Suspended']2672 },2948 },2673 /**2949 /**2674 * Lookup332: polkadot_parachain::primitives::XcmpMessageFormat2950 * Lookup354: polkadot_parachain::primitives::XcmpMessageFormat2675 **/2951 **/2676 PolkadotParachainPrimitivesXcmpMessageFormat: {2952 PolkadotParachainPrimitivesXcmpMessageFormat: {2677 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']2953 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']2678 },2954 },2679 /**2955 /**2680 * Lookup335: cumulus_pallet_xcmp_queue::OutboundChannelDetails2956 * Lookup357: cumulus_pallet_xcmp_queue::OutboundChannelDetails2681 **/2957 **/2682 CumulusPalletXcmpQueueOutboundChannelDetails: {2958 CumulusPalletXcmpQueueOutboundChannelDetails: {2683 recipient: 'u32',2959 recipient: 'u32',2684 state: 'CumulusPalletXcmpQueueOutboundState',2960 state: 'CumulusPalletXcmpQueueOutboundState',2685 signalsExist: 'bool',2961 signalsExist: 'bool',2686 firstIndex: 'u16',2962 firstIndex: 'u16',2687 lastIndex: 'u16'2963 lastIndex: 'u16'2688 },2964 },2689 /**2965 /**2690 * Lookup336: cumulus_pallet_xcmp_queue::OutboundState2966 * Lookup358: cumulus_pallet_xcmp_queue::OutboundState2691 **/2967 **/2692 CumulusPalletXcmpQueueOutboundState: {2968 CumulusPalletXcmpQueueOutboundState: {2693 _enum: ['Ok', 'Suspended']2969 _enum: ['Ok', 'Suspended']2694 },2970 },2695 /**2971 /**2696 * Lookup338: cumulus_pallet_xcmp_queue::QueueConfigData2972 * Lookup360: cumulus_pallet_xcmp_queue::QueueConfigData2697 **/2973 **/2698 CumulusPalletXcmpQueueQueueConfigData: {2974 CumulusPalletXcmpQueueQueueConfigData: {2699 suspendThreshold: 'u32',2975 suspendThreshold: 'u32',2700 dropThreshold: 'u32',2976 dropThreshold: 'u32',2703 weightRestrictDecay: 'u64',2979 weightRestrictDecay: 'u64',2704 xcmpMaxIndividualWeight: 'u64'2980 xcmpMaxIndividualWeight: 'u64'2705 },2981 },2706 /**2982 /**2707 * Lookup340: cumulus_pallet_xcmp_queue::pallet::Error<T>2983 * Lookup362: cumulus_pallet_xcmp_queue::pallet::Error<T>2708 **/2984 **/2709 CumulusPalletXcmpQueueError: {2985 CumulusPalletXcmpQueueError: {2710 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']2986 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']2711 },2987 },2712 /**2988 /**2713 * Lookup341: pallet_xcm::pallet::Error<T>2989 * Lookup363: pallet_xcm::pallet::Error<T>2714 **/2990 **/2715 PalletXcmError: {2991 PalletXcmError: {2716 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']2992 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']2717 },2993 },2718 /**2994 /**2719 * Lookup342: cumulus_pallet_xcm::pallet::Error<T>2995 * Lookup364: cumulus_pallet_xcm::pallet::Error<T>2720 **/2996 **/2721 CumulusPalletXcmError: 'Null',2997 CumulusPalletXcmError: 'Null',2722 /**2998 /**2723 * Lookup343: cumulus_pallet_dmp_queue::ConfigData2999 * Lookup365: cumulus_pallet_dmp_queue::ConfigData2724 **/3000 **/2725 CumulusPalletDmpQueueConfigData: {3001 CumulusPalletDmpQueueConfigData: {2726 maxIndividual: 'u64'3002 maxIndividual: 'u64'2727 },3003 },2728 /**3004 /**2729 * Lookup344: cumulus_pallet_dmp_queue::PageIndexData3005 * Lookup366: cumulus_pallet_dmp_queue::PageIndexData2730 **/3006 **/2731 CumulusPalletDmpQueuePageIndexData: {3007 CumulusPalletDmpQueuePageIndexData: {2732 beginUsed: 'u32',3008 beginUsed: 'u32',2733 endUsed: 'u32',3009 endUsed: 'u32',2734 overweightCount: 'u64'3010 overweightCount: 'u64'2735 },3011 },2736 /**3012 /**2737 * Lookup347: cumulus_pallet_dmp_queue::pallet::Error<T>3013 * Lookup369: cumulus_pallet_dmp_queue::pallet::Error<T>2738 **/3014 **/2739 CumulusPalletDmpQueueError: {3015 CumulusPalletDmpQueueError: {2740 _enum: ['Unknown', 'OverLimit']3016 _enum: ['Unknown', 'OverLimit']2741 },3017 },2742 /**3018 /**2743 * Lookup351: pallet_unique::Error<T>3019 * Lookup373: pallet_unique::Error<T>2744 **/3020 **/2745 PalletUniqueError: {3021 PalletUniqueError: {2746 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3022 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']2747 },3023 },2748 /**3024 /**2749 * Lookup354: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>3025 * Lookup376: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>2750 **/3026 **/2751 PalletUniqueSchedulerScheduledV3: {3027 PalletUniqueSchedulerScheduledV3: {2752 maybeId: 'Option<[u8;16]>',3028 maybeId: 'Option<[u8;16]>',2753 priority: 'u8',3029 priority: 'u8',2754 call: 'FrameSupportScheduleMaybeHashed',3030 call: 'FrameSupportScheduleMaybeHashed',2755 maybePeriodic: 'Option<(u32,u32)>',3031 maybePeriodic: 'Option<(u32,u32)>',2756 origin: 'OpalRuntimeOriginCaller'3032 origin: 'OpalRuntimeOriginCaller'2757 },3033 },2758 /**3034 /**2759 * Lookup355: opal_runtime::OriginCaller3035 * Lookup377: opal_runtime::OriginCaller2760 **/3036 **/2761 OpalRuntimeOriginCaller: {3037 OpalRuntimeOriginCaller: {2762 _enum: {3038 _enum: {2763 system: 'FrameSupportDispatchRawOrigin',3039 system: 'FrameSupportDispatchRawOrigin',2864 Ethereum: 'PalletEthereumRawOrigin'3140 Ethereum: 'PalletEthereumRawOrigin'2865 }3141 }2866 },3142 },2867 /**3143 /**2868 * Lookup356: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>3144 * Lookup378: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>2869 **/3145 **/2870 FrameSupportDispatchRawOrigin: {3146 FrameSupportDispatchRawOrigin: {2871 _enum: {3147 _enum: {2872 Root: 'Null',3148 Root: 'Null',2873 Signed: 'AccountId32',3149 Signed: 'AccountId32',2874 None: 'Null'3150 None: 'Null'2875 }3151 }2876 },3152 },2877 /**3153 /**2878 * Lookup357: pallet_xcm::pallet::Origin3154 * Lookup379: pallet_xcm::pallet::Origin2879 **/3155 **/2880 PalletXcmOrigin: {3156 PalletXcmOrigin: {2881 _enum: {3157 _enum: {2882 Xcm: 'XcmV1MultiLocation',3158 Xcm: 'XcmV1MultiLocation',2883 Response: 'XcmV1MultiLocation'3159 Response: 'XcmV1MultiLocation'2884 }3160 }2885 },3161 },2886 /**3162 /**2887 * Lookup358: cumulus_pallet_xcm::pallet::Origin3163 * Lookup380: cumulus_pallet_xcm::pallet::Origin2888 **/3164 **/2889 CumulusPalletXcmOrigin: {3165 CumulusPalletXcmOrigin: {2890 _enum: {3166 _enum: {2891 Relay: 'Null',3167 Relay: 'Null',2892 SiblingParachain: 'u32'3168 SiblingParachain: 'u32'2893 }3169 }2894 },3170 },2895 /**3171 /**2896 * Lookup359: pallet_ethereum::RawOrigin3172 * Lookup381: pallet_ethereum::RawOrigin2897 **/3173 **/2898 PalletEthereumRawOrigin: {3174 PalletEthereumRawOrigin: {2899 _enum: {3175 _enum: {2900 EthereumTransaction: 'H160'3176 EthereumTransaction: 'H160'2901 }3177 }2902 },3178 },2903 /**3179 /**2904 * Lookup360: sp_core::Void3180 * Lookup382: sp_core::Void2905 **/3181 **/2906 SpCoreVoid: 'Null',3182 SpCoreVoid: 'Null',2907 /**3183 /**2908 * Lookup361: pallet_unique_scheduler::pallet::Error<T>3184 * Lookup383: pallet_unique_scheduler::pallet::Error<T>2909 **/3185 **/2910 PalletUniqueSchedulerError: {3186 PalletUniqueSchedulerError: {2911 _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']3187 _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']2912 },3188 },2913 /**3189 /**2914 * Lookup362: up_data_structs::Collection<sp_core::crypto::AccountId32>3190 * Lookup384: up_data_structs::Collection<sp_core::crypto::AccountId32>2915 **/3191 **/2916 UpDataStructsCollection: {3192 UpDataStructsCollection: {2917 owner: 'AccountId32',3193 owner: 'AccountId32',2918 mode: 'UpDataStructsCollectionMode',3194 mode: 'UpDataStructsCollectionMode',2922 sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3198 sponsorship: 'UpDataStructsSponsorshipStateAccountId32',2923 limits: 'UpDataStructsCollectionLimits',3199 limits: 'UpDataStructsCollectionLimits',2924 permissions: 'UpDataStructsCollectionPermissions',3200 permissions: 'UpDataStructsCollectionPermissions',2925 externalCollection: 'bool'3201 flags: '[u8;1]'2926 },3202 },2927 /**3203 /**2928 * Lookup363: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3204 * Lookup385: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>2929 **/3205 **/2930 UpDataStructsSponsorshipStateAccountId32: {3206 UpDataStructsSponsorshipStateAccountId32: {2931 _enum: {3207 _enum: {2932 Disabled: 'Null',3208 Disabled: 'Null',2933 Unconfirmed: 'AccountId32',3209 Unconfirmed: 'AccountId32',2934 Confirmed: 'AccountId32'3210 Confirmed: 'AccountId32'2935 }3211 }2936 },3212 },2937 /**3213 /**2938 * Lookup364: up_data_structs::Properties3214 * Lookup387: up_data_structs::Properties2939 **/3215 **/2940 UpDataStructsProperties: {3216 UpDataStructsProperties: {2941 map: 'UpDataStructsPropertiesMapBoundedVec',3217 map: 'UpDataStructsPropertiesMapBoundedVec',2942 consumedSpace: 'u32',3218 consumedSpace: 'u32',2943 spaceLimit: 'u32'3219 spaceLimit: 'u32'2944 },3220 },2945 /**3221 /**2946 * Lookup365: up_data_structs::PropertiesMap<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3222 * Lookup388: up_data_structs::PropertiesMap<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>2947 **/3223 **/2948 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3224 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',2949 /**3225 /**2950 * Lookup370: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3226 * Lookup393: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>2951 **/3227 **/2952 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3228 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',2953 /**3229 /**2954 * Lookup377: up_data_structs::CollectionStats3230 * Lookup400: up_data_structs::CollectionStats2955 **/3231 **/2956 UpDataStructsCollectionStats: {3232 UpDataStructsCollectionStats: {2957 created: 'u32',3233 created: 'u32',2958 destroyed: 'u32',3234 destroyed: 'u32',2959 alive: 'u32'3235 alive: 'u32'2960 },3236 },2961 /**3237 /**2962 * Lookup378: up_data_structs::TokenChild3238 * Lookup401: up_data_structs::TokenChild2963 **/3239 **/2964 UpDataStructsTokenChild: {3240 UpDataStructsTokenChild: {2965 token: 'u32',3241 token: 'u32',2966 collection: 'u32'3242 collection: 'u32'2967 },3243 },2968 /**3244 /**2969 * Lookup379: PhantomType::up_data_structs<T>3245 * Lookup402: PhantomType::up_data_structs<T>2970 **/3246 **/2971 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',3247 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',2972 /**3248 /**2973 * Lookup381: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3249 * Lookup404: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2974 **/3250 **/2975 UpDataStructsTokenData: {3251 UpDataStructsTokenData: {2976 properties: 'Vec<UpDataStructsProperty>',3252 properties: 'Vec<UpDataStructsProperty>',2977 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3253 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',2978 pieces: 'u128'3254 pieces: 'u128'2979 },3255 },2980 /**3256 /**2981 * Lookup383: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3257 * Lookup406: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>2982 **/3258 **/2983 UpDataStructsRpcCollection: {3259 UpDataStructsRpcCollection: {2984 owner: 'AccountId32',3260 owner: 'AccountId32',2985 mode: 'UpDataStructsCollectionMode',3261 mode: 'UpDataStructsCollectionMode',2991 permissions: 'UpDataStructsCollectionPermissions',3267 permissions: 'UpDataStructsCollectionPermissions',2992 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',3268 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2993 properties: 'Vec<UpDataStructsProperty>',3269 properties: 'Vec<UpDataStructsProperty>',2994 readOnly: 'bool'3270 readOnly: 'bool',3271 foreign: 'bool'2995 },3272 },2996 /**3273 /**2997 * Lookup384: rmrk_traits::collection::CollectionInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3274 * Lookup407: rmrk_traits::collection::CollectionInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>2998 **/3275 **/2999 RmrkTraitsCollectionCollectionInfo: {3276 RmrkTraitsCollectionCollectionInfo: {3000 issuer: 'AccountId32',3277 issuer: 'AccountId32',3001 metadata: 'Bytes',3278 metadata: 'Bytes',3002 max: 'Option<u32>',3279 max: 'Option<u32>',3003 symbol: 'Bytes',3280 symbol: 'Bytes',3004 nftsCount: 'u32'3281 nftsCount: 'u32'3005 },3282 },3006 /**3283 /**3007 * Lookup385: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3284 * Lookup408: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3008 **/3285 **/3009 RmrkTraitsNftNftInfo: {3286 RmrkTraitsNftNftInfo: {3010 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3287 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3011 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3288 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3012 metadata: 'Bytes',3289 metadata: 'Bytes',3013 equipped: 'bool',3290 equipped: 'bool',3014 pending: 'bool'3291 pending: 'bool'3015 },3292 },3016 /**3293 /**3017 * Lookup387: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3294 * Lookup410: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3018 **/3295 **/3019 RmrkTraitsNftRoyaltyInfo: {3296 RmrkTraitsNftRoyaltyInfo: {3020 recipient: 'AccountId32',3297 recipient: 'AccountId32',3021 amount: 'Permill'3298 amount: 'Permill'3022 },3299 },3023 /**3300 /**3024 * Lookup388: rmrk_traits::resource::ResourceInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3301 * Lookup411: rmrk_traits::resource::ResourceInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3025 **/3302 **/3026 RmrkTraitsResourceResourceInfo: {3303 RmrkTraitsResourceResourceInfo: {3027 id: 'u32',3304 id: 'u32',3028 resource: 'RmrkTraitsResourceResourceTypes',3305 resource: 'RmrkTraitsResourceResourceTypes',3029 pending: 'bool',3306 pending: 'bool',3030 pendingRemoval: 'bool'3307 pendingRemoval: 'bool'3031 },3308 },3032 /**3309 /**3033 * Lookup389: rmrk_traits::property::PropertyInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3310 * Lookup412: rmrk_traits::property::PropertyInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3034 **/3311 **/3035 RmrkTraitsPropertyPropertyInfo: {3312 RmrkTraitsPropertyPropertyInfo: {3036 key: 'Bytes',3313 key: 'Bytes',3037 value: 'Bytes'3314 value: 'Bytes'3038 },3315 },3039 /**3316 /**3040 * Lookup390: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3317 * Lookup413: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>3041 **/3318 **/3042 RmrkTraitsBaseBaseInfo: {3319 RmrkTraitsBaseBaseInfo: {3043 issuer: 'AccountId32',3320 issuer: 'AccountId32',3044 baseType: 'Bytes',3321 baseType: 'Bytes',3045 symbol: 'Bytes'3322 symbol: 'Bytes'3046 },3323 },3047 /**3324 /**3048 * Lookup391: rmrk_traits::nft::NftChild3325 * Lookup414: rmrk_traits::nft::NftChild3049 **/3326 **/3050 RmrkTraitsNftNftChild: {3327 RmrkTraitsNftNftChild: {3051 collectionId: 'u32',3328 collectionId: 'u32',3052 nftId: 'u32'3329 nftId: 'u32'3053 },3330 },3054 /**3331 /**3055 * Lookup393: pallet_common::pallet::Error<T>3332 * Lookup416: pallet_common::pallet::Error<T>3056 **/3333 **/3057 PalletCommonError: {3334 PalletCommonError: {3058 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']3335 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']3059 },3336 },3060 /**3337 /**3061 * Lookup395: pallet_fungible::pallet::Error<T>3338 * Lookup418: pallet_fungible::pallet::Error<T>3062 **/3339 **/3063 PalletFungibleError: {3340 PalletFungibleError: {3064 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3341 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3065 },3342 },3066 /**3343 /**3067 * Lookup396: pallet_refungible::ItemData3344 * Lookup419: pallet_refungible::ItemData3068 **/3345 **/3069 PalletRefungibleItemData: {3346 PalletRefungibleItemData: {3070 constData: 'Bytes'3347 constData: 'Bytes'3071 },3348 },3072 /**3349 /**3073 * Lookup401: pallet_refungible::pallet::Error<T>3350 * Lookup424: pallet_refungible::pallet::Error<T>3074 **/3351 **/3075 PalletRefungibleError: {3352 PalletRefungibleError: {3076 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3353 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3077 },3354 },3078 /**3355 /**3079 * Lookup402: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3356 * Lookup425: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3080 **/3357 **/3081 PalletNonfungibleItemData: {3358 PalletNonfungibleItemData: {3082 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3359 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3083 },3360 },3084 /**3361 /**3085 * Lookup404: up_data_structs::PropertyScope3362 * Lookup427: up_data_structs::PropertyScope3086 **/3363 **/3087 UpDataStructsPropertyScope: {3364 UpDataStructsPropertyScope: {3088 _enum: ['None', 'Rmrk']3365 _enum: ['None', 'Rmrk']3089 },3366 },3090 /**3367 /**3091 * Lookup406: pallet_nonfungible::pallet::Error<T>3368 * Lookup429: pallet_nonfungible::pallet::Error<T>3092 **/3369 **/3093 PalletNonfungibleError: {3370 PalletNonfungibleError: {3094 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3371 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3095 },3372 },3096 /**3373 /**3097 * Lookup407: pallet_structure::pallet::Error<T>3374 * Lookup430: pallet_structure::pallet::Error<T>3098 **/3375 **/3099 PalletStructureError: {3376 PalletStructureError: {3100 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3377 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3101 },3378 },3102 /**3379 /**3103 * Lookup408: pallet_rmrk_core::pallet::Error<T>3380 * Lookup431: pallet_rmrk_core::pallet::Error<T>3104 **/3381 **/3105 PalletRmrkCoreError: {3382 PalletRmrkCoreError: {3106 _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3383 _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3107 },3384 },3108 /**3385 /**3109 * Lookup410: pallet_rmrk_equip::pallet::Error<T>3386 * Lookup433: pallet_rmrk_equip::pallet::Error<T>3110 **/3387 **/3111 PalletRmrkEquipError: {3388 PalletRmrkEquipError: {3112 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3389 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3113 },3390 },3114 /**3391 /**3115 * Lookup416: pallet_app_promotion::pallet::Error<T>3392 * Lookup439: pallet_app_promotion::pallet::Error<T>3116 **/3393 **/3117 PalletAppPromotionError: {3394 PalletAppPromotionError: {3118 _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3395 _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3119 },3396 },3397 /**3398 * Lookup440: pallet_foreign_assets::module::Error<T>3399 **/3400 PalletForeignAssetsModuleError: {3401 _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3402 },3120 /**3403 /**3121 * Lookup419: pallet_evm::pallet::Error<T>3404 * Lookup443: pallet_evm::pallet::Error<T>3122 **/3405 **/3123 PalletEvmError: {3406 PalletEvmError: {3124 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']3407 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']3125 },3408 },3126 /**3409 /**3127 * Lookup422: fp_rpc::TransactionStatus3410 * Lookup446: fp_rpc::TransactionStatus3128 **/3411 **/3129 FpRpcTransactionStatus: {3412 FpRpcTransactionStatus: {3130 transactionHash: 'H256',3413 transactionHash: 'H256',3131 transactionIndex: 'u32',3414 transactionIndex: 'u32',3135 logs: 'Vec<EthereumLog>',3418 logs: 'Vec<EthereumLog>',3136 logsBloom: 'EthbloomBloom'3419 logsBloom: 'EthbloomBloom'3137 },3420 },3138 /**3421 /**3139 * Lookup424: ethbloom::Bloom3422 * Lookup448: ethbloom::Bloom3140 **/3423 **/3141 EthbloomBloom: '[u8;256]',3424 EthbloomBloom: '[u8;256]',3142 /**3425 /**3143 * Lookup426: ethereum::receipt::ReceiptV33426 * Lookup450: ethereum::receipt::ReceiptV33144 **/3427 **/3145 EthereumReceiptReceiptV3: {3428 EthereumReceiptReceiptV3: {3146 _enum: {3429 _enum: {3147 Legacy: 'EthereumReceiptEip658ReceiptData',3430 Legacy: 'EthereumReceiptEip658ReceiptData',3148 EIP2930: 'EthereumReceiptEip658ReceiptData',3431 EIP2930: 'EthereumReceiptEip658ReceiptData',3149 EIP1559: 'EthereumReceiptEip658ReceiptData'3432 EIP1559: 'EthereumReceiptEip658ReceiptData'3150 }3433 }3151 },3434 },3152 /**3435 /**3153 * Lookup427: ethereum::receipt::EIP658ReceiptData3436 * Lookup451: ethereum::receipt::EIP658ReceiptData3154 **/3437 **/3155 EthereumReceiptEip658ReceiptData: {3438 EthereumReceiptEip658ReceiptData: {3156 statusCode: 'u8',3439 statusCode: 'u8',3157 usedGas: 'U256',3440 usedGas: 'U256',3158 logsBloom: 'EthbloomBloom',3441 logsBloom: 'EthbloomBloom',3159 logs: 'Vec<EthereumLog>'3442 logs: 'Vec<EthereumLog>'3160 },3443 },3161 /**3444 /**3162 * Lookup428: ethereum::block::Block<ethereum::transaction::TransactionV2>3445 * Lookup452: ethereum::block::Block<ethereum::transaction::TransactionV2>3163 **/3446 **/3164 EthereumBlock: {3447 EthereumBlock: {3165 header: 'EthereumHeader',3448 header: 'EthereumHeader',3166 transactions: 'Vec<EthereumTransactionTransactionV2>',3449 transactions: 'Vec<EthereumTransactionTransactionV2>',3167 ommers: 'Vec<EthereumHeader>'3450 ommers: 'Vec<EthereumHeader>'3168 },3451 },3169 /**3452 /**3170 * Lookup429: ethereum::header::Header3453 * Lookup453: ethereum::header::Header3171 **/3454 **/3172 EthereumHeader: {3455 EthereumHeader: {3173 parentHash: 'H256',3456 parentHash: 'H256',3174 ommersHash: 'H256',3457 ommersHash: 'H256',3186 mixHash: 'H256',3469 mixHash: 'H256',3187 nonce: 'EthereumTypesHashH64'3470 nonce: 'EthereumTypesHashH64'3188 },3471 },3189 /**3472 /**3190 * Lookup430: ethereum_types::hash::H643473 * Lookup454: ethereum_types::hash::H643191 **/3474 **/3192 EthereumTypesHashH64: '[u8;8]',3475 EthereumTypesHashH64: '[u8;8]',3193 /**3476 /**3194 * Lookup435: pallet_ethereum::pallet::Error<T>3477 * Lookup459: pallet_ethereum::pallet::Error<T>3195 **/3478 **/3196 PalletEthereumError: {3479 PalletEthereumError: {3197 _enum: ['InvalidSignature', 'PreLogExists']3480 _enum: ['InvalidSignature', 'PreLogExists']3198 },3481 },3199 /**3482 /**3200 * Lookup436: pallet_evm_coder_substrate::pallet::Error<T>3483 * Lookup460: pallet_evm_coder_substrate::pallet::Error<T>3201 **/3484 **/3202 PalletEvmCoderSubstrateError: {3485 PalletEvmCoderSubstrateError: {3203 _enum: ['OutOfGas', 'OutOfFund']3486 _enum: ['OutOfGas', 'OutOfFund']3204 },3487 },3205 /**3488 /**3206 * Lookup437: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3489 * Lookup461: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3207 **/3490 **/3208 UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3491 UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3209 _enum: {3492 _enum: {3210 Disabled: 'Null',3493 Disabled: 'Null',3211 Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3494 Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3212 Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3495 Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3213 }3496 }3214 },3497 },3215 /**3498 /**3216 * Lookup438: pallet_evm_contract_helpers::SponsoringModeT3499 * Lookup462: pallet_evm_contract_helpers::SponsoringModeT3217 **/3500 **/3218 PalletEvmContractHelpersSponsoringModeT: {3501 PalletEvmContractHelpersSponsoringModeT: {3219 _enum: ['Disabled', 'Allowlisted', 'Generous']3502 _enum: ['Disabled', 'Allowlisted', 'Generous']3220 },3503 },3221 /**3504 /**3222 * Lookup440: pallet_evm_contract_helpers::pallet::Error<T>3505 * Lookup468: pallet_evm_contract_helpers::pallet::Error<T>3223 **/3506 **/3224 PalletEvmContractHelpersError: {3507 PalletEvmContractHelpersError: {3225 _enum: ['NoPermission', 'NoPendingSponsor']3508 _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3226 },3509 },3227 /**3510 /**3228 * Lookup441: pallet_evm_migration::pallet::Error<T>3511 * Lookup469: pallet_evm_migration::pallet::Error<T>3229 **/3512 **/3230 PalletEvmMigrationError: {3513 PalletEvmMigrationError: {3231 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']3514 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']3232 },3515 },3233 /**3516 /**3234 * Lookup443: sp_runtime::MultiSignature3517 * Lookup471: sp_runtime::MultiSignature3235 **/3518 **/3236 SpRuntimeMultiSignature: {3519 SpRuntimeMultiSignature: {3237 _enum: {3520 _enum: {3238 Ed25519: 'SpCoreEd25519Signature',3521 Ed25519: 'SpCoreEd25519Signature',3239 Sr25519: 'SpCoreSr25519Signature',3522 Sr25519: 'SpCoreSr25519Signature',3240 Ecdsa: 'SpCoreEcdsaSignature'3523 Ecdsa: 'SpCoreEcdsaSignature'3241 }3524 }3242 },3525 },3243 /**3526 /**3244 * Lookup444: sp_core::ed25519::Signature3527 * Lookup472: sp_core::ed25519::Signature3245 **/3528 **/3246 SpCoreEd25519Signature: '[u8;64]',3529 SpCoreEd25519Signature: '[u8;64]',3247 /**3530 /**3248 * Lookup446: sp_core::sr25519::Signature3531 * Lookup474: sp_core::sr25519::Signature3249 **/3532 **/3250 SpCoreSr25519Signature: '[u8;64]',3533 SpCoreSr25519Signature: '[u8;64]',3251 /**3534 /**3252 * Lookup447: sp_core::ecdsa::Signature3535 * Lookup475: sp_core::ecdsa::Signature3253 **/3536 **/3254 SpCoreEcdsaSignature: '[u8;65]',3537 SpCoreEcdsaSignature: '[u8;65]',3255 /**3538 /**3256 * Lookup450: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3539 * Lookup478: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3257 **/3540 **/3258 FrameSystemExtensionsCheckSpecVersion: 'Null',3541 FrameSystemExtensionsCheckSpecVersion: 'Null',3259 /**3542 /**3260 * Lookup451: frame_system::extensions::check_genesis::CheckGenesis<T>3543 * Lookup479: frame_system::extensions::check_genesis::CheckGenesis<T>3261 **/3544 **/3262 FrameSystemExtensionsCheckGenesis: 'Null',3545 FrameSystemExtensionsCheckGenesis: 'Null',3263 /**3546 /**3264 * Lookup454: frame_system::extensions::check_nonce::CheckNonce<T>3547 * Lookup482: frame_system::extensions::check_nonce::CheckNonce<T>3265 **/3548 **/3266 FrameSystemExtensionsCheckNonce: 'Compact<u32>',3549 FrameSystemExtensionsCheckNonce: 'Compact<u32>',3267 /**3550 /**3268 * Lookup455: frame_system::extensions::check_weight::CheckWeight<T>3551 * Lookup483: frame_system::extensions::check_weight::CheckWeight<T>3269 **/3552 **/3270 FrameSystemExtensionsCheckWeight: 'Null',3553 FrameSystemExtensionsCheckWeight: 'Null',3271 /**3554 /**3272 * Lookup456: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3555 * Lookup484: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3273 **/3556 **/3274 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3557 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3275 /**3558 /**3276 * Lookup457: opal_runtime::Runtime3559 * Lookup485: opal_runtime::Runtime3277 **/3560 **/3278 OpalRuntimeRuntime: 'Null',3561 OpalRuntimeRuntime: 'Null',3279 /**3562 /**3280 * Lookup458: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3563 * Lookup486: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3281 **/3564 **/3282 PalletEthereumFakeTransactionFinalizer: 'Null'3565 PalletEthereumFakeTransactionFinalizer: 'Null'3283};3566};32843567tests/src/interfaces/registry.tsdiffbeforeafterboth5// this is required to allow for ambient/previous definitions5// this is required to allow for ambient/previous definitions6import '@polkadot/types/types/registry';6import '@polkadot/types/types/registry';778import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';8import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';9910declare module '@polkadot/types/types/registry' {10declare module '@polkadot/types/types/registry' {11 interface InterfaceTypes {11 interface InterfaceTypes {79 FrameSystemPhase: FrameSystemPhase;79 FrameSystemPhase: FrameSystemPhase;80 OpalRuntimeOriginCaller: OpalRuntimeOriginCaller;80 OpalRuntimeOriginCaller: OpalRuntimeOriginCaller;81 OpalRuntimeRuntime: OpalRuntimeRuntime;81 OpalRuntimeRuntime: OpalRuntimeRuntime;82 OrmlTokensAccountData: OrmlTokensAccountData;83 OrmlTokensBalanceLock: OrmlTokensBalanceLock;84 OrmlTokensModuleCall: OrmlTokensModuleCall;85 OrmlTokensModuleError: OrmlTokensModuleError;86 OrmlTokensModuleEvent: OrmlTokensModuleEvent;87 OrmlTokensReserveData: OrmlTokensReserveData;82 OrmlVestingModuleCall: OrmlVestingModuleCall;88 OrmlVestingModuleCall: OrmlVestingModuleCall;83 OrmlVestingModuleError: OrmlVestingModuleError;89 OrmlVestingModuleError: OrmlVestingModuleError;84 OrmlVestingModuleEvent: OrmlVestingModuleEvent;90 OrmlVestingModuleEvent: OrmlVestingModuleEvent;85 OrmlVestingVestingSchedule: OrmlVestingVestingSchedule;91 OrmlVestingVestingSchedule: OrmlVestingVestingSchedule;92 OrmlXtokensModuleCall: OrmlXtokensModuleCall;93 OrmlXtokensModuleError: OrmlXtokensModuleError;94 OrmlXtokensModuleEvent: OrmlXtokensModuleEvent;86 PalletAppPromotionCall: PalletAppPromotionCall;95 PalletAppPromotionCall: PalletAppPromotionCall;87 PalletAppPromotionError: PalletAppPromotionError;96 PalletAppPromotionError: PalletAppPromotionError;88 PalletAppPromotionEvent: PalletAppPromotionEvent;97 PalletAppPromotionEvent: PalletAppPromotionEvent;112 PalletEvmEvent: PalletEvmEvent;121 PalletEvmEvent: PalletEvmEvent;113 PalletEvmMigrationCall: PalletEvmMigrationCall;122 PalletEvmMigrationCall: PalletEvmMigrationCall;114 PalletEvmMigrationError: PalletEvmMigrationError;123 PalletEvmMigrationError: PalletEvmMigrationError;124 PalletForeignAssetsAssetIds: PalletForeignAssetsAssetIds;125 PalletForeignAssetsModuleAssetMetadata: PalletForeignAssetsModuleAssetMetadata;126 PalletForeignAssetsModuleCall: PalletForeignAssetsModuleCall;127 PalletForeignAssetsModuleError: PalletForeignAssetsModuleError;128 PalletForeignAssetsModuleEvent: PalletForeignAssetsModuleEvent;129 PalletForeignAssetsNativeCurrency: PalletForeignAssetsNativeCurrency;115 PalletFungibleError: PalletFungibleError;130 PalletFungibleError: PalletFungibleError;116 PalletInflationCall: PalletInflationCall;131 PalletInflationCall: PalletInflationCall;117 PalletNonfungibleError: PalletNonfungibleError;132 PalletNonfungibleError: PalletNonfungibleError;252 XcmV2TraitsOutcome: XcmV2TraitsOutcome;267 XcmV2TraitsOutcome: XcmV2TraitsOutcome;253 XcmV2WeightLimit: XcmV2WeightLimit;268 XcmV2WeightLimit: XcmV2WeightLimit;254 XcmV2Xcm: XcmV2Xcm;269 XcmV2Xcm: XcmV2Xcm;270 XcmVersionedMultiAsset: XcmVersionedMultiAsset;255 XcmVersionedMultiAssets: XcmVersionedMultiAssets;271 XcmVersionedMultiAssets: XcmVersionedMultiAssets;256 XcmVersionedMultiLocation: XcmVersionedMultiLocation;272 XcmVersionedMultiLocation: XcmVersionedMultiLocation;257 XcmVersionedXcm: XcmVersionedXcm;273 XcmVersionedXcm: XcmVersionedXcm;tests/src/interfaces/types-lookup.tsdiffbeforeafterboth351 readonly perPeriod: Compact<u128>;351 readonly perPeriod: Compact<u128>;352 }352 }353353354 /** @name CumulusPalletXcmpQueueEvent (39) */354 /** @name OrmlXtokensModuleEvent (39) */355 interface CumulusPalletXcmpQueueEvent extends Enum {355 interface OrmlXtokensModuleEvent extends Enum {356 readonly isSuccess: boolean;356 readonly isTransferredMultiAssets: boolean;357 readonly asSuccess: {358 readonly messageHash: Option<H256>;359 readonly weight: u64;360 } & Struct;361 readonly isFail: boolean;362 readonly asFail: {363 readonly messageHash: Option<H256>;364 readonly error: XcmV2TraitsError;365 readonly weight: u64;366 } & Struct;367 readonly isBadVersion: boolean;368 readonly asBadVersion: {369 readonly messageHash: Option<H256>;370 } & Struct;371 readonly isBadFormat: boolean;372 readonly asBadFormat: {373 readonly messageHash: Option<H256>;374 } & Struct;375 readonly isUpwardMessageSent: boolean;376 readonly asUpwardMessageSent: {377 readonly messageHash: Option<H256>;378 } & Struct;379 readonly isXcmpMessageSent: boolean;380 readonly asXcmpMessageSent: {381 readonly messageHash: Option<H256>;382 } & Struct;383 readonly isOverweightEnqueued: boolean;384 readonly asOverweightEnqueued: {357 readonly asTransferredMultiAssets: {385 readonly sender: u32;358 readonly sender: AccountId32;386 readonly sentAt: u32;359 readonly assets: XcmV1MultiassetMultiAssets;387 readonly index: u64;360 readonly fee: XcmV1MultiAsset;388 readonly required: u64;361 readonly dest: XcmV1MultiLocation;389 } & Struct;362 } & Struct;390 readonly isOverweightServiced: boolean;391 readonly asOverweightServiced: {392 readonly index: u64;393 readonly used: u64;394 } & Struct;395 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';363 readonly type: 'TransferredMultiAssets';396 }364 }397365398 /** @name XcmV2TraitsError (41) */366 /** @name XcmV1MultiassetMultiAssets (40) */399 interface XcmV2TraitsError extends Enum {367 interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}400 readonly isOverflow: boolean;401 readonly isUnimplemented: boolean;402 readonly isUntrustedReserveLocation: boolean;403 readonly isUntrustedTeleportLocation: boolean;404 readonly isMultiLocationFull: boolean;405 readonly isMultiLocationNotInvertible: boolean;406 readonly isBadOrigin: boolean;407 readonly isInvalidLocation: boolean;408 readonly isAssetNotFound: boolean;409 readonly isFailedToTransactAsset: boolean;410 readonly isNotWithdrawable: boolean;411 readonly isLocationCannotHold: boolean;412 readonly isExceedsMaxMessageSize: boolean;413 readonly isDestinationUnsupported: boolean;414 readonly isTransport: boolean;415 readonly isUnroutable: boolean;416 readonly isUnknownClaim: boolean;417 readonly isFailedToDecode: boolean;418 readonly isMaxWeightInvalid: boolean;419 readonly isNotHoldingFees: boolean;420 readonly isTooExpensive: boolean;421 readonly isTrap: boolean;422 readonly asTrap: u64;423 readonly isUnhandledXcmVersion: boolean;424 readonly isWeightLimitReached: boolean;425 readonly asWeightLimitReached: u64;426 readonly isBarrier: boolean;427 readonly isWeightNotComputable: boolean;428 readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';429 }430368431 /** @name PalletXcmEvent (43) */369 /** @name XcmV1MultiAsset (42) */432 interface PalletXcmEvent extends Enum {370 interface XcmV1MultiAsset extends Struct {433 readonly isAttempted: boolean;371 readonly id: XcmV1MultiassetAssetId;434 readonly asAttempted: XcmV2TraitsOutcome;372 readonly fun: XcmV1MultiassetFungibility;435 readonly isSent: boolean;436 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;437 readonly isUnexpectedResponse: boolean;438 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;439 readonly isResponseReady: boolean;440 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;441 readonly isNotified: boolean;442 readonly asNotified: ITuple<[u64, u8, u8]>;443 readonly isNotifyOverweight: boolean;444 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;445 readonly isNotifyDispatchError: boolean;446 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;447 readonly isNotifyDecodeFailed: boolean;448 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;449 readonly isInvalidResponder: boolean;450 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;451 readonly isInvalidResponderVersion: boolean;452 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;453 readonly isResponseTaken: boolean;454 readonly asResponseTaken: u64;455 readonly isAssetsTrapped: boolean;456 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;457 readonly isVersionChangeNotified: boolean;458 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;459 readonly isSupportedVersionChanged: boolean;460 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;461 readonly isNotifyTargetSendFail: boolean;462 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;463 readonly isNotifyTargetMigrationFail: boolean;464 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;465 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';466 }373 }467374468 /** @name XcmV2TraitsOutcome (44) */375 /** @name XcmV1MultiassetAssetId (43) */469 interface XcmV2TraitsOutcome extends Enum {376 interface XcmV1MultiassetAssetId extends Enum {470 readonly isComplete: boolean;377 readonly isConcrete: boolean;471 readonly asComplete: u64;378 readonly asConcrete: XcmV1MultiLocation;472 readonly isIncomplete: boolean;379 readonly isAbstract: boolean;473 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;380 readonly asAbstract: Bytes;474 readonly isError: boolean;475 readonly asError: XcmV2TraitsError;476 readonly type: 'Complete' | 'Incomplete' | 'Error';381 readonly type: 'Concrete' | 'Abstract';477 }382 }478383479 /** @name XcmV1MultiLocation (45) */384 /** @name XcmV1MultiLocation (44) */480 interface XcmV1MultiLocation extends Struct {385 interface XcmV1MultiLocation extends Struct {481 readonly parents: u8;386 readonly parents: u8;482 readonly interior: XcmV1MultilocationJunctions;387 readonly interior: XcmV1MultilocationJunctions;483 }388 }484389485 /** @name XcmV1MultilocationJunctions (46) */390 /** @name XcmV1MultilocationJunctions (45) */486 interface XcmV1MultilocationJunctions extends Enum {391 interface XcmV1MultilocationJunctions extends Enum {487 readonly isHere: boolean;392 readonly isHere: boolean;488 readonly isX1: boolean;393 readonly isX1: boolean;504 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';409 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';505 }410 }506411507 /** @name XcmV1Junction (47) */412 /** @name XcmV1Junction (46) */508 interface XcmV1Junction extends Enum {413 interface XcmV1Junction extends Enum {509 readonly isParachain: boolean;414 readonly isParachain: boolean;510 readonly asParachain: Compact<u32>;415 readonly asParachain: Compact<u32>;538 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';443 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';539 }444 }540445541 /** @name XcmV0JunctionNetworkId (49) */446 /** @name XcmV0JunctionNetworkId (48) */542 interface XcmV0JunctionNetworkId extends Enum {447 interface XcmV0JunctionNetworkId extends Enum {543 readonly isAny: boolean;448 readonly isAny: boolean;544 readonly isNamed: boolean;449 readonly isNamed: boolean;548 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';453 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';549 }454 }550455551 /** @name XcmV0JunctionBodyId (53) */456 /** @name XcmV0JunctionBodyId (52) */552 interface XcmV0JunctionBodyId extends Enum {457 interface XcmV0JunctionBodyId extends Enum {553 readonly isUnit: boolean;458 readonly isUnit: boolean;554 readonly isNamed: boolean;459 readonly isNamed: boolean;562 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';467 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';563 }468 }564469565 /** @name XcmV0JunctionBodyPart (54) */470 /** @name XcmV0JunctionBodyPart (53) */566 interface XcmV0JunctionBodyPart extends Enum {471 interface XcmV0JunctionBodyPart extends Enum {567 readonly isVoice: boolean;472 readonly isVoice: boolean;568 readonly isMembers: boolean;473 readonly isMembers: boolean;587 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';492 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';588 }493 }494495 /** @name XcmV1MultiassetFungibility (54) */496 interface XcmV1MultiassetFungibility extends Enum {497 readonly isFungible: boolean;498 readonly asFungible: Compact<u128>;499 readonly isNonFungible: boolean;500 readonly asNonFungible: XcmV1MultiassetAssetInstance;501 readonly type: 'Fungible' | 'NonFungible';502 }503504 /** @name XcmV1MultiassetAssetInstance (55) */505 interface XcmV1MultiassetAssetInstance extends Enum {506 readonly isUndefined: boolean;507 readonly isIndex: boolean;508 readonly asIndex: Compact<u128>;509 readonly isArray4: boolean;510 readonly asArray4: U8aFixed;511 readonly isArray8: boolean;512 readonly asArray8: U8aFixed;513 readonly isArray16: boolean;514 readonly asArray16: U8aFixed;515 readonly isArray32: boolean;516 readonly asArray32: U8aFixed;517 readonly isBlob: boolean;518 readonly asBlob: Bytes;519 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';520 }521522 /** @name OrmlTokensModuleEvent (58) */523 interface OrmlTokensModuleEvent extends Enum {524 readonly isEndowed: boolean;525 readonly asEndowed: {526 readonly currencyId: PalletForeignAssetsAssetIds;527 readonly who: AccountId32;528 readonly amount: u128;529 } & Struct;530 readonly isDustLost: boolean;531 readonly asDustLost: {532 readonly currencyId: PalletForeignAssetsAssetIds;533 readonly who: AccountId32;534 readonly amount: u128;535 } & Struct;536 readonly isTransfer: boolean;537 readonly asTransfer: {538 readonly currencyId: PalletForeignAssetsAssetIds;539 readonly from: AccountId32;540 readonly to: AccountId32;541 readonly amount: u128;542 } & Struct;543 readonly isReserved: boolean;544 readonly asReserved: {545 readonly currencyId: PalletForeignAssetsAssetIds;546 readonly who: AccountId32;547 readonly amount: u128;548 } & Struct;549 readonly isUnreserved: boolean;550 readonly asUnreserved: {551 readonly currencyId: PalletForeignAssetsAssetIds;552 readonly who: AccountId32;553 readonly amount: u128;554 } & Struct;555 readonly isReserveRepatriated: boolean;556 readonly asReserveRepatriated: {557 readonly currencyId: PalletForeignAssetsAssetIds;558 readonly from: AccountId32;559 readonly to: AccountId32;560 readonly amount: u128;561 readonly status: FrameSupportTokensMiscBalanceStatus;562 } & Struct;563 readonly isBalanceSet: boolean;564 readonly asBalanceSet: {565 readonly currencyId: PalletForeignAssetsAssetIds;566 readonly who: AccountId32;567 readonly free: u128;568 readonly reserved: u128;569 } & Struct;570 readonly isTotalIssuanceSet: boolean;571 readonly asTotalIssuanceSet: {572 readonly currencyId: PalletForeignAssetsAssetIds;573 readonly amount: u128;574 } & Struct;575 readonly isWithdrawn: boolean;576 readonly asWithdrawn: {577 readonly currencyId: PalletForeignAssetsAssetIds;578 readonly who: AccountId32;579 readonly amount: u128;580 } & Struct;581 readonly isSlashed: boolean;582 readonly asSlashed: {583 readonly currencyId: PalletForeignAssetsAssetIds;584 readonly who: AccountId32;585 readonly freeAmount: u128;586 readonly reservedAmount: u128;587 } & Struct;588 readonly isDeposited: boolean;589 readonly asDeposited: {590 readonly currencyId: PalletForeignAssetsAssetIds;591 readonly who: AccountId32;592 readonly amount: u128;593 } & Struct;594 readonly isLockSet: boolean;595 readonly asLockSet: {596 readonly lockId: U8aFixed;597 readonly currencyId: PalletForeignAssetsAssetIds;598 readonly who: AccountId32;599 readonly amount: u128;600 } & Struct;601 readonly isLockRemoved: boolean;602 readonly asLockRemoved: {603 readonly lockId: U8aFixed;604 readonly currencyId: PalletForeignAssetsAssetIds;605 readonly who: AccountId32;606 } & Struct;607 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'BalanceSet' | 'TotalIssuanceSet' | 'Withdrawn' | 'Slashed' | 'Deposited' | 'LockSet' | 'LockRemoved';608 }609610 /** @name PalletForeignAssetsAssetIds (59) */611 interface PalletForeignAssetsAssetIds extends Enum {612 readonly isForeignAssetId: boolean;613 readonly asForeignAssetId: u32;614 readonly isNativeAssetId: boolean;615 readonly asNativeAssetId: PalletForeignAssetsNativeCurrency;616 readonly type: 'ForeignAssetId' | 'NativeAssetId';617 }618619 /** @name PalletForeignAssetsNativeCurrency (60) */620 interface PalletForeignAssetsNativeCurrency extends Enum {621 readonly isHere: boolean;622 readonly isParent: boolean;623 readonly type: 'Here' | 'Parent';624 }625626 /** @name CumulusPalletXcmpQueueEvent (61) */627 interface CumulusPalletXcmpQueueEvent extends Enum {628 readonly isSuccess: boolean;629 readonly asSuccess: {630 readonly messageHash: Option<H256>;631 readonly weight: u64;632 } & Struct;633 readonly isFail: boolean;634 readonly asFail: {635 readonly messageHash: Option<H256>;636 readonly error: XcmV2TraitsError;637 readonly weight: u64;638 } & Struct;639 readonly isBadVersion: boolean;640 readonly asBadVersion: {641 readonly messageHash: Option<H256>;642 } & Struct;643 readonly isBadFormat: boolean;644 readonly asBadFormat: {645 readonly messageHash: Option<H256>;646 } & Struct;647 readonly isUpwardMessageSent: boolean;648 readonly asUpwardMessageSent: {649 readonly messageHash: Option<H256>;650 } & Struct;651 readonly isXcmpMessageSent: boolean;652 readonly asXcmpMessageSent: {653 readonly messageHash: Option<H256>;654 } & Struct;655 readonly isOverweightEnqueued: boolean;656 readonly asOverweightEnqueued: {657 readonly sender: u32;658 readonly sentAt: u32;659 readonly index: u64;660 readonly required: u64;661 } & Struct;662 readonly isOverweightServiced: boolean;663 readonly asOverweightServiced: {664 readonly index: u64;665 readonly used: u64;666 } & Struct;667 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';668 }669670 /** @name XcmV2TraitsError (63) */671 interface XcmV2TraitsError extends Enum {672 readonly isOverflow: boolean;673 readonly isUnimplemented: boolean;674 readonly isUntrustedReserveLocation: boolean;675 readonly isUntrustedTeleportLocation: boolean;676 readonly isMultiLocationFull: boolean;677 readonly isMultiLocationNotInvertible: boolean;678 readonly isBadOrigin: boolean;679 readonly isInvalidLocation: boolean;680 readonly isAssetNotFound: boolean;681 readonly isFailedToTransactAsset: boolean;682 readonly isNotWithdrawable: boolean;683 readonly isLocationCannotHold: boolean;684 readonly isExceedsMaxMessageSize: boolean;685 readonly isDestinationUnsupported: boolean;686 readonly isTransport: boolean;687 readonly isUnroutable: boolean;688 readonly isUnknownClaim: boolean;689 readonly isFailedToDecode: boolean;690 readonly isMaxWeightInvalid: boolean;691 readonly isNotHoldingFees: boolean;692 readonly isTooExpensive: boolean;693 readonly isTrap: boolean;694 readonly asTrap: u64;695 readonly isUnhandledXcmVersion: boolean;696 readonly isWeightLimitReached: boolean;697 readonly asWeightLimitReached: u64;698 readonly isBarrier: boolean;699 readonly isWeightNotComputable: boolean;700 readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';701 }702703 /** @name PalletXcmEvent (65) */704 interface PalletXcmEvent extends Enum {705 readonly isAttempted: boolean;706 readonly asAttempted: XcmV2TraitsOutcome;707 readonly isSent: boolean;708 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;709 readonly isUnexpectedResponse: boolean;710 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;711 readonly isResponseReady: boolean;712 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;713 readonly isNotified: boolean;714 readonly asNotified: ITuple<[u64, u8, u8]>;715 readonly isNotifyOverweight: boolean;716 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;717 readonly isNotifyDispatchError: boolean;718 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;719 readonly isNotifyDecodeFailed: boolean;720 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;721 readonly isInvalidResponder: boolean;722 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;723 readonly isInvalidResponderVersion: boolean;724 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;725 readonly isResponseTaken: boolean;726 readonly asResponseTaken: u64;727 readonly isAssetsTrapped: boolean;728 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;729 readonly isVersionChangeNotified: boolean;730 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;731 readonly isSupportedVersionChanged: boolean;732 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;733 readonly isNotifyTargetSendFail: boolean;734 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;735 readonly isNotifyTargetMigrationFail: boolean;736 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;737 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';738 }739740 /** @name XcmV2TraitsOutcome (66) */741 interface XcmV2TraitsOutcome extends Enum {742 readonly isComplete: boolean;743 readonly asComplete: u64;744 readonly isIncomplete: boolean;745 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;746 readonly isError: boolean;747 readonly asError: XcmV2TraitsError;748 readonly type: 'Complete' | 'Incomplete' | 'Error';749 }589750590 /** @name XcmV2Xcm (55) */751 /** @name XcmV2Xcm (67) */591 interface XcmV2Xcm extends Vec<XcmV2Instruction> {}752 interface XcmV2Xcm extends Vec<XcmV2Instruction> {}592753593 /** @name XcmV2Instruction (57) */754 /** @name XcmV2Instruction (69) */594 interface XcmV2Instruction extends Enum {755 interface XcmV2Instruction extends Enum {595 readonly isWithdrawAsset: boolean;756 readonly isWithdrawAsset: boolean;596 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;757 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;710 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';871 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';711 }872 }712713 /** @name XcmV1MultiassetMultiAssets (58) */714 interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}715716 /** @name XcmV1MultiAsset (60) */717 interface XcmV1MultiAsset extends Struct {718 readonly id: XcmV1MultiassetAssetId;719 readonly fun: XcmV1MultiassetFungibility;720 }721722 /** @name XcmV1MultiassetAssetId (61) */723 interface XcmV1MultiassetAssetId extends Enum {724 readonly isConcrete: boolean;725 readonly asConcrete: XcmV1MultiLocation;726 readonly isAbstract: boolean;727 readonly asAbstract: Bytes;728 readonly type: 'Concrete' | 'Abstract';729 }730731 /** @name XcmV1MultiassetFungibility (62) */732 interface XcmV1MultiassetFungibility extends Enum {733 readonly isFungible: boolean;734 readonly asFungible: Compact<u128>;735 readonly isNonFungible: boolean;736 readonly asNonFungible: XcmV1MultiassetAssetInstance;737 readonly type: 'Fungible' | 'NonFungible';738 }739740 /** @name XcmV1MultiassetAssetInstance (63) */741 interface XcmV1MultiassetAssetInstance extends Enum {742 readonly isUndefined: boolean;743 readonly isIndex: boolean;744 readonly asIndex: Compact<u128>;745 readonly isArray4: boolean;746 readonly asArray4: U8aFixed;747 readonly isArray8: boolean;748 readonly asArray8: U8aFixed;749 readonly isArray16: boolean;750 readonly asArray16: U8aFixed;751 readonly isArray32: boolean;752 readonly asArray32: U8aFixed;753 readonly isBlob: boolean;754 readonly asBlob: Bytes;755 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';756 }757873758 /** @name XcmV2Response (66) */874 /** @name XcmV2Response (70) */759 interface XcmV2Response extends Enum {875 interface XcmV2Response extends Enum {760 readonly isNull: boolean;876 readonly isNull: boolean;761 readonly isAssets: boolean;877 readonly isAssets: boolean;767 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';883 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';768 }884 }769885770 /** @name XcmV0OriginKind (69) */886 /** @name XcmV0OriginKind (73) */771 interface XcmV0OriginKind extends Enum {887 interface XcmV0OriginKind extends Enum {772 readonly isNative: boolean;888 readonly isNative: boolean;773 readonly isSovereignAccount: boolean;889 readonly isSovereignAccount: boolean;776 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';892 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';777 }893 }778894779 /** @name XcmDoubleEncoded (70) */895 /** @name XcmDoubleEncoded (74) */780 interface XcmDoubleEncoded extends Struct {896 interface XcmDoubleEncoded extends Struct {781 readonly encoded: Bytes;897 readonly encoded: Bytes;782 }898 }783899784 /** @name XcmV1MultiassetMultiAssetFilter (71) */900 /** @name XcmV1MultiassetMultiAssetFilter (75) */785 interface XcmV1MultiassetMultiAssetFilter extends Enum {901 interface XcmV1MultiassetMultiAssetFilter extends Enum {786 readonly isDefinite: boolean;902 readonly isDefinite: boolean;787 readonly asDefinite: XcmV1MultiassetMultiAssets;903 readonly asDefinite: XcmV1MultiassetMultiAssets;790 readonly type: 'Definite' | 'Wild';906 readonly type: 'Definite' | 'Wild';791 }907 }792908793 /** @name XcmV1MultiassetWildMultiAsset (72) */909 /** @name XcmV1MultiassetWildMultiAsset (76) */794 interface XcmV1MultiassetWildMultiAsset extends Enum {910 interface XcmV1MultiassetWildMultiAsset extends Enum {795 readonly isAll: boolean;911 readonly isAll: boolean;796 readonly isAllOf: boolean;912 readonly isAllOf: boolean;801 readonly type: 'All' | 'AllOf';917 readonly type: 'All' | 'AllOf';802 }918 }803919804 /** @name XcmV1MultiassetWildFungibility (73) */920 /** @name XcmV1MultiassetWildFungibility (77) */805 interface XcmV1MultiassetWildFungibility extends Enum {921 interface XcmV1MultiassetWildFungibility extends Enum {806 readonly isFungible: boolean;922 readonly isFungible: boolean;807 readonly isNonFungible: boolean;923 readonly isNonFungible: boolean;808 readonly type: 'Fungible' | 'NonFungible';924 readonly type: 'Fungible' | 'NonFungible';809 }925 }810926811 /** @name XcmV2WeightLimit (74) */927 /** @name XcmV2WeightLimit (78) */812 interface XcmV2WeightLimit extends Enum {928 interface XcmV2WeightLimit extends Enum {813 readonly isUnlimited: boolean;929 readonly isUnlimited: boolean;814 readonly isLimited: boolean;930 readonly isLimited: boolean;815 readonly asLimited: Compact<u64>;931 readonly asLimited: Compact<u64>;816 readonly type: 'Unlimited' | 'Limited';932 readonly type: 'Unlimited' | 'Limited';817 }933 }818934819 /** @name XcmVersionedMultiAssets (76) */935 /** @name XcmVersionedMultiAssets (80) */820 interface XcmVersionedMultiAssets extends Enum {936 interface XcmVersionedMultiAssets extends Enum {821 readonly isV0: boolean;937 readonly isV0: boolean;822 readonly asV0: Vec<XcmV0MultiAsset>;938 readonly asV0: Vec<XcmV0MultiAsset>;825 readonly type: 'V0' | 'V1';941 readonly type: 'V0' | 'V1';826 }942 }827943828 /** @name XcmV0MultiAsset (78) */944 /** @name XcmV0MultiAsset (82) */829 interface XcmV0MultiAsset extends Enum {945 interface XcmV0MultiAsset extends Enum {830 readonly isNone: boolean;946 readonly isNone: boolean;831 readonly isAll: boolean;947 readonly isAll: boolean;870 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';986 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';871 }987 }872988873 /** @name XcmV0MultiLocation (79) */989 /** @name XcmV0MultiLocation (83) */874 interface XcmV0MultiLocation extends Enum {990 interface XcmV0MultiLocation extends Enum {875 readonly isNull: boolean;991 readonly isNull: boolean;876 readonly isX1: boolean;992 readonly isX1: boolean;892 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';1008 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';893 }1009 }8941010895 /** @name XcmV0Junction (80) */1011 /** @name XcmV0Junction (84) */896 interface XcmV0Junction extends Enum {1012 interface XcmV0Junction extends Enum {897 readonly isParent: boolean;1013 readonly isParent: boolean;898 readonly isParachain: boolean;1014 readonly isParachain: boolean;927 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';1043 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';928 }1044 }9291045930 /** @name XcmVersionedMultiLocation (81) */1046 /** @name XcmVersionedMultiLocation (85) */931 interface XcmVersionedMultiLocation extends Enum {1047 interface XcmVersionedMultiLocation extends Enum {932 readonly isV0: boolean;1048 readonly isV0: boolean;933 readonly asV0: XcmV0MultiLocation;1049 readonly asV0: XcmV0MultiLocation;936 readonly type: 'V0' | 'V1';1052 readonly type: 'V0' | 'V1';937 }1053 }9381054939 /** @name CumulusPalletXcmEvent (82) */1055 /** @name CumulusPalletXcmEvent (86) */940 interface CumulusPalletXcmEvent extends Enum {1056 interface CumulusPalletXcmEvent extends Enum {941 readonly isInvalidFormat: boolean;1057 readonly isInvalidFormat: boolean;942 readonly asInvalidFormat: U8aFixed;1058 readonly asInvalidFormat: U8aFixed;947 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';1063 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';948 }1064 }9491065950 /** @name CumulusPalletDmpQueueEvent (83) */1066 /** @name CumulusPalletDmpQueueEvent (87) */951 interface CumulusPalletDmpQueueEvent extends Enum {1067 interface CumulusPalletDmpQueueEvent extends Enum {952 readonly isInvalidFormat: boolean;1068 readonly isInvalidFormat: boolean;953 readonly asInvalidFormat: {1069 readonly asInvalidFormat: {982 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';1098 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';983 }1099 }9841100985 /** @name PalletUniqueRawEvent (84) */1101 /** @name PalletUniqueRawEvent (88) */986 interface PalletUniqueRawEvent extends Enum {1102 interface PalletUniqueRawEvent extends Enum {987 readonly isCollectionSponsorRemoved: boolean;1103 readonly isCollectionSponsorRemoved: boolean;988 readonly asCollectionSponsorRemoved: u32;1104 readonly asCollectionSponsorRemoved: u32;1007 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';1123 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';1008 }1124 }100911251010 /** @name PalletEvmAccountBasicCrossAccountIdRepr (85) */1126 /** @name PalletEvmAccountBasicCrossAccountIdRepr (89) */1011 interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1127 interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1012 readonly isSubstrate: boolean;1128 readonly isSubstrate: boolean;1013 readonly asSubstrate: AccountId32;1129 readonly asSubstrate: AccountId32;1016 readonly type: 'Substrate' | 'Ethereum';1132 readonly type: 'Substrate' | 'Ethereum';1017 }1133 }101811341019 /** @name PalletUniqueSchedulerEvent (88) */1135 /** @name PalletUniqueSchedulerEvent (92) */1020 interface PalletUniqueSchedulerEvent extends Enum {1136 interface PalletUniqueSchedulerEvent extends Enum {1021 readonly isScheduled: boolean;1137 readonly isScheduled: boolean;1022 readonly asScheduled: {1138 readonly asScheduled: {1043 readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';1159 readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';1044 }1160 }104511611046 /** @name FrameSupportScheduleLookupError (91) */1162 /** @name FrameSupportScheduleLookupError (95) */1047 interface FrameSupportScheduleLookupError extends Enum {1163 interface FrameSupportScheduleLookupError extends Enum {1048 readonly isUnknown: boolean;1164 readonly isUnknown: boolean;1049 readonly isBadFormat: boolean;1165 readonly isBadFormat: boolean;1050 readonly type: 'Unknown' | 'BadFormat';1166 readonly type: 'Unknown' | 'BadFormat';1051 }1167 }105211681053 /** @name PalletCommonEvent (92) */1169 /** @name PalletCommonEvent (96) */1054 interface PalletCommonEvent extends Enum {1170 interface PalletCommonEvent extends Enum {1055 readonly isCollectionCreated: boolean;1171 readonly isCollectionCreated: boolean;1056 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;1172 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;1077 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';1193 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';1078 }1194 }107911951080 /** @name PalletStructureEvent (95) */1196 /** @name PalletStructureEvent (99) */1081 interface PalletStructureEvent extends Enum {1197 interface PalletStructureEvent extends Enum {1082 readonly isExecuted: boolean;1198 readonly isExecuted: boolean;1083 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1199 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1084 readonly type: 'Executed';1200 readonly type: 'Executed';1085 }1201 }108612021087 /** @name PalletRmrkCoreEvent (96) */1203 /** @name PalletRmrkCoreEvent (100) */1088 interface PalletRmrkCoreEvent extends Enum {1204 interface PalletRmrkCoreEvent extends Enum {1089 readonly isCollectionCreated: boolean;1205 readonly isCollectionCreated: boolean;1090 readonly asCollectionCreated: {1206 readonly asCollectionCreated: {1174 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';1290 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';1175 }1291 }117612921177 /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (97) */1293 /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (101) */1178 interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1294 interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1179 readonly isAccountId: boolean;1295 readonly isAccountId: boolean;1180 readonly asAccountId: AccountId32;1296 readonly asAccountId: AccountId32;1183 readonly type: 'AccountId' | 'CollectionAndNftTuple';1299 readonly type: 'AccountId' | 'CollectionAndNftTuple';1184 }1300 }118513011186 /** @name PalletRmrkEquipEvent (102) */1302 /** @name PalletRmrkEquipEvent (106) */1187 interface PalletRmrkEquipEvent extends Enum {1303 interface PalletRmrkEquipEvent extends Enum {1188 readonly isBaseCreated: boolean;1304 readonly isBaseCreated: boolean;1189 readonly asBaseCreated: {1305 readonly asBaseCreated: {1198 readonly type: 'BaseCreated' | 'EquippablesUpdated';1314 readonly type: 'BaseCreated' | 'EquippablesUpdated';1199 }1315 }120013161201 /** @name PalletAppPromotionEvent (103) */1317 /** @name PalletAppPromotionEvent (107) */1202 interface PalletAppPromotionEvent extends Enum {1318 interface PalletAppPromotionEvent extends Enum {1203 readonly isStakingRecalculation: boolean;1319 readonly isStakingRecalculation: boolean;1204 readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;1320 readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;1211 readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';1327 readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';1212 }1328 }13291330 /** @name PalletForeignAssetsModuleEvent (108) */1331 interface PalletForeignAssetsModuleEvent extends Enum {1332 readonly isForeignAssetRegistered: boolean;1333 readonly asForeignAssetRegistered: {1334 readonly assetId: u32;1335 readonly assetAddress: XcmV1MultiLocation;1336 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1337 } & Struct;1338 readonly isForeignAssetUpdated: boolean;1339 readonly asForeignAssetUpdated: {1340 readonly assetId: u32;1341 readonly assetAddress: XcmV1MultiLocation;1342 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1343 } & Struct;1344 readonly isAssetRegistered: boolean;1345 readonly asAssetRegistered: {1346 readonly assetId: PalletForeignAssetsAssetIds;1347 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1348 } & Struct;1349 readonly isAssetUpdated: boolean;1350 readonly asAssetUpdated: {1351 readonly assetId: PalletForeignAssetsAssetIds;1352 readonly metadata: PalletForeignAssetsModuleAssetMetadata;1353 } & Struct;1354 readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';1355 }13561357 /** @name PalletForeignAssetsModuleAssetMetadata (109) */1358 interface PalletForeignAssetsModuleAssetMetadata extends Struct {1359 readonly name: Bytes;1360 readonly symbol: Bytes;1361 readonly decimals: u8;1362 readonly minimalBalance: u128;1363 }121313641214 /** @name PalletEvmEvent (104) */1365 /** @name PalletEvmEvent (110) */1215 interface PalletEvmEvent extends Enum {1366 interface PalletEvmEvent extends Enum {1216 readonly isLog: boolean;1367 readonly isLog: boolean;1217 readonly asLog: EthereumLog;1368 readonly asLog: EthereumLog;1230 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1381 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1231 }1382 }123213831233 /** @name EthereumLog (105) */1384 /** @name EthereumLog (111) */1234 interface EthereumLog extends Struct {1385 interface EthereumLog extends Struct {1235 readonly address: H160;1386 readonly address: H160;1236 readonly topics: Vec<H256>;1387 readonly topics: Vec<H256>;1237 readonly data: Bytes;1388 readonly data: Bytes;1238 }1389 }123913901240 /** @name PalletEthereumEvent (109) */1391 /** @name PalletEthereumEvent (115) */1241 interface PalletEthereumEvent extends Enum {1392 interface PalletEthereumEvent extends Enum {1242 readonly isExecuted: boolean;1393 readonly isExecuted: boolean;1243 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;1394 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;1244 readonly type: 'Executed';1395 readonly type: 'Executed';1245 }1396 }124613971247 /** @name EvmCoreErrorExitReason (110) */1398 /** @name EvmCoreErrorExitReason (116) */1248 interface EvmCoreErrorExitReason extends Enum {1399 interface EvmCoreErrorExitReason extends Enum {1249 readonly isSucceed: boolean;1400 readonly isSucceed: boolean;1250 readonly asSucceed: EvmCoreErrorExitSucceed;1401 readonly asSucceed: EvmCoreErrorExitSucceed;1257 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';1408 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';1258 }1409 }125914101260 /** @name EvmCoreErrorExitSucceed (111) */1411 /** @name EvmCoreErrorExitSucceed (117) */1261 interface EvmCoreErrorExitSucceed extends Enum {1412 interface EvmCoreErrorExitSucceed extends Enum {1262 readonly isStopped: boolean;1413 readonly isStopped: boolean;1263 readonly isReturned: boolean;1414 readonly isReturned: boolean;1264 readonly isSuicided: boolean;1415 readonly isSuicided: boolean;1265 readonly type: 'Stopped' | 'Returned' | 'Suicided';1416 readonly type: 'Stopped' | 'Returned' | 'Suicided';1266 }1417 }126714181268 /** @name EvmCoreErrorExitError (112) */1419 /** @name EvmCoreErrorExitError (118) */1269 interface EvmCoreErrorExitError extends Enum {1420 interface EvmCoreErrorExitError extends Enum {1270 readonly isStackUnderflow: boolean;1421 readonly isStackUnderflow: boolean;1271 readonly isStackOverflow: boolean;1422 readonly isStackOverflow: boolean;1286 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';1437 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';1287 }1438 }128814391289 /** @name EvmCoreErrorExitRevert (115) */1440 /** @name EvmCoreErrorExitRevert (121) */1290 interface EvmCoreErrorExitRevert extends Enum {1441 interface EvmCoreErrorExitRevert extends Enum {1291 readonly isReverted: boolean;1442 readonly isReverted: boolean;1292 readonly type: 'Reverted';1443 readonly type: 'Reverted';1293 }1444 }129414451295 /** @name EvmCoreErrorExitFatal (116) */1446 /** @name EvmCoreErrorExitFatal (122) */1296 interface EvmCoreErrorExitFatal extends Enum {1447 interface EvmCoreErrorExitFatal extends Enum {1297 readonly isNotSupported: boolean;1448 readonly isNotSupported: boolean;1298 readonly isUnhandledInterrupt: boolean;1449 readonly isUnhandledInterrupt: boolean;1303 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';1454 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';1304 }1455 }130514561306 /** @name PalletEvmContractHelpersEvent (117) */1457 /** @name PalletEvmContractHelpersEvent (123) */1307 interface PalletEvmContractHelpersEvent extends Enum {1458 interface PalletEvmContractHelpersEvent extends Enum {1308 readonly isContractSponsorSet: boolean;1459 readonly isContractSponsorSet: boolean;1309 readonly asContractSponsorSet: ITuple<[H160, AccountId32]>;1460 readonly asContractSponsorSet: ITuple<[H160, AccountId32]>;1314 readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved';1465 readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved';1315 }1466 }131614671317 /** @name FrameSystemPhase (118) */1468 /** @name FrameSystemPhase (124) */1318 interface FrameSystemPhase extends Enum {1469 interface FrameSystemPhase extends Enum {1319 readonly isApplyExtrinsic: boolean;1470 readonly isApplyExtrinsic: boolean;1320 readonly asApplyExtrinsic: u32;1471 readonly asApplyExtrinsic: u32;1323 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';1474 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';1324 }1475 }132514761326 /** @name FrameSystemLastRuntimeUpgradeInfo (120) */1477 /** @name FrameSystemLastRuntimeUpgradeInfo (126) */1327 interface FrameSystemLastRuntimeUpgradeInfo extends Struct {1478 interface FrameSystemLastRuntimeUpgradeInfo extends Struct {1328 readonly specVersion: Compact<u32>;1479 readonly specVersion: Compact<u32>;1329 readonly specName: Text;1480 readonly specName: Text;1330 }1481 }133114821332 /** @name FrameSystemCall (121) */1483 /** @name FrameSystemCall (127) */1333 interface FrameSystemCall extends Enum {1484 interface FrameSystemCall extends Enum {1334 readonly isFillBlock: boolean;1485 readonly isFillBlock: boolean;1335 readonly asFillBlock: {1486 readonly asFillBlock: {1371 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';1522 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';1372 }1523 }137315241374 /** @name FrameSystemLimitsBlockWeights (126) */1525 /** @name FrameSystemLimitsBlockWeights (132) */1375 interface FrameSystemLimitsBlockWeights extends Struct {1526 interface FrameSystemLimitsBlockWeights extends Struct {1376 readonly baseBlock: u64;1527 readonly baseBlock: u64;1377 readonly maxBlock: u64;1528 readonly maxBlock: u64;1378 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;1529 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;1379 }1530 }138015311381 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (127) */1532 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (133) */1382 interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {1533 interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {1383 readonly normal: FrameSystemLimitsWeightsPerClass;1534 readonly normal: FrameSystemLimitsWeightsPerClass;1384 readonly operational: FrameSystemLimitsWeightsPerClass;1535 readonly operational: FrameSystemLimitsWeightsPerClass;1385 readonly mandatory: FrameSystemLimitsWeightsPerClass;1536 readonly mandatory: FrameSystemLimitsWeightsPerClass;1386 }1537 }138715381388 /** @name FrameSystemLimitsWeightsPerClass (128) */1539 /** @name FrameSystemLimitsWeightsPerClass (134) */1389 interface FrameSystemLimitsWeightsPerClass extends Struct {1540 interface FrameSystemLimitsWeightsPerClass extends Struct {1390 readonly baseExtrinsic: u64;1541 readonly baseExtrinsic: u64;1391 readonly maxExtrinsic: Option<u64>;1542 readonly maxExtrinsic: Option<u64>;1392 readonly maxTotal: Option<u64>;1543 readonly maxTotal: Option<u64>;1393 readonly reserved: Option<u64>;1544 readonly reserved: Option<u64>;1394 }1545 }139515461396 /** @name FrameSystemLimitsBlockLength (130) */1547 /** @name FrameSystemLimitsBlockLength (136) */1397 interface FrameSystemLimitsBlockLength extends Struct {1548 interface FrameSystemLimitsBlockLength extends Struct {1398 readonly max: FrameSupportWeightsPerDispatchClassU32;1549 readonly max: FrameSupportWeightsPerDispatchClassU32;1399 }1550 }140015511401 /** @name FrameSupportWeightsPerDispatchClassU32 (131) */1552 /** @name FrameSupportWeightsPerDispatchClassU32 (137) */1402 interface FrameSupportWeightsPerDispatchClassU32 extends Struct {1553 interface FrameSupportWeightsPerDispatchClassU32 extends Struct {1403 readonly normal: u32;1554 readonly normal: u32;1404 readonly operational: u32;1555 readonly operational: u32;1405 readonly mandatory: u32;1556 readonly mandatory: u32;1406 }1557 }140715581408 /** @name FrameSupportWeightsRuntimeDbWeight (132) */1559 /** @name FrameSupportWeightsRuntimeDbWeight (138) */1409 interface FrameSupportWeightsRuntimeDbWeight extends Struct {1560 interface FrameSupportWeightsRuntimeDbWeight extends Struct {1410 readonly read: u64;1561 readonly read: u64;1411 readonly write: u64;1562 readonly write: u64;1412 }1563 }141315641414 /** @name SpVersionRuntimeVersion (133) */1565 /** @name SpVersionRuntimeVersion (139) */1415 interface SpVersionRuntimeVersion extends Struct {1566 interface SpVersionRuntimeVersion extends Struct {1416 readonly specName: Text;1567 readonly specName: Text;1417 readonly implName: Text;1568 readonly implName: Text;1423 readonly stateVersion: u8;1574 readonly stateVersion: u8;1424 }1575 }142515761426 /** @name FrameSystemError (138) */1577 /** @name FrameSystemError (144) */1427 interface FrameSystemError extends Enum {1578 interface FrameSystemError extends Enum {1428 readonly isInvalidSpecName: boolean;1579 readonly isInvalidSpecName: boolean;1429 readonly isSpecVersionNeedsToIncrease: boolean;1580 readonly isSpecVersionNeedsToIncrease: boolean;1434 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';1585 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';1435 }1586 }143615871437 /** @name PolkadotPrimitivesV2PersistedValidationData (139) */1588 /** @name PolkadotPrimitivesV2PersistedValidationData (145) */1438 interface PolkadotPrimitivesV2PersistedValidationData extends Struct {1589 interface PolkadotPrimitivesV2PersistedValidationData extends Struct {1439 readonly parentHead: Bytes;1590 readonly parentHead: Bytes;1440 readonly relayParentNumber: u32;1591 readonly relayParentNumber: u32;1441 readonly relayParentStorageRoot: H256;1592 readonly relayParentStorageRoot: H256;1442 readonly maxPovSize: u32;1593 readonly maxPovSize: u32;1443 }1594 }144415951445 /** @name PolkadotPrimitivesV2UpgradeRestriction (142) */1596 /** @name PolkadotPrimitivesV2UpgradeRestriction (148) */1446 interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {1597 interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {1447 readonly isPresent: boolean;1598 readonly isPresent: boolean;1448 readonly type: 'Present';1599 readonly type: 'Present';1449 }1600 }145016011451 /** @name SpTrieStorageProof (143) */1602 /** @name SpTrieStorageProof (149) */1452 interface SpTrieStorageProof extends Struct {1603 interface SpTrieStorageProof extends Struct {1453 readonly trieNodes: BTreeSet<Bytes>;1604 readonly trieNodes: BTreeSet<Bytes>;1454 }1605 }145516061456 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (145) */1607 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (151) */1457 interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {1608 interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {1458 readonly dmqMqcHead: H256;1609 readonly dmqMqcHead: H256;1459 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;1610 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;1460 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1611 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1461 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1612 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1462 }1613 }146316141464 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (148) */1615 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (154) */1465 interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {1616 interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {1466 readonly maxCapacity: u32;1617 readonly maxCapacity: u32;1467 readonly maxTotalSize: u32;1618 readonly maxTotalSize: u32;1471 readonly mqcHead: Option<H256>;1622 readonly mqcHead: Option<H256>;1472 }1623 }147316241474 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (149) */1625 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (155) */1475 interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {1626 interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {1476 readonly maxCodeSize: u32;1627 readonly maxCodeSize: u32;1477 readonly maxHeadDataSize: u32;1628 readonly maxHeadDataSize: u32;1484 readonly validationUpgradeDelay: u32;1635 readonly validationUpgradeDelay: u32;1485 }1636 }148616371487 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (155) */1638 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (161) */1488 interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {1639 interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {1489 readonly recipient: u32;1640 readonly recipient: u32;1490 readonly data: Bytes;1641 readonly data: Bytes;1491 }1642 }149216431493 /** @name CumulusPalletParachainSystemCall (156) */1644 /** @name CumulusPalletParachainSystemCall (162) */1494 interface CumulusPalletParachainSystemCall extends Enum {1645 interface CumulusPalletParachainSystemCall extends Enum {1495 readonly isSetValidationData: boolean;1646 readonly isSetValidationData: boolean;1496 readonly asSetValidationData: {1647 readonly asSetValidationData: {1511 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';1662 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';1512 }1663 }151316641514 /** @name CumulusPrimitivesParachainInherentParachainInherentData (157) */1665 /** @name CumulusPrimitivesParachainInherentParachainInherentData (163) */1515 interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {1666 interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {1516 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;1667 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;1517 readonly relayChainState: SpTrieStorageProof;1668 readonly relayChainState: SpTrieStorageProof;1518 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;1669 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;1519 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;1670 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;1520 }1671 }152116721522 /** @name PolkadotCorePrimitivesInboundDownwardMessage (159) */1673 /** @name PolkadotCorePrimitivesInboundDownwardMessage (165) */1523 interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1674 interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1524 readonly sentAt: u32;1675 readonly sentAt: u32;1525 readonly msg: Bytes;1676 readonly msg: Bytes;1526 }1677 }152716781528 /** @name PolkadotCorePrimitivesInboundHrmpMessage (162) */1679 /** @name PolkadotCorePrimitivesInboundHrmpMessage (168) */1529 interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1680 interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1530 readonly sentAt: u32;1681 readonly sentAt: u32;1531 readonly data: Bytes;1682 readonly data: Bytes;1532 }1683 }153316841534 /** @name CumulusPalletParachainSystemError (165) */1685 /** @name CumulusPalletParachainSystemError (171) */1535 interface CumulusPalletParachainSystemError extends Enum {1686 interface CumulusPalletParachainSystemError extends Enum {1536 readonly isOverlappingUpgrades: boolean;1687 readonly isOverlappingUpgrades: boolean;1537 readonly isProhibitedByPolkadot: boolean;1688 readonly isProhibitedByPolkadot: boolean;1544 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';1695 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';1545 }1696 }154616971547 /** @name PalletBalancesBalanceLock (167) */1698 /** @name PalletBalancesBalanceLock (173) */1548 interface PalletBalancesBalanceLock extends Struct {1699 interface PalletBalancesBalanceLock extends Struct {1549 readonly id: U8aFixed;1700 readonly id: U8aFixed;1550 readonly amount: u128;1701 readonly amount: u128;1551 readonly reasons: PalletBalancesReasons;1702 readonly reasons: PalletBalancesReasons;1552 }1703 }155317041554 /** @name PalletBalancesReasons (168) */1705 /** @name PalletBalancesReasons (174) */1555 interface PalletBalancesReasons extends Enum {1706 interface PalletBalancesReasons extends Enum {1556 readonly isFee: boolean;1707 readonly isFee: boolean;1557 readonly isMisc: boolean;1708 readonly isMisc: boolean;1558 readonly isAll: boolean;1709 readonly isAll: boolean;1559 readonly type: 'Fee' | 'Misc' | 'All';1710 readonly type: 'Fee' | 'Misc' | 'All';1560 }1711 }156117121562 /** @name PalletBalancesReserveData (171) */1713 /** @name PalletBalancesReserveData (177) */1563 interface PalletBalancesReserveData extends Struct {1714 interface PalletBalancesReserveData extends Struct {1564 readonly id: U8aFixed;1715 readonly id: U8aFixed;1565 readonly amount: u128;1716 readonly amount: u128;1566 }1717 }156717181568 /** @name PalletBalancesReleases (173) */1719 /** @name PalletBalancesReleases (179) */1569 interface PalletBalancesReleases extends Enum {1720 interface PalletBalancesReleases extends Enum {1570 readonly isV100: boolean;1721 readonly isV100: boolean;1571 readonly isV200: boolean;1722 readonly isV200: boolean;1572 readonly type: 'V100' | 'V200';1723 readonly type: 'V100' | 'V200';1573 }1724 }157417251575 /** @name PalletBalancesCall (174) */1726 /** @name PalletBalancesCall (180) */1576 interface PalletBalancesCall extends Enum {1727 interface PalletBalancesCall extends Enum {1577 readonly isTransfer: boolean;1728 readonly isTransfer: boolean;1578 readonly asTransfer: {1729 readonly asTransfer: {1609 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';1760 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';1610 }1761 }161117621612 /** @name PalletBalancesError (177) */1763 /** @name PalletBalancesError (183) */1613 interface PalletBalancesError extends Enum {1764 interface PalletBalancesError extends Enum {1614 readonly isVestingBalance: boolean;1765 readonly isVestingBalance: boolean;1615 readonly isLiquidityRestrictions: boolean;1766 readonly isLiquidityRestrictions: boolean;1622 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';1773 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';1623 }1774 }162417751625 /** @name PalletTimestampCall (179) */1776 /** @name PalletTimestampCall (185) */1626 interface PalletTimestampCall extends Enum {1777 interface PalletTimestampCall extends Enum {1627 readonly isSet: boolean;1778 readonly isSet: boolean;1628 readonly asSet: {1779 readonly asSet: {1631 readonly type: 'Set';1782 readonly type: 'Set';1632 }1783 }163317841634 /** @name PalletTransactionPaymentReleases (181) */1785 /** @name PalletTransactionPaymentReleases (187) */1635 interface PalletTransactionPaymentReleases extends Enum {1786 interface PalletTransactionPaymentReleases extends Enum {1636 readonly isV1Ancient: boolean;1787 readonly isV1Ancient: boolean;1637 readonly isV2: boolean;1788 readonly isV2: boolean;1638 readonly type: 'V1Ancient' | 'V2';1789 readonly type: 'V1Ancient' | 'V2';1639 }1790 }164017911641 /** @name PalletTreasuryProposal (182) */1792 /** @name PalletTreasuryProposal (188) */1642 interface PalletTreasuryProposal extends Struct {1793 interface PalletTreasuryProposal extends Struct {1643 readonly proposer: AccountId32;1794 readonly proposer: AccountId32;1644 readonly value: u128;1795 readonly value: u128;1645 readonly beneficiary: AccountId32;1796 readonly beneficiary: AccountId32;1646 readonly bond: u128;1797 readonly bond: u128;1647 }1798 }164817991649 /** @name PalletTreasuryCall (185) */1800 /** @name PalletTreasuryCall (191) */1650 interface PalletTreasuryCall extends Enum {1801 interface PalletTreasuryCall extends Enum {1651 readonly isProposeSpend: boolean;1802 readonly isProposeSpend: boolean;1652 readonly asProposeSpend: {1803 readonly asProposeSpend: {1673 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';1824 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';1674 }1825 }167518261676 /** @name FrameSupportPalletId (188) */1827 /** @name FrameSupportPalletId (194) */1677 interface FrameSupportPalletId extends U8aFixed {}1828 interface FrameSupportPalletId extends U8aFixed {}167818291679 /** @name PalletTreasuryError (189) */1830 /** @name PalletTreasuryError (195) */1680 interface PalletTreasuryError extends Enum {1831 interface PalletTreasuryError extends Enum {1681 readonly isInsufficientProposersBalance: boolean;1832 readonly isInsufficientProposersBalance: boolean;1682 readonly isInvalidIndex: boolean;1833 readonly isInvalidIndex: boolean;1686 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';1837 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';1687 }1838 }168818391689 /** @name PalletSudoCall (190) */1840 /** @name PalletSudoCall (196) */1690 interface PalletSudoCall extends Enum {1841 interface PalletSudoCall extends Enum {1691 readonly isSudo: boolean;1842 readonly isSudo: boolean;1692 readonly asSudo: {1843 readonly asSudo: {1709 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1860 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1710 }1861 }171118621712 /** @name OrmlVestingModuleCall (192) */1863 /** @name OrmlVestingModuleCall (198) */1713 interface OrmlVestingModuleCall extends Enum {1864 interface OrmlVestingModuleCall extends Enum {1714 readonly isClaim: boolean;1865 readonly isClaim: boolean;1715 readonly isVestedTransfer: boolean;1866 readonly isVestedTransfer: boolean;1729 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';1880 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';1730 }1881 }18821883 /** @name OrmlXtokensModuleCall (200) */1884 interface OrmlXtokensModuleCall extends Enum {1885 readonly isTransfer: boolean;1886 readonly asTransfer: {1887 readonly currencyId: PalletForeignAssetsAssetIds;1888 readonly amount: u128;1889 readonly dest: XcmVersionedMultiLocation;1890 readonly destWeight: u64;1891 } & Struct;1892 readonly isTransferMultiasset: boolean;1893 readonly asTransferMultiasset: {1894 readonly asset: XcmVersionedMultiAsset;1895 readonly dest: XcmVersionedMultiLocation;1896 readonly destWeight: u64;1897 } & Struct;1898 readonly isTransferWithFee: boolean;1899 readonly asTransferWithFee: {1900 readonly currencyId: PalletForeignAssetsAssetIds;1901 readonly amount: u128;1902 readonly fee: u128;1903 readonly dest: XcmVersionedMultiLocation;1904 readonly destWeight: u64;1905 } & Struct;1906 readonly isTransferMultiassetWithFee: boolean;1907 readonly asTransferMultiassetWithFee: {1908 readonly asset: XcmVersionedMultiAsset;1909 readonly fee: XcmVersionedMultiAsset;1910 readonly dest: XcmVersionedMultiLocation;1911 readonly destWeight: u64;1912 } & Struct;1913 readonly isTransferMulticurrencies: boolean;1914 readonly asTransferMulticurrencies: {1915 readonly currencies: Vec<ITuple<[PalletForeignAssetsAssetIds, u128]>>;1916 readonly feeItem: u32;1917 readonly dest: XcmVersionedMultiLocation;1918 readonly destWeight: u64;1919 } & Struct;1920 readonly isTransferMultiassets: boolean;1921 readonly asTransferMultiassets: {1922 readonly assets: XcmVersionedMultiAssets;1923 readonly feeItem: u32;1924 readonly dest: XcmVersionedMultiLocation;1925 readonly destWeight: u64;1926 } & Struct;1927 readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';1928 }19291930 /** @name XcmVersionedMultiAsset (201) */1931 interface XcmVersionedMultiAsset extends Enum {1932 readonly isV0: boolean;1933 readonly asV0: XcmV0MultiAsset;1934 readonly isV1: boolean;1935 readonly asV1: XcmV1MultiAsset;1936 readonly type: 'V0' | 'V1';1937 }19381939 /** @name OrmlTokensModuleCall (204) */1940 interface OrmlTokensModuleCall extends Enum {1941 readonly isTransfer: boolean;1942 readonly asTransfer: {1943 readonly dest: MultiAddress;1944 readonly currencyId: PalletForeignAssetsAssetIds;1945 readonly amount: Compact<u128>;1946 } & Struct;1947 readonly isTransferAll: boolean;1948 readonly asTransferAll: {1949 readonly dest: MultiAddress;1950 readonly currencyId: PalletForeignAssetsAssetIds;1951 readonly keepAlive: bool;1952 } & Struct;1953 readonly isTransferKeepAlive: boolean;1954 readonly asTransferKeepAlive: {1955 readonly dest: MultiAddress;1956 readonly currencyId: PalletForeignAssetsAssetIds;1957 readonly amount: Compact<u128>;1958 } & Struct;1959 readonly isForceTransfer: boolean;1960 readonly asForceTransfer: {1961 readonly source: MultiAddress;1962 readonly dest: MultiAddress;1963 readonly currencyId: PalletForeignAssetsAssetIds;1964 readonly amount: Compact<u128>;1965 } & Struct;1966 readonly isSetBalance: boolean;1967 readonly asSetBalance: {1968 readonly who: MultiAddress;1969 readonly currencyId: PalletForeignAssetsAssetIds;1970 readonly newFree: Compact<u128>;1971 readonly newReserved: Compact<u128>;1972 } & Struct;1973 readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';1974 }173119751732 /** @name CumulusPalletXcmpQueueCall (194) */1976 /** @name CumulusPalletXcmpQueueCall (205) */1733 interface CumulusPalletXcmpQueueCall extends Enum {1977 interface CumulusPalletXcmpQueueCall extends Enum {1734 readonly isServiceOverweight: boolean;1978 readonly isServiceOverweight: boolean;1735 readonly asServiceOverweight: {1979 readonly asServiceOverweight: {1765 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';2009 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';1766 }2010 }176720111768 /** @name PalletXcmCall (195) */2012 /** @name PalletXcmCall (206) */1769 interface PalletXcmCall extends Enum {2013 interface PalletXcmCall extends Enum {1770 readonly isSend: boolean;2014 readonly isSend: boolean;1771 readonly asSend: {2015 readonly asSend: {1827 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';2071 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';1828 }2072 }182920731830 /** @name XcmVersionedXcm (196) */2074 /** @name XcmVersionedXcm (207) */1831 interface XcmVersionedXcm extends Enum {2075 interface XcmVersionedXcm extends Enum {1832 readonly isV0: boolean;2076 readonly isV0: boolean;1833 readonly asV0: XcmV0Xcm;2077 readonly asV0: XcmV0Xcm;1838 readonly type: 'V0' | 'V1' | 'V2';2082 readonly type: 'V0' | 'V1' | 'V2';1839 }2083 }184020841841 /** @name XcmV0Xcm (197) */2085 /** @name XcmV0Xcm (208) */1842 interface XcmV0Xcm extends Enum {2086 interface XcmV0Xcm extends Enum {1843 readonly isWithdrawAsset: boolean;2087 readonly isWithdrawAsset: boolean;1844 readonly asWithdrawAsset: {2088 readonly asWithdrawAsset: {1901 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';2145 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';1902 }2146 }190321471904 /** @name XcmV0Order (199) */2148 /** @name XcmV0Order (210) */1905 interface XcmV0Order extends Enum {2149 interface XcmV0Order extends Enum {1906 readonly isNull: boolean;2150 readonly isNull: boolean;1907 readonly isDepositAsset: boolean;2151 readonly isDepositAsset: boolean;1949 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2193 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';1950 }2194 }195121951952 /** @name XcmV0Response (201) */2196 /** @name XcmV0Response (212) */1953 interface XcmV0Response extends Enum {2197 interface XcmV0Response extends Enum {1954 readonly isAssets: boolean;2198 readonly isAssets: boolean;1955 readonly asAssets: Vec<XcmV0MultiAsset>;2199 readonly asAssets: Vec<XcmV0MultiAsset>;1956 readonly type: 'Assets';2200 readonly type: 'Assets';1957 }2201 }195822021959 /** @name XcmV1Xcm (202) */2203 /** @name XcmV1Xcm (213) */1960 interface XcmV1Xcm extends Enum {2204 interface XcmV1Xcm extends Enum {1961 readonly isWithdrawAsset: boolean;2205 readonly isWithdrawAsset: boolean;1962 readonly asWithdrawAsset: {2206 readonly asWithdrawAsset: {2025 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';2269 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';2026 }2270 }202722712028 /** @name XcmV1Order (204) */2272 /** @name XcmV1Order (215) */2029 interface XcmV1Order extends Enum {2273 interface XcmV1Order extends Enum {2030 readonly isNoop: boolean;2274 readonly isNoop: boolean;2031 readonly isDepositAsset: boolean;2275 readonly isDepositAsset: boolean;2075 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2319 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2076 }2320 }207723212078 /** @name XcmV1Response (206) */2322 /** @name XcmV1Response (217) */2079 interface XcmV1Response extends Enum {2323 interface XcmV1Response extends Enum {2080 readonly isAssets: boolean;2324 readonly isAssets: boolean;2081 readonly asAssets: XcmV1MultiassetMultiAssets;2325 readonly asAssets: XcmV1MultiassetMultiAssets;2084 readonly type: 'Assets' | 'Version';2328 readonly type: 'Assets' | 'Version';2085 }2329 }208623302087 /** @name CumulusPalletXcmCall (220) */2331 /** @name CumulusPalletXcmCall (231) */2088 type CumulusPalletXcmCall = Null;2332 type CumulusPalletXcmCall = Null;208923332090 /** @name CumulusPalletDmpQueueCall (221) */2334 /** @name CumulusPalletDmpQueueCall (232) */2091 interface CumulusPalletDmpQueueCall extends Enum {2335 interface CumulusPalletDmpQueueCall extends Enum {2092 readonly isServiceOverweight: boolean;2336 readonly isServiceOverweight: boolean;2093 readonly asServiceOverweight: {2337 readonly asServiceOverweight: {2097 readonly type: 'ServiceOverweight';2341 readonly type: 'ServiceOverweight';2098 }2342 }209923432100 /** @name PalletInflationCall (222) */2344 /** @name PalletInflationCall (233) */2101 interface PalletInflationCall extends Enum {2345 interface PalletInflationCall extends Enum {2102 readonly isStartInflation: boolean;2346 readonly isStartInflation: boolean;2103 readonly asStartInflation: {2347 readonly asStartInflation: {2106 readonly type: 'StartInflation';2350 readonly type: 'StartInflation';2107 }2351 }210823522109 /** @name PalletUniqueCall (223) */2353 /** @name PalletUniqueCall (234) */2110 interface PalletUniqueCall extends Enum {2354 interface PalletUniqueCall extends Enum {2111 readonly isCreateCollection: boolean;2355 readonly isCreateCollection: boolean;2112 readonly asCreateCollection: {2356 readonly asCreateCollection: {2264 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';2508 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';2265 }2509 }226625102267 /** @name UpDataStructsCollectionMode (228) */2511 /** @name UpDataStructsCollectionMode (239) */2268 interface UpDataStructsCollectionMode extends Enum {2512 interface UpDataStructsCollectionMode extends Enum {2269 readonly isNft: boolean;2513 readonly isNft: boolean;2270 readonly isFungible: boolean;2514 readonly isFungible: boolean;2273 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2517 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2274 }2518 }227525192276 /** @name UpDataStructsCreateCollectionData (229) */2520 /** @name UpDataStructsCreateCollectionData (240) */2277 interface UpDataStructsCreateCollectionData extends Struct {2521 interface UpDataStructsCreateCollectionData extends Struct {2278 readonly mode: UpDataStructsCollectionMode;2522 readonly mode: UpDataStructsCollectionMode;2279 readonly access: Option<UpDataStructsAccessMode>;2523 readonly access: Option<UpDataStructsAccessMode>;2287 readonly properties: Vec<UpDataStructsProperty>;2531 readonly properties: Vec<UpDataStructsProperty>;2288 }2532 }228925332290 /** @name UpDataStructsAccessMode (231) */2534 /** @name UpDataStructsAccessMode (242) */2291 interface UpDataStructsAccessMode extends Enum {2535 interface UpDataStructsAccessMode extends Enum {2292 readonly isNormal: boolean;2536 readonly isNormal: boolean;2293 readonly isAllowList: boolean;2537 readonly isAllowList: boolean;2294 readonly type: 'Normal' | 'AllowList';2538 readonly type: 'Normal' | 'AllowList';2295 }2539 }229625402297 /** @name UpDataStructsCollectionLimits (233) */2541 /** @name UpDataStructsCollectionLimits (244) */2298 interface UpDataStructsCollectionLimits extends Struct {2542 interface UpDataStructsCollectionLimits extends Struct {2299 readonly accountTokenOwnershipLimit: Option<u32>;2543 readonly accountTokenOwnershipLimit: Option<u32>;2300 readonly sponsoredDataSize: Option<u32>;2544 readonly sponsoredDataSize: Option<u32>;2307 readonly transfersEnabled: Option<bool>;2551 readonly transfersEnabled: Option<bool>;2308 }2552 }230925532310 /** @name UpDataStructsSponsoringRateLimit (235) */2554 /** @name UpDataStructsSponsoringRateLimit (246) */2311 interface UpDataStructsSponsoringRateLimit extends Enum {2555 interface UpDataStructsSponsoringRateLimit extends Enum {2312 readonly isSponsoringDisabled: boolean;2556 readonly isSponsoringDisabled: boolean;2313 readonly isBlocks: boolean;2557 readonly isBlocks: boolean;2314 readonly asBlocks: u32;2558 readonly asBlocks: u32;2315 readonly type: 'SponsoringDisabled' | 'Blocks';2559 readonly type: 'SponsoringDisabled' | 'Blocks';2316 }2560 }231725612318 /** @name UpDataStructsCollectionPermissions (238) */2562 /** @name UpDataStructsCollectionPermissions (249) */2319 interface UpDataStructsCollectionPermissions extends Struct {2563 interface UpDataStructsCollectionPermissions extends Struct {2320 readonly access: Option<UpDataStructsAccessMode>;2564 readonly access: Option<UpDataStructsAccessMode>;2321 readonly mintMode: Option<bool>;2565 readonly mintMode: Option<bool>;2322 readonly nesting: Option<UpDataStructsNestingPermissions>;2566 readonly nesting: Option<UpDataStructsNestingPermissions>;2323 }2567 }232425682325 /** @name UpDataStructsNestingPermissions (240) */2569 /** @name UpDataStructsNestingPermissions (251) */2326 interface UpDataStructsNestingPermissions extends Struct {2570 interface UpDataStructsNestingPermissions extends Struct {2327 readonly tokenOwner: bool;2571 readonly tokenOwner: bool;2328 readonly collectionAdmin: bool;2572 readonly collectionAdmin: bool;2329 readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;2573 readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;2330 }2574 }233125752332 /** @name UpDataStructsOwnerRestrictedSet (242) */2576 /** @name UpDataStructsOwnerRestrictedSet (253) */2333 interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}2577 interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}233425782335 /** @name UpDataStructsPropertyKeyPermission (247) */2579 /** @name UpDataStructsPropertyKeyPermission (258) */2336 interface UpDataStructsPropertyKeyPermission extends Struct {2580 interface UpDataStructsPropertyKeyPermission extends Struct {2337 readonly key: Bytes;2581 readonly key: Bytes;2338 readonly permission: UpDataStructsPropertyPermission;2582 readonly permission: UpDataStructsPropertyPermission;2339 }2583 }234025842341 /** @name UpDataStructsPropertyPermission (248) */2585 /** @name UpDataStructsPropertyPermission (259) */2342 interface UpDataStructsPropertyPermission extends Struct {2586 interface UpDataStructsPropertyPermission extends Struct {2343 readonly mutable: bool;2587 readonly mutable: bool;2344 readonly collectionAdmin: bool;2588 readonly collectionAdmin: bool;2345 readonly tokenOwner: bool;2589 readonly tokenOwner: bool;2346 }2590 }234725912348 /** @name UpDataStructsProperty (251) */2592 /** @name UpDataStructsProperty (262) */2349 interface UpDataStructsProperty extends Struct {2593 interface UpDataStructsProperty extends Struct {2350 readonly key: Bytes;2594 readonly key: Bytes;2351 readonly value: Bytes;2595 readonly value: Bytes;2352 }2596 }235325972354 /** @name UpDataStructsCreateItemData (254) */2598 /** @name UpDataStructsCreateItemData (265) */2355 interface UpDataStructsCreateItemData extends Enum {2599 interface UpDataStructsCreateItemData extends Enum {2356 readonly isNft: boolean;2600 readonly isNft: boolean;2357 readonly asNft: UpDataStructsCreateNftData;2601 readonly asNft: UpDataStructsCreateNftData;2362 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2606 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2363 }2607 }236426082365 /** @name UpDataStructsCreateNftData (255) */2609 /** @name UpDataStructsCreateNftData (266) */2366 interface UpDataStructsCreateNftData extends Struct {2610 interface UpDataStructsCreateNftData extends Struct {2367 readonly properties: Vec<UpDataStructsProperty>;2611 readonly properties: Vec<UpDataStructsProperty>;2368 }2612 }236926132370 /** @name UpDataStructsCreateFungibleData (256) */2614 /** @name UpDataStructsCreateFungibleData (267) */2371 interface UpDataStructsCreateFungibleData extends Struct {2615 interface UpDataStructsCreateFungibleData extends Struct {2372 readonly value: u128;2616 readonly value: u128;2373 }2617 }237426182375 /** @name UpDataStructsCreateReFungibleData (257) */2619 /** @name UpDataStructsCreateReFungibleData (268) */2376 interface UpDataStructsCreateReFungibleData extends Struct {2620 interface UpDataStructsCreateReFungibleData extends Struct {2377 readonly pieces: u128;2621 readonly pieces: u128;2378 readonly properties: Vec<UpDataStructsProperty>;2622 readonly properties: Vec<UpDataStructsProperty>;2379 }2623 }238026242381 /** @name UpDataStructsCreateItemExData (260) */2625 /** @name UpDataStructsCreateItemExData (271) */2382 interface UpDataStructsCreateItemExData extends Enum {2626 interface UpDataStructsCreateItemExData extends Enum {2383 readonly isNft: boolean;2627 readonly isNft: boolean;2384 readonly asNft: Vec<UpDataStructsCreateNftExData>;2628 readonly asNft: Vec<UpDataStructsCreateNftExData>;2391 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2635 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2392 }2636 }239326372394 /** @name UpDataStructsCreateNftExData (262) */2638 /** @name UpDataStructsCreateNftExData (273) */2395 interface UpDataStructsCreateNftExData extends Struct {2639 interface UpDataStructsCreateNftExData extends Struct {2396 readonly properties: Vec<UpDataStructsProperty>;2640 readonly properties: Vec<UpDataStructsProperty>;2397 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2641 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2398 }2642 }239926432400 /** @name UpDataStructsCreateRefungibleExSingleOwner (269) */2644 /** @name UpDataStructsCreateRefungibleExSingleOwner (280) */2401 interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {2645 interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {2402 readonly user: PalletEvmAccountBasicCrossAccountIdRepr;2646 readonly user: PalletEvmAccountBasicCrossAccountIdRepr;2403 readonly pieces: u128;2647 readonly pieces: u128;2404 readonly properties: Vec<UpDataStructsProperty>;2648 readonly properties: Vec<UpDataStructsProperty>;2405 }2649 }240626502407 /** @name UpDataStructsCreateRefungibleExMultipleOwners (271) */2651 /** @name UpDataStructsCreateRefungibleExMultipleOwners (282) */2408 interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {2652 interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {2409 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2653 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2410 readonly properties: Vec<UpDataStructsProperty>;2654 readonly properties: Vec<UpDataStructsProperty>;2411 }2655 }241226562413 /** @name PalletUniqueSchedulerCall (272) */2657 /** @name PalletUniqueSchedulerCall (283) */2414 interface PalletUniqueSchedulerCall extends Enum {2658 interface PalletUniqueSchedulerCall extends Enum {2415 readonly isScheduleNamed: boolean;2659 readonly isScheduleNamed: boolean;2416 readonly asScheduleNamed: {2660 readonly asScheduleNamed: {2435 readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';2679 readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';2436 }2680 }243726812438 /** @name FrameSupportScheduleMaybeHashed (274) */2682 /** @name FrameSupportScheduleMaybeHashed (285) */2439 interface FrameSupportScheduleMaybeHashed extends Enum {2683 interface FrameSupportScheduleMaybeHashed extends Enum {2440 readonly isValue: boolean;2684 readonly isValue: boolean;2441 readonly asValue: Call;2685 readonly asValue: Call;2444 readonly type: 'Value' | 'Hash';2688 readonly type: 'Value' | 'Hash';2445 }2689 }244626902447 /** @name PalletConfigurationCall (275) */2691 /** @name PalletConfigurationCall (286) */2448 interface PalletConfigurationCall extends Enum {2692 interface PalletConfigurationCall extends Enum {2449 readonly isSetWeightToFeeCoefficientOverride: boolean;2693 readonly isSetWeightToFeeCoefficientOverride: boolean;2450 readonly asSetWeightToFeeCoefficientOverride: {2694 readonly asSetWeightToFeeCoefficientOverride: {2457 readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';2701 readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';2458 }2702 }245927032460 /** @name PalletTemplateTransactionPaymentCall (276) */2704 /** @name PalletTemplateTransactionPaymentCall (287) */2461 type PalletTemplateTransactionPaymentCall = Null;2705 type PalletTemplateTransactionPaymentCall = Null;246227062463 /** @name PalletStructureCall (277) */2707 /** @name PalletStructureCall (288) */2464 type PalletStructureCall = Null;2708 type PalletStructureCall = Null;246527092466 /** @name PalletRmrkCoreCall (278) */2710 /** @name PalletRmrkCoreCall (289) */2467 interface PalletRmrkCoreCall extends Enum {2711 interface PalletRmrkCoreCall extends Enum {2468 readonly isCreateCollection: boolean;2712 readonly isCreateCollection: boolean;2469 readonly asCreateCollection: {2713 readonly asCreateCollection: {2569 readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';2813 readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';2570 }2814 }257128152572 /** @name RmrkTraitsResourceResourceTypes (284) */2816 /** @name RmrkTraitsResourceResourceTypes (295) */2573 interface RmrkTraitsResourceResourceTypes extends Enum {2817 interface RmrkTraitsResourceResourceTypes extends Enum {2574 readonly isBasic: boolean;2818 readonly isBasic: boolean;2575 readonly asBasic: RmrkTraitsResourceBasicResource;2819 readonly asBasic: RmrkTraitsResourceBasicResource;2580 readonly type: 'Basic' | 'Composable' | 'Slot';2824 readonly type: 'Basic' | 'Composable' | 'Slot';2581 }2825 }258228262583 /** @name RmrkTraitsResourceBasicResource (286) */2827 /** @name RmrkTraitsResourceBasicResource (297) */2584 interface RmrkTraitsResourceBasicResource extends Struct {2828 interface RmrkTraitsResourceBasicResource extends Struct {2585 readonly src: Option<Bytes>;2829 readonly src: Option<Bytes>;2586 readonly metadata: Option<Bytes>;2830 readonly metadata: Option<Bytes>;2587 readonly license: Option<Bytes>;2831 readonly license: Option<Bytes>;2588 readonly thumb: Option<Bytes>;2832 readonly thumb: Option<Bytes>;2589 }2833 }259028342591 /** @name RmrkTraitsResourceComposableResource (288) */2835 /** @name RmrkTraitsResourceComposableResource (299) */2592 interface RmrkTraitsResourceComposableResource extends Struct {2836 interface RmrkTraitsResourceComposableResource extends Struct {2593 readonly parts: Vec<u32>;2837 readonly parts: Vec<u32>;2594 readonly base: u32;2838 readonly base: u32;2598 readonly thumb: Option<Bytes>;2842 readonly thumb: Option<Bytes>;2599 }2843 }260028442601 /** @name RmrkTraitsResourceSlotResource (289) */2845 /** @name RmrkTraitsResourceSlotResource (300) */2602 interface RmrkTraitsResourceSlotResource extends Struct {2846 interface RmrkTraitsResourceSlotResource extends Struct {2603 readonly base: u32;2847 readonly base: u32;2604 readonly src: Option<Bytes>;2848 readonly src: Option<Bytes>;2608 readonly thumb: Option<Bytes>;2852 readonly thumb: Option<Bytes>;2609 }2853 }261028542611 /** @name PalletRmrkEquipCall (292) */2855 /** @name PalletRmrkEquipCall (303) */2612 interface PalletRmrkEquipCall extends Enum {2856 interface PalletRmrkEquipCall extends Enum {2613 readonly isCreateBase: boolean;2857 readonly isCreateBase: boolean;2614 readonly asCreateBase: {2858 readonly asCreateBase: {2630 readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';2874 readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';2631 }2875 }263228762633 /** @name RmrkTraitsPartPartType (295) */2877 /** @name RmrkTraitsPartPartType (306) */2634 interface RmrkTraitsPartPartType extends Enum {2878 interface RmrkTraitsPartPartType extends Enum {2635 readonly isFixedPart: boolean;2879 readonly isFixedPart: boolean;2636 readonly asFixedPart: RmrkTraitsPartFixedPart;2880 readonly asFixedPart: RmrkTraitsPartFixedPart;2639 readonly type: 'FixedPart' | 'SlotPart';2883 readonly type: 'FixedPart' | 'SlotPart';2640 }2884 }264128852642 /** @name RmrkTraitsPartFixedPart (297) */2886 /** @name RmrkTraitsPartFixedPart (308) */2643 interface RmrkTraitsPartFixedPart extends Struct {2887 interface RmrkTraitsPartFixedPart extends Struct {2644 readonly id: u32;2888 readonly id: u32;2645 readonly z: u32;2889 readonly z: u32;2646 readonly src: Bytes;2890 readonly src: Bytes;2647 }2891 }264828922649 /** @name RmrkTraitsPartSlotPart (298) */2893 /** @name RmrkTraitsPartSlotPart (309) */2650 interface RmrkTraitsPartSlotPart extends Struct {2894 interface RmrkTraitsPartSlotPart extends Struct {2651 readonly id: u32;2895 readonly id: u32;2652 readonly equippable: RmrkTraitsPartEquippableList;2896 readonly equippable: RmrkTraitsPartEquippableList;2653 readonly src: Bytes;2897 readonly src: Bytes;2654 readonly z: u32;2898 readonly z: u32;2655 }2899 }265629002657 /** @name RmrkTraitsPartEquippableList (299) */2901 /** @name RmrkTraitsPartEquippableList (310) */2658 interface RmrkTraitsPartEquippableList extends Enum {2902 interface RmrkTraitsPartEquippableList extends Enum {2659 readonly isAll: boolean;2903 readonly isAll: boolean;2660 readonly isEmpty: boolean;2904 readonly isEmpty: boolean;2663 readonly type: 'All' | 'Empty' | 'Custom';2907 readonly type: 'All' | 'Empty' | 'Custom';2664 }2908 }266529092666 /** @name RmrkTraitsTheme (301) */2910 /** @name RmrkTraitsTheme (312) */2667 interface RmrkTraitsTheme extends Struct {2911 interface RmrkTraitsTheme extends Struct {2668 readonly name: Bytes;2912 readonly name: Bytes;2669 readonly properties: Vec<RmrkTraitsThemeThemeProperty>;2913 readonly properties: Vec<RmrkTraitsThemeThemeProperty>;2670 readonly inherit: bool;2914 readonly inherit: bool;2671 }2915 }267229162673 /** @name RmrkTraitsThemeThemeProperty (303) */2917 /** @name RmrkTraitsThemeThemeProperty (314) */2674 interface RmrkTraitsThemeThemeProperty extends Struct {2918 interface RmrkTraitsThemeThemeProperty extends Struct {2675 readonly key: Bytes;2919 readonly key: Bytes;2676 readonly value: Bytes;2920 readonly value: Bytes;2677 }2921 }267829222679 /** @name PalletAppPromotionCall (305) */2923 /** @name PalletAppPromotionCall (316) */2680 interface PalletAppPromotionCall extends Enum {2924 interface PalletAppPromotionCall extends Enum {2681 readonly isSetAdminAddress: boolean;2925 readonly isSetAdminAddress: boolean;2682 readonly asSetAdminAddress: {2926 readonly asSetAdminAddress: {2710 readonly type: 'SetAdminAddress' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers';2954 readonly type: 'SetAdminAddress' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers';2711 }2955 }29562957 /** @name PalletForeignAssetsModuleCall (318) */2958 interface PalletForeignAssetsModuleCall extends Enum {2959 readonly isRegisterForeignAsset: boolean;2960 readonly asRegisterForeignAsset: {2961 readonly owner: AccountId32;2962 readonly location: XcmVersionedMultiLocation;2963 readonly metadata: PalletForeignAssetsModuleAssetMetadata;2964 } & Struct;2965 readonly isUpdateForeignAsset: boolean;2966 readonly asUpdateForeignAsset: {2967 readonly foreignAssetId: u32;2968 readonly location: XcmVersionedMultiLocation;2969 readonly metadata: PalletForeignAssetsModuleAssetMetadata;2970 } & Struct;2971 readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';2972 }271229732713 /** @name PalletEvmCall (307) */2974 /** @name PalletEvmCall (319) */2714 interface PalletEvmCall extends Enum {2975 interface PalletEvmCall extends Enum {2715 readonly isWithdraw: boolean;2976 readonly isWithdraw: boolean;2716 readonly asWithdraw: {2977 readonly asWithdraw: {2755 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';3016 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';2756 }3017 }275730182758 /** @name PalletEthereumCall (311) */3019 /** @name PalletEthereumCall (323) */2759 interface PalletEthereumCall extends Enum {3020 interface PalletEthereumCall extends Enum {2760 readonly isTransact: boolean;3021 readonly isTransact: boolean;2761 readonly asTransact: {3022 readonly asTransact: {2764 readonly type: 'Transact';3025 readonly type: 'Transact';2765 }3026 }276630272767 /** @name EthereumTransactionTransactionV2 (312) */3028 /** @name EthereumTransactionTransactionV2 (324) */2768 interface EthereumTransactionTransactionV2 extends Enum {3029 interface EthereumTransactionTransactionV2 extends Enum {2769 readonly isLegacy: boolean;3030 readonly isLegacy: boolean;2770 readonly asLegacy: EthereumTransactionLegacyTransaction;3031 readonly asLegacy: EthereumTransactionLegacyTransaction;2775 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3036 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';2776 }3037 }277730382778 /** @name EthereumTransactionLegacyTransaction (313) */3039 /** @name EthereumTransactionLegacyTransaction (325) */2779 interface EthereumTransactionLegacyTransaction extends Struct {3040 interface EthereumTransactionLegacyTransaction extends Struct {2780 readonly nonce: U256;3041 readonly nonce: U256;2781 readonly gasPrice: U256;3042 readonly gasPrice: U256;2786 readonly signature: EthereumTransactionTransactionSignature;3047 readonly signature: EthereumTransactionTransactionSignature;2787 }3048 }278830492789 /** @name EthereumTransactionTransactionAction (314) */3050 /** @name EthereumTransactionTransactionAction (326) */2790 interface EthereumTransactionTransactionAction extends Enum {3051 interface EthereumTransactionTransactionAction extends Enum {2791 readonly isCall: boolean;3052 readonly isCall: boolean;2792 readonly asCall: H160;3053 readonly asCall: H160;2793 readonly isCreate: boolean;3054 readonly isCreate: boolean;2794 readonly type: 'Call' | 'Create';3055 readonly type: 'Call' | 'Create';2795 }3056 }279630572797 /** @name EthereumTransactionTransactionSignature (315) */3058 /** @name EthereumTransactionTransactionSignature (327) */2798 interface EthereumTransactionTransactionSignature extends Struct {3059 interface EthereumTransactionTransactionSignature extends Struct {2799 readonly v: u64;3060 readonly v: u64;2800 readonly r: H256;3061 readonly r: H256;2801 readonly s: H256;3062 readonly s: H256;2802 }3063 }280330642804 /** @name EthereumTransactionEip2930Transaction (317) */3065 /** @name EthereumTransactionEip2930Transaction (329) */2805 interface EthereumTransactionEip2930Transaction extends Struct {3066 interface EthereumTransactionEip2930Transaction extends Struct {2806 readonly chainId: u64;3067 readonly chainId: u64;2807 readonly nonce: U256;3068 readonly nonce: U256;2816 readonly s: H256;3077 readonly s: H256;2817 }3078 }281830792819 /** @name EthereumTransactionAccessListItem (319) */3080 /** @name EthereumTransactionAccessListItem (331) */2820 interface EthereumTransactionAccessListItem extends Struct {3081 interface EthereumTransactionAccessListItem extends Struct {2821 readonly address: H160;3082 readonly address: H160;2822 readonly storageKeys: Vec<H256>;3083 readonly storageKeys: Vec<H256>;2823 }3084 }282430852825 /** @name EthereumTransactionEip1559Transaction (320) */3086 /** @name EthereumTransactionEip1559Transaction (332) */2826 interface EthereumTransactionEip1559Transaction extends Struct {3087 interface EthereumTransactionEip1559Transaction extends Struct {2827 readonly chainId: u64;3088 readonly chainId: u64;2828 readonly nonce: U256;3089 readonly nonce: U256;2838 readonly s: H256;3099 readonly s: H256;2839 }3100 }284031012841 /** @name PalletEvmMigrationCall (321) */3102 /** @name PalletEvmMigrationCall (333) */2842 interface PalletEvmMigrationCall extends Enum {3103 interface PalletEvmMigrationCall extends Enum {2843 readonly isBegin: boolean;3104 readonly isBegin: boolean;2844 readonly asBegin: {3105 readonly asBegin: {2857 readonly type: 'Begin' | 'SetData' | 'Finish';3118 readonly type: 'Begin' | 'SetData' | 'Finish';2858 }3119 }285931202860 /** @name PalletSudoError (324) */3121 /** @name PalletSudoError (336) */2861 interface PalletSudoError extends Enum {3122 interface PalletSudoError extends Enum {2862 readonly isRequireSudo: boolean;3123 readonly isRequireSudo: boolean;2863 readonly type: 'RequireSudo';3124 readonly type: 'RequireSudo';2864 }3125 }286531262866 /** @name OrmlVestingModuleError (326) */3127 /** @name OrmlVestingModuleError (338) */2867 interface OrmlVestingModuleError extends Enum {3128 interface OrmlVestingModuleError extends Enum {2868 readonly isZeroVestingPeriod: boolean;3129 readonly isZeroVestingPeriod: boolean;2869 readonly isZeroVestingPeriodCount: boolean;3130 readonly isZeroVestingPeriodCount: boolean;2874 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';3135 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2875 }3136 }31373138 /** @name OrmlXtokensModuleError (339) */3139 interface OrmlXtokensModuleError extends Enum {3140 readonly isAssetHasNoReserve: boolean;3141 readonly isNotCrossChainTransfer: boolean;3142 readonly isInvalidDest: boolean;3143 readonly isNotCrossChainTransferableCurrency: boolean;3144 readonly isUnweighableMessage: boolean;3145 readonly isXcmExecutionFailed: boolean;3146 readonly isCannotReanchor: boolean;3147 readonly isInvalidAncestry: boolean;3148 readonly isInvalidAsset: boolean;3149 readonly isDestinationNotInvertible: boolean;3150 readonly isBadVersion: boolean;3151 readonly isDistinctReserveForAssetAndFee: boolean;3152 readonly isZeroFee: boolean;3153 readonly isZeroAmount: boolean;3154 readonly isTooManyAssetsBeingSent: boolean;3155 readonly isAssetIndexNonExistent: boolean;3156 readonly isFeeNotEnough: boolean;3157 readonly isNotSupportedMultiLocation: boolean;3158 readonly isMinXcmFeeNotDefined: boolean;3159 readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';3160 }31613162 /** @name OrmlTokensBalanceLock (342) */3163 interface OrmlTokensBalanceLock extends Struct {3164 readonly id: U8aFixed;3165 readonly amount: u128;3166 }31673168 /** @name OrmlTokensAccountData (344) */3169 interface OrmlTokensAccountData extends Struct {3170 readonly free: u128;3171 readonly reserved: u128;3172 readonly frozen: u128;3173 }31743175 /** @name OrmlTokensReserveData (346) */3176 interface OrmlTokensReserveData extends Struct {3177 readonly id: Null;3178 readonly amount: u128;3179 }31803181 /** @name OrmlTokensModuleError (348) */3182 interface OrmlTokensModuleError extends Enum {3183 readonly isBalanceTooLow: boolean;3184 readonly isAmountIntoBalanceFailed: boolean;3185 readonly isLiquidityRestrictions: boolean;3186 readonly isMaxLocksExceeded: boolean;3187 readonly isKeepAlive: boolean;3188 readonly isExistentialDeposit: boolean;3189 readonly isDeadAccount: boolean;3190 readonly isTooManyReserves: boolean;3191 readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';3192 }287631932877 /** @name CumulusPalletXcmpQueueInboundChannelDetails (328) */3194 /** @name CumulusPalletXcmpQueueInboundChannelDetails (350) */2878 interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {3195 interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2879 readonly sender: u32;3196 readonly sender: u32;2880 readonly state: CumulusPalletXcmpQueueInboundState;3197 readonly state: CumulusPalletXcmpQueueInboundState;2881 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;3198 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2882 }3199 }288332002884 /** @name CumulusPalletXcmpQueueInboundState (329) */3201 /** @name CumulusPalletXcmpQueueInboundState (351) */2885 interface CumulusPalletXcmpQueueInboundState extends Enum {3202 interface CumulusPalletXcmpQueueInboundState extends Enum {2886 readonly isOk: boolean;3203 readonly isOk: boolean;2887 readonly isSuspended: boolean;3204 readonly isSuspended: boolean;2888 readonly type: 'Ok' | 'Suspended';3205 readonly type: 'Ok' | 'Suspended';2889 }3206 }289032072891 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (332) */3208 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (354) */2892 interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {3209 interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2893 readonly isConcatenatedVersionedXcm: boolean;3210 readonly isConcatenatedVersionedXcm: boolean;2894 readonly isConcatenatedEncodedBlob: boolean;3211 readonly isConcatenatedEncodedBlob: boolean;2895 readonly isSignals: boolean;3212 readonly isSignals: boolean;2896 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';3213 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2897 }3214 }289832152899 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (335) */3216 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (357) */2900 interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {3217 interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2901 readonly recipient: u32;3218 readonly recipient: u32;2902 readonly state: CumulusPalletXcmpQueueOutboundState;3219 readonly state: CumulusPalletXcmpQueueOutboundState;2905 readonly lastIndex: u16;3222 readonly lastIndex: u16;2906 }3223 }290732242908 /** @name CumulusPalletXcmpQueueOutboundState (336) */3225 /** @name CumulusPalletXcmpQueueOutboundState (358) */2909 interface CumulusPalletXcmpQueueOutboundState extends Enum {3226 interface CumulusPalletXcmpQueueOutboundState extends Enum {2910 readonly isOk: boolean;3227 readonly isOk: boolean;2911 readonly isSuspended: boolean;3228 readonly isSuspended: boolean;2912 readonly type: 'Ok' | 'Suspended';3229 readonly type: 'Ok' | 'Suspended';2913 }3230 }291432312915 /** @name CumulusPalletXcmpQueueQueueConfigData (338) */3232 /** @name CumulusPalletXcmpQueueQueueConfigData (360) */2916 interface CumulusPalletXcmpQueueQueueConfigData extends Struct {3233 interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2917 readonly suspendThreshold: u32;3234 readonly suspendThreshold: u32;2918 readonly dropThreshold: u32;3235 readonly dropThreshold: u32;2922 readonly xcmpMaxIndividualWeight: u64;3239 readonly xcmpMaxIndividualWeight: u64;2923 }3240 }292432412925 /** @name CumulusPalletXcmpQueueError (340) */3242 /** @name CumulusPalletXcmpQueueError (362) */2926 interface CumulusPalletXcmpQueueError extends Enum {3243 interface CumulusPalletXcmpQueueError extends Enum {2927 readonly isFailedToSend: boolean;3244 readonly isFailedToSend: boolean;2928 readonly isBadXcmOrigin: boolean;3245 readonly isBadXcmOrigin: boolean;2932 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';3249 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2933 }3250 }293432512935 /** @name PalletXcmError (341) */3252 /** @name PalletXcmError (363) */2936 interface PalletXcmError extends Enum {3253 interface PalletXcmError extends Enum {2937 readonly isUnreachable: boolean;3254 readonly isUnreachable: boolean;2938 readonly isSendFailure: boolean;3255 readonly isSendFailure: boolean;2950 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';3267 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2951 }3268 }295232692953 /** @name CumulusPalletXcmError (342) */3270 /** @name CumulusPalletXcmError (364) */2954 type CumulusPalletXcmError = Null;3271 type CumulusPalletXcmError = Null;295532722956 /** @name CumulusPalletDmpQueueConfigData (343) */3273 /** @name CumulusPalletDmpQueueConfigData (365) */2957 interface CumulusPalletDmpQueueConfigData extends Struct {3274 interface CumulusPalletDmpQueueConfigData extends Struct {2958 readonly maxIndividual: u64;3275 readonly maxIndividual: u64;2959 }3276 }296032772961 /** @name CumulusPalletDmpQueuePageIndexData (344) */3278 /** @name CumulusPalletDmpQueuePageIndexData (366) */2962 interface CumulusPalletDmpQueuePageIndexData extends Struct {3279 interface CumulusPalletDmpQueuePageIndexData extends Struct {2963 readonly beginUsed: u32;3280 readonly beginUsed: u32;2964 readonly endUsed: u32;3281 readonly endUsed: u32;2965 readonly overweightCount: u64;3282 readonly overweightCount: u64;2966 }3283 }296732842968 /** @name CumulusPalletDmpQueueError (347) */3285 /** @name CumulusPalletDmpQueueError (369) */2969 interface CumulusPalletDmpQueueError extends Enum {3286 interface CumulusPalletDmpQueueError extends Enum {2970 readonly isUnknown: boolean;3287 readonly isUnknown: boolean;2971 readonly isOverLimit: boolean;3288 readonly isOverLimit: boolean;2972 readonly type: 'Unknown' | 'OverLimit';3289 readonly type: 'Unknown' | 'OverLimit';2973 }3290 }297432912975 /** @name PalletUniqueError (351) */3292 /** @name PalletUniqueError (373) */2976 interface PalletUniqueError extends Enum {3293 interface PalletUniqueError extends Enum {2977 readonly isCollectionDecimalPointLimitExceeded: boolean;3294 readonly isCollectionDecimalPointLimitExceeded: boolean;2978 readonly isConfirmUnsetSponsorFail: boolean;3295 readonly isConfirmUnsetSponsorFail: boolean;2981 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';3298 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';2982 }3299 }298333002984 /** @name PalletUniqueSchedulerScheduledV3 (354) */3301 /** @name PalletUniqueSchedulerScheduledV3 (376) */2985 interface PalletUniqueSchedulerScheduledV3 extends Struct {3302 interface PalletUniqueSchedulerScheduledV3 extends Struct {2986 readonly maybeId: Option<U8aFixed>;3303 readonly maybeId: Option<U8aFixed>;2987 readonly priority: u8;3304 readonly priority: u8;2990 readonly origin: OpalRuntimeOriginCaller;3307 readonly origin: OpalRuntimeOriginCaller;2991 }3308 }299233092993 /** @name OpalRuntimeOriginCaller (355) */3310 /** @name OpalRuntimeOriginCaller (377) */2994 interface OpalRuntimeOriginCaller extends Enum {3311 interface OpalRuntimeOriginCaller extends Enum {2995 readonly isSystem: boolean;3312 readonly isSystem: boolean;2996 readonly asSystem: FrameSupportDispatchRawOrigin;3313 readonly asSystem: FrameSupportDispatchRawOrigin;3004 readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';3321 readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';3005 }3322 }300633233007 /** @name FrameSupportDispatchRawOrigin (356) */3324 /** @name FrameSupportDispatchRawOrigin (378) */3008 interface FrameSupportDispatchRawOrigin extends Enum {3325 interface FrameSupportDispatchRawOrigin extends Enum {3009 readonly isRoot: boolean;3326 readonly isRoot: boolean;3010 readonly isSigned: boolean;3327 readonly isSigned: boolean;3013 readonly type: 'Root' | 'Signed' | 'None';3330 readonly type: 'Root' | 'Signed' | 'None';3014 }3331 }301533323016 /** @name PalletXcmOrigin (357) */3333 /** @name PalletXcmOrigin (379) */3017 interface PalletXcmOrigin extends Enum {3334 interface PalletXcmOrigin extends Enum {3018 readonly isXcm: boolean;3335 readonly isXcm: boolean;3019 readonly asXcm: XcmV1MultiLocation;3336 readonly asXcm: XcmV1MultiLocation;3022 readonly type: 'Xcm' | 'Response';3339 readonly type: 'Xcm' | 'Response';3023 }3340 }302433413025 /** @name CumulusPalletXcmOrigin (358) */3342 /** @name CumulusPalletXcmOrigin (380) */3026 interface CumulusPalletXcmOrigin extends Enum {3343 interface CumulusPalletXcmOrigin extends Enum {3027 readonly isRelay: boolean;3344 readonly isRelay: boolean;3028 readonly isSiblingParachain: boolean;3345 readonly isSiblingParachain: boolean;3029 readonly asSiblingParachain: u32;3346 readonly asSiblingParachain: u32;3030 readonly type: 'Relay' | 'SiblingParachain';3347 readonly type: 'Relay' | 'SiblingParachain';3031 }3348 }303233493033 /** @name PalletEthereumRawOrigin (359) */3350 /** @name PalletEthereumRawOrigin (381) */3034 interface PalletEthereumRawOrigin extends Enum {3351 interface PalletEthereumRawOrigin extends Enum {3035 readonly isEthereumTransaction: boolean;3352 readonly isEthereumTransaction: boolean;3036 readonly asEthereumTransaction: H160;3353 readonly asEthereumTransaction: H160;3037 readonly type: 'EthereumTransaction';3354 readonly type: 'EthereumTransaction';3038 }3355 }303933563040 /** @name SpCoreVoid (360) */3357 /** @name SpCoreVoid (382) */3041 type SpCoreVoid = Null;3358 type SpCoreVoid = Null;304233593043 /** @name PalletUniqueSchedulerError (361) */3360 /** @name PalletUniqueSchedulerError (383) */3044 interface PalletUniqueSchedulerError extends Enum {3361 interface PalletUniqueSchedulerError extends Enum {3045 readonly isFailedToSchedule: boolean;3362 readonly isFailedToSchedule: boolean;3046 readonly isNotFound: boolean;3363 readonly isNotFound: boolean;3049 readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';3366 readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';3050 }3367 }305133683052 /** @name UpDataStructsCollection (362) */3369 /** @name UpDataStructsCollection (384) */3053 interface UpDataStructsCollection extends Struct {3370 interface UpDataStructsCollection extends Struct {3054 readonly owner: AccountId32;3371 readonly owner: AccountId32;3055 readonly mode: UpDataStructsCollectionMode;3372 readonly mode: UpDataStructsCollectionMode;3059 readonly sponsorship: UpDataStructsSponsorshipStateAccountId32;3376 readonly sponsorship: UpDataStructsSponsorshipStateAccountId32;3060 readonly limits: UpDataStructsCollectionLimits;3377 readonly limits: UpDataStructsCollectionLimits;3061 readonly permissions: UpDataStructsCollectionPermissions;3378 readonly permissions: UpDataStructsCollectionPermissions;3062 readonly externalCollection: bool;3379 readonly flags: U8aFixed;3063 }3380 }306433813065 /** @name UpDataStructsSponsorshipStateAccountId32 (363) */3382 /** @name UpDataStructsSponsorshipStateAccountId32 (385) */3066 interface UpDataStructsSponsorshipStateAccountId32 extends Enum {3383 interface UpDataStructsSponsorshipStateAccountId32 extends Enum {3067 readonly isDisabled: boolean;3384 readonly isDisabled: boolean;3068 readonly isUnconfirmed: boolean;3385 readonly isUnconfirmed: boolean;3072 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3389 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3073 }3390 }307433913075 /** @name UpDataStructsProperties (364) */3392 /** @name UpDataStructsProperties (387) */3076 interface UpDataStructsProperties extends Struct {3393 interface UpDataStructsProperties extends Struct {3077 readonly map: UpDataStructsPropertiesMapBoundedVec;3394 readonly map: UpDataStructsPropertiesMapBoundedVec;3078 readonly consumedSpace: u32;3395 readonly consumedSpace: u32;3079 readonly spaceLimit: u32;3396 readonly spaceLimit: u32;3080 }3397 }308133983082 /** @name UpDataStructsPropertiesMapBoundedVec (365) */3399 /** @name UpDataStructsPropertiesMapBoundedVec (388) */3083 interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}3400 interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}308434013085 /** @name UpDataStructsPropertiesMapPropertyPermission (370) */3402 /** @name UpDataStructsPropertiesMapPropertyPermission (393) */3086 interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}3403 interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}308734043088 /** @name UpDataStructsCollectionStats (377) */3405 /** @name UpDataStructsCollectionStats (400) */3089 interface UpDataStructsCollectionStats extends Struct {3406 interface UpDataStructsCollectionStats extends Struct {3090 readonly created: u32;3407 readonly created: u32;3091 readonly destroyed: u32;3408 readonly destroyed: u32;3092 readonly alive: u32;3409 readonly alive: u32;3093 }3410 }309434113095 /** @name UpDataStructsTokenChild (378) */3412 /** @name UpDataStructsTokenChild (401) */3096 interface UpDataStructsTokenChild extends Struct {3413 interface UpDataStructsTokenChild extends Struct {3097 readonly token: u32;3414 readonly token: u32;3098 readonly collection: u32;3415 readonly collection: u32;3099 }3416 }310034173101 /** @name PhantomTypeUpDataStructs (379) */3418 /** @name PhantomTypeUpDataStructs (402) */3102 interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}3419 interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}310334203104 /** @name UpDataStructsTokenData (381) */3421 /** @name UpDataStructsTokenData (404) */3105 interface UpDataStructsTokenData extends Struct {3422 interface UpDataStructsTokenData extends Struct {3106 readonly properties: Vec<UpDataStructsProperty>;3423 readonly properties: Vec<UpDataStructsProperty>;3107 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;3424 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;3108 readonly pieces: u128;3425 readonly pieces: u128;3109 }3426 }311034273111 /** @name UpDataStructsRpcCollection (383) */3428 /** @name UpDataStructsRpcCollection (406) */3112 interface UpDataStructsRpcCollection extends Struct {3429 interface UpDataStructsRpcCollection extends Struct {3113 readonly owner: AccountId32;3430 readonly owner: AccountId32;3114 readonly mode: UpDataStructsCollectionMode;3431 readonly mode: UpDataStructsCollectionMode;3121 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;3438 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;3122 readonly properties: Vec<UpDataStructsProperty>;3439 readonly properties: Vec<UpDataStructsProperty>;3123 readonly readOnly: bool;3440 readonly readOnly: bool;3441 readonly foreign: bool;3124 }3442 }312534433126 /** @name RmrkTraitsCollectionCollectionInfo (384) */3444 /** @name RmrkTraitsCollectionCollectionInfo (407) */3127 interface RmrkTraitsCollectionCollectionInfo extends Struct {3445 interface RmrkTraitsCollectionCollectionInfo extends Struct {3128 readonly issuer: AccountId32;3446 readonly issuer: AccountId32;3129 readonly metadata: Bytes;3447 readonly metadata: Bytes;3132 readonly nftsCount: u32;3450 readonly nftsCount: u32;3133 }3451 }313434523135 /** @name RmrkTraitsNftNftInfo (385) */3453 /** @name RmrkTraitsNftNftInfo (408) */3136 interface RmrkTraitsNftNftInfo extends Struct {3454 interface RmrkTraitsNftNftInfo extends Struct {3137 readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;3455 readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;3138 readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;3456 readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;3141 readonly pending: bool;3459 readonly pending: bool;3142 }3460 }314334613144 /** @name RmrkTraitsNftRoyaltyInfo (387) */3462 /** @name RmrkTraitsNftRoyaltyInfo (410) */3145 interface RmrkTraitsNftRoyaltyInfo extends Struct {3463 interface RmrkTraitsNftRoyaltyInfo extends Struct {3146 readonly recipient: AccountId32;3464 readonly recipient: AccountId32;3147 readonly amount: Permill;3465 readonly amount: Permill;3148 }3466 }314934673150 /** @name RmrkTraitsResourceResourceInfo (388) */3468 /** @name RmrkTraitsResourceResourceInfo (411) */3151 interface RmrkTraitsResourceResourceInfo extends Struct {3469 interface RmrkTraitsResourceResourceInfo extends Struct {3152 readonly id: u32;3470 readonly id: u32;3153 readonly resource: RmrkTraitsResourceResourceTypes;3471 readonly resource: RmrkTraitsResourceResourceTypes;3154 readonly pending: bool;3472 readonly pending: bool;3155 readonly pendingRemoval: bool;3473 readonly pendingRemoval: bool;3156 }3474 }315734753158 /** @name RmrkTraitsPropertyPropertyInfo (389) */3476 /** @name RmrkTraitsPropertyPropertyInfo (412) */3159 interface RmrkTraitsPropertyPropertyInfo extends Struct {3477 interface RmrkTraitsPropertyPropertyInfo extends Struct {3160 readonly key: Bytes;3478 readonly key: Bytes;3161 readonly value: Bytes;3479 readonly value: Bytes;3162 }3480 }316334813164 /** @name RmrkTraitsBaseBaseInfo (390) */3482 /** @name RmrkTraitsBaseBaseInfo (413) */3165 interface RmrkTraitsBaseBaseInfo extends Struct {3483 interface RmrkTraitsBaseBaseInfo extends Struct {3166 readonly issuer: AccountId32;3484 readonly issuer: AccountId32;3167 readonly baseType: Bytes;3485 readonly baseType: Bytes;3168 readonly symbol: Bytes;3486 readonly symbol: Bytes;3169 }3487 }317034883171 /** @name RmrkTraitsNftNftChild (391) */3489 /** @name RmrkTraitsNftNftChild (414) */3172 interface RmrkTraitsNftNftChild extends Struct {3490 interface RmrkTraitsNftNftChild extends Struct {3173 readonly collectionId: u32;3491 readonly collectionId: u32;3174 readonly nftId: u32;3492 readonly nftId: u32;3175 }3493 }317634943177 /** @name PalletCommonError (393) */3495 /** @name PalletCommonError (416) */3178 interface PalletCommonError extends Enum {3496 interface PalletCommonError extends Enum {3179 readonly isCollectionNotFound: boolean;3497 readonly isCollectionNotFound: boolean;3180 readonly isMustBeTokenOwner: boolean;3498 readonly isMustBeTokenOwner: boolean;3213 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';3531 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';3214 }3532 }321535333216 /** @name PalletFungibleError (395) */3534 /** @name PalletFungibleError (418) */3217 interface PalletFungibleError extends Enum {3535 interface PalletFungibleError extends Enum {3218 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3536 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3219 readonly isFungibleItemsHaveNoId: boolean;3537 readonly isFungibleItemsHaveNoId: boolean;3223 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3541 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3224 }3542 }322535433226 /** @name PalletRefungibleItemData (396) */3544 /** @name PalletRefungibleItemData (419) */3227 interface PalletRefungibleItemData extends Struct {3545 interface PalletRefungibleItemData extends Struct {3228 readonly constData: Bytes;3546 readonly constData: Bytes;3229 }3547 }323035483231 /** @name PalletRefungibleError (401) */3549 /** @name PalletRefungibleError (424) */3232 interface PalletRefungibleError extends Enum {3550 interface PalletRefungibleError extends Enum {3233 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3551 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3234 readonly isWrongRefungiblePieces: boolean;3552 readonly isWrongRefungiblePieces: boolean;3238 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3556 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3239 }3557 }324035583241 /** @name PalletNonfungibleItemData (402) */3559 /** @name PalletNonfungibleItemData (425) */3242 interface PalletNonfungibleItemData extends Struct {3560 interface PalletNonfungibleItemData extends Struct {3243 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3561 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3244 }3562 }324535633246 /** @name UpDataStructsPropertyScope (404) */3564 /** @name UpDataStructsPropertyScope (427) */3247 interface UpDataStructsPropertyScope extends Enum {3565 interface UpDataStructsPropertyScope extends Enum {3248 readonly isNone: boolean;3566 readonly isNone: boolean;3249 readonly isRmrk: boolean;3567 readonly isRmrk: boolean;3250 readonly type: 'None' | 'Rmrk';3568 readonly type: 'None' | 'Rmrk';3251 }3569 }325235703253 /** @name PalletNonfungibleError (406) */3571 /** @name PalletNonfungibleError (429) */3254 interface PalletNonfungibleError extends Enum {3572 interface PalletNonfungibleError extends Enum {3255 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3573 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3256 readonly isNonfungibleItemsHaveNoAmount: boolean;3574 readonly isNonfungibleItemsHaveNoAmount: boolean;3257 readonly isCantBurnNftWithChildren: boolean;3575 readonly isCantBurnNftWithChildren: boolean;3258 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3576 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3259 }3577 }326035783261 /** @name PalletStructureError (407) */3579 /** @name PalletStructureError (430) */3262 interface PalletStructureError extends Enum {3580 interface PalletStructureError extends Enum {3263 readonly isOuroborosDetected: boolean;3581 readonly isOuroborosDetected: boolean;3264 readonly isDepthLimit: boolean;3582 readonly isDepthLimit: boolean;3267 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3585 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3268 }3586 }326935873270 /** @name PalletRmrkCoreError (408) */3588 /** @name PalletRmrkCoreError (431) */3271 interface PalletRmrkCoreError extends Enum {3589 interface PalletRmrkCoreError extends Enum {3272 readonly isCorruptedCollectionType: boolean;3590 readonly isCorruptedCollectionType: boolean;3273 readonly isRmrkPropertyKeyIsTooLong: boolean;3591 readonly isRmrkPropertyKeyIsTooLong: boolean;3291 readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';3609 readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';3292 }3610 }329336113294 /** @name PalletRmrkEquipError (410) */3612 /** @name PalletRmrkEquipError (433) */3295 interface PalletRmrkEquipError extends Enum {3613 interface PalletRmrkEquipError extends Enum {3296 readonly isPermissionError: boolean;3614 readonly isPermissionError: boolean;3297 readonly isNoAvailableBaseId: boolean;3615 readonly isNoAvailableBaseId: boolean;3303 readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';3621 readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';3304 }3622 }330536233306 /** @name PalletAppPromotionError (416) */3624 /** @name PalletAppPromotionError (439) */3307 interface PalletAppPromotionError extends Enum {3625 interface PalletAppPromotionError extends Enum {3308 readonly isAdminNotSet: boolean;3626 readonly isAdminNotSet: boolean;3309 readonly isNoPermission: boolean;3627 readonly isNoPermission: boolean;3314 readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';3632 readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';3315 }3633 }36343635 /** @name PalletForeignAssetsModuleError (440) */3636 interface PalletForeignAssetsModuleError extends Enum {3637 readonly isBadLocation: boolean;3638 readonly isMultiLocationExisted: boolean;3639 readonly isAssetIdNotExists: boolean;3640 readonly isAssetIdExisted: boolean;3641 readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';3642 }331636433317 /** @name PalletEvmError (419) */3644 /** @name PalletEvmError (443) */3318 interface PalletEvmError extends Enum {3645 interface PalletEvmError extends Enum {3319 readonly isBalanceLow: boolean;3646 readonly isBalanceLow: boolean;3320 readonly isFeeOverflow: boolean;3647 readonly isFeeOverflow: boolean;3325 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';3652 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';3326 }3653 }332736543328 /** @name FpRpcTransactionStatus (422) */3655 /** @name FpRpcTransactionStatus (446) */3329 interface FpRpcTransactionStatus extends Struct {3656 interface FpRpcTransactionStatus extends Struct {3330 readonly transactionHash: H256;3657 readonly transactionHash: H256;3331 readonly transactionIndex: u32;3658 readonly transactionIndex: u32;3336 readonly logsBloom: EthbloomBloom;3663 readonly logsBloom: EthbloomBloom;3337 }3664 }333836653339 /** @name EthbloomBloom (424) */3666 /** @name EthbloomBloom (448) */3340 interface EthbloomBloom extends U8aFixed {}3667 interface EthbloomBloom extends U8aFixed {}334136683342 /** @name EthereumReceiptReceiptV3 (426) */3669 /** @name EthereumReceiptReceiptV3 (450) */3343 interface EthereumReceiptReceiptV3 extends Enum {3670 interface EthereumReceiptReceiptV3 extends Enum {3344 readonly isLegacy: boolean;3671 readonly isLegacy: boolean;3345 readonly asLegacy: EthereumReceiptEip658ReceiptData;3672 readonly asLegacy: EthereumReceiptEip658ReceiptData;3350 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3677 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3351 }3678 }335236793353 /** @name EthereumReceiptEip658ReceiptData (427) */3680 /** @name EthereumReceiptEip658ReceiptData (451) */3354 interface EthereumReceiptEip658ReceiptData extends Struct {3681 interface EthereumReceiptEip658ReceiptData extends Struct {3355 readonly statusCode: u8;3682 readonly statusCode: u8;3356 readonly usedGas: U256;3683 readonly usedGas: U256;3357 readonly logsBloom: EthbloomBloom;3684 readonly logsBloom: EthbloomBloom;3358 readonly logs: Vec<EthereumLog>;3685 readonly logs: Vec<EthereumLog>;3359 }3686 }336036873361 /** @name EthereumBlock (428) */3688 /** @name EthereumBlock (452) */3362 interface EthereumBlock extends Struct {3689 interface EthereumBlock extends Struct {3363 readonly header: EthereumHeader;3690 readonly header: EthereumHeader;3364 readonly transactions: Vec<EthereumTransactionTransactionV2>;3691 readonly transactions: Vec<EthereumTransactionTransactionV2>;3365 readonly ommers: Vec<EthereumHeader>;3692 readonly ommers: Vec<EthereumHeader>;3366 }3693 }336736943368 /** @name EthereumHeader (429) */3695 /** @name EthereumHeader (453) */3369 interface EthereumHeader extends Struct {3696 interface EthereumHeader extends Struct {3370 readonly parentHash: H256;3697 readonly parentHash: H256;3371 readonly ommersHash: H256;3698 readonly ommersHash: H256;3384 readonly nonce: EthereumTypesHashH64;3711 readonly nonce: EthereumTypesHashH64;3385 }3712 }338637133387 /** @name EthereumTypesHashH64 (430) */3714 /** @name EthereumTypesHashH64 (454) */3388 interface EthereumTypesHashH64 extends U8aFixed {}3715 interface EthereumTypesHashH64 extends U8aFixed {}338937163390 /** @name PalletEthereumError (435) */3717 /** @name PalletEthereumError (459) */3391 interface PalletEthereumError extends Enum {3718 interface PalletEthereumError extends Enum {3392 readonly isInvalidSignature: boolean;3719 readonly isInvalidSignature: boolean;3393 readonly isPreLogExists: boolean;3720 readonly isPreLogExists: boolean;3394 readonly type: 'InvalidSignature' | 'PreLogExists';3721 readonly type: 'InvalidSignature' | 'PreLogExists';3395 }3722 }339637233397 /** @name PalletEvmCoderSubstrateError (436) */3724 /** @name PalletEvmCoderSubstrateError (460) */3398 interface PalletEvmCoderSubstrateError extends Enum {3725 interface PalletEvmCoderSubstrateError extends Enum {3399 readonly isOutOfGas: boolean;3726 readonly isOutOfGas: boolean;3400 readonly isOutOfFund: boolean;3727 readonly isOutOfFund: boolean;3401 readonly type: 'OutOfGas' | 'OutOfFund';3728 readonly type: 'OutOfGas' | 'OutOfFund';3402 }3729 }340337303404 /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (437) */3731 /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (461) */3405 interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {3732 interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {3406 readonly isDisabled: boolean;3733 readonly isDisabled: boolean;3407 readonly isUnconfirmed: boolean;3734 readonly isUnconfirmed: boolean;3411 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3738 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3412 }3739 }341337403414 /** @name PalletEvmContractHelpersSponsoringModeT (438) */3741 /** @name PalletEvmContractHelpersSponsoringModeT (462) */3415 interface PalletEvmContractHelpersSponsoringModeT extends Enum {3742 interface PalletEvmContractHelpersSponsoringModeT extends Enum {3416 readonly isDisabled: boolean;3743 readonly isDisabled: boolean;3417 readonly isAllowlisted: boolean;3744 readonly isAllowlisted: boolean;3418 readonly isGenerous: boolean;3745 readonly isGenerous: boolean;3419 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3746 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3420 }3747 }342137483422 /** @name PalletEvmContractHelpersError (440) */3749 /** @name PalletEvmContractHelpersError (468) */3423 interface PalletEvmContractHelpersError extends Enum {3750 interface PalletEvmContractHelpersError extends Enum {3424 readonly isNoPermission: boolean;3751 readonly isNoPermission: boolean;3425 readonly isNoPendingSponsor: boolean;3752 readonly isNoPendingSponsor: boolean;3753 readonly isTooManyMethodsHaveSponsoredLimit: boolean;3426 readonly type: 'NoPermission' | 'NoPendingSponsor';3754 readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit';3427 }3755 }342837563429 /** @name PalletEvmMigrationError (441) */3757 /** @name PalletEvmMigrationError (469) */3430 interface PalletEvmMigrationError extends Enum {3758 interface PalletEvmMigrationError extends Enum {3431 readonly isAccountNotEmpty: boolean;3759 readonly isAccountNotEmpty: boolean;3432 readonly isAccountIsNotMigrating: boolean;3760 readonly isAccountIsNotMigrating: boolean;3433 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';3761 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';3434 }3762 }343537633436 /** @name SpRuntimeMultiSignature (443) */3764 /** @name SpRuntimeMultiSignature (471) */3437 interface SpRuntimeMultiSignature extends Enum {3765 interface SpRuntimeMultiSignature extends Enum {3438 readonly isEd25519: boolean;3766 readonly isEd25519: boolean;3439 readonly asEd25519: SpCoreEd25519Signature;3767 readonly asEd25519: SpCoreEd25519Signature;3444 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3772 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3445 }3773 }344637743447 /** @name SpCoreEd25519Signature (444) */3775 /** @name SpCoreEd25519Signature (472) */3448 interface SpCoreEd25519Signature extends U8aFixed {}3776 interface SpCoreEd25519Signature extends U8aFixed {}344937773450 /** @name SpCoreSr25519Signature (446) */3778 /** @name SpCoreSr25519Signature (474) */3451 interface SpCoreSr25519Signature extends U8aFixed {}3779 interface SpCoreSr25519Signature extends U8aFixed {}345237803453 /** @name SpCoreEcdsaSignature (447) */3781 /** @name SpCoreEcdsaSignature (475) */3454 interface SpCoreEcdsaSignature extends U8aFixed {}3782 interface SpCoreEcdsaSignature extends U8aFixed {}345537833456 /** @name FrameSystemExtensionsCheckSpecVersion (450) */3784 /** @name FrameSystemExtensionsCheckSpecVersion (478) */3457 type FrameSystemExtensionsCheckSpecVersion = Null;3785 type FrameSystemExtensionsCheckSpecVersion = Null;345837863459 /** @name FrameSystemExtensionsCheckGenesis (451) */3787 /** @name FrameSystemExtensionsCheckGenesis (479) */3460 type FrameSystemExtensionsCheckGenesis = Null;3788 type FrameSystemExtensionsCheckGenesis = Null;346137893462 /** @name FrameSystemExtensionsCheckNonce (454) */3790 /** @name FrameSystemExtensionsCheckNonce (482) */3463 interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}3791 interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}346437923465 /** @name FrameSystemExtensionsCheckWeight (455) */3793 /** @name FrameSystemExtensionsCheckWeight (483) */3466 type FrameSystemExtensionsCheckWeight = Null;3794 type FrameSystemExtensionsCheckWeight = Null;346737953468 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (456) */3796 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (484) */3469 interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}3797 interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}347037983471 /** @name OpalRuntimeRuntime (457) */3799 /** @name OpalRuntimeRuntime (485) */3472 type OpalRuntimeRuntime = Null;3800 type OpalRuntimeRuntime = Null;347338013474 /** @name PalletEthereumFakeTransactionFinalizer (458) */3802 /** @name PalletEthereumFakeTransactionFinalizer (486) */3475 type PalletEthereumFakeTransactionFinalizer = Null;3803 type PalletEthereumFakeTransactionFinalizer = Null;347638043477} // declare module3805} // declare moduletests/src/mintModes.test.tsdiffbeforeafterbothno changes
tests/src/pallet-presence.test.tsdiffbeforeafterboth45 'nonfungible',45 'nonfungible',46 'charging',46 'charging',47 'configuration',47 'configuration',48 'tokens',49 'xtokens',48];50];495150// Pallets that depend on consensus and governance configuration52// Pallets that depend on consensus and governance configuration616362 const refungible = 'refungible';64 const refungible = 'refungible';63 const scheduler = 'scheduler';65 const scheduler = 'scheduler';66 const foreignAssets = 'foreignassets';64 const rmrkPallets = ['rmrkcore', 'rmrkequip'];67 const rmrkPallets = ['rmrkcore', 'rmrkequip'];65 const appPromotion = 'apppromotion';68 const appPromotion = 'apppromotion';666967 if (chain.eq('OPAL by UNIQUE')) {70 if (chain.eq('OPAL by UNIQUE')) {68 requiredPallets.push(refungible, scheduler, appPromotion, ...rmrkPallets);71 requiredPallets.push(72 refungible,73 scheduler,74 foreignAssets,75 appPromotion,76 ...rmrkPallets,77 );69 } else if (chain.eq('QUARTZ by UNIQUE')) {78 } else if (chain.eq('QUARTZ by UNIQUE')) {70 // Insert Quartz additional pallets here79 requiredPallets.push(refungible);71 } else if (chain.eq('UNIQUE')) {80 } else if (chain.eq('UNIQUE')) {72 // Insert Unique additional pallets here81 // Insert Unique additional pallets here73 }82 }tests/src/refungible.test.tsdiffbeforeafterboth17import {IKeyringPair} from '@polkadot/types/types';17import {IKeyringPair} from '@polkadot/types/types';18import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from './util/playgrounds';18import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from './util/playgrounds';191920let alice: IKeyringPair;21let bob: IKeyringPair;22const MAX_REFUNGIBLE_PIECES = 1_000_000_000_000_000_000_000n;20const MAX_REFUNGIBLE_PIECES = 1_000_000_000_000_000_000_000n;232124describe('integration test: Refungible functionality:', async () => {22describe('integration test: Refungible functionality:', async () => {23 let alice: IKeyringPair;24 let bob: IKeyringPair;2525 before(async function() {26 before(async function() {26 await usingPlaygrounds(async (helper, privateKey) => {27 await usingPlaygrounds(async (helper, privateKey) => {27 requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);28 requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);282929 alice = privateKey('//Alice');30 const donor = privateKey('//Alice');30 bob = privateKey('//Bob');31 [alice, bob] = await helper.arrange.createAccounts([100n, 10n], donor);31 });32 });32 });33 });33 34 209 const collection = await helper.rft.mintCollection(alice, {name: 'test', description: 'test', tokenPrefix: 'test'});210 const collection = await helper.rft.mintCollection(alice, {name: 'test', description: 'test', tokenPrefix: 'test'});210 const token = await collection.mintToken(alice, 100n);211 const token = await collection.mintToken(alice, 100n);211 await token.repartition(alice, 200n);212 await token.repartition(alice, 200n);212 const chainEvents = helper.chainLog.slice(-1)[0].events.map((x: any) => x.event);213 const chainEvents = helper.chainLog.slice(-1)[0].events;213 expect(chainEvents).to.include.deep.members([{214 expect(chainEvents).to.deep.include({214 method: 'ItemCreated',215 section: 'common',215 section: 'common',216 method: 'ItemCreated',216 index: '0x4202',217 index: [66, 2],217 data: [ 218 data: [218 helper.api!.createType('u32', collection.collectionId).toHuman(), 219 collection.collectionId,219 helper.api!.createType('u32', token.tokenId).toHuman(),220 token.tokenId,220 {Substrate: alice.address}, 221 {substrate: alice.address}, 221 '100',222 100n,222 ],223 ],224 phase: {applyExtrinsic: 2},223 }]);225 });224 });226 });225227226 itSub('Repartition with decreased amount', async ({helper}) => {228 itSub('Repartition with decreased amount', async ({helper}) => {227 const collection = await helper.rft.mintCollection(alice, {name: 'test', description: 'test', tokenPrefix: 'test'});229 const collection = await helper.rft.mintCollection(alice, {name: 'test', description: 'test', tokenPrefix: 'test'});228 const token = await collection.mintToken(alice, 100n);230 const token = await collection.mintToken(alice, 100n);229 await token.repartition(alice, 50n);231 await token.repartition(alice, 50n);230 const chainEvents = helper.chainLog.slice(-1)[0].events.map((x: any) => x.event);232 const chainEvents = helper.chainLog.slice(-1)[0].events;231 expect(chainEvents).to.include.deep.members([{233 expect(chainEvents).to.deep.include({232 method: 'ItemDestroyed',234 method: 'ItemDestroyed',233 section: 'common',235 section: 'common',234 index: '0x4203',236 index: [66, 3],235 data: [ 237 data: [236 helper.api!.createType('u32', collection.collectionId).toHuman(), 238 collection.collectionId,237 helper.api!.createType('u32', token.tokenId).toHuman(),239 token.tokenId,238 {Substrate: alice.address}, 240 {substrate: alice.address}, 239 '50',241 50n,240 ],242 ],243 phase: {applyExtrinsic: 2},241 }]);244 });242 });245 });243 246 244 itSub('Create new collection with properties', async ({helper}) => {247 itSub('Create new collection with properties', async ({helper}) => {tests/src/removeFromAllowList.test.tsdiffbeforeafterbothno changes
tests/src/setContractSponsoringRateLimit.test.tsdiffbeforeafterboth25 setContractSponsoringRateLimitExpectSuccess,25 setContractSponsoringRateLimitExpectSuccess,26} from './util/helpers';26} from './util/helpers';272728// todo:playgrounds postponed skipped test28// todo:playgrounds skipped~postponed test29describe.skip('Integration Test setContractSponsoringRateLimit', () => {29describe.skip('Integration Test setContractSponsoringRateLimit', () => {30 it('ensure sponsored contract can\'t be called twice without pause for free', async () => {30 it('ensure sponsored contract can\'t be called twice without pause for free', async () => {31 await usingApi(async (api, privateKeyWrapper) => {31 await usingApi(async (api, privateKeyWrapper) => {tests/src/setMintPermission.test.tsdiffbeforeafterbothno changes
tests/src/setPermissions.test.tsdiffbeforeafterbothno changes
tests/src/setPublicAccessMode.test.tsdiffbeforeafterbothno changes
tests/src/substrate/substrate-api.tsdiffbeforeafterboth110 if (status.isBroadcast) {110 if (status.isBroadcast) {111 return TransactionStatus.NotReady;111 return TransactionStatus.NotReady;112 }112 }113 if (status.isRetracted) {114 return TransactionStatus.NotReady;115 }113 if (status.isInBlock || status.isFinalized) {116 if (status.isInBlock || status.isFinalized) {114 if(events.filter(e => e.event.data.method === 'ExtrinsicFailed').length > 0) {117 if(events.filter(e => e.event.data.method === 'ExtrinsicFailed').length > 0) {115 return TransactionStatus.Fail;118 return TransactionStatus.Fail;148 });151 });149}152}150153154/**155 * @deprecated use `executeTransaction` instead156 */151export function157export function152submitTransactionAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {158submitTransactionAsync(sender: IKeyringPair, transaction: SubmittableExtrinsic<ApiTypes>): Promise<EventRecord[]> {153 /* eslint no-async-promise-executor: "off" */159 /* eslint no-async-promise-executor: "off" */154 return new Promise(async (resolve, reject) => {160 return new Promise(async (resolve, reject) => {155 try {161 try {156 await transaction.signAndSend(sender, ({events = [], status}) => {162 await transaction.signAndSend(sender, ({events = [], status, dispatchError}) => {157 const transactionStatus = getTransactionStatus(events, status);163 const transactionStatus = getTransactionStatus(events, status);158164159 if (transactionStatus === TransactionStatus.Success) {165 if (transactionStatus === TransactionStatus.Success) {160 resolve(events);166 resolve(events);161 } else if (transactionStatus === TransactionStatus.Fail) {167 } else if (transactionStatus === TransactionStatus.Fail) {168 let moduleError = null;169170 if (dispatchError) {171 if (dispatchError.isModule) {172 const modErr = dispatchError.asModule;173 const errorMeta = dispatchError.registry.findMetaError(modErr);174175 moduleError = JSON.stringify(errorMeta, null, 4);176 }177 }178162 console.log(`Something went wrong with transaction. Status: ${status}`);179 console.log(`Something went wrong with transaction. Status: ${status}\nModule error: ${moduleError}`);163 reject(events);180 reject(events);164 }181 }165 });182 });tests/src/tx-version-presence.test.tsdiffbeforeafterbothno changes
tests/src/util/helpers.tsdiffbeforeafterboth161617import '../interfaces/augment-api-rpc';17import '../interfaces/augment-api-rpc';18import '../interfaces/augment-api-query';18import '../interfaces/augment-api-query';19import {ApiPromise} from '@polkadot/api';19import {ApiPromise, Keyring} from '@polkadot/api';20import type {AccountId, EventRecord, Event, BlockNumber} from '@polkadot/types/interfaces';20import type {AccountId, EventRecord, Event, BlockNumber} from '@polkadot/types/interfaces';21import type {GenericEventData} from '@polkadot/types';21import type {GenericEventData} from '@polkadot/types';22import {AnyTuple, IEvent, IKeyringPair} from '@polkadot/types/types';22import {AnyTuple, IEvent, IKeyringPair} from '@polkadot/types/types';105 return api.registry.createType('AccountId', '0x' + number.toString(16).padStart(64, '0')).toJSON();105 return api.registry.createType('AccountId', '0x' + number.toString(16).padStart(64, '0')).toJSON();106}106}107108export function bigIntToDecimals(number: bigint, decimals = 18): string {109 const numberStr = number.toString();110 const dotPos = numberStr.length - decimals;111112 if (dotPos <= 0) {113 return '0.' + '0'.repeat(Math.abs(dotPos)) + numberStr;114 } else {115 const intPart = numberStr.substring(0, dotPos);116 const fractPart = numberStr.substring(dotPos);117 return intPart + '.' + fractPart;118 }119}107120108export function normalizeAccountId(input: string | AccountId | CrossAccountId | IKeyringPair): CrossAccountId {121export function normalizeAccountId(input: string | AccountId | CrossAccountId | IKeyringPair): CrossAccountId {109 if (typeof input === 'string') {122 if (typeof input === 'string') {1102 return balance;1115 return balance;1103}1116}11171118export async function paraSiblingSovereignAccount(paraid: number): Promise<string> {1119 return usingApi(async api => {1120 // We are getting a *sibling* parachain sovereign account,1121 // so we need a sibling prefix: encoded(b"sibl") == 0x7369626c1122 const siblingPrefix = '0x7369626c';11231124 const encodedParaId = api.createType('u32', paraid).toHex(true).substring(2);1125 const suffix = '000000000000000000000000000000000000000000000000';11261127 return siblingPrefix + encodedParaId + suffix;1128 });1129}110411301105export async function transferBalanceTo(api: ApiPromise, source: IKeyringPair, target: string, amount = 1000n * UNIQUE) {1131export async function transferBalanceTo(api: ApiPromise, source: IKeyringPair, target: string, amount = 1000n * UNIQUE) {1106 const tx = api.tx.balances.transfer(target, amount);1132 const tx = api.tx.balances.transfer(target, amount);1158 {Value: operationTx as any},1184 {Value: operationTx as any},1159 );1185 );116011861161 //const events = 1187 //const events =1162 await expect(submitTransactionExpectFailAsync(sender, scheduleTx)).to.be.rejected;1188 await expect(submitTransactionExpectFailAsync(sender, scheduleTx)).to.be.rejected;1163 //expect(getGenericResult(events).success).to.be.false;1189 //expect(getGenericResult(events).success).to.be.false;1164 });1190 });1738 return (await api.rpc.unique.collectionById(collectionId)).unwrap();1764 return (await api.rpc.unique.collectionById(collectionId)).unwrap();1739}1765}17661767export const describe_xcm = (1768 process.env.RUN_XCM_TESTS1769 ? describe1770 : describe.skip1771);174017721741export async function waitNewBlocks(blocksCount = 1): Promise<void> {1773export async function waitNewBlocks(blocksCount = 1): Promise<void> {1742 await usingApi(async (api) => {1774 await usingApi(async (api) => {1754 });1786 });1755}1787}17881789export async function waitEvent(1790 api: ApiPromise,1791 maxBlocksToWait: number,1792 eventSection: string,1793 eventMethod: string,1794): Promise<EventRecord | null> {17951796 const promise = new Promise<EventRecord | null>(async (resolve) => {1797 const unsubscribe = await api.rpc.chain.subscribeNewHeads(async header => {1798 const blockNumber = header.number.toHuman();1799 const blockHash = header.hash;1800 const eventIdStr = `${eventSection}.${eventMethod}`;1801 const waitLimitStr = `wait blocks remaining: ${maxBlocksToWait}`;18021803 console.log(`[Block #${blockNumber}] Waiting for event \`${eventIdStr}\` (${waitLimitStr})`);18041805 const apiAt = await api.at(blockHash);1806 const eventRecords = await apiAt.query.system.events();18071808 const neededEvent = eventRecords.find(r => {1809 return r.event.section == eventSection && r.event.method == eventMethod;1810 });18111812 if (neededEvent) {1813 unsubscribe();1814 resolve(neededEvent);1815 } else if (maxBlocksToWait > 0) {1816 maxBlocksToWait--;1817 } else {1818 console.log(`Event \`${eventIdStr}\` is NOT found`);18191820 unsubscribe();1821 resolve(null);1822 }1823 });1824 });1825 return promise;1826}175618271757export async function repartitionRFT(1828export async function repartitionRFT(1758 api: ApiPromise,1829 api: ApiPromise,1782itApi.only = (name: string, cb: (apis: { api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair }) => any) => itApi(name, cb, {only: true});1853itApi.only = (name: string, cb: (apis: { api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair }) => any) => itApi(name, cb, {only: true});1783itApi.skip = (name: string, cb: (apis: { api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair }) => any) => itApi(name, cb, {skip: true});1854itApi.skip = (name: string, cb: (apis: { api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair }) => any) => itApi(name, cb, {skip: true});178418551856let accountSeed = 10000;1857export function generateKeyringPair(keyring: Keyring) {1858 const privateKey = `0xDEADBEEF${(Date.now() + (accountSeed++)).toString(16).padStart(64 - 8, '0')}`;1859 return keyring.addFromUri(privateKey);1860}178518611786export async function expectSubstrateEventsAtBlock(api: ApiPromise, blockNumber: AnyNumber | BlockNumber, section: string, methods: string[], dryRun = false) {1862export async function expectSubstrateEventsAtBlock(api: ApiPromise, blockNumber: AnyNumber | BlockNumber, section: string, methods: string[], dryRun = false) {1787 const blockHash = await api.rpc.chain.getBlockHash(blockNumber);1863 const blockHash = await api.rpc.chain.getBlockHash(blockNumber);tests/src/util/playgrounds/index.tsdiffbeforeafterboth13chai.use(chaiAsPromised);13chai.use(chaiAsPromised);14export const expect = chai.expect;14export const expect = chai.expect;151516export const usingPlaygrounds = async (code: (helper: DevUniqueHelper, privateKey: (seed: string) => IKeyringPair) => Promise<void>) => {16export const usingPlaygrounds = async (code: (helper: DevUniqueHelper, privateKey: (seed: string) => IKeyringPair) => Promise<void>, url: string = config.substrateUrl) => {17 const silentConsole = new SilentConsole();17 const silentConsole = new SilentConsole();18 silentConsole.enable();18 silentConsole.enable();191920 const helper = new DevUniqueHelper(new SilentLogger());20 const helper = new DevUniqueHelper(new SilentLogger());212122 try {22 try {23 await helper.connect(config.substrateUrl);23 await helper.connect(url);24 const ss58Format = helper.chain.getChainProperties().ss58Format;24 const ss58Format = helper.chain.getChainProperties().ss58Format;25 const privateKey = (seed: string) => helper.util.fromSeed(seed, ss58Format);25 const privateKey = (seed: string) => helper.util.fromSeed(seed, ss58Format);26 await code(helper, privateKey);26 await code(helper, privateKey);tests/src/util/playgrounds/types.tsdiffbeforeafterboth334import {IKeyringPair} from '@polkadot/types/types';4import {IKeyringPair} from '@polkadot/types/types';556export interface IChainEvent {6export interface IEvent {7 data: any;7 section: string;8 method: string;8 method: string;9 section: string;9 index: [number, number] | string;10 data: any[];11 phase: {applyExtrinsic: number} | 'Initialization',10}12}111312export interface ITransactionResult {14export interface ITransactionResult {13 status: 'Fail' | 'Success';15 status: 'Fail' | 'Success';14 result: {16 result: {15 events: {17 events: {18 phase: any, // {ApplyExtrinsic: number} | 'Initialization',16 event: IChainEvent19 event: IEvent;17 }[];20 }[];18 },21 },19 moduleError?: string;22 moduleError?: string;20}23}2425export interface ISubscribeBlockEventsData {26 number: number;27 hash: string;28 timestamp: number; 29 events: IEvent[];30}213122export interface ILogger {32export interface ILogger {23 log: (msg: any, level?: string) => void;33 log: (msg: any, level?: string) => void;147 feeFrozen: bigint157 feeFrozen: bigint148}158}159160export interface IStakingInfo {161 block: bigint,162 amount: bigint,163}149164150export type TSubstrateAccount = string;165export type TSubstrateAccount = string;151export type TEthereumAccount = string;166export type TEthereumAccount = string;tests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth60 */60 */61 arrange: ArrangeGroup;61 arrange: ArrangeGroup;62 wait: WaitGroup;62 wait: WaitGroup;63 admin: AdminGroup;636464 constructor(logger: { log: (msg: any, level: any) => void, level: any }) {65 constructor(logger: { log: (msg: any, level: any) => void, level: any }) {65 super(logger);66 super(logger);66 this.arrange = new ArrangeGroup(this);67 this.arrange = new ArrangeGroup(this);67 this.wait = new WaitGroup(this);68 this.wait = new WaitGroup(this);69 this.admin = new AdminGroup(this);68 }70 }697170 async connect(wsEndpoint: string, _listeners?: any): Promise<void> {72 async connect(wsEndpoint: string, _listeners?: any): Promise<void> {120 */122 */121 createAccounts = async (balances: bigint[], donor: IKeyringPair): Promise<IKeyringPair[]> => {123 createAccounts = async (balances: bigint[], donor: IKeyringPair): Promise<IKeyringPair[]> => {122 let nonce = await this.helper.chain.getNonce(donor.address);124 let nonce = await this.helper.chain.getNonce(donor.address);125 const wait = new WaitGroup(this.helper);123 const ss58Format = this.helper.chain.getChainProperties().ss58Format;126 const ss58Format = this.helper.chain.getChainProperties().ss58Format;124 const tokenNominal = this.helper.balance.getOneTokenNominal();127 const tokenNominal = this.helper.balance.getOneTokenNominal();125 const transactions = [];128 const transactions = [];129 accounts.push(recipient);132 accounts.push(recipient);130 if (balance !== 0n) {133 if (balance !== 0n) {131 const tx = this.helper.constructApiCall('api.tx.balances.transfer', [{Id: recipient.address}, balance * tokenNominal]);134 const tx = this.helper.constructApiCall('api.tx.balances.transfer', [{Id: recipient.address}, balance * tokenNominal]);132 transactions.push(this.helper.signTransaction(donor, tx, 'account generation', {nonce}));135 transactions.push(this.helper.signTransaction(donor, tx, {nonce}, 'account generation'));133 nonce++;136 nonce++;134 }137 }135 }138 }154 for (let index = 0; index < 5; index++) {157 for (let index = 0; index < 5; index++) {155 accountsCreated = await checkBalances();158 accountsCreated = await checkBalances();156 if(accountsCreated) break;159 if(accountsCreated) break;157 160 await wait.newBlocks(1);158 }161 }159162160 if (!accountsCreated) throw Error('Accounts generation failed');163 if (!accountsCreated) throw Error('Accounts generation failed');180 accounts.push(recepient);183 accounts.push(recepient);181 if (withBalance !== 0n) {184 if (withBalance !== 0n) {182 const tx = this.helper.constructApiCall('api.tx.balances.transfer', [{Id: recepient.address}, withBalance * tokenNominal]);185 const tx = this.helper.constructApiCall('api.tx.balances.transfer', [{Id: recepient.address}, withBalance * tokenNominal]);183 transactions.push(this.helper.signTransaction(donor, tx, 'account generation', {nonce}));186 transactions.push(this.helper.signTransaction(donor, tx, {nonce}, 'account generation'));184 nonce++;187 nonce++;185 }188 }186 }189 }282 }285 }283}286}287288class AdminGroup {289 helper: UniqueHelper;290291 constructor(helper: UniqueHelper) {292 this.helper = helper;293 }294295 async payoutStakers(signer: IKeyringPair, stakersToPayout: number) {296 const payoutResult = await this.helper.executeExtrinsic(signer, 'api.tx.appPromotion.payoutStakers', [stakersToPayout], true);297 return payoutResult.result.events.filter(e => e.event.method === 'StakingRecalculation').map(e => {298 return {299 staker: e.event.data[0].toString(),300 stake: e.event.data[1].toBigInt(),301 payout: e.event.data[2].toBigInt(),302 };303 });304 }305}284306tests/src/util/playgrounds/unique.tsdiffbeforeafterboth6/* eslint-disable no-prototype-builtins */6/* eslint-disable no-prototype-builtins */778import {ApiPromise, WsProvider, Keyring} from '@polkadot/api';8import {ApiPromise, WsProvider, Keyring} from '@polkadot/api';9import {ApiInterfaceEvents} from '@polkadot/api/types';9import {ApiInterfaceEvents, SignerOptions} from '@polkadot/api/types';10import {encodeAddress, decodeAddress, keccakAsHex, evmToAddress, addressToEvm} from '@polkadot/util-crypto';10import {encodeAddress, decodeAddress, keccakAsHex, evmToAddress, addressToEvm} from '@polkadot/util-crypto';11import {IKeyringPair} from '@polkadot/types/types';11import {IKeyringPair} from '@polkadot/types/types';12import {IApiListeners, IBlock, IChainEvent, IChainProperties, ICollectionCreationOptions, ICollectionLimits, ICollectionPermissions, ICrossAccountId, ICrossAccountIdLower, ILogger, INestingPermissions, IProperty, ISubstrateBalance, IToken, ITokenPropertyPermission, ITransactionResult, IUniqueHelperLog, TApiAllowedListeners, TEthereumAccount, TSigner, TSubstrateAccount, TUniqueNetworks} from './types';12import {IApiListeners, IBlock, IEvent, IChainProperties, ICollectionCreationOptions, ICollectionLimits, ICollectionPermissions, ICrossAccountId, ICrossAccountIdLower, ILogger, INestingPermissions, IProperty, IStakingInfo, ISubstrateBalance, IToken, ITokenPropertyPermission, ITransactionResult, IUniqueHelperLog, TApiAllowedListeners, TEthereumAccount, TSigner, TSubstrateAccount, TUniqueNetworks} from './types';131314export const crossAccountIdFromLower = (lowerAddress: ICrossAccountIdLower): ICrossAccountId => {14export const crossAccountIdFromLower = (lowerAddress: ICrossAccountIdLower): ICrossAccountId => {15 const address = {} as ICrossAccountId;15 const address = {} as ICrossAccountId;149 return {success, tokens};149 return {success, tokens};150 }150 }151151152 static findCollectionInEvents(events: {event: IChainEvent}[], collectionId: number, expectedSection: string, expectedMethod: string) {152 static findCollectionInEvents(events: {event: IEvent}[], collectionId: number, expectedSection: string, expectedMethod: string) {153 let eventId = null;153 let eventId = null;154 events.forEach(({event: {data, method, section}}) => {154 events.forEach(({event: {data, method, section}}) => {155 if ((section === expectedSection) && (method === expectedMethod)) {155 if ((section === expectedSection) && (method === expectedMethod)) {163 return eventId === collectionId;163 return eventId === collectionId;164 }164 }165165166 static isTokenTransferSuccess(events: {event: IChainEvent}[], collectionId: number, tokenId: number, fromAddressObj: ICrossAccountId, toAddressObj: ICrossAccountId, amount=1n) {166 static isTokenTransferSuccess(events: {event: IEvent}[], collectionId: number, tokenId: number, fromAddressObj: ICrossAccountId, toAddressObj: ICrossAccountId, amount=1n) {167 const normalizeAddress = (address: string | ICrossAccountId) => {167 const normalizeAddress = (address: string | ICrossAccountId) => {168 if(typeof address === 'string') return address;168 if(typeof address === 'string') return address;169 const obj = {} as any;169 const obj = {} as any;195 }195 }196}196}197197198class UniqueEventHelper {199 private static extractIndex(index: any): [number, number] | string {200 if(index.toRawType() === '[u8;2]') return [index[0], index[1]];201 return index.toJSON();202 }198203204 private static extractSub(data: any, subTypes: any): {[key: string]: any} {205 let obj: any = {};206 let index = 0;207208 if (data.entries) {209 for(const [key, value] of data.entries()) {210 obj[key] = this.extractData(value, subTypes[index]);211 index++;212 }213 } else obj = data.toJSON();214215 return obj;216 }217 218 private static extractData(data: any, type: any): any {219 if (['u16', 'u32'].indexOf(type.type) > -1) return data.toNumber();220 if (['u64', 'u128', 'u256'].indexOf(type.type) > -1) return data.toBigInt();221 if(type.hasOwnProperty('sub')) return this.extractSub(data, type.sub);222 return data.toHuman();223 }224225 public static extractEvents(records: ITransactionResult): IEvent[] {226 const parsedEvents: IEvent[] = [];227228 records.result.events.forEach((record) => {229 const {event, phase} = record;230 const types = (event as any).typeDef;231232 const eventData: IEvent = {233 section: event.section.toString(),234 method: event.method.toString(),235 index: this.extractIndex(event.index),236 data: [],237 phase: phase.toJSON(),238 };239240 event.data.forEach((val: any, index: number) => {241 eventData.data.push(this.extractData(val, types[index]));242 });243244 parsedEvents.push(eventData);245 });246247 return parsedEvents;248 }249}250199class ChainHelperBase {251class ChainHelperBase {200 transactionStatus = UniqueUtil.transactionStatus;252 transactionStatus = UniqueUtil.transactionStatus;201 chainLogType = UniqueUtil.chainLogType;253 chainLogType = UniqueUtil.chainLogType;202 util: typeof UniqueUtil;254 util: typeof UniqueUtil;255 eventHelper: typeof UniqueEventHelper;203 logger: ILogger;256 logger: ILogger;204 api: ApiPromise | null;257 api: ApiPromise | null;205 forcedNetwork: TUniqueNetworks | null;258 forcedNetwork: TUniqueNetworks | null;208261209 constructor(logger?: ILogger) {262 constructor(logger?: ILogger) {210 this.util = UniqueUtil;263 this.util = UniqueUtil;264 this.eventHelper = UniqueEventHelper;211 if (typeof logger == 'undefined') logger = this.util.getDefaultLogger();265 if (typeof logger == 'undefined') logger = this.util.getDefaultLogger();212 this.logger = logger;266 this.logger = logger;213 this.api = null;267 this.api = null;290 return {api, network};344 return {api, network};291 }345 }292346293 getTransactionStatus(data: {events: {event: IChainEvent}[], status: any}) {347 getTransactionStatus(data: {events: {event: IEvent}[], status: any}) {294 const {events, status} = data;348 const {events, status} = data;295 if (status.isReady) {349 if (status.isReady) {296 return this.transactionStatus.NOT_READY;350 return this.transactionStatus.NOT_READY;299 return this.transactionStatus.NOT_READY;353 return this.transactionStatus.NOT_READY;300 }354 }301 if (status.isInBlock || status.isFinalized) {355 if (status.isInBlock || status.isFinalized) {302 const errors = events.filter(e => e.event.data.method === 'ExtrinsicFailed');356 const errors = events.filter(e => e.event.method === 'ExtrinsicFailed');303 if (errors.length > 0) {357 if (errors.length > 0) {304 return this.transactionStatus.FAIL;358 return this.transactionStatus.FAIL;305 }359 }306 if (events.filter(e => e.event.data.method === 'ExtrinsicSuccess').length > 0) {360 if (events.filter(e => e.event.method === 'ExtrinsicSuccess').length > 0) {307 return this.transactionStatus.SUCCESS;361 return this.transactionStatus.SUCCESS;308 }362 }309 }363 }310364311 return this.transactionStatus.FAIL;365 return this.transactionStatus.FAIL;312 }366 }313367314 signTransaction(sender: TSigner, transaction: any, label = 'transaction', options: any = null) {368 signTransaction(sender: TSigner, transaction: any, options: Partial<SignerOptions> | null = null, label = 'transaction') {315 const sign = (callback: any) => {369 const sign = (callback: any) => {316 if(options !== null) return transaction.signAndSend(sender, options, callback);370 if(options !== null) return transaction.signAndSend(sender, options, callback);317 return transaction.signAndSend(sender, callback);371 return transaction.signAndSend(sender, callback);332 if (result.hasOwnProperty('dispatchError')) {386 if (result.hasOwnProperty('dispatchError')) {333 const dispatchError = result['dispatchError'];387 const dispatchError = result['dispatchError'];334388335 if (dispatchError && dispatchError.isModule) {389 if (dispatchError) {390 if (dispatchError.isModule) {336 const modErr = dispatchError.asModule;391 const modErr = dispatchError.asModule;337 const errorMeta = dispatchError.registry.findMetaError(modErr);392 const errorMeta = dispatchError.registry.findMetaError(modErr);338393339 moduleError = `${errorMeta.section}.${errorMeta.name}`;394 moduleError = `${errorMeta.section}.${errorMeta.name}`;340 }395 } else {341 else {396 moduleError = dispatchError.toHuman();397 }398 } else {342 this.logger.log(result, this.logger.level.ERROR);399 this.logger.log(result, this.logger.level.ERROR);343 }400 }344 }401 }364 return call(...params);421 return call(...params);365 }422 }366423367 async executeExtrinsic(sender: TSigner, extrinsic: string, params: any[], expectSuccess=false/*, failureMessage='expected success'*/) {424 async executeExtrinsic(sender: TSigner, extrinsic: string, params: any[], expectSuccess=true, options: Partial<SignerOptions>|null = null/*, failureMessage='expected success'*/) {368 if(this.api === null) throw Error('API not initialized');425 if(this.api === null) throw Error('API not initialized');369 if(!extrinsic.startsWith('api.tx.')) throw Error(`${extrinsic} is not transaction`);426 if(!extrinsic.startsWith('api.tx.')) throw Error(`${extrinsic} is not transaction`);370427371 const startTime = (new Date()).getTime();428 const startTime = (new Date()).getTime();372 let result: ITransactionResult;429 let result: ITransactionResult;373 let events = [];430 let events: IEvent[] = [];374 try {431 try {375 result = await this.signTransaction(sender, this.constructApiCall(extrinsic, params), extrinsic) as ITransactionResult;432 result = await this.signTransaction(sender, this.constructApiCall(extrinsic, params), options, extrinsic) as ITransactionResult;376 events = result.result.events.map((x: any) => x.toHuman());433 events = this.eventHelper.extractEvents(result);377 }434 }378 catch(e) {435 catch(e) {379 if(!(e as object).hasOwnProperty('status')) throw e;436 if(!(e as object).hasOwnProperty('status')) throw e;2029 return 1;2086 return 1;2030 }2087 }203120882089 /**2090 * Get total staked amount for address2091 * @param address substrate or ethereum address2092 * @returns total staked amount2093 */2032 async getTotalStaked(address?: ICrossAccountId): Promise<bigint> {2094 async getTotalStaked(address?: ICrossAccountId): Promise<bigint> {2033 if (address) return (await this.helper.callRpc('api.rpc.appPromotion.totalStaked', [address])).toBigInt();2095 if (address) return (await this.helper.callRpc('api.rpc.appPromotion.totalStaked', [address])).toBigInt();2034 return (await this.helper.callRpc('api.rpc.appPromotion.totalStaked')).toBigInt();2096 return (await this.helper.callRpc('api.rpc.appPromotion.totalStaked')).toBigInt();2035 }2097 }203620982037 async getTotalStakedPerBlock(address: ICrossAccountId): Promise<bigint[][]> {2099 /**2100 * Get total staked per block2101 * @param address substrate or ethereum address2102 * @returns array of stakes. `block` – the number of the block in which the stake was made. `amount` - the number of tokens staked in the block2103 */2104 async getTotalStakedPerBlock(address: ICrossAccountId): Promise<IStakingInfo[]> {2038 return (await this.helper.callRpc('api.rpc.appPromotion.totalStakedPerBlock', [address])).map(([block, amount]: any[]) => [block.toBigInt(), amount.toBigInt()]);2105 const rawTotalStakerdPerBlock = await this.helper.callRpc('api.rpc.appPromotion.totalStakedPerBlock', [address]);2106 return rawTotalStakerdPerBlock.map(([block, amount]: any[]) => {2107 return { 2108 block: block.toBigInt(),2109 amount: amount.toBigInt(),2110 };2111 });2039 }2112 }204021132114 /**2115 * Get total pending unstake amount for address2116 * @param address substrate or ethereum address2117 * @returns total pending unstake amount2118 */2041 async getPendingUnstake(address: ICrossAccountId): Promise<bigint> {2119 async getPendingUnstake(address: ICrossAccountId): Promise<bigint> {2042 return (await this.helper.callRpc('api.rpc.appPromotion.pendingUnstake', [address])).toBigInt();2120 return (await this.helper.callRpc('api.rpc.appPromotion.pendingUnstake', [address])).toBigInt();2043 }2121 }204421222045 async getPendingUnstakePerBlock(address: ICrossAccountId): Promise<bigint[][]> {2123 /**2124 * Get pending unstake amount per block for address2125 * @param address substrate or ethereum address2126 * @returns array of pending stakes. `block` – the number of the block in which the unstake was made. `amount` - the number of tokens unstaked in the block2127 */2128 async getPendingUnstakePerBlock(address: ICrossAccountId): Promise<IStakingInfo[]> {2046 return (await this.helper.callRpc('api.rpc.appPromotion.pendingUnstakePerBlock', [address])).map(([block, amount]: any[]) => [block.toBigInt(), amount.toBigInt()]);2129 const rawUnstakedPerBlock = await this.helper.callRpc('api.rpc.appPromotion.pendingUnstakePerBlock', [address]);2130 const result = rawUnstakedPerBlock.map(([block, amount]: any[]) => {2131 return {2132 block: block.toBigInt(),2133 amount: amount.toBigInt(),2134 };2135 });2136 return result;2047 }2137 }2048}2138}20492139tests/src/xcm/xcmOpal.test.tsdiffbeforeafterbothno changes
tests/src/xcm/xcmQuartz.test.tsdiffbeforeafterbothno changes
tests/src/xcm/xcmUnique.test.tsdiffbeforeafterbothno changes
tests/src/xcmTransfer.test.tsdiffbeforeafterboth78 let balanceOnKaruraBefore: bigint;78 let balanceOnKaruraBefore: bigint;797980 await usingApi(async (api) => {80 await usingApi(async (api) => {81 const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAsset: 0})).toJSON() as any;81 const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAssetId: 0})).toJSON() as any;82 balanceOnKaruraBefore = free;82 balanceOnKaruraBefore = free;83 }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});83 }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});8484136 await usingApi(async (api) => {136 await usingApi(async (api) => {137 // todo do something about instant sealing, where there might not be any new blocks137 // todo do something about instant sealing, where there might not be any new blocks138 await waitNewBlocks(api, 3);138 await waitNewBlocks(api, 3);139 const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAsset: 0})).toJSON() as any;139 const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAssetId: 0})).toJSON() as any;140 expect(free > balanceOnKaruraBefore).to.be.true;140 expect(free > balanceOnKaruraBefore).to.be.true;141 }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});141 }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});142 });142 });165 };165 };166166167 const id = {167 const id = {168 ForeignAsset: 0,168 ForeignAssetId: 0,169 };169 };170170171 const amount = TRANSFER_AMOUNT;171 const amount = TRANSFER_AMOUNT;