difftreelog
Merge remote-tracking branch 'origin/feature/multi-assets-redone' into XCM-CI-RUN-TESTS
in: master
51 files changed
.docker/Dockerfile-testnetdiffbeforeafterboth--- /dev/null
+++ b/.docker/Dockerfile-testnet
@@ -0,0 +1,96 @@
+# ===== Rust builder =====
+FROM ubuntu:20.04 as rust-builder
+LABEL maintainer="Unique.Network"
+
+ARG RUST_TOOLCHAIN=
+
+ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
+ENV CARGO_HOME="/cargo-home"
+ENV PATH="/cargo-home/bin:$PATH"
+ENV TZ=UTC
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+RUN apt-get update && \
+ apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev && \
+ apt-get clean && \
+ rm -r /var/lib/apt/lists/*
+
+RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
+
+RUN rustup toolchain uninstall $(rustup toolchain list) && \
+ rustup toolchain install $RUST_TOOLCHAIN && \
+ rustup default $RUST_TOOLCHAIN && \
+ rustup target list --installed && \
+ rustup show
+RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
+
+RUN mkdir /unique_parachain
+WORKDIR /unique_parachain
+
+
+# ===== BUILD ======
+FROM rust-builder as builder-unique
+
+ARG PROFILE=release
+ARG FEATURE=
+ARG BRANCH=
+
+
+WORKDIR /unique_parachain
+
+RUN git clone -b $BRANCH https://github.com/UniqueNetwork/unique-chain.git && \
+ cd unique-chain && \
+ cargo build --features=$FEATURE --$PROFILE
+
+# ===== BUILD POLKADOT =====
+FROM rust-builder as builder-polkadot
+
+ARG POLKADOT_BUILD_BRANCH=
+ENV POLKADOT_BUILD_BRANCH $POLKADOT_BUILD_BRANCH
+
+
+WORKDIR /unique_parachain
+
+RUN git clone -b $POLKADOT_BUILD_BRANCH --depth 1 https://github.com/paritytech/polkadot.git && \
+ cd polkadot && \
+ cargo build --release
+
+# ===== RUN ======
+
+FROM ubuntu:20.04
+
+ARG POLKADOT_LAUNCH_BRANCH=
+ENV POLKADOT_LAUNCH_BRANCH $POLKADOT_LAUNCH_BRANCH
+
+RUN apt-get -y update && \
+ apt-get -y install curl git && \
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
+ export NVM_DIR="$HOME/.nvm" && \
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+ nvm install v16.16.0 && \
+ nvm use v16.16.0
+
+RUN git clone https://github.com/uniquenetwork/polkadot-launch -b $POLKADOT_LAUNCH_BRANCH
+
+RUN export NVM_DIR="$HOME/.nvm" && \
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+ cd /polkadot-launch && \
+ npm install --global yarn && \
+ yarn install
+
+COPY --from=builder-unique /unique_parachain/unique-chain/target/release/unique-collator /unique-chain/target/release/
+COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
+
+EXPOSE 9844
+EXPOSE 9944
+EXPOSE 9933
+EXPOSE 9833
+EXPOSE 40333
+EXPOSE 30333
+
+CMD export NVM_DIR="$HOME/.nvm" && \
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+ cd /polkadot-launch && \
+ yarn start launch-config.json
+
+
.docker/Dockerfile-xcmdiffbeforeafterboth--- /dev/null
+++ b/.docker/Dockerfile-xcm
@@ -0,0 +1,146 @@
+# ===== Rust builder =====
+FROM ubuntu:20.04 as rust-builder
+LABEL maintainer="Unique.Network"
+
+ARG RUST_TOOLCHAIN=
+
+ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
+ENV CARGO_HOME="/cargo-home"
+ENV PATH="/cargo-home/bin:$PATH"
+ENV TZ=UTC
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+RUN apt-get update && \
+ apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev && \
+ apt-get clean && \
+ rm -r /var/lib/apt/lists/*
+
+RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
+
+RUN rustup toolchain uninstall $(rustup toolchain list) && \
+ rustup toolchain install $RUST_TOOLCHAIN && \
+ rustup default $RUST_TOOLCHAIN && \
+ rustup target list --installed && \
+ rustup show
+RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
+
+RUN mkdir /unique_parachain
+WORKDIR /unique_parachain
+
+
+# ===== BUILD ======
+FROM rust-builder as builder-unique
+
+ARG PROFILE=release
+ARG FEATURE=
+ARG BRANCH=
+
+
+WORKDIR /unique_parachain
+
+RUN git clone -b $BRANCH https://github.com/UniqueNetwork/unique-chain.git && \
+ cd unique-chain && \
+ cargo build --features=$FEATURE --$PROFILE
+
+# ===== BUILD POLKADOT =====
+FROM rust-builder as builder-polkadot
+
+ARG POLKADOT_BUILD_BRANCH=
+ENV POLKADOT_BUILD_BRANCH $POLKADOT_BUILD_BRANCH
+
+
+WORKDIR /unique_parachain
+
+RUN git clone -b $POLKADOT_BUILD_BRANCH --depth 1 https://github.com/paritytech/polkadot.git && \
+ cd polkadot && \
+ cargo build --release
+
+# ===== BUILD ACALA =====
+FROM rust-builder as builder-acala
+
+ARG ACALA_BUILD_BRANCH=
+ENV ACALA_BUILD_BRANCH $ACALA_BUILD_BRANCH
+
+
+WORKDIR /unique_parachain
+
+RUN git clone -b $ACALA_BUILD_BRANCH --depth 1 https://github.com/AcalaNetwork/Acala.git && \
+ cd Acala && \
+ make init && \
+ make build-release
+
+# ===== BUILD MOONBEAM =====
+FROM rust-builder as builder-moonbeam
+
+ARG MOONBEAM_BUILD_BRANCH=
+ENV MOONBEAM_BUILD_BRANCH $MOONBEAM_BUILD_BRANCH
+
+
+WORKDIR /unique_parachain
+
+RUN git clone -b $MOONBEAM_BUILD_BRANCH --depth 1 https://github.com/PureStake/moonbeam.git && \
+ cd moonbeam && \
+ cargo build --release
+
+# ===== BUILD CUMULUS =====
+FROM rust-builder as builder-cumulus
+
+ARG CUMULUS_BUILD_BRANCH=
+ENV CUMULUS_BUILD_BRANCH $CUMULUS_BUILD_BRANCH
+
+
+WORKDIR /unique_parachain
+
+RUN git clone -b $CUMULUS_BUILD_BRANCH --depth 1 https://github.com/paritytech/cumulus.git && \
+ cd cumulus && \
+ cargo build --release
+
+# ===== BUILD CHAINQL =====
+FROM rust-builder as builder-chainql
+
+RUN mkdir chainql
+WORKDIR /chainql
+
+RUN git clone -b v0.1.0 --depth 1 https://github.com/CertainLach/chainql.git . && \
+ cargo build --release
+
+# ===== RUN ======
+
+FROM ubuntu:20.04
+
+ARG POLKADOT_LAUNCH_BRANCH=
+ENV POLKADOT_LAUNCH_BRANCH $POLKADOT_LAUNCH_BRANCH
+
+RUN apt-get -y update && \
+ apt-get -y install curl git jsonnet && \
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
+ export NVM_DIR="$HOME/.nvm" && \
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+ nvm install v16.16.0 && \
+ nvm use v16.16.0
+
+RUN git clone https://github.com/uniquenetwork/polkadot-launch -b $POLKADOT_LAUNCH_BRANCH
+
+RUN export NVM_DIR="$HOME/.nvm" && \
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+ cd /polkadot-launch && \
+ npm install --global yarn && \
+ yarn install
+
+COPY --from=builder-unique /unique_parachain/unique-chain/target/release/unique-collator /unique-chain/target/release/
+COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
+COPY --from=builder-moonbeam /unique_parachain/moonbeam/target/release/moonbeam /moonbeam/target/release/
+COPY --from=builder-cumulus /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus
+COPY --from=builder-acala /unique_parachain/Acala/target/production/acala /acala/target/release/
+COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/
+
+EXPOSE 9844
+EXPOSE 9944
+EXPOSE 9946
+EXPOSE 9947
+EXPOSE 9948
+
+CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+ cd /polkadot-launch && \
+ yarn start launch-config.json
.docker/Dockerfile-xcm.j2diffbeforeafterboth--- a/.docker/Dockerfile-xcm.j2
+++ b/.docker/Dockerfile-xcm.j2
@@ -82,4 +82,3 @@
cd /polkadot-launch && \
yarn start launch-config-xcm-{{ NETWORK }}.json
-
.docker/docker-compose-testnet.ymldiffbeforeafterboth--- /dev/null
+++ b/.docker/docker-compose-testnet.yml
@@ -0,0 +1,17 @@
+version: "3.5"
+
+services:
+ xcm_nodes:
+ build:
+ context: ../
+ dockerfile: .docker/Dockerfile-testnet
+ expose:
+ - 9844
+ - 9944
+ ports:
+ - 127.0.0.1:9844:9844
+ - 127.0.0.1:9944:9944
+ logging:
+ options:
+ max-size: "1m"
+ max-file: "3"
.docker/docker-compose-xcm.ymldiffbeforeafterboth--- /dev/null
+++ b/.docker/docker-compose-xcm.yml
@@ -0,0 +1,23 @@
+version: "3.5"
+
+services:
+ xcm_nodes:
+ build:
+ context: ../
+ dockerfile: .docker/Dockerfile-xcm
+ expose:
+ - 9844
+ - 9944
+ - 9946
+ - 9947
+ - 9948
+ ports:
+ - 127.0.0.1:9844:9844
+ - 127.0.0.1:9944:9944
+ - 127.0.0.1:9946:9946
+ - 127.0.0.1:9947:9947
+ - 127.0.0.1:9948:9948
+ logging:
+ options:
+ max-size: "1m"
+ max-file: "3"
.docker/docker-compose.tmp-testnet.j2diffbeforeafterboth--- /dev/null
+++ b/.docker/docker-compose.tmp-testnet.j2
@@ -0,0 +1,18 @@
+version: "3.5"
+
+services:
+ xcm_nodes:
+ build:
+ args:
+ - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}"
+ - "BRANCH={{ BRANCH }}"
+ - "FEATURE={{ FEATURE }}"
+ - "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}"
+ - "POLKADOT_LAUNCH_BRANCH={{ POLKADOT_LAUNCH_BRANCH }}"
+ image: testnet_node_{{ NETWORK }}
+ container_name: testnet_node_{{ NETWORK }}
+ volumes:
+ - type: bind
+ source: ./testnet-config/launch-config-testnet.json
+ target: /polkadot-launch/launch-config.json
+ read_only: true
.docker/docker-compose.tmp-xcm-quartz.ymldiffbeforeafterboth--- /dev/null
+++ b/.docker/docker-compose.tmp-xcm-quartz.yml
@@ -0,0 +1,25 @@
+version: "3.5"
+
+services:
+ xcm_nodes:
+ build:
+ args:
+ - "RUST_TOOLCHAIN=nightly-2022-07-24"
+ - "BRANCH=release-v927020"
+ - "FEATURE=quartz-runtime"
+ - "POLKADOT_BUILD_BRANCH=release-v0.9.27"
+ - "ACALA_BUILD_BRANCH=2.9.0"
+ - "MOONBEAM_BUILD_BRANCH=v0.25.0"
+ - "CUMULUS_BUILD_BRANCH=release-v0.9.230"
+ - "POLKADOT_LAUNCH_BRANCH=feature/rewrite-chain-id-in-spec"
+ image: xcm_nodes_quartz
+ container_name: xcm_nodes_quartz
+ volumes:
+ - type: bind
+ source: ./xcm-config/launch-config-xcm-quartz.json
+ target: /polkadot-launch/launch-config.json
+ read_only: true
+ - type: bind
+ source: ./xcm-config/5validators.jsonnet
+ target: /polkadot-launch/5validators.jsonnet
+ read_only: true
.docker/docker-compose.tmp-xcm-unique.ymldiffbeforeafterboth--- /dev/null
+++ b/.docker/docker-compose.tmp-xcm-unique.yml
@@ -0,0 +1,27 @@
+version: "3.5"
+
+services:
+ xcm_nodes:
+ build:
+ args:
+ - "RUST_TOOLCHAIN=nightly-2022-07-24"
+ - "BRANCH=release-v927020"
+ - "REPO_URL=https://github.com/UniqueNetwork/unique-chain.git"
+ - "FEATURE=unique-runtime"
+ - "POLKADOT_BUILD_BRANCH=release-v0.9.27"
+ - "ACALA_BUILD_BRANCH=2.9.0"
+ - "MOONBEAM_BUILD_BRANCH=v0.25.0"
+ - "CUMULUS_BUILD_BRANCH=release-v0.9.230"
+ - "POLKADOT_LAUNCH_BRANCH=feature/rewrite-chain-id-in-spec"
+ image: xcm_nodes_unique
+ container_name: xcm_nodes_unique
+ volumes:
+ - type: bind
+ source: ./xcm-config/launch-config-xcm-unique.json
+ target: /polkadot-launch/launch-config.json
+ read_only: true
+ - type: bind
+ source: ./xcm-config/5validators.jsonnet
+ target: /polkadot-launch/5validators.jsonnet
+ read_only: true
+
.docker/docker-compose.tmp-xcm.j2diffbeforeafterboth--- /dev/null
+++ b/.docker/docker-compose.tmp-xcm.j2
@@ -0,0 +1,21 @@
+version: "3.5"
+
+services:
+ xcm_nodes:
+ build:
+ args:
+ - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}"
+ - "BRANCH={{ BRANCH }}"
+ - "FEATURE={{ FEATURE }}"
+ - "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}"
+ - "ACALA_BUILD_BRANCH={{ ACALA_BUILD_BRANCH }}"
+ - "MOONBEAM_BUILD_BRANCH={{ MOONBEAM_BUILD_BRANCH }}"
+ - "CUMULUS_BUILD_BRANCH={{ CUMULUS_BUILD_BRANCH }}"
+ - "POLKADOT_LAUNCH_BRANCH={{ POLKADOT_LAUNCH_BRANCH }}"
+ image: xcm_nodes_{{ NETWORK }}
+ container_name: xcm_nodes_{{ NETWORK }}
+ volumes:
+ - type: bind
+ source: ./xcm-config/launch-config-xcm-{{ NETWORK }}.json
+ target: /polkadot-launch/launch-config.json
+ read_only: true
.github/workflows/xcm-testnet.ymldiffbeforeafterboth--- /dev/null
+++ b/.github/workflows/xcm-testnet.yml
@@ -0,0 +1,141 @@
+name: xcm testnet
+
+# Controls when the action will run.
+on:
+ # Triggers the workflow on push or pull request events but only for the master branch
+ pull_request:
+ branches:
+ - master
+ types:
+ - opened
+ - reopened
+ - synchronize #commit(s) pushed to the pull request
+ - ready_for_review
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+#Define Workflow variables
+env:
+ REPO_URL: ${{ github.server_url }}/${{ github.repository }}
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.head_ref }}
+ cancel-in-progress: true
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+
+ prepare-execution-marix:
+
+ name: Prepare execution matrix
+
+ runs-on: XL2
+ outputs:
+ matrix: ${{ steps.create_matrix.outputs.matrix }}
+
+ steps:
+
+ - name: Clean Workspace
+ uses: AutoModality/action-clean@v1.1.0
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }} #Checking out head commit
+
+ - name: Read .env file
+ uses: xom9ikk/dotenv@v1.0.2
+
+ - name: Create Execution matrix
+ uses: fabiocaccamo/create-matrix-action@v2
+ id: create_matrix
+ with:
+ matrix: |
+ network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}
+ network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}
+ network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}
+
+ xcm-build:
+ needs: prepare-execution-marix
+ # The type of runner that the job will run on
+ runs-on: [XL2]
+
+ timeout-minutes: 600
+
+ name: ${{ matrix.network }}
+
+ continue-on-error: true #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false.
+
+ strategy:
+ matrix:
+ include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}
+
+
+ steps:
+ #- name: Skip if pull request is in Draft
+ # `if: github.event.pull_request.draft == true` should be kept here, at
+ # the step level, rather than at the job level. The latter is not
+ # recommended because when the PR is moved from "Draft" to "Ready to
+ # review" the workflow will immediately be passing (since it was skipped),
+ # even though it hasn't actually ran, since it takes a few seconds for
+ # the workflow to start. This is also disclosed in:
+ # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/17
+ # That scenario would open an opportunity for the check to be bypassed:
+ # 1. Get your PR approved
+ # 2. Move it to Draft
+ # 3. Push whatever commits you want
+ # 4. Move it to "Ready for review"; now the workflow is passing (it was
+ # skipped) and "Check reviews" is also passing (it won't be updated
+ # until the workflow is finished)
+ # if: github.event.pull_request.draft == true
+ #run: exit 1
+
+ - name: Clean Workspace
+ uses: AutoModality/action-clean@v1.1.0
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }} #Checking out head commit
+
+ - name: Read .env file
+ uses: xom9ikk/dotenv@v1.0.2
+
+ - name: Generate ENV related extend Dockerfile file
+ uses: cuchi/jinja2-action@v1.2.0
+ with:
+ template: .docker/Dockerfile-xcm.j2
+ output_file: .docker/Dockerfile-xcm.${{ matrix.network }}.yml
+ variables: |
+ RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+ NETWORK=${{ matrix.network }}
+ POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
+ POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}
+ FEATURE=${{ matrix.features }}
+ RUNTIME=${{ matrix.runtime }}
+ BRANCH=${{ github.head_ref }}
+ ACALA_BUILD_BRANCH=${{ env.ACALA_BUILD_BRANCH }}
+ MOONBEAM_BUILD_BRANCH=${{ env.MOONBEAM_BUILD_BRANCH }}
+ CUMULUS_BUILD_BRANCH=${{ env.CUMULUS_BUILD_BRANCH }}
+
+ - name: Show build Dockerfile
+ run: cat .docker/Dockerfile-xcm.${{ matrix.network }}.yml
+
+ - name: Show launch-config-xcm-${{ matrix.network }} configuration
+ run: cat .docker/xcm-config/launch-config-xcm-${{ matrix.network }}.json
+
+ - name: Build the stack
+ run: cd .docker/ && docker build --file ./Dockerfile-xcm.${{ matrix.network }}.yml --tag xcm-nodes-${{ matrix.network }} --tag uniquenetwork/xcm-${{ matrix.network }}-testnet-local:nightly-${{ github.sha }} --tag uniquenetwork/xcm-${{ matrix.network }}-testnet-local:latest .
+
+ - name: Log in to Docker Hub
+ uses: docker/login-action@v2.0.0
+ with:
+ username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}
+ password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}
+
+ - name: Push docker version image
+ run: docker push uniquenetwork/xcm-${{ matrix.network }}-testnet-local:nightly-${{ github.sha }}
+
+ - name: Push docker image latest
+ run: docker push uniquenetwork/xcm-${{ matrix.network }}-testnet-local:latest
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5149,7 +5149,10 @@
"frame-try-runtime",
"hex-literal",
"log",
+ "orml-tokens",
+ "orml-traits",
"orml-vesting",
+ "orml-xtokens",
"pallet-aura",
"pallet-balances",
"pallet-base-fee",
@@ -5161,6 +5164,7 @@
"pallet-evm-contract-helpers",
"pallet-evm-migration",
"pallet-evm-transaction-payment",
+ "pallet-foreing-assets",
"pallet-fungible",
"pallet-inflation",
"pallet-nonfungible",
@@ -5266,6 +5270,53 @@
]
[[package]]
+name = "orml-tokens"
+version = "0.4.1-dev"
+source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "orml-traits",
+ "parity-scale-codec 3.1.5",
+ "scale-info",
+ "serde",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "orml-traits"
+version = "0.4.1-dev"
+source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"
+dependencies = [
+ "frame-support",
+ "impl-trait-for-tuples",
+ "num-traits",
+ "orml-utilities",
+ "parity-scale-codec 3.1.5",
+ "scale-info",
+ "serde",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+]
+
+[[package]]
+name = "orml-utilities"
+version = "0.4.1-dev"
+source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"
+dependencies = [
+ "frame-support",
+ "parity-scale-codec 3.1.5",
+ "scale-info",
+ "serde",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
name = "orml-vesting"
version = "0.4.1-dev"
source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"
@@ -5281,6 +5332,41 @@
]
[[package]]
+name = "orml-xcm-support"
+version = "0.4.1-dev"
+source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"
+dependencies = [
+ "frame-support",
+ "orml-traits",
+ "parity-scale-codec 3.1.5",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+ "xcm-executor",
+]
+
+[[package]]
+name = "orml-xtokens"
+version = "0.4.1-dev"
+source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.27#377213f750755cc48e80a3131eaae63b5eda8362"
+dependencies = [
+ "cumulus-primitives-core",
+ "frame-support",
+ "frame-system",
+ "orml-traits",
+ "orml-xcm-support",
+ "pallet-xcm",
+ "parity-scale-codec 3.1.5",
+ "scale-info",
+ "serde",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "xcm",
+ "xcm-executor",
+]
+
+[[package]]
name = "os_str_bytes"
version = "6.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5748,6 +5834,33 @@
]
[[package]]
+name = "pallet-foreing-assets"
+version = "0.1.0"
+dependencies = [
+ "frame-support",
+ "frame-system",
+ "hex",
+ "log",
+ "orml-tokens",
+ "pallet-balances",
+ "pallet-common",
+ "pallet-fungible",
+ "pallet-timestamp",
+ "parity-scale-codec 3.1.5",
+ "scale-info",
+ "serde",
+ "serde_json",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "up-data-structs",
+ "xcm",
+ "xcm-builder",
+ "xcm-executor",
+]
+
+[[package]]
name = "pallet-fungible"
version = "0.1.5"
dependencies = [
@@ -8354,7 +8467,10 @@
"frame-try-runtime",
"hex-literal",
"log",
+ "orml-tokens",
+ "orml-traits",
"orml-vesting",
+ "orml-xtokens",
"pallet-aura",
"pallet-balances",
"pallet-base-fee",
@@ -8366,6 +8482,7 @@
"pallet-evm-contract-helpers",
"pallet-evm-migration",
"pallet-evm-transaction-payment",
+ "pallet-foreing-assets",
"pallet-fungible",
"pallet-inflation",
"pallet-nonfungible",
@@ -12343,7 +12460,10 @@
"frame-try-runtime",
"hex-literal",
"log",
+ "orml-tokens",
+ "orml-traits",
"orml-vesting",
+ "orml-xtokens",
"pallet-aura",
"pallet-balances",
"pallet-base-fee",
@@ -12355,6 +12475,7 @@
"pallet-evm-contract-helpers",
"pallet-evm-migration",
"pallet-evm-transaction-payment",
+ "pallet-foreing-assets",
"pallet-fungible",
"pallet-inflation",
"pallet-nonfungible",
node/cli/src/chain_spec.rsdiffbeforeafterboth--- a/node/cli/src/chain_spec.rs
+++ b/node/cli/src/chain_spec.rs
@@ -65,6 +65,14 @@
Unknown(String),
}
+#[cfg(not(feature = "unique-runtime"))]
+/// PARA_ID for Opal/Quartz
+const PARA_ID: u32 = 2095;
+
+#[cfg(feature = "unique-runtime")]
+/// PARA_ID for Unique
+const PARA_ID: u32 = 2037;
+
pub trait RuntimeIdentification {
fn runtime_id(&self) -> RuntimeId;
}
@@ -167,6 +175,7 @@
.collect(),
},
treasury: Default::default(),
+ tokens: TokensConfig { balances: vec![] },
sudo: SudoConfig {
key: Some($root_key),
},
@@ -235,7 +244,7 @@
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
],
- 1000
+ PARA_ID
)
},
// Bootnodes
@@ -250,7 +259,7 @@
// Extensions
Extensions {
relay_chain: "rococo-dev".into(),
- para_id: 1000,
+ para_id: PARA_ID,
},
)
}
@@ -303,7 +312,7 @@
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
],
- 1000
+ PARA_ID
)
},
// Bootnodes
@@ -318,7 +327,7 @@
// Extensions
Extensions {
relay_chain: "westend-local".into(),
- para_id: 1000,
+ para_id: PARA_ID,
},
)
}
pallets/foreing-assets/Cargo.tomldiffbeforeafterboth--- /dev/null
+++ b/pallets/foreing-assets/Cargo.toml
@@ -0,0 +1,53 @@
+[package]
+name = "pallet-foreing-assets"
+version = "0.1.0"
+license = "GPLv3"
+edition = "2021"
+
+[dependencies]
+log = { version = "0.4.14", default-features = false }
+serde = { version = "1.0.136", optional = true }
+scale-info = { version = "2.0.1", default-features = false, features = ["derive"] }
+codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false }
+sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27", default-features = false }
+sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27", default-features = false }
+frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27", default-features = false }
+frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27", default-features = false }
+up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
+pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27", default-features = false }
+pallet-common = { default-features = false, path = '../common' }
+pallet-fungible = { default-features = false, path = '../fungible' }
+xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27", default-features = false }
+xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27", default-features = false }
+xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27", default-features = false }
+#orml-tokens = { git = 'https://github.com/UniqueNetwork/open-runtime-module-library', branch = 'unique-polkadot-v0.9.24', version = "0.4.1-dev", default-features = false }
+orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.27", version = "0.4.1-dev", default-features = false }
+#git = "https://github.com/open-web3-stack/open-runtime-module-library"
+#branch = "polkadot-v0.9.27"
+
+[dev-dependencies]
+serde_json = "1.0.68"
+hex = { version = "0.4" }
+sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }
+sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }
+pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }
+pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }
+
+[features]
+default = ["std"]
+std = [
+ "serde",
+ "log/std",
+ "codec/std",
+ "scale-info/std",
+ "sp-runtime/std",
+ "sp-std/std",
+ "frame-support/std",
+ "frame-system/std",
+ "up-data-structs/std",
+ "pallet-common/std",
+ "pallet-balances/std",
+ "pallet-fungible/std",
+ "orml-tokens/std"
+]
+try-runtime = ["frame-support/try-runtime"]
pallets/foreing-assets/src/impl_fungibles.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/foreing-assets/src/impl_fungibles.rs
@@ -0,0 +1,621 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+//! Implementations for fungibles trait.
+
+use super::*;
+use frame_system::Config as SystemConfig;
+
+use frame_support::traits::tokens::{DepositConsequence, WithdrawConsequence};
+use pallet_common::CollectionHandle;
+use pallet_fungible::FungibleHandle;
+use pallet_common::CommonCollectionOperations;
+use up_data_structs::budget::Unlimited;
+use sp_runtime::traits::{CheckedAdd, CheckedSub};
+
+impl<T: Config> fungibles::Inspect<<T as SystemConfig>::AccountId> for Pallet<T>
+where
+ T: orml_tokens::Config<CurrencyId = AssetIds>,
+{
+ type AssetId = AssetIds;
+ type Balance = BalanceOf<T>;
+
+ fn total_issuance(asset: Self::AssetId) -> Self::Balance {
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible total_issuance");
+
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let parent_amount = <pallet_balances::Pallet<T> as fungible::Inspect<
+ T::AccountId,
+ >>::total_issuance();
+
+ let value: u128 = match parent_amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ let ti: Self::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ ti
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let amount =
+ <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::total_issuance(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ );
+
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ let ti: Self::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ ti
+ }
+ AssetIds::ForeignAssetId(fid) => {
+ let target_collection_id = match <AssetBinding<T>>::get(fid) {
+ Some(v) => v,
+ None => return Zero::zero(),
+ };
+ let collection_handle = match <CollectionHandle<T>>::try_get(target_collection_id) {
+ Ok(v) => v,
+ Err(_) => return Zero::zero(),
+ };
+ let collection = FungibleHandle::cast(collection_handle);
+ Self::Balance::try_from(collection.total_supply()).unwrap_or(Zero::zero())
+ }
+ }
+ }
+
+ fn minimum_balance(asset: Self::AssetId) -> Self::Balance {
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible minimum_balance");
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let parent_amount = <pallet_balances::Pallet<T> as fungible::Inspect<
+ T::AccountId,
+ >>::minimum_balance();
+
+ let value: u128 = match parent_amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ let ti: Self::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ ti
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let amount =
+ <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::minimum_balance(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ );
+
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ let ti: Self::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ ti
+ }
+ AssetIds::ForeignAssetId(fid) => {
+ AssetMetadatas::<T>::get(AssetIds::ForeignAssetId(fid))
+ .map(|x| x.minimal_balance)
+ .unwrap_or_else(Zero::zero)
+ }
+ }
+ }
+
+ fn balance(asset: Self::AssetId, who: &<T as SystemConfig>::AccountId) -> Self::Balance {
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible balance");
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let parent_amount =
+ <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::balance(who);
+
+ let value: u128 = match parent_amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ let ti: Self::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ ti
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let amount = <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::balance(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ who,
+ );
+
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ let ti: Self::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ ti
+ }
+ AssetIds::ForeignAssetId(fid) => {
+ let target_collection_id = match <AssetBinding<T>>::get(fid) {
+ Some(v) => v,
+ None => return Zero::zero(),
+ };
+ let collection_handle = match <CollectionHandle<T>>::try_get(target_collection_id) {
+ Ok(v) => v,
+ Err(_) => return Zero::zero(),
+ };
+ let collection = FungibleHandle::cast(collection_handle);
+ Self::Balance::try_from(
+ collection.balance(T::CrossAccountId::from_sub(who.clone()), TokenId(0)),
+ )
+ .unwrap_or(Zero::zero())
+ }
+ }
+ }
+
+ fn reducible_balance(
+ asset: Self::AssetId,
+ who: &<T as SystemConfig>::AccountId,
+ keep_alive: bool,
+ ) -> Self::Balance {
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible reducible_balance");
+
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let parent_amount = <pallet_balances::Pallet<T> as fungible::Inspect<
+ T::AccountId,
+ >>::reducible_balance(who, keep_alive);
+
+ let value: u128 = match parent_amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ let ti: Self::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ ti
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let amount =
+ <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::reducible_balance(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ who,
+ keep_alive,
+ );
+
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ let ti: Self::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => return Zero::zero(),
+ };
+
+ ti
+ }
+ _ => Self::balance(asset, who),
+ }
+ }
+
+ fn can_deposit(
+ asset: Self::AssetId,
+ who: &<T as SystemConfig>::AccountId,
+ amount: Self::Balance,
+ mint: bool,
+ ) -> DepositConsequence {
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible can_deposit");
+
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return DepositConsequence::CannotCreate,
+ };
+
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let this_amount: <T as pallet_balances::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return DepositConsequence::CannotCreate;
+ }
+ };
+ <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::can_deposit(
+ who,
+ this_amount,
+ mint,
+ )
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let parent_amount: <T as orml_tokens::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return DepositConsequence::CannotCreate;
+ }
+ };
+ <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::can_deposit(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ who,
+ parent_amount,
+ mint,
+ )
+ }
+ _ => {
+ if amount.is_zero() {
+ return DepositConsequence::Success;
+ }
+
+ let extential_deposit_value = T::ExistentialDeposit::get();
+ let ed_value: u128 = match extential_deposit_value.try_into() {
+ Ok(val) => val,
+ Err(_) => return DepositConsequence::CannotCreate,
+ };
+ let extential_deposit: Self::Balance = match ed_value.try_into() {
+ Ok(val) => val,
+ Err(_) => return DepositConsequence::CannotCreate,
+ };
+
+ let new_total_balance = match Self::balance(asset, who).checked_add(&amount) {
+ Some(x) => x,
+ None => return DepositConsequence::Overflow,
+ };
+
+ if new_total_balance < extential_deposit {
+ return DepositConsequence::BelowMinimum;
+ }
+
+ DepositConsequence::Success
+ }
+ }
+ }
+
+ fn can_withdraw(
+ asset: Self::AssetId,
+ who: &<T as SystemConfig>::AccountId,
+ amount: Self::Balance,
+ ) -> WithdrawConsequence<Self::Balance> {
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible can_withdraw");
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return WithdrawConsequence::UnknownAsset,
+ };
+
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let this_amount: <T as pallet_balances::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return WithdrawConsequence::UnknownAsset;
+ }
+ };
+ match <pallet_balances::Pallet<T> as fungible::Inspect<T::AccountId>>::can_withdraw(
+ who,
+ this_amount,
+ ) {
+ WithdrawConsequence::NoFunds => WithdrawConsequence::NoFunds,
+ WithdrawConsequence::WouldDie => WithdrawConsequence::WouldDie,
+ WithdrawConsequence::UnknownAsset => WithdrawConsequence::UnknownAsset,
+ WithdrawConsequence::Underflow => WithdrawConsequence::Underflow,
+ WithdrawConsequence::Overflow => WithdrawConsequence::Overflow,
+ WithdrawConsequence::Frozen => WithdrawConsequence::Frozen,
+ WithdrawConsequence::Success => WithdrawConsequence::Success,
+ _ => WithdrawConsequence::NoFunds,
+ }
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let parent_amount: <T as orml_tokens::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return WithdrawConsequence::UnknownAsset;
+ }
+ };
+ match <orml_tokens::Pallet<T> as fungibles::Inspect<T::AccountId>>::can_withdraw(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ who,
+ parent_amount,
+ ) {
+ WithdrawConsequence::NoFunds => WithdrawConsequence::NoFunds,
+ WithdrawConsequence::WouldDie => WithdrawConsequence::WouldDie,
+ WithdrawConsequence::UnknownAsset => WithdrawConsequence::UnknownAsset,
+ WithdrawConsequence::Underflow => WithdrawConsequence::Underflow,
+ WithdrawConsequence::Overflow => WithdrawConsequence::Overflow,
+ WithdrawConsequence::Frozen => WithdrawConsequence::Frozen,
+ WithdrawConsequence::Success => WithdrawConsequence::Success,
+ _ => WithdrawConsequence::NoFunds,
+ }
+ }
+ _ => match Self::balance(asset, who).checked_sub(&amount) {
+ Some(_) => WithdrawConsequence::Success,
+ None => WithdrawConsequence::NoFunds,
+ },
+ }
+ }
+}
+
+impl<T: Config> fungibles::Mutate<<T as SystemConfig>::AccountId> for Pallet<T>
+where
+ T: orml_tokens::Config<CurrencyId = AssetIds>,
+{
+ fn mint_into(
+ asset: Self::AssetId,
+ who: &<T as SystemConfig>::AccountId,
+ amount: Self::Balance,
+ ) -> DispatchResult {
+ //Self::do_mint(asset, who, amount, None)
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible mint_into {:?}", asset);
+
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Err(DispatchError::Other("Bad amount to value conversion")),
+ };
+
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let this_amount: <T as pallet_balances::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return Err(DispatchError::Other(
+ "Bad amount to this parachain value conversion",
+ ))
+ }
+ };
+
+ <pallet_balances::Pallet<T> as fungible::Mutate<T::AccountId>>::mint_into(
+ who,
+ this_amount,
+ )
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let parent_amount: <T as orml_tokens::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return Err(DispatchError::Other(
+ "Bad amount to relay chain value conversion",
+ ))
+ }
+ };
+
+ <orml_tokens::Pallet<T> as fungibles::Mutate<T::AccountId>>::mint_into(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ who,
+ parent_amount,
+ )
+ }
+ AssetIds::ForeignAssetId(fid) => {
+ let target_collection_id = match <AssetBinding<T>>::get(fid) {
+ Some(v) => v,
+ None => {
+ return Err(DispatchError::Other(
+ "Associated collection not found for asset",
+ ))
+ }
+ };
+ let collection =
+ FungibleHandle::cast(<CollectionHandle<T>>::try_get(target_collection_id)?);
+ let account = T::CrossAccountId::from_sub(who.clone());
+
+ let amount_data: pallet_fungible::CreateItemData<T> = (account.clone(), value);
+
+ pallet_fungible::Pallet::<T>::create_item_foreign(
+ &collection,
+ &account,
+ amount_data,
+ &Unlimited,
+ )?;
+
+ Ok(())
+ }
+ }
+ }
+
+ fn burn_from(
+ asset: Self::AssetId,
+ who: &<T as SystemConfig>::AccountId,
+ amount: Self::Balance,
+ ) -> Result<Self::Balance, DispatchError> {
+ // let f = DebitFlags { keep_alive: false, best_effort: false };
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible burn_from");
+
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Err(DispatchError::Other("Bad amount to value conversion")),
+ };
+
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let this_amount: <T as pallet_balances::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return Err(DispatchError::Other(
+ "Bad amount to this parachain value conversion",
+ ))
+ }
+ };
+
+ match <pallet_balances::Pallet<T> as fungible::Mutate<T::AccountId>>::burn_from(
+ who,
+ this_amount,
+ ) {
+ Ok(_) => Ok(amount),
+ Err(e) => Err(e),
+ }
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let parent_amount: <T as orml_tokens::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return Err(DispatchError::Other(
+ "Bad amount to relay chain value conversion",
+ ))
+ }
+ };
+
+ match <orml_tokens::Pallet<T> as fungibles::Mutate<T::AccountId>>::burn_from(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ who,
+ parent_amount,
+ ) {
+ Ok(_) => Ok(amount),
+ Err(e) => Err(e),
+ }
+ }
+ AssetIds::ForeignAssetId(fid) => {
+ let target_collection_id = match <AssetBinding<T>>::get(fid) {
+ Some(v) => v,
+ None => {
+ return Err(DispatchError::Other(
+ "Associated collection not found for asset",
+ ))
+ }
+ };
+ let collection =
+ FungibleHandle::cast(<CollectionHandle<T>>::try_get(target_collection_id)?);
+ pallet_fungible::Pallet::<T>::burn_foreign(
+ &collection,
+ &T::CrossAccountId::from_sub(who.clone()),
+ value,
+ )?;
+
+ Ok(amount)
+ }
+ }
+ }
+
+ fn slash(
+ asset: Self::AssetId,
+ who: &<T as SystemConfig>::AccountId,
+ amount: Self::Balance,
+ ) -> Result<Self::Balance, DispatchError> {
+ // let f = DebitFlags { keep_alive: false, best_effort: true };
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible slash");
+ Self::burn_from(asset, who, amount)?;
+ Ok(amount)
+ }
+}
+
+impl<T: Config> fungibles::Transfer<T::AccountId> for Pallet<T>
+where
+ T: orml_tokens::Config<CurrencyId = AssetIds>,
+{
+ fn transfer(
+ asset: Self::AssetId,
+ source: &<T as SystemConfig>::AccountId,
+ dest: &<T as SystemConfig>::AccountId,
+ amount: Self::Balance,
+ keep_alive: bool,
+ ) -> Result<Self::Balance, DispatchError> {
+ // let f = TransferFlags { keep_alive, best_effort: false, burn_dust: false };
+ log::trace!(target: "fassets::impl_foreing_assets", "impl_fungible transfer");
+
+ let value: u128 = match amount.try_into() {
+ Ok(val) => val,
+ Err(_) => return Err(DispatchError::Other("Bad amount to value conversion")),
+ };
+
+ match asset {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => {
+ let this_amount: <T as pallet_balances::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return Err(DispatchError::Other(
+ "Bad amount to this parachain value conversion",
+ ))
+ }
+ };
+
+ match <pallet_balances::Pallet<T> as fungible::Transfer<T::AccountId>>::transfer(
+ source,
+ dest,
+ this_amount,
+ keep_alive,
+ ) {
+ Ok(_) => Ok(amount),
+ Err(_) => Err(DispatchError::Other(
+ "Bad amount to relay chain value conversion",
+ )),
+ }
+ }
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => {
+ let parent_amount: <T as orml_tokens::Config>::Balance = match value.try_into() {
+ Ok(val) => val,
+ Err(_) => {
+ return Err(DispatchError::Other(
+ "Bad amount to relay chain value conversion",
+ ))
+ }
+ };
+
+ match <orml_tokens::Pallet<T> as fungibles::Transfer<T::AccountId>>::transfer(
+ AssetIds::NativeAssetId(NativeCurrency::Parent),
+ source,
+ dest,
+ parent_amount,
+ keep_alive,
+ ) {
+ Ok(_) => Ok(amount),
+ Err(e) => Err(e),
+ }
+ }
+ AssetIds::ForeignAssetId(fid) => {
+ let target_collection_id = match <AssetBinding<T>>::get(fid) {
+ Some(v) => v,
+ None => {
+ return Err(DispatchError::Other(
+ "Associated collection not found for asset",
+ ))
+ }
+ };
+ let collection =
+ FungibleHandle::cast(<CollectionHandle<T>>::try_get(target_collection_id)?);
+
+ pallet_fungible::Pallet::<T>::transfer(
+ &collection,
+ &T::CrossAccountId::from_sub(source.clone()),
+ &T::CrossAccountId::from_sub(dest.clone()),
+ value,
+ &Unlimited,
+ )?;
+
+ Ok(amount)
+ }
+ }
+ }
+}
pallets/foreing-assets/src/lib.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/foreing-assets/src/lib.rs
@@ -0,0 +1,501 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+//! # Foreing assets
+//!
+//! - [`Config`]
+//! - [`Call`]
+//! - [`Pallet`]
+//!
+//! ## Overview
+//!
+//! The foreing assests pallet provides functions for:
+//!
+//! - Local and foreign assets management. The foreign assets can be updated without runtime upgrade.
+//! - Bounds between asset and target collection for cross chain transfer and inner transfers.
+//!
+//! ## Overview
+//!
+//! Under construction
+
+#![cfg_attr(not(feature = "std"), no_std)]
+#![allow(clippy::unused_unit)]
+
+use frame_support::{
+ dispatch::DispatchResult,
+ ensure,
+ pallet_prelude::*,
+ traits::{fungible, fungibles, Currency, EnsureOrigin},
+ transactional, RuntimeDebug,
+};
+use frame_system::pallet_prelude::*;
+use up_data_structs::{CollectionMode};
+use pallet_fungible::{Pallet as PalletFungible};
+use scale_info::{TypeInfo};
+use sp_runtime::{
+ traits::{One, Zero},
+ ArithmeticError,
+};
+use sp_std::{boxed::Box, vec::Vec};
+use up_data_structs::{CollectionId, TokenId, CreateCollectionData};
+
+// NOTE:v1::MultiLocation is used in storages, we would need to do migration if upgrade the
+// MultiLocation in the future.
+use xcm::opaque::latest::{prelude::XcmError, MultiAsset};
+use xcm::{v1::MultiLocation, VersionedMultiLocation};
+use xcm_executor::{traits::WeightTrader, Assets};
+
+use pallet_common::erc::CrossAccountId;
+
+#[cfg(feature = "std")]
+use serde::{Deserialize, Serialize};
+
+// TODO: Move to primitives
+// Id of native currency.
+// 0 - QTZ\UNQ
+// 1 - KSM\DOT
+#[derive(
+ Clone,
+ Copy,
+ Eq,
+ PartialEq,
+ PartialOrd,
+ Ord,
+ MaxEncodedLen,
+ RuntimeDebug,
+ Encode,
+ Decode,
+ TypeInfo,
+)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub enum NativeCurrency {
+ Here = 0,
+ Parent = 1,
+}
+
+#[derive(
+ Clone,
+ Copy,
+ Eq,
+ PartialEq,
+ PartialOrd,
+ Ord,
+ MaxEncodedLen,
+ RuntimeDebug,
+ Encode,
+ Decode,
+ TypeInfo,
+)]
+#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
+pub enum AssetIds {
+ ForeignAssetId(ForeignAssetId),
+ NativeAssetId(NativeCurrency),
+}
+
+pub trait TryAsForeing<T, F> {
+ fn try_as_foreing(asset: T) -> Option<F>;
+}
+
+impl TryAsForeing<AssetIds, ForeignAssetId> for AssetIds {
+ fn try_as_foreing(asset: AssetIds) -> Option<ForeignAssetId> {
+ match asset {
+ AssetIds::ForeignAssetId(id) => Some(id),
+ _ => None,
+ }
+ }
+}
+
+pub type ForeignAssetId = u32;
+pub type CurrencyId = AssetIds;
+
+mod impl_fungibles;
+mod weights;
+
+pub use module::*;
+pub use weights::WeightInfo;
+
+/// Type alias for currency balance.
+pub type BalanceOf<T> =
+ <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;
+
+/// A mapping between ForeignAssetId and AssetMetadata.
+pub trait AssetIdMapping<ForeignAssetId, MultiLocation, AssetMetadata> {
+ /// Returns the AssetMetadata associated with a given ForeignAssetId.
+ fn get_asset_metadata(foreign_asset_id: ForeignAssetId) -> Option<AssetMetadata>;
+ /// Returns the MultiLocation associated with a given ForeignAssetId.
+ fn get_multi_location(foreign_asset_id: ForeignAssetId) -> Option<MultiLocation>;
+ /// Returns the CurrencyId associated with a given MultiLocation.
+ fn get_currency_id(multi_location: MultiLocation) -> Option<CurrencyId>;
+}
+
+pub struct XcmForeignAssetIdMapping<T>(sp_std::marker::PhantomData<T>);
+
+impl<T: Config> AssetIdMapping<ForeignAssetId, MultiLocation, AssetMetadata<BalanceOf<T>>>
+ for XcmForeignAssetIdMapping<T>
+{
+ fn get_asset_metadata(foreign_asset_id: ForeignAssetId) -> Option<AssetMetadata<BalanceOf<T>>> {
+ log::trace!(target: "fassets::asset_metadatas", "call");
+ Pallet::<T>::asset_metadatas(AssetIds::ForeignAssetId(foreign_asset_id))
+ }
+
+ fn get_multi_location(foreign_asset_id: ForeignAssetId) -> Option<MultiLocation> {
+ log::trace!(target: "fassets::get_multi_location", "call");
+ Pallet::<T>::foreign_asset_locations(foreign_asset_id)
+ }
+
+ fn get_currency_id(multi_location: MultiLocation) -> Option<CurrencyId> {
+ log::trace!(target: "fassets::get_currency_id", "call");
+ Some(AssetIds::ForeignAssetId(
+ Pallet::<T>::location_to_currency_ids(multi_location).unwrap_or(0),
+ ))
+ }
+}
+
+#[frame_support::pallet]
+pub mod module {
+ use super::*;
+
+ #[pallet::config]
+ pub trait Config:
+ frame_system::Config
+ + pallet_common::Config
+ + pallet_fungible::Config
+ + orml_tokens::Config
+ + pallet_balances::Config
+ {
+ /// The overarching event type.
+ type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;
+
+ /// Currency type for withdraw and balance storage.
+ type Currency: Currency<Self::AccountId>;
+
+ /// Required origin for registering asset.
+ type RegisterOrigin: EnsureOrigin<Self::Origin>;
+
+ /// Weight information for the extrinsics in this module.
+ type WeightInfo: WeightInfo;
+ }
+
+ #[derive(Clone, Eq, PartialEq, RuntimeDebug, Encode, Decode, TypeInfo)]
+ pub struct AssetMetadata<Balance> {
+ pub name: Vec<u8>,
+ pub symbol: Vec<u8>,
+ pub decimals: u8,
+ pub minimal_balance: Balance,
+ }
+
+ #[pallet::error]
+ pub enum Error<T> {
+ /// The given location could not be used (e.g. because it cannot be expressed in the
+ /// desired version of XCM).
+ BadLocation,
+ /// MultiLocation existed
+ MultiLocationExisted,
+ /// AssetId not exists
+ AssetIdNotExists,
+ /// AssetId exists
+ AssetIdExisted,
+ }
+
+ #[pallet::event]
+ #[pallet::generate_deposit(fn deposit_event)]
+ pub enum Event<T: Config> {
+ /// The foreign asset registered.
+ ForeignAssetRegistered {
+ asset_id: ForeignAssetId,
+ asset_address: MultiLocation,
+ metadata: AssetMetadata<BalanceOf<T>>,
+ },
+ /// The foreign asset updated.
+ ForeignAssetUpdated {
+ asset_id: ForeignAssetId,
+ asset_address: MultiLocation,
+ metadata: AssetMetadata<BalanceOf<T>>,
+ },
+ /// The asset registered.
+ AssetRegistered {
+ asset_id: AssetIds,
+ metadata: AssetMetadata<BalanceOf<T>>,
+ },
+ /// The asset updated.
+ AssetUpdated {
+ asset_id: AssetIds,
+ metadata: AssetMetadata<BalanceOf<T>>,
+ },
+ }
+
+ /// Next available Foreign AssetId ID.
+ ///
+ /// NextForeignAssetId: ForeignAssetId
+ #[pallet::storage]
+ #[pallet::getter(fn next_foreign_asset_id)]
+ pub type NextForeignAssetId<T: Config> = StorageValue<_, ForeignAssetId, ValueQuery>;
+ /// The storages for MultiLocations.
+ ///
+ /// ForeignAssetLocations: map ForeignAssetId => Option<MultiLocation>
+ #[pallet::storage]
+ #[pallet::getter(fn foreign_asset_locations)]
+ pub type ForeignAssetLocations<T: Config> =
+ StorageMap<_, Twox64Concat, ForeignAssetId, MultiLocation, OptionQuery>;
+
+ /// The storages for CurrencyIds.
+ ///
+ /// LocationToCurrencyIds: map MultiLocation => Option<ForeignAssetId>
+ #[pallet::storage]
+ #[pallet::getter(fn location_to_currency_ids)]
+ pub type LocationToCurrencyIds<T: Config> =
+ StorageMap<_, Twox64Concat, MultiLocation, ForeignAssetId, OptionQuery>;
+
+ /// The storages for AssetMetadatas.
+ ///
+ /// AssetMetadatas: map AssetIds => Option<AssetMetadata>
+ #[pallet::storage]
+ #[pallet::getter(fn asset_metadatas)]
+ pub type AssetMetadatas<T: Config> =
+ StorageMap<_, Twox64Concat, AssetIds, AssetMetadata<BalanceOf<T>>, OptionQuery>;
+
+ /// The storages for assets to fungible collection binding
+ ///
+ #[pallet::storage]
+ #[pallet::getter(fn asset_binding)]
+ pub type AssetBinding<T: Config> =
+ StorageMap<_, Twox64Concat, ForeignAssetId, CollectionId, OptionQuery>;
+
+ #[pallet::pallet]
+ #[pallet::without_storage_info]
+ pub struct Pallet<T>(_);
+
+ #[pallet::call]
+ impl<T: Config> Pallet<T> {
+ #[pallet::weight(<T as Config>::WeightInfo::register_foreign_asset())]
+ #[transactional]
+ pub fn register_foreign_asset(
+ origin: OriginFor<T>,
+ owner: T::AccountId,
+ location: Box<VersionedMultiLocation>,
+ metadata: Box<AssetMetadata<BalanceOf<T>>>,
+ ) -> DispatchResult {
+ T::RegisterOrigin::ensure_origin(origin.clone())?;
+
+ let location: MultiLocation = (*location)
+ .try_into()
+ .map_err(|()| Error::<T>::BadLocation)?;
+
+ let md = metadata.clone();
+ let name: Vec<u16> = md.name.into_iter().map(|x| x as u16).collect::<Vec<u16>>();
+ let mut description: Vec<u16> = "Foreing assets collection for "
+ .encode_utf16()
+ .collect::<Vec<u16>>();
+ description.append(&mut name.clone());
+
+ let data: CreateCollectionData<T::AccountId> = CreateCollectionData {
+ name: name.try_into().unwrap(),
+ description: description.try_into().unwrap(),
+ mode: CollectionMode::Fungible(18),
+ ..Default::default()
+ };
+
+ let bounded_collection_id = <PalletFungible<T>>::init_foreign_collection(
+ CrossAccountId::from_sub(owner),
+ data,
+ )?;
+ let foreign_asset_id =
+ Self::do_register_foreign_asset(&location, &metadata, bounded_collection_id)?;
+
+ Self::deposit_event(Event::<T>::ForeignAssetRegistered {
+ asset_id: foreign_asset_id,
+ asset_address: location,
+ metadata: *metadata,
+ });
+ Ok(())
+ }
+
+ #[pallet::weight(<T as Config>::WeightInfo::update_foreign_asset())]
+ #[transactional]
+ pub fn update_foreign_asset(
+ origin: OriginFor<T>,
+ foreign_asset_id: ForeignAssetId,
+ location: Box<VersionedMultiLocation>,
+ metadata: Box<AssetMetadata<BalanceOf<T>>>,
+ ) -> DispatchResult {
+ T::RegisterOrigin::ensure_origin(origin)?;
+
+ let location: MultiLocation = (*location)
+ .try_into()
+ .map_err(|()| Error::<T>::BadLocation)?;
+ Self::do_update_foreign_asset(foreign_asset_id, &location, &metadata)?;
+
+ Self::deposit_event(Event::<T>::ForeignAssetUpdated {
+ asset_id: foreign_asset_id,
+ asset_address: location,
+ metadata: *metadata,
+ });
+ Ok(())
+ }
+ }
+}
+
+impl<T: Config> Pallet<T> {
+ fn get_next_foreign_asset_id() -> Result<ForeignAssetId, DispatchError> {
+ NextForeignAssetId::<T>::try_mutate(|current| -> Result<ForeignAssetId, DispatchError> {
+ let id = *current;
+ *current = current
+ .checked_add(One::one())
+ .ok_or(ArithmeticError::Overflow)?;
+ Ok(id)
+ })
+ }
+
+ fn do_register_foreign_asset(
+ location: &MultiLocation,
+ metadata: &AssetMetadata<BalanceOf<T>>,
+ bounded_collection_id: CollectionId,
+ ) -> Result<ForeignAssetId, DispatchError> {
+ let foreign_asset_id = Self::get_next_foreign_asset_id()?;
+ LocationToCurrencyIds::<T>::try_mutate(location, |maybe_currency_ids| -> DispatchResult {
+ ensure!(
+ maybe_currency_ids.is_none(),
+ Error::<T>::MultiLocationExisted
+ );
+ *maybe_currency_ids = Some(foreign_asset_id);
+ // *maybe_currency_ids = Some(CurrencyId::ForeignAsset(foreign_asset_id));
+
+ ForeignAssetLocations::<T>::try_mutate(
+ foreign_asset_id,
+ |maybe_location| -> DispatchResult {
+ ensure!(maybe_location.is_none(), Error::<T>::MultiLocationExisted);
+ *maybe_location = Some(location.clone());
+
+ AssetMetadatas::<T>::try_mutate(
+ AssetIds::ForeignAssetId(foreign_asset_id),
+ |maybe_asset_metadatas| -> DispatchResult {
+ ensure!(maybe_asset_metadatas.is_none(), Error::<T>::AssetIdExisted);
+ *maybe_asset_metadatas = Some(metadata.clone());
+ Ok(())
+ },
+ )
+ },
+ )?;
+
+ AssetBinding::<T>::try_mutate(foreign_asset_id, |collection_id| -> DispatchResult {
+ *collection_id = Some(bounded_collection_id);
+ Ok(())
+ })
+ })?;
+
+ Ok(foreign_asset_id)
+ }
+
+ fn do_update_foreign_asset(
+ foreign_asset_id: ForeignAssetId,
+ location: &MultiLocation,
+ metadata: &AssetMetadata<BalanceOf<T>>,
+ ) -> DispatchResult {
+ ForeignAssetLocations::<T>::try_mutate(
+ foreign_asset_id,
+ |maybe_multi_locations| -> DispatchResult {
+ let old_multi_locations = maybe_multi_locations
+ .as_mut()
+ .ok_or(Error::<T>::AssetIdNotExists)?;
+
+ AssetMetadatas::<T>::try_mutate(
+ AssetIds::ForeignAssetId(foreign_asset_id),
+ |maybe_asset_metadatas| -> DispatchResult {
+ ensure!(
+ maybe_asset_metadatas.is_some(),
+ Error::<T>::AssetIdNotExists
+ );
+
+ // modify location
+ if location != old_multi_locations {
+ LocationToCurrencyIds::<T>::remove(old_multi_locations.clone());
+ LocationToCurrencyIds::<T>::try_mutate(
+ location,
+ |maybe_currency_ids| -> DispatchResult {
+ ensure!(
+ maybe_currency_ids.is_none(),
+ Error::<T>::MultiLocationExisted
+ );
+ // *maybe_currency_ids = Some(CurrencyId::ForeignAsset(foreign_asset_id));
+ *maybe_currency_ids = Some(foreign_asset_id);
+ Ok(())
+ },
+ )?;
+ }
+ *maybe_asset_metadatas = Some(metadata.clone());
+ *old_multi_locations = location.clone();
+ Ok(())
+ },
+ )
+ },
+ )
+ }
+}
+
+use sp_runtime::SaturatedConversion;
+use sp_runtime::traits::Saturating;
+pub use frame_support::{
+ traits::{
+ fungibles::{Balanced, CreditOf},
+ tokens::currency::Currency as CurrencyT,
+ OnUnbalanced as OnUnbalancedT,
+ },
+ weights::{WeightToFeePolynomial, WeightToFee},
+};
+
+use xcm::latest::{Fungibility::Fungible as XcmFungible};
+
+pub struct FreeForAll<
+ WeightToFee: WeightToFeePolynomial<Balance = Currency::Balance>,
+ AssetId: Get<MultiLocation>,
+ AccountId,
+ Currency: CurrencyT<AccountId>,
+ OnUnbalanced: OnUnbalancedT<Currency::NegativeImbalance>,
+>(
+ Weight,
+ Currency::Balance,
+ PhantomData<(WeightToFee, AssetId, AccountId, Currency, OnUnbalanced)>,
+);
+
+impl<
+ WeightToFee: WeightToFeePolynomial<Balance = Currency::Balance>,
+ AssetId: Get<MultiLocation>,
+ AccountId,
+ Currency: CurrencyT<AccountId>,
+ OnUnbalanced: OnUnbalancedT<Currency::NegativeImbalance>,
+ > WeightTrader for FreeForAll<WeightToFee, AssetId, AccountId, Currency, OnUnbalanced>
+{
+ fn new() -> Self {
+ Self(0, Zero::zero(), PhantomData)
+ }
+
+ fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, XcmError> {
+ log::trace!(target: "fassets::weight", "buy_weight weight: {:?}, payment: {:?}", weight, payment);
+ Ok(payment)
+ }
+}
+impl<
+ WeightToFee: WeightToFeePolynomial<Balance = Currency::Balance>,
+ AssetId: Get<MultiLocation>,
+ AccountId,
+ Currency: CurrencyT<AccountId>,
+ OnUnbalanced: OnUnbalancedT<Currency::NegativeImbalance>,
+ > Drop for FreeForAll<WeightToFee, AssetId, AccountId, Currency, OnUnbalanced>
+{
+ fn drop(&mut self) {
+ OnUnbalanced::on_unbalanced(Currency::issue(self.1));
+ }
+}
pallets/foreing-assets/src/weights.rsdiffbeforeafterboth--- /dev/null
+++ b/pallets/foreing-assets/src/weights.rs
@@ -0,0 +1,43 @@
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(clippy::unnecessary_cast)]
+
+use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
+use sp_std::marker::PhantomData;
+
+/// Weight functions needed for module_asset_registry.
+pub trait WeightInfo {
+ fn register_foreign_asset() -> Weight;
+ fn update_foreign_asset() -> Weight;
+}
+
+/// Weights for module_asset_registry using the Acala node and recommended hardware.
+pub struct AcalaWeight<T>(PhantomData<T>);
+impl<T: frame_system::Config> WeightInfo for AcalaWeight<T> {
+ fn register_foreign_asset() -> Weight {
+ (29_819_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(2 as Weight))
+ .saturating_add(T::DbWeight::get().writes(3 as Weight))
+ }
+ fn update_foreign_asset() -> Weight {
+ (25_119_000 as Weight)
+ .saturating_add(T::DbWeight::get().reads(1 as Weight))
+ .saturating_add(T::DbWeight::get().writes(1 as Weight))
+ }
+}
+
+// For backwards compatibility and tests
+impl WeightInfo for () {
+ fn register_foreign_asset() -> Weight {
+ (29_819_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(2 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(3 as Weight))
+ }
+ fn update_foreign_asset() -> Weight {
+ (25_119_000 as Weight)
+ .saturating_add(RocksDbWeight::get().reads(1 as Weight))
+ .saturating_add(RocksDbWeight::get().writes(1 as Weight))
+ }
+}
\ No newline at end of file
pallets/fungible/src/lib.rsdiffbeforeafterboth--- a/pallets/fungible/src/lib.rs
+++ b/pallets/fungible/src/lib.rs
@@ -167,6 +167,11 @@
Value = u128,
QueryKind = ValueQuery,
>;
+
+ /// Foreign collection flag
+ #[pallet::storage]
+ pub type ForeignCollection<T: Config> =
+ StorageMap<Hasher = Twox64Concat, Key = CollectionId, Value = bool, QueryKind = ValueQuery>;
}
/// Wrapper around untyped collection handle, asserting inner collection is of fungible type.
@@ -215,6 +220,16 @@
<PalletCommon<T>>::init_collection(owner, data, false)
}
+ /// Initializes the collection with ForeignCollection flag. Returns [CollectionId] on success, [DispatchError] otherwise.
+ pub fn init_foreign_collection(
+ owner: T::CrossAccountId,
+ data: CreateCollectionData<T::AccountId>,
+ ) -> Result<CollectionId, DispatchError> {
+ let id = <PalletCommon<T>>::init_collection(owner, data, false)?;
+ <ForeignCollection<T>>::insert(id, true);
+ Ok(id)
+ }
+
/// Destroys a collection.
pub fn destroy_collection(
collection: FungibleHandle<T>,
@@ -230,6 +245,7 @@
PalletCommon::destroy_collection(collection.0, sender)?;
+ <ForeignCollection<T>>::remove(id);
<TotalSupply<T>>::remove(id);
let _ = <Balance<T>>::clear_prefix((id,), u32::MAX, None);
let _ = <Allowance<T>>::clear_prefix((id,), u32::MAX, None);
@@ -257,6 +273,12 @@
.checked_sub(amount)
.ok_or(<CommonError<T>>::TokenValueTooLow)?;
+ // Foreign collection check
+ ensure!(
+ !<ForeignCollection<T>>::get(collection.id),
+ <CommonError<T>>::NoPermission
+ );
+
if collection.permissions.access() == AccessMode::AllowList {
collection.check_allowlist(owner)?;
}
@@ -288,6 +310,46 @@
Ok(())
}
+ /// Burns the specified amount of the token.
+ pub fn burn_foreign(
+ collection: &FungibleHandle<T>,
+ owner: &T::CrossAccountId,
+ amount: u128,
+ ) -> DispatchResult {
+ let total_supply = <TotalSupply<T>>::get(collection.id)
+ .checked_sub(amount)
+ .ok_or(<CommonError<T>>::TokenValueTooLow)?;
+
+ let balance = <Balance<T>>::get((collection.id, owner))
+ .checked_sub(amount)
+ .ok_or(<CommonError<T>>::TokenValueTooLow)?;
+ // =========
+
+ if balance == 0 {
+ <Balance<T>>::remove((collection.id, owner));
+ <PalletStructure<T>>::unnest_if_nested(owner, collection.id, TokenId::default());
+ } else {
+ <Balance<T>>::insert((collection.id, owner), balance);
+ }
+ <TotalSupply<T>>::insert(collection.id, total_supply);
+
+ <PalletEvm<T>>::deposit_log(
+ ERC20Events::Transfer {
+ from: *owner.as_eth(),
+ to: H160::default(),
+ value: amount.into(),
+ }
+ .to_log(collection_id_to_address(collection.id)),
+ );
+ <PalletCommon<T>>::deposit_event(CommonEvent::ItemDestroyed(
+ collection.id,
+ TokenId::default(),
+ owner.clone(),
+ amount,
+ ));
+ Ok(())
+ }
+
/// Transfers the specified amount of tokens. Will check that
/// the transfer is allowed for the token.
///
@@ -373,6 +435,12 @@
data: BTreeMap<T::CrossAccountId, u128>,
nesting_budget: &dyn Budget,
) -> DispatchResult {
+ // Foreign collection check
+ ensure!(
+ !<ForeignCollection<T>>::get(collection.id),
+ <CommonError<T>>::NoPermission
+ );
+
if !collection.is_owner_or_admin(sender) {
ensure!(
collection.permissions.mint_mode(),
@@ -442,6 +510,68 @@
Ok(())
}
+ /// Minting tokens for multiple IDs.
+ /// See [`create_item_foreign`][`Pallet::create_item_foreign`] for more details.
+ pub fn create_multiple_items_foreign(
+ collection: &FungibleHandle<T>,
+ sender: &T::CrossAccountId,
+ data: BTreeMap<T::CrossAccountId, u128>,
+ nesting_budget: &dyn Budget,
+ ) -> DispatchResult {
+ let total_supply = data
+ .iter()
+ .map(|(_, v)| *v)
+ .try_fold(<TotalSupply<T>>::get(collection.id), |acc, v| {
+ acc.checked_add(v)
+ })
+ .ok_or(ArithmeticError::Overflow)?;
+
+ let mut balances = data;
+ for (k, v) in balances.iter_mut() {
+ *v = <Balance<T>>::get((collection.id, &k))
+ .checked_add(*v)
+ .ok_or(ArithmeticError::Overflow)?;
+ }
+
+ for (to, _) in balances.iter() {
+ <PalletStructure<T>>::check_nesting(
+ sender.clone(),
+ to,
+ collection.id,
+ TokenId::default(),
+ nesting_budget,
+ )?;
+ }
+
+ // =========
+
+ <TotalSupply<T>>::insert(collection.id, total_supply);
+ for (user, amount) in balances {
+ <Balance<T>>::insert((collection.id, &user), amount);
+ <PalletStructure<T>>::nest_if_sent_to_token_unchecked(
+ &user,
+ collection.id,
+ TokenId::default(),
+ );
+ <PalletEvm<T>>::deposit_log(
+ ERC20Events::Transfer {
+ from: H160::default(),
+ to: *user.as_eth(),
+ value: amount.into(),
+ }
+ .to_log(collection_id_to_address(collection.id)),
+ );
+ <PalletCommon<T>>::deposit_event(CommonEvent::ItemCreated(
+ collection.id,
+ TokenId::default(),
+ user.clone(),
+ amount,
+ ));
+ }
+
+ Ok(())
+ }
+
fn set_allowance_unchecked(
collection: &FungibleHandle<T>,
owner: &T::CrossAccountId,
@@ -615,6 +745,24 @@
)
}
+ /// Creates fungible token.
+ ///
+ /// - `data`: Contains user who will become the owners of the tokens and amount
+ /// of tokens he will receive.
+ pub fn create_item_foreign(
+ collection: &FungibleHandle<T>,
+ sender: &T::CrossAccountId,
+ data: CreateItemData<T>,
+ nesting_budget: &dyn Budget,
+ ) -> DispatchResult {
+ Self::create_multiple_items_foreign(
+ collection,
+ sender,
+ [(data.0, data.1)].into_iter().collect(),
+ nesting_budget,
+ )
+ }
+
/// Returns 10 tokens owners in no particular order
///
/// There is no direct way to get token holders in ascending order,
runtime/common/config/pallets/foreign_asset.rsdiffbeforeafterboth--- /dev/null
+++ b/runtime/common/config/pallets/foreign_asset.rs
@@ -0,0 +1,9 @@
+use crate::{Runtime, Event, Balances};
+use up_common::types::AccountId;
+
+impl pallet_foreing_assets::Config for Runtime {
+ type Event = Event;
+ type Currency = Balances;
+ type RegisterOrigin = frame_system::EnsureRoot<AccountId>;
+ type WeightInfo = ();
+}
runtime/common/config/pallets/mod.rsdiffbeforeafterboth--- a/runtime/common/config/pallets/mod.rs
+++ b/runtime/common/config/pallets/mod.rs
@@ -40,6 +40,9 @@
#[cfg(feature = "scheduler")]
pub mod scheduler;
+#[cfg(feature = "foreign-assets")]
+pub mod foreign_asset;
+
parameter_types! {
pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account_truncating();
pub const CollectionCreationPrice: Balance = 2 * UNIQUE;
runtime/common/config/xcm.rsdiffbeforeafterboth--- a/runtime/common/config/xcm.rs
+++ b/runtime/common/config/xcm.rs
@@ -16,7 +16,8 @@
use frame_support::{
traits::{
- tokens::currency::Currency as CurrencyT, OnUnbalanced as OnUnbalancedT, Get, Everything,
+ Contains, tokens::currency::Currency as CurrencyT, OnUnbalanced as OnUnbalancedT, Get,
+ Everything, fungibles,
},
weights::{Weight, WeightToFeePolynomial, WeightToFee},
parameter_types, match_types,
@@ -34,18 +35,29 @@
Fungibility::Fungible as XcmFungible,
MultiAsset, Error as XcmError,
};
-use xcm_executor::traits::{MatchesFungible, WeightTrader};
use xcm_builder::{
AccountId32Aliases, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin,
- FixedWeightBounds, LocationInverter, NativeAsset, ParentAsSuperuser, RelayChainAsNative,
- SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative,
- SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, ParentIsPreset,
+ FixedWeightBounds, FungiblesAdapter, LocationInverter, NativeAsset, ParentAsSuperuser,
+ RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia,
+ SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit,
+ ParentIsPreset, ConvertedConcreteAssetId,
};
use xcm_executor::{Config, XcmExecutor, Assets};
-use sp_std::marker::PhantomData;
+use xcm_executor::traits::{
+ Convert as ConvertXcm, JustTry, MatchesFungible, WeightTrader, FilterAssetLocation,
+};
+use pallet_foreing_assets::{
+ AssetIds, AssetIdMapping, XcmForeignAssetIdMapping, CurrencyId, NativeCurrency, FreeForAll,
+ TryAsForeing, ForeignAssetId,
+};
+use sp_std::{borrow::Borrow, marker::PhantomData, vec, vec::Vec};
use crate::{
Runtime, Call, Event, Origin, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, XcmpQueue,
+ xcm_config::Barrier,
};
+#[cfg(feature = "foreign-assets")]
+use crate::ForeingAssets;
+
use up_common::{
types::{AccountId, Balance},
constants::*,
@@ -73,8 +85,22 @@
pub struct OnlySelfCurrency;
impl<B: TryFrom<u128>> MatchesFungible<B> for OnlySelfCurrency {
fn matches_fungible(a: &MultiAsset) -> Option<B> {
+ let paraid = Parachain(ParachainInfo::parachain_id().into());
match (&a.id, &a.fun) {
- (Concrete(_), XcmFungible(ref amount)) => CheckedConversion::checked_from(*amount),
+ (
+ Concrete(MultiLocation {
+ parents: 1,
+ interior: X1(loc),
+ }),
+ XcmFungible(ref amount),
+ ) if paraid == *loc => CheckedConversion::checked_from(*amount),
+ (
+ Concrete(MultiLocation {
+ parents: 0,
+ interior: Here,
+ }),
+ XcmFungible(ref amount),
+ ) => CheckedConversion::checked_from(*amount),
_ => None,
}
}
@@ -145,11 +171,13 @@
};
}
+/*
pub type Barrier = (
TakeWeightCredit,
AllowTopLevelPaidExecutionFrom<Everything>,
// ^^^ Parent & its unit plurality gets free execution
);
+ */
pub struct UsingOnlySelfCurrencyComponents<
WeightToFee: WeightToFeePolynomial<Balance = Currency::Balance>,
@@ -176,48 +204,8 @@
}
fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, XcmError> {
- let amount = WeightToFee::weight_to_fee(&weight);
- let u128_amount: u128 = amount.try_into().map_err(|_| XcmError::Overflow)?;
-
- // location to this parachain through relay chain
- let option1: xcm::v1::AssetId = Concrete(MultiLocation {
- parents: 1,
- interior: X1(Parachain(ParachainInfo::parachain_id().into())),
- });
- // direct location
- let option2: xcm::v1::AssetId = Concrete(MultiLocation {
- parents: 0,
- interior: Here,
- });
-
- let required = if payment.fungible.contains_key(&option1) {
- (option1, u128_amount).into()
- } else if payment.fungible.contains_key(&option2) {
- (option2, u128_amount).into()
- } else {
- (Concrete(MultiLocation::default()), u128_amount).into()
- };
-
- let unused = payment
- .checked_sub(required)
- .map_err(|_| XcmError::TooExpensive)?;
- self.0 = self.0.saturating_add(weight);
- self.1 = self.1.saturating_add(amount);
- Ok(unused)
+ Ok(payment)
}
-
- fn refund_weight(&mut self, weight: Weight) -> Option<MultiAsset> {
- let weight = weight.min(self.0);
- let amount = WeightToFee::weight_to_fee(&weight);
- self.0 -= weight;
- self.1 = self.1.saturating_sub(amount);
- let amount: u128 = amount.saturated_into();
- if amount > 0 {
- Some((AssetId::get(), amount).into())
- } else {
- None
- }
- }
}
impl<
WeightToFee: WeightToFeePolynomial<Balance = Currency::Balance>,
@@ -233,6 +221,153 @@
}
}
+parameter_types! {
+ pub CheckingAccount: AccountId = PolkadotXcm::check_account();
+}
+/// Allow checking in assets that have issuance > 0.
+#[cfg(feature = "foreign-assets")]
+pub struct NonZeroIssuance<AccountId, ForeingAssets>(PhantomData<(AccountId, ForeingAssets)>);
+
+#[cfg(feature = "foreign-assets")]
+impl<AccountId, ForeingAssets> Contains<<ForeingAssets as fungibles::Inspect<AccountId>>::AssetId>
+ for NonZeroIssuance<AccountId, ForeingAssets>
+where
+ ForeingAssets: fungibles::Inspect<AccountId>,
+{
+ fn contains(id: &<ForeingAssets as fungibles::Inspect<AccountId>>::AssetId) -> bool {
+ !ForeingAssets::total_issuance(*id).is_zero()
+ }
+}
+
+#[cfg(feature = "foreign-assets")]
+pub struct AsInnerId<AssetId, ConvertAssetId>(PhantomData<(AssetId, ConvertAssetId)>);
+#[cfg(feature = "foreign-assets")]
+impl<AssetId: Clone + PartialEq, ConvertAssetId: ConvertXcm<AssetId, AssetId>>
+ ConvertXcm<MultiLocation, AssetId> for AsInnerId<AssetId, ConvertAssetId>
+where
+ AssetId: Borrow<AssetId>,
+ AssetId: TryAsForeing<AssetId, ForeignAssetId>,
+ AssetIds: Borrow<AssetId>,
+{
+ fn convert_ref(id: impl Borrow<MultiLocation>) -> Result<AssetId, ()> {
+ let id = id.borrow();
+
+ log::trace!(
+ target: "xcm::AsInnerId::Convert",
+ "AsInnerId {:?}",
+ id
+ );
+
+ let parent = MultiLocation::parent();
+ let here = MultiLocation::here();
+ let self_location = MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())));
+
+ if *id == parent {
+ return ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Parent));
+ }
+
+ if *id == here || *id == self_location {
+ return ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Here));
+ }
+
+ match XcmForeignAssetIdMapping::<Runtime>::get_currency_id(id.clone()) {
+ Some(AssetIds::ForeignAssetId(foreign_asset_id)) => {
+ ConvertAssetId::convert_ref(AssetIds::ForeignAssetId(foreign_asset_id))
+ }
+ _ => ConvertAssetId::convert_ref(AssetIds::ForeignAssetId(0)),
+ }
+ }
+
+ fn reverse_ref(what: impl Borrow<AssetId>) -> Result<MultiLocation, ()> {
+ log::trace!(
+ target: "xcm::AsInnerId::Reverse",
+ "AsInnerId",
+ );
+
+ let asset_id = what.borrow();
+
+ let parent_id =
+ ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Parent)).unwrap();
+ let here_id =
+ ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Here)).unwrap();
+
+ if asset_id.clone() == parent_id {
+ return Ok(MultiLocation::parent());
+ }
+
+ if asset_id.clone() == here_id {
+ return Ok(MultiLocation::new(
+ 1,
+ X1(Parachain(ParachainInfo::get().into())),
+ ));
+ }
+
+ match <AssetId as TryAsForeing<AssetId, ForeignAssetId>>::try_as_foreing(asset_id.clone()) {
+ Some(fid) => match XcmForeignAssetIdMapping::<Runtime>::get_multi_location(fid) {
+ Some(location) => Ok(location),
+ None => Err(()),
+ },
+ None => Err(()),
+ }
+ }
+}
+
+/// Means for transacting assets besides the native currency on this chain.
+#[cfg(feature = "foreign-assets")]
+pub type FungiblesTransactor = FungiblesAdapter<
+ // Use this fungibles implementation:
+ ForeingAssets,
+ // Use this currency when it is a fungible asset matching the given location or name:
+ ConvertedConcreteAssetId<AssetIds, Balance, AsInnerId<AssetIds, JustTry>, JustTry>,
+ // Convert an XCM MultiLocation into a local account id:
+ LocationToAccountId,
+ // Our chain's account ID type (we can't get away without mentioning it explicitly):
+ AccountId,
+ // We only want to allow teleports of known assets. We use non-zero issuance as an indication
+ // that this asset is known.
+ NonZeroIssuance<AccountId, ForeingAssets>,
+ // The account to use for tracking teleports.
+ CheckingAccount,
+>;
+
+/// Means for transacting assets on this chain.
+#[cfg(feature = "foreign-assets")]
+pub type AssetTransactors = FungiblesTransactor;
+
+#[cfg(not(feature = "foreign-assets"))]
+pub type AssetTransactors = LocalAssetTransactor;
+
+#[cfg(feature = "foreign-assets")]
+pub struct AllAsset;
+#[cfg(feature = "foreign-assets")]
+impl FilterAssetLocation for AllAsset {
+ fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool {
+ true
+ }
+}
+
+#[cfg(feature = "foreign-assets")]
+pub type IsReserve = AllAsset;
+#[cfg(not(feature = "foreign-assets"))]
+pub type IsReserve = NativeAsset;
+
+#[cfg(feature = "foreign-assets")]
+type Trader<T> = FreeForAll<
+ pallet_configuration::WeightToFee<T, Balance>,
+ RelayLocation,
+ AccountId,
+ Balances,
+ (),
+>;
+#[cfg(not(feature = "foreign-assets"))]
+type Trader<T> = UsingOnlySelfCurrencyComponents<
+ pallet_configuration::WeightToFee<T, Balance>,
+ RelayLocation,
+ AccountId,
+ Balances,
+ (),
+>;
+
pub struct XcmConfig<T>(PhantomData<T>);
impl<T> Config for XcmConfig<T>
where
@@ -241,20 +376,14 @@
type Call = Call;
type XcmSender = XcmRouter;
// How to withdraw and deposit an asset.
- type AssetTransactor = LocalAssetTransactor;
+ type AssetTransactor = AssetTransactors;
type OriginConverter = XcmOriginToTransactDispatchOrigin;
- type IsReserve = NativeAsset;
+ type IsReserve = IsReserve;
type IsTeleporter = (); // Teleportation is disabled
type LocationInverter = LocationInverter<Ancestry>;
type Barrier = Barrier;
type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
- type Trader = UsingOnlySelfCurrencyComponents<
- pallet_configuration::WeightToFee<T, Balance>,
- RelayLocation,
- AccountId,
- Balances,
- (),
- >;
+ type Trader = Trader<T>;
type ResponseHandler = (); // Don't handle responses for now.
type SubscriptionService = PolkadotXcm;
runtime/common/construct_runtime/mod.rsdiffbeforeafterboth--- a/runtime/common/construct_runtime/mod.rs
+++ b/runtime/common/construct_runtime/mod.rs
@@ -42,6 +42,9 @@
Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,
Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,
Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,
+ #[runtimes(opal)]
+ XTokens: orml_xtokens = 38,
+ Tokens: orml_tokens = 39,
// Vesting: pallet_vesting::{Pallet, Call, Config<T>, Storage, Event<T>} = 37,
// Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,
@@ -77,6 +80,9 @@
#[runtimes(opal)]
RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,
+ #[runtimes(opal)]
+ ForeingAssets: pallet_foreing_assets::{Pallet, Call, Storage, Event<T>} = 80,
+
// Frontier
EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,
Ethereum: pallet_ethereum::{Pallet, Config, Call, Storage, Event, Origin} = 101,
runtime/opal/Cargo.tomldiffbeforeafterboth--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -120,13 +120,18 @@
'up-sponsorship/std',
"orml-vesting/std",
+ "orml-tokens/std",
+ "orml-xtokens/std",
+ "orml-traits/std",
+ "pallet-foreing-assets/std"
]
limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
-opal-runtime = ['refungible', 'scheduler', 'rmrk']
+opal-runtime = ['refungible', 'scheduler', 'rmrk', 'foreign-assets']
refungible = []
scheduler = []
rmrk = []
+foreign-assets = []
################################################################################
# Substrate Dependencies
@@ -399,6 +404,24 @@
version = "0.4.1-dev"
default-features = false
+[dependencies.orml-xtokens]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
+
+[dependencies.orml-tokens]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
+
+[dependencies.orml-traits]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
+
################################################################################
# local dependencies
@@ -437,6 +460,7 @@
fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.27' }
+pallet-foreing-assets = { default-features = false, path = "../../pallets/foreing-assets" }
################################################################################
# Build Dependencies
runtime/opal/src/lib.rsdiffbeforeafterboth--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -35,6 +35,8 @@
#[path = "../../common/mod.rs"]
mod runtime_common;
+pub mod xcm_config;
+
pub use runtime_common::*;
pub const RUNTIME_NAME: &str = "opal";
runtime/opal/src/xcm_config.rsdiffbeforeafterboth--- /dev/null
+++ b/runtime/opal/src/xcm_config.rs
@@ -0,0 +1,513 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+use cumulus_pallet_xcm;
+use frame_support::{
+ {match_types, parameter_types, weights::Weight},
+ pallet_prelude::Get,
+ traits::{Contains, Everything, fungibles},
+};
+use frame_system::EnsureRoot;
+use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key};
+use pallet_xcm::XcmPassthrough;
+use polkadot_parachain::primitives::Sibling;
+use sp_runtime::traits::{AccountIdConversion, CheckedConversion, Convert, Zero};
+use sp_std::{borrow::Borrow, marker::PhantomData, vec, vec::Vec};
+use xcm::{
+ latest::{MultiAsset, Xcm},
+ prelude::{Concrete, Fungible as XcmFungible},
+ v1::{BodyId, Junction::*, Junctions::*, MultiLocation, NetworkId},
+};
+use xcm_builder::{
+ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, EnsureXcmOrigin,
+ FixedWeightBounds, FungiblesAdapter, LocationInverter, ParentAsSuperuser, ParentIsPreset,
+ RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia,
+ SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit,
+ ConvertedConcreteAssetId,
+};
+use xcm_executor::{
+ {Config, XcmExecutor},
+ traits::{Convert as ConvertXcm, FilterAssetLocation, JustTry, MatchesFungible, ShouldExecute},
+};
+
+use up_common::{
+ constants::{MAXIMUM_BLOCK_WEIGHT, UNIQUE},
+ types::{AccountId, Balance},
+};
+
+use crate::{
+ Balances, Call, DmpQueue, Event, ForeingAssets, Origin, ParachainInfo, ParachainSystem,
+ PolkadotXcm, Runtime, XcmpQueue,
+};
+use crate::runtime_common::config::substrate::{TreasuryModuleId, MaxLocks, MaxReserves};
+use crate::runtime_common::config::pallets::TreasuryAccountId;
+use crate::runtime_common::config::xcm::*;
+use crate::*;
+
+use pallet_foreing_assets::{
+ AssetIds, AssetIdMapping, XcmForeignAssetIdMapping, CurrencyId, NativeCurrency, FreeForAll,
+ TryAsForeing, ForeignAssetId,
+};
+
+// Signed version of balance
+pub type Amount = i128;
+
+/*
+parameter_types! {
+ pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4;
+ pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4;
+}
+
+impl cumulus_pallet_parachain_system::Config for Runtime {
+ type Event = Event;
+ type SelfParaId = parachain_info::Pallet<Self>;
+ type OnSystemEvent = ();
+ type OutboundXcmpMessageSource = XcmpQueue;
+ type DmpMessageHandler = DmpQueue;
+ type ReservedDmpWeight = ReservedDmpWeight;
+ type ReservedXcmpWeight = ReservedXcmpWeight;
+ type XcmpMessageHandler = XcmpQueue;
+}
+
+impl parachain_info::Config for Runtime {}
+
+impl cumulus_pallet_aura_ext::Config for Runtime {}
+ */
+
+parameter_types! {
+ pub const RelayLocation: MultiLocation = MultiLocation::parent();
+ pub const RelayNetwork: NetworkId = NetworkId::Polkadot;
+ pub RelayOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into();
+ pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into();
+ pub SelfLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())));
+}
+
+/*
+/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
+/// when determining ownership of accounts for asset transacting and when attempting to use XCM
+/// `Transact` in order to determine the dispatch Origin.
+pub type LocationToAccountId = (
+ // The parent (Relay-chain) origin converts to the default `AccountId`.
+ ParentIsPreset<AccountId>,
+ // Sibling parachain origins convert to AccountId via the `ParaId::into`.
+ SiblingParachainConvertsVia<Sibling, AccountId>,
+ // Straight up local `AccountId32` origins just alias directly to `AccountId`.
+ AccountId32Aliases<RelayNetwork, AccountId>,
+);
+
+pub struct OnlySelfCurrency;
+
+impl<B: TryFrom<u128>> MatchesFungible<B> for OnlySelfCurrency {
+ fn matches_fungible(a: &MultiAsset) -> Option<B> {
+ match (&a.id, &a.fun) {
+ (Concrete(_), XcmFungible(ref amount)) => CheckedConversion::checked_from(*amount),
+ _ => None,
+ }
+ }
+}
+
+/// Means for transacting assets on this chain.
+pub type LocalAssetTransactor = CurrencyAdapter<
+ // Use this currency:
+ Balances,
+ // Use this currency when it is a fungible asset matching the given location or name:
+ OnlySelfCurrency,
+ // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID:
+ LocationToAccountId,
+ // Our chain's account ID type (we can't get away without mentioning it explicitly):
+ AccountId,
+ // We don't track any teleports.
+ (),
+>;
+
+ */
+
+/*
+parameter_types! {
+ pub CheckingAccount: AccountId = PolkadotXcm::check_account();
+}
+
+/// Allow checking in assets that have issuance > 0.
+pub struct NonZeroIssuance<AccountId, ForeingAssets>(PhantomData<(AccountId, ForeingAssets)>);
+impl<AccountId, ForeingAssets> Contains<<ForeingAssets as fungibles::Inspect<AccountId>>::AssetId>
+ for NonZeroIssuance<AccountId, ForeingAssets>
+where
+ ForeingAssets: fungibles::Inspect<AccountId>,
+{
+ fn contains(id: &<ForeingAssets as fungibles::Inspect<AccountId>>::AssetId) -> bool {
+ !ForeingAssets::total_issuance(*id).is_zero()
+ }
+}
+
+pub struct AsInnerId<AssetId, ConvertAssetId>(PhantomData<(AssetId, ConvertAssetId)>);
+impl<AssetId: Clone + PartialEq, ConvertAssetId: ConvertXcm<AssetId, AssetId>>
+ ConvertXcm<MultiLocation, AssetId> for AsInnerId<AssetId, ConvertAssetId>
+where
+ AssetId: Borrow<AssetId>,
+ AssetId: TryAsForeing<AssetId, ForeignAssetId>,
+ AssetIds: Borrow<AssetId>,
+{
+ fn convert_ref(id: impl Borrow<MultiLocation>) -> Result<AssetId, ()> {
+ let id = id.borrow();
+
+ log::trace!(
+ target: "xcm::AsInnerId::Convert",
+ "AsInnerId {:?}",
+ id
+ );
+
+ let parent = MultiLocation::parent();
+ let here = MultiLocation::here();
+ let self_location = MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())));
+
+ if *id == parent {
+ return ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Parent));
+ }
+
+ if *id == here || *id == self_location {
+ return ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Here));
+ }
+
+ match XcmForeignAssetIdMapping::<Runtime>::get_currency_id(id.clone()) {
+ Some(AssetIds::ForeignAssetId(foreign_asset_id)) => {
+ ConvertAssetId::convert_ref(AssetIds::ForeignAssetId(foreign_asset_id))
+ }
+ _ => ConvertAssetId::convert_ref(AssetIds::ForeignAssetId(0)),
+ }
+ }
+
+ fn reverse_ref(what: impl Borrow<AssetId>) -> Result<MultiLocation, ()> {
+ log::trace!(
+ target: "xcm::AsInnerId::Reverse",
+ "AsInnerId",
+ );
+
+ let asset_id = what.borrow();
+
+ let parent_id =
+ ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Parent)).unwrap();
+ let here_id =
+ ConvertAssetId::convert_ref(AssetIds::NativeAssetId(NativeCurrency::Here)).unwrap();
+
+ if asset_id.clone() == parent_id {
+ return Ok(MultiLocation::parent());
+ }
+
+ if asset_id.clone() == here_id {
+ return Ok(MultiLocation::new(
+ 1,
+ X1(Parachain(ParachainInfo::get().into())),
+ ));
+ }
+
+ match <AssetId as TryAsForeing<AssetId, ForeignAssetId>>::try_as_foreing(asset_id.clone()) {
+ Some(fid) => match XcmForeignAssetIdMapping::<Runtime>::get_multi_location(fid) {
+ Some(location) => Ok(location),
+ None => Err(()),
+ },
+ None => Err(()),
+ }
+ }
+}
+
+/// Means for transacting assets besides the native currency on this chain.
+pub type FungiblesTransactor = FungiblesAdapter<
+ // Use this fungibles implementation:
+ ForeingAssets,
+ // Use this currency when it is a fungible asset matching the given location or name:
+ ConvertedConcreteAssetId<AssetIds, Balance, AsInnerId<AssetIds, JustTry>, JustTry>,
+ // Convert an XCM MultiLocation into a local account id:
+ LocationToAccountId,
+ // Our chain's account ID type (we can't get away without mentioning it explicitly):
+ AccountId,
+ // We only want to allow teleports of known assets. We use non-zero issuance as an indication
+ // that this asset is known.
+ NonZeroIssuance<AccountId, ForeingAssets>,
+ // The account to use for tracking teleports.
+ CheckingAccount,
+>;
+
+/// Means for transacting assets on this chain.
+pub type AssetTransactors = FungiblesTransactor;
+ */
+
+/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance,
+/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can
+/// biases the kind of local `Origin` it will become.
+pub type XcmOriginToTransactDispatchOrigin = (
+ // Sovereign account converter; this attempts to derive an `AccountId` from the origin location
+ // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for
+ // foreign chains who want to have a local sovereign account on this chain which they control.
+ SovereignSignedViaLocation<LocationToAccountId, Origin>,
+ // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when
+ // recognised.
+ RelayChainAsNative<RelayOrigin, Origin>,
+ // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when
+ // recognised.
+ SiblingParachainAsNative<cumulus_pallet_xcm::Origin, Origin>,
+ // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a
+ // transaction from the Root origin.
+ ParentAsSuperuser<Origin>,
+ // Native signed account converter; this just converts an `AccountId32` origin into a normal
+ // `Origin::Signed` origin of the same 32-byte value.
+ SignedAccountId32AsNative<RelayNetwork, Origin>,
+ // Xcm origins can be represented natively under the Xcm pallet's Xcm origin.
+ XcmPassthrough<Origin>,
+);
+
+parameter_types! {
+ // One XCM operation is 1_000_000 weight - almost certainly a conservative estimate.
+ pub UnitWeightCost: Weight = 1_000_000;
+ // 1200 UNIQUEs buy 1 second of weight.
+ pub const WeightPrice: (MultiLocation, u128) = (MultiLocation::parent(), 1_200 * UNIQUE);
+ pub const MaxInstructions: u32 = 100;
+ pub const MaxAuthorities: u32 = 100_000;
+}
+
+match_types! {
+ pub type ParentOrParentsUnitPlurality: impl Contains<MultiLocation> = {
+ MultiLocation { parents: 1, interior: Here } |
+ MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Unit, .. }) }
+ };
+}
+
+/// Execution barrier that just takes `max_weight` from `weight_credit`.
+///
+/// Useful to allow XCM execution by local chain users via extrinsics.
+/// E.g. `pallet_xcm::reserve_asset_transfer` to transfer a reserve asset
+/// out of the local chain to another one.
+pub struct AllowAllDebug;
+impl ShouldExecute for AllowAllDebug {
+ fn should_execute<Call>(
+ _origin: &MultiLocation,
+ _message: &mut Xcm<Call>,
+ max_weight: Weight,
+ weight_credit: &mut Weight,
+ ) -> Result<(), ()> {
+ Ok(())
+ }
+}
+
+pub type Barrier = (
+ TakeWeightCredit,
+ AllowTopLevelPaidExecutionFrom<Everything>,
+ AllowUnpaidExecutionFrom<ParentOrParentsUnitPlurality>,
+ // ^^^ Parent & its unit plurality gets free execution
+ AllowAllDebug,
+);
+
+pub struct AllAsset;
+impl FilterAssetLocation for AllAsset {
+ fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool {
+ true
+ }
+}
+
+/* /// CHANGEME!!!
+pub struct XcmConfig;
+impl Config for XcmConfig {
+ type Call = Call;
+ type XcmSender = XcmRouter;
+ // How to withdraw and deposit an asset.
+ type AssetTransactor = AssetTransactors;
+ type OriginConverter = XcmOriginToTransactDispatchOrigin;
+ type IsReserve = AllAsset; //NativeAsset;
+ type IsTeleporter = (); // Teleportation is disabled
+ type LocationInverter = LocationInverter<Ancestry>;
+ type Barrier = Barrier;
+ type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
+ type Trader =
+ FreeForAll<LinearFee<Balance>, RelayLocation, AccountId, Balances, ()>;
+ type ResponseHandler = (); // Don't handle responses for now.
+ type SubscriptionService = PolkadotXcm;
+ type AssetTrap = PolkadotXcm;
+ type AssetClaims = PolkadotXcm;
+}
+ */
+
+/*
+/// No local origins on this chain are allowed to dispatch XCM sends/executions.
+pub type LocalOriginToLocation = (SignedToAccountId32<Origin, AccountId, RelayNetwork>,);
+
+/// The means for routing XCM messages which are not for local execution into the right message
+/// queues.
+pub type XcmRouter = (
+ // Two routers - use UMP to communicate with the relay chain:
+ cumulus_primitives_utility::ParentAsUmp<ParachainSystem, ()>,
+ // ..and XCMP to communicate with the sibling chains.
+ XcmpQueue,
+);
+ */
+
+/*
+impl pallet_xcm::Config for Runtime {
+ type Event = Event;
+ type SendXcmOrigin = EnsureXcmOrigin<Origin, LocalOriginToLocation>;
+ type XcmRouter = XcmRouter;
+ type ExecuteXcmOrigin = EnsureXcmOrigin<Origin, LocalOriginToLocation>;
+ type XcmExecuteFilter = Everything;
+ type XcmExecutor = XcmExecutor<XcmConfig<Self>>;
+ type XcmTeleportFilter = Everything;
+ type XcmReserveTransferFilter = Everything;
+ type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
+ type LocationInverter = LocationInverter<Ancestry>;
+ type Origin = Origin;
+ type Call = Call;
+ const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100;
+ type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion;
+}
+ */
+
+/*
+impl cumulus_pallet_xcm::Config for Runtime {
+ type Event = Event;
+ type XcmExecutor = XcmExecutor<XcmConfig>;
+}
+
+impl cumulus_pallet_xcmp_queue::Config for Runtime {
+ type WeightInfo = ();
+ type Event = Event;
+ type XcmExecutor = XcmExecutor<XcmConfig>;
+ type ChannelInfo = ParachainSystem;
+ type VersionWrapper = ();
+ type ExecuteOverweightOrigin = frame_system::EnsureRoot<AccountId>;
+ type ControllerOrigin = EnsureRoot<AccountId>;
+ type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin;
+}
+
+impl cumulus_pallet_dmp_queue::Config for Runtime {
+ type Event = Event;
+ type XcmExecutor = XcmExecutor<XcmConfig>;
+ type ExecuteOverweightOrigin = frame_system::EnsureRoot<AccountId>;
+}
+ */
+
+pub struct CurrencyIdConvert;
+impl Convert<AssetIds, Option<MultiLocation>> for CurrencyIdConvert {
+ fn convert(id: AssetIds) -> Option<MultiLocation> {
+ match id {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => Some(MultiLocation::new(
+ 1,
+ X1(Parachain(ParachainInfo::get().into())),
+ )),
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => Some(MultiLocation::parent()),
+ AssetIds::ForeignAssetId(foreign_asset_id) => {
+ XcmForeignAssetIdMapping::<Runtime>::get_multi_location(foreign_asset_id)
+ }
+ }
+ }
+}
+impl Convert<MultiLocation, Option<CurrencyId>> for CurrencyIdConvert {
+ fn convert(location: MultiLocation) -> Option<CurrencyId> {
+ if location == MultiLocation::here()
+ || location == MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())))
+ {
+ return Some(AssetIds::NativeAssetId(NativeCurrency::Here));
+ }
+
+ if location == MultiLocation::parent() {
+ return Some(AssetIds::NativeAssetId(NativeCurrency::Parent));
+ }
+
+ if let Some(currency_id) =
+ XcmForeignAssetIdMapping::<Runtime>::get_currency_id(location.clone())
+ {
+ return Some(currency_id);
+ }
+
+ None
+ }
+}
+
+pub fn get_all_module_accounts() -> Vec<AccountId> {
+ vec![TreasuryModuleId::get().into_account_truncating()]
+}
+
+pub struct DustRemovalWhitelist;
+impl Contains<AccountId> for DustRemovalWhitelist {
+ fn contains(a: &AccountId) -> bool {
+ get_all_module_accounts().contains(a)
+ }
+}
+
+parameter_type_with_key! {
+ pub ExistentialDeposits: |currency_id: CurrencyId| -> Balance {
+ match currency_id {
+ CurrencyId::NativeAssetId(symbol) => match symbol {
+ NativeCurrency::Here => 0,
+ NativeCurrency::Parent=> 0,
+ },
+ _ => 100_000
+ }
+ };
+}
+
+impl orml_tokens::Config for Runtime {
+ type Event = Event;
+ type Balance = Balance;
+ type Amount = Amount;
+ type CurrencyId = CurrencyId;
+ type WeightInfo = ();
+ type ExistentialDeposits = ExistentialDeposits;
+ type OnDust = orml_tokens::TransferDust<Runtime, TreasuryAccountId>;
+ type MaxLocks = MaxLocks;
+ type MaxReserves = MaxReserves;
+ // TODO: Add all module accounts
+ type DustRemovalWhitelist = DustRemovalWhitelist;
+ /// The id type for named reserves.
+ type ReserveIdentifier = ();
+ type OnNewTokenAccount = ();
+ type OnKilledTokenAccount = ();
+}
+
+parameter_types! {
+ pub const BaseXcmWeight: Weight = 100_000_000; // TODO: recheck this
+ pub const MaxAssetsForTransfer: usize = 2;
+}
+
+parameter_type_with_key! {
+ pub ParachainMinFee: |_location: MultiLocation| -> Option<u128> {
+ Some(100_000_000)
+ };
+}
+
+pub struct AccountIdToMultiLocation;
+impl Convert<AccountId, MultiLocation> for AccountIdToMultiLocation {
+ fn convert(account: AccountId) -> MultiLocation {
+ X1(AccountId32 {
+ network: NetworkId::Any,
+ id: account.into(),
+ })
+ .into()
+ }
+}
+
+impl orml_xtokens::Config for Runtime {
+ type Event = Event;
+ type Balance = Balance;
+ type CurrencyId = AssetIds;
+ type CurrencyIdConvert = CurrencyIdConvert;
+ type AccountIdToMultiLocation = AccountIdToMultiLocation;
+ type SelfLocation = SelfLocation;
+ type XcmExecutor = XcmExecutor<XcmConfig<Self>>;
+ type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
+ type BaseXcmWeight = BaseXcmWeight;
+ type LocationInverter = LocationInverter<Ancestry>;
+ type MaxAssetsForTransfer = MaxAssetsForTransfer;
+ type MinXcmFee = ParachainMinFee;
+ type MultiLocationsFilter = Everything;
+ type ReserveProvider = AbsoluteReserveProvider;
+}
runtime/quartz/Cargo.tomldiffbeforeafterboth--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -115,8 +115,15 @@
'xcm-builder/std',
'xcm-executor/std',
'up-common/std',
+ 'rmrk-rpc/std',
+ 'evm-coder/std',
+ 'up-sponsorship/std',
"orml-vesting/std",
+ "orml-tokens/std",
+ "orml-xtokens/std",
+ "orml-traits/std",
+ "pallet-foreing-assets/std"
]
limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
quartz-runtime = []
@@ -124,6 +131,7 @@
refungible = []
scheduler = []
rmrk = []
+foreign-assets = []
################################################################################
# Substrate Dependencies
@@ -396,6 +404,25 @@
version = "0.4.1-dev"
default-features = false
+[dependencies.orml-xtokens]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
+
+[dependencies.orml-tokens]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
+
+[dependencies.orml-traits]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
+
+
################################################################################
# RMRK dependencies
@@ -441,6 +468,7 @@
fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.27' }
+pallet-foreing-assets = { default-features = false, path = "../../pallets/foreing-assets" }
################################################################################
# Build Dependencies
runtime/quartz/src/lib.rsdiffbeforeafterboth--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -35,6 +35,8 @@
#[path = "../../common/mod.rs"]
mod runtime_common;
+pub mod xcm_config;
+
pub use runtime_common::*;
pub const RUNTIME_NAME: &str = "quartz";
runtime/quartz/src/xcm_config.rsdiffbeforeafterboth--- /dev/null
+++ b/runtime/quartz/src/xcm_config.rs
@@ -0,0 +1,294 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+use cumulus_pallet_xcm;
+use frame_support::{
+ {match_types, parameter_types, weights::Weight},
+ pallet_prelude::Get,
+ traits::{Contains, Everything, fungibles},
+};
+use frame_system::EnsureRoot;
+use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key};
+use pallet_xcm::XcmPassthrough;
+use polkadot_parachain::primitives::Sibling;
+use sp_runtime::traits::{AccountIdConversion, CheckedConversion, Convert, Zero};
+use sp_std::{borrow::Borrow, marker::PhantomData, vec, vec::Vec};
+use xcm::{
+ latest::{MultiAsset, Xcm},
+ prelude::{Concrete, Fungible as XcmFungible},
+ v1::{BodyId, Junction::*, Junctions::*, MultiLocation, NetworkId},
+};
+use xcm_builder::{
+ AllowKnownQueryResponses, AllowSubscriptionsFrom,
+ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom,
+ EnsureXcmOrigin, FixedWeightBounds, FungiblesAdapter, LocationInverter, ParentAsSuperuser,
+ ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia,
+ SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit,
+ ConvertedConcreteAssetId,
+};
+use xcm_executor::{
+ {Config, XcmExecutor},
+ traits::{Convert as ConvertXcm, FilterAssetLocation, JustTry, MatchesFungible, ShouldExecute},
+};
+
+use up_common::{
+ constants::{MAXIMUM_BLOCK_WEIGHT, UNIQUE},
+ types::{AccountId, Balance},
+};
+use pallet_foreing_assets::{
+ AssetIds, AssetIdMapping, XcmForeignAssetIdMapping, CurrencyId, NativeCurrency,
+ FreeForAll, TryAsForeing, ForeignAssetId,
+};
+use crate::{
+ Balances, Call, DmpQueue, Event, Origin, ParachainInfo,
+ ParachainSystem, PolkadotXcm, Runtime, XcmpQueue,
+};
+use crate::runtime_common::config::substrate::{TreasuryModuleId, MaxLocks, MaxReserves};
+use crate::runtime_common::config::pallets::TreasuryAccountId;
+use crate::runtime_common::config::xcm::*;
+use crate::*;
+use xcm::opaque::latest::prelude::{ DepositReserveAsset, DepositAsset, TransferAsset, TransferReserveAsset };
+
+// Signed version of balance
+pub type Amount = i128;
+
+match_types! {
+ pub type ParentOrParentsExecutivePlurality: impl Contains<MultiLocation> = {
+ MultiLocation { parents: 1, interior: Here } |
+ MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) }
+ };
+ pub type ParentOrSiblings: impl Contains<MultiLocation> = {
+ MultiLocation { parents: 1, interior: Here } |
+ MultiLocation { parents: 1, interior: X1(_) }
+ };
+}
+
+/// Deny executing the XCM if it matches any of the Deny filter regardless of anything else.
+/// If it passes the Deny, and matches one of the Allow cases then it is let through.
+pub struct DenyThenTry<Deny, Allow>(PhantomData<Deny>, PhantomData<Allow>)
+ where
+ Deny: ShouldExecute,
+ Allow: ShouldExecute;
+
+impl<Deny, Allow> ShouldExecute for DenyThenTry<Deny, Allow>
+ where
+ Deny: ShouldExecute,
+ Allow: ShouldExecute,
+{
+ fn should_execute<Call>(
+ origin: &MultiLocation,
+ message: &mut Xcm<Call>,
+ max_weight: Weight,
+ weight_credit: &mut Weight,
+ ) -> Result<(), ()> {
+ Deny::should_execute(origin, message, max_weight, weight_credit)?;
+ Allow::should_execute(origin, message, max_weight, weight_credit)
+ }
+}
+
+pub fn get_allowed_locations() -> Vec<MultiLocation> {
+ vec![
+ // Self location
+ MultiLocation { parents: 0, interior: Here },
+ // Parent location
+ MultiLocation { parents: 1, interior: Here },
+ // Karura/Acala location
+ MultiLocation { parents: 1, interior: X1(Parachain(2000)) },
+ // Moonriver location
+ MultiLocation { parents: 1, interior: X1(Parachain(2023)) },
+ // Self parachain address
+ MultiLocation { parents: 1, interior: X1(Parachain(ParachainInfo::get().into())) },
+ ]
+}
+
+// Allow xcm exchange only with locations in list
+pub struct DenyExchangeWithUnknownLocation;
+impl ShouldExecute for DenyExchangeWithUnknownLocation {
+ fn should_execute<Call>(
+ origin: &MultiLocation,
+ message: &mut Xcm<Call>,
+ _max_weight: Weight,
+ _weight_credit: &mut Weight,
+ ) -> Result<(), ()> {
+
+ // Check if deposit or transfer belongs to allowed parachains
+ let mut allowed = get_allowed_locations().contains(origin);
+
+ message.0.iter().for_each(|inst| {
+ match inst {
+ DepositReserveAsset { dest: dst, .. } => { allowed |= get_allowed_locations().contains(dst); }
+ TransferReserveAsset { dest: dst, .. } => { allowed |= get_allowed_locations().contains(dst); }
+ _ => {}
+ }
+ });
+
+ if allowed {
+ return Ok(());
+ }
+
+ log::warn!(
+ target: "xcm::barrier",
+ "Unexpected deposit or transfer location"
+ );
+ // Deny
+ Err(())
+ }
+}
+
+pub type Barrier = DenyThenTry<
+ DenyExchangeWithUnknownLocation,
+ (
+ TakeWeightCredit,
+ AllowTopLevelPaidExecutionFrom<Everything>,
+ // Parent and its exec plurality get free execution
+ AllowUnpaidExecutionFrom<ParentOrParentsExecutivePlurality>,
+ // Expected responses are OK.
+ AllowKnownQueryResponses<PolkadotXcm>,
+ // Subscriptions for version tracking are OK.
+ AllowSubscriptionsFrom<ParentOrSiblings>,
+ ),
+>;
+
+impl orml_tokens::Config for Runtime {
+ type Event = Event;
+ type Balance = Balance;
+ type Amount = Amount;
+ type CurrencyId = CurrencyId;
+ type WeightInfo = ();
+ type ExistentialDeposits = ExistentialDeposits;
+ type OnDust = orml_tokens::TransferDust<Runtime, TreasuryAccountId>;
+ type MaxLocks = MaxLocks;
+ type MaxReserves = MaxReserves;
+ // TODO: Add all module accounts
+ type DustRemovalWhitelist = DustRemovalWhitelist;
+ /// The id type for named reserves.
+ type ReserveIdentifier = ();
+ type OnNewTokenAccount = ();
+ type OnKilledTokenAccount = ();
+}
+
+/*
+impl orml_xtokens::Config for Runtime {
+ type Event = Event;
+ type Balance = Balance;
+ type CurrencyId = AssetIds;
+ type CurrencyIdConvert = CurrencyIdConvert;
+ type AccountIdToMultiLocation = AccountIdToMultiLocation;
+ type SelfLocation = SelfLocation;
+ type XcmExecutor = XcmExecutor<XcmConfig<Self>>;
+ type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
+ type BaseXcmWeight = BaseXcmWeight;
+ type LocationInverter = LocationInverter<Ancestry>;
+ type MaxAssetsForTransfer = MaxAssetsForTransfer;
+ type MinXcmFee = ParachainMinFee;
+ type MultiLocationsFilter = Everything;
+ type ReserveProvider = AbsoluteReserveProvider;
+}
+ */
+
+parameter_type_with_key! {
+ pub ExistentialDeposits: |currency_id: CurrencyId| -> Balance {
+ match currency_id {
+ CurrencyId::NativeAssetId(symbol) => match symbol {
+ NativeCurrency::Here => 0,
+ NativeCurrency::Parent=> 0,
+ },
+ _ => 100_000
+ }
+ };
+}
+
+pub struct DustRemovalWhitelist;
+impl Contains<AccountId> for DustRemovalWhitelist {
+ fn contains(a: &AccountId) -> bool {
+ get_all_module_accounts().contains(a)
+ }
+}
+
+/*
+pub struct CurrencyIdConvert;
+impl Convert<AssetIds, Option<MultiLocation>> for CurrencyIdConvert {
+ fn convert(id: AssetIds) -> Option<MultiLocation> {
+ match id {
+ AssetIds::NativeAssetId(NativeCurrency::Here) => Some(MultiLocation::new(
+ 1,
+ X1(Parachain(ParachainInfo::get().into())),
+ )),
+ AssetIds::NativeAssetId(NativeCurrency::Parent) => Some(MultiLocation::parent()),
+ AssetIds::ForeignAssetId(foreign_asset_id) => {
+ XcmForeignAssetIdMapping::<Runtime>::get_multi_location(foreign_asset_id)
+ }
+ }
+ }
+}
+impl Convert<MultiLocation, Option<CurrencyId>> for CurrencyIdConvert {
+ fn convert(location: MultiLocation) -> Option<CurrencyId> {
+ if location == MultiLocation::here()
+ || location == MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())))
+ {
+ return Some(AssetIds::NativeAssetId(NativeCurrency::Here));
+ }
+
+ if location == MultiLocation::parent() {
+ return Some(AssetIds::NativeAssetId(NativeCurrency::Parent));
+ }
+
+ if let Some(currency_id) =
+ XcmForeignAssetIdMapping::<Runtime>::get_currency_id(location.clone())
+ {
+ return Some(currency_id);
+ }
+
+ None
+ }
+}
+
+ */
+
+
+parameter_types! {
+ pub const BaseXcmWeight: Weight = 100_000_000; // TODO: recheck this
+ pub const MaxAssetsForTransfer: usize = 2;
+}
+
+parameter_types! {
+ pub const RelayLocation: MultiLocation = MultiLocation::parent();
+ pub const RelayNetwork: NetworkId = NetworkId::Polkadot;
+ pub RelayOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into();
+ pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into();
+ pub SelfLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into())));
+}
+
+parameter_type_with_key! {
+ pub ParachainMinFee: |_location: MultiLocation| -> Option<u128> {
+ Some(100_000_000)
+ };
+}
+
+pub fn get_all_module_accounts() -> Vec<AccountId> {
+ vec![TreasuryModuleId::get().into_account_truncating()]
+}
+
+pub struct AccountIdToMultiLocation;
+impl Convert<AccountId, MultiLocation> for AccountIdToMultiLocation {
+ fn convert(account: AccountId) -> MultiLocation {
+ X1(AccountId32 {
+ network: NetworkId::Any,
+ id: account.into(),
+ })
+ .into()
+ }
+}
runtime/unique/Cargo.tomldiffbeforeafterboth--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -116,8 +116,15 @@
'xcm-builder/std',
'xcm-executor/std',
'up-common/std',
+ 'rmrk-rpc/std',
+ 'evm-coder/std',
+ 'up-sponsorship/std',
"orml-vesting/std",
+ "orml-tokens/std",
+ "orml-xtokens/std",
+ "orml-traits/std",
+ "pallet-foreing-assets/std"
]
limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
unique-runtime = []
@@ -125,6 +132,7 @@
refungible = []
scheduler = []
rmrk = []
+foreign-assets = []
################################################################################
# Substrate Dependencies
@@ -397,6 +405,23 @@
version = "0.4.1-dev"
default-features = false
+[dependencies.orml-xtokens]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
+
+[dependencies.orml-tokens]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
+
+[dependencies.orml-traits]
+git = "https://github.com/open-web3-stack/open-runtime-module-library"
+branch = "polkadot-v0.9.27"
+version = "0.4.1-dev"
+default-features = false
################################################################################
# local dependencies
@@ -435,6 +460,7 @@
fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.27" }
evm-coder = { default-features = false, path = '../../crates/evm-coder' }
up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.27' }
+pallet-foreing-assets = { default-features = false, path = "../../pallets/foreing-assets" }
################################################################################
# Build Dependencies
runtime/unique/src/lib.rsdiffbeforeafterboth--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -35,6 +35,8 @@
#[path = "../../common/mod.rs"]
mod runtime_common;
+pub mod xcm_config;
+
pub use runtime_common::*;
pub const RUNTIME_NAME: &str = "unique";
runtime/unique/src/xcm_config.rsdiffbeforeafterboth--- /dev/null
+++ b/runtime/unique/src/xcm_config.rs
@@ -0,0 +1,226 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+use cumulus_pallet_xcm;
+use frame_support::{
+ {match_types, parameter_types, weights::Weight},
+ pallet_prelude::Get,
+ traits::{Contains, Everything, fungibles},
+};
+use frame_system::EnsureRoot;
+use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key};
+use pallet_xcm::XcmPassthrough;
+use polkadot_parachain::primitives::Sibling;
+use sp_runtime::traits::{AccountIdConversion, CheckedConversion, Convert, Zero};
+use sp_std::{borrow::Borrow, marker::PhantomData, vec, vec::Vec};
+use xcm::{
+ latest::{MultiAsset, Xcm},
+ prelude::{Concrete, Fungible as XcmFungible},
+ v1::{BodyId, Junction::*, Junctions::*, MultiLocation, NetworkId},
+};
+use xcm_builder::{
+ AllowKnownQueryResponses, AllowSubscriptionsFrom,
+ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom,
+ EnsureXcmOrigin, FixedWeightBounds, FungiblesAdapter, LocationInverter, ParentAsSuperuser,
+ ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia,
+ SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit,
+ ConvertedConcreteAssetId,
+};
+use xcm_executor::{
+ {Config, XcmExecutor},
+ traits::{Convert as ConvertXcm, FilterAssetLocation, JustTry, MatchesFungible, ShouldExecute},
+};
+
+use up_common::{
+ constants::{MAXIMUM_BLOCK_WEIGHT, UNIQUE},
+ types::{AccountId, Balance},
+};
+use pallet_foreing_assets::{
+ AssetIds, AssetIdMapping, XcmForeignAssetIdMapping, CurrencyId, NativeCurrency,
+ FreeForAll, TryAsForeing, ForeignAssetId,
+};
+use crate::{
+ Balances, Call, DmpQueue, Event, Origin, ParachainInfo,
+ ParachainSystem, PolkadotXcm, Runtime, XcmpQueue,
+};
+use crate::runtime_common::config::substrate::{TreasuryModuleId, MaxLocks, MaxReserves};
+use crate::runtime_common::config::pallets::TreasuryAccountId;
+use crate::runtime_common::config::xcm::*;
+use crate::*;
+use xcm::opaque::latest::prelude::{ DepositReserveAsset, DepositAsset, TransferAsset, TransferReserveAsset };
+
+// Signed version of balance
+pub type Amount = i128;
+
+
+pub type Barrier = DenyThenTry<
+ DenyExchangeWithUnknownLocation,
+ (
+ TakeWeightCredit,
+ AllowTopLevelPaidExecutionFrom<Everything>,
+ // Parent and its exec plurality get free execution
+ AllowUnpaidExecutionFrom<ParentOrParentsExecutivePlurality>,
+ // Expected responses are OK.
+ AllowKnownQueryResponses<PolkadotXcm>,
+ // Subscriptions for version tracking are OK.
+ AllowSubscriptionsFrom<ParentOrSiblings>,
+ ),
+>;
+
+pub fn get_allowed_locations() -> Vec<MultiLocation> {
+ vec![
+ // Self location
+ MultiLocation { parents: 0, interior: Here },
+ // Parent location
+ MultiLocation { parents: 1, interior: Here },
+ // Karura/Acala location
+ MultiLocation { parents: 1, interior: X1(Parachain(2000)) },
+ // Self parachain address
+ MultiLocation { parents: 1, interior: X1(Parachain(ParachainInfo::get().into())) },
+ ]
+}
+
+pub struct DenyThenTry<Deny, Allow>(PhantomData<Deny>, PhantomData<Allow>)
+ where
+ Deny: ShouldExecute,
+ Allow: ShouldExecute;
+
+impl<Deny, Allow> ShouldExecute for DenyThenTry<Deny, Allow>
+ where
+ Deny: ShouldExecute,
+ Allow: ShouldExecute,
+{
+ fn should_execute<Call>(
+ origin: &MultiLocation,
+ message: &mut Xcm<Call>,
+ max_weight: Weight,
+ weight_credit: &mut Weight,
+ ) -> Result<(), ()> {
+ Deny::should_execute(origin, message, max_weight, weight_credit)?;
+ Allow::should_execute(origin, message, max_weight, weight_credit)
+ }
+}
+
+// Allow xcm exchange only with locations in list
+pub struct DenyExchangeWithUnknownLocation;
+impl ShouldExecute for DenyExchangeWithUnknownLocation {
+ fn should_execute<Call>(
+ origin: &MultiLocation,
+ message: &mut Xcm<Call>,
+ _max_weight: Weight,
+ _weight_credit: &mut Weight,
+ ) -> Result<(), ()> {
+
+ // Check if deposit or transfer belongs to allowed parachains
+ let mut allowed = get_allowed_locations().contains(origin);
+
+ message.0.iter().for_each(|inst| {
+ match inst {
+ DepositReserveAsset { dest: dst, .. } => { allowed |= get_allowed_locations().contains(dst); }
+ TransferReserveAsset { dest: dst, .. } => { allowed |= get_allowed_locations().contains(dst); }
+ _ => {}
+ }
+ });
+
+ if allowed {
+ return Ok(());
+ }
+
+ log::warn!(
+ target: "xcm::barrier",
+ "Unexpected deposit or transfer location"
+ );
+ // Deny
+ Err(())
+ }
+}
+
+
+match_types! {
+ pub type ParentOrParentsExecutivePlurality: impl Contains<MultiLocation> = {
+ MultiLocation { parents: 1, interior: Here } |
+ MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) }
+ };
+ pub type ParentOrSiblings: impl Contains<MultiLocation> = {
+ MultiLocation { parents: 1, interior: Here } |
+ MultiLocation { parents: 1, interior: X1(_) }
+ };
+}
+
+pub fn get_all_module_accounts() -> Vec<AccountId> {
+ vec![TreasuryModuleId::get().into_account_truncating()]
+}
+
+pub struct DustRemovalWhitelist;
+impl Contains<AccountId> for DustRemovalWhitelist {
+ fn contains(a: &AccountId) -> bool {
+ get_all_module_accounts().contains(a)
+ }
+}
+
+parameter_type_with_key! {
+ pub ExistentialDeposits: |currency_id: CurrencyId| -> Balance {
+ match currency_id {
+ CurrencyId::NativeAssetId(symbol) => match symbol {
+ NativeCurrency::Here => 0,
+ NativeCurrency::Parent=> 0,
+ },
+ _ => 100_000
+ }
+ };
+}
+
+impl orml_tokens::Config for Runtime {
+ type Event = Event;
+ type Balance = Balance;
+ type Amount = Amount;
+ type CurrencyId = CurrencyId;
+ type WeightInfo = ();
+ type ExistentialDeposits = ExistentialDeposits;
+ type OnDust = orml_tokens::TransferDust<Runtime, TreasuryAccountId>;
+ type MaxLocks = MaxLocks;
+ type MaxReserves = MaxReserves;
+ // TODO: Add all module accounts
+ type DustRemovalWhitelist = DustRemovalWhitelist;
+ /// The id type for named reserves.
+ type ReserveIdentifier = ();
+ type OnNewTokenAccount = ();
+ type OnKilledTokenAccount = ();
+}
+
+
+parameter_types! {
+ pub const BaseXcmWeight: Weight = 100_000_000; // TODO: recheck this
+ pub const MaxAssetsForTransfer: usize = 2;
+}
+
+parameter_type_with_key! {
+ pub ParachainMinFee: |_location: MultiLocation| -> Option<u128> {
+ Some(100_000_000)
+ };
+}
+
+
+pub struct AccountIdToMultiLocation;
+impl Convert<AccountId, MultiLocation> for AccountIdToMultiLocation {
+ fn convert(account: AccountId) -> MultiLocation {
+ X1(AccountId32 {
+ network: NetworkId::Any,
+ id: account.into(),
+ })
+ .into()
+ }
+}
\ No newline at end of file
tests/package.jsondiffbeforeafterboth--- a/tests/package.json
+++ b/tests/package.json
@@ -74,7 +74,11 @@
"testInflation": "mocha --timeout 9999999 -r ts-node/register ./**/inflation.test.ts",
"testScheduler": "mocha --timeout 9999999 -r ts-node/register ./**/scheduler.test.ts",
"testSchedulingEVM": "mocha --timeout 9999999 -r ts-node/register ./**/eth/scheduling.test.ts",
- "testXcmTransfer": "mocha --timeout 9999999 -r ts-node/register ./**/xcmTransfer.test.ts",
+ "testXcmUnique": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmUnique.test.ts",
+ "testXcmTransfer": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransfer.test.ts",
+ "testXcmTransferAcala": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferAcala.test.ts acalaId=2000 uniqueId=5000",
+ "testXcmTransferStatemine": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferStatemine.test.ts statemineId=1000 uniqueId=5000",
+ "testXcmTransferMoonbeam": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferMoonbeam.test.ts moonbeamId=2000 uniqueId=5000",
"testPalletPresence": "mocha --timeout 9999999 -r ts-node/register ./**/pallet-presence.test.ts",
"testBlockProduction": "mocha --timeout 9999999 -r ts-node/register ./**/block-production.test.ts",
"testEnableDisableTransfers": "mocha --timeout 9999999 -r ts-node/register ./**/enableDisableTransfer.test.ts",
tests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth--- a/tests/src/eth/collectionAdmin.test.ts
+++ b/tests/src/eth/collectionAdmin.test.ts
@@ -15,7 +15,7 @@
import {expect} from 'chai';
import privateKey from '../substrate/privateKey';
-import { UNIQUE } from '../util/helpers';
+import {UNIQUE} from '../util/helpers';
import {
createEthAccount,
createEthAccountWithBalance,
tests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-consts.ts
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -1,20 +1,14 @@
// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
/* eslint-disable */
-// import type lookup before we augment - in some environments
-// this is required to allow for ambient/previous definitions
-import '@polkadot/api-base/types/consts';
-
-import type { ApiTypes, AugmentedConst } from '@polkadot/api-base/types';
+import type { ApiTypes } from '@polkadot/api-base/types';
import type { Option, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
import type { Codec } from '@polkadot/types-codec/types';
import type { Permill } from '@polkadot/types/interfaces/runtime';
-import type { FrameSupportPalletId, FrameSupportWeightsRuntimeDbWeight, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion } from '@polkadot/types/lookup';
-
-export type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;
+import type { FrameSupportPalletId, FrameSupportWeightsRuntimeDbWeight, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion, XcmV1MultiLocation } from '@polkadot/types/lookup';
declare module '@polkadot/api-base/types/consts' {
- interface AugmentedConsts<ApiType extends ApiTypes> {
+ export interface AugmentedConsts<ApiType extends ApiTypes> {
balances: {
/**
* The minimum amount required to keep an account open.
@@ -129,6 +123,17 @@
**/
[key: string]: Codec;
};
+ tokens: {
+ maxLocks: u32 & AugmentedConst<ApiType>;
+ /**
+ * The maximum number of named reserves that can exist on an account.
+ **/
+ maxReserves: u32 & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
transactionPayment: {
/**
* A fee mulitplier for `Operational` extrinsics to compute "virtual tip" to boost their
@@ -206,5 +211,22 @@
**/
[key: string]: Codec;
};
+ xTokens: {
+ /**
+ * Base XCM weight.
+ *
+ * The actually weight for an XCM message is `T::BaseXcmWeight +
+ * T::Weigher::weight(&msg)`.
+ **/
+ baseXcmWeight: u64 & AugmentedConst<ApiType>;
+ /**
+ * Self chain location.
+ **/
+ selfLocation: XcmV1MultiLocation & AugmentedConst<ApiType>;
+ /**
+ * Generic const
+ **/
+ [key: string]: Codec;
+ };
} // AugmentedConsts
} // declare module
tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -1,16 +1,10 @@
// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
/* eslint-disable */
-// import type lookup before we augment - in some environments
-// this is required to allow for ambient/previous definitions
-import '@polkadot/api-base/types/errors';
-
-import type { ApiTypes, AugmentedError } from '@polkadot/api-base/types';
-
-export type __AugmentedError<ApiType extends ApiTypes> = AugmentedError<ApiType>;
+import type { ApiTypes } from '@polkadot/api-base/types';
declare module '@polkadot/api-base/types/errors' {
- interface AugmentedErrors<ApiType extends ApiTypes> {
+ export interface AugmentedErrors<ApiType extends ApiTypes> {
balances: {
/**
* Beneficiary account must pre-exist
@@ -281,6 +275,29 @@
**/
[key: string]: AugmentedError<ApiType>;
};
+ foreingAssets: {
+ /**
+ * AssetId exists
+ **/
+ AssetIdExisted: AugmentedError<ApiType>;
+ /**
+ * AssetId not exists
+ **/
+ AssetIdNotExists: AugmentedError<ApiType>;
+ /**
+ * The given location could not be used (e.g. because it cannot be expressed in the
+ * desired version of XCM).
+ **/
+ BadLocation: AugmentedError<ApiType>;
+ /**
+ * MultiLocation existed
+ **/
+ MultiLocationExisted: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
fungible: {
/**
* Fungible token does not support nesting.
@@ -657,6 +674,41 @@
**/
[key: string]: AugmentedError<ApiType>;
};
+ tokens: {
+ /**
+ * Cannot convert Amount into Balance type
+ **/
+ AmountIntoBalanceFailed: AugmentedError<ApiType>;
+ /**
+ * The balance is too low
+ **/
+ BalanceTooLow: AugmentedError<ApiType>;
+ /**
+ * Beneficiary account must pre-exist
+ **/
+ DeadAccount: AugmentedError<ApiType>;
+ /**
+ * Value too low to create account due to existential deposit
+ **/
+ ExistentialDeposit: AugmentedError<ApiType>;
+ /**
+ * Transfer/payment would kill account
+ **/
+ KeepAlive: AugmentedError<ApiType>;
+ /**
+ * Failed because liquidity restrictions due to locking
+ **/
+ LiquidityRestrictions: AugmentedError<ApiType>;
+ /**
+ * Failed because the maximum locks was exceeded
+ **/
+ MaxLocksExceeded: AugmentedError<ApiType>;
+ TooManyReserves: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
treasury: {
/**
* The spend origin is valid but the amount it is allowed to spend is lower than the
@@ -762,5 +814,90 @@
**/
[key: string]: AugmentedError<ApiType>;
};
+ xTokens: {
+ /**
+ * Asset has no reserve location.
+ **/
+ AssetHasNoReserve: AugmentedError<ApiType>;
+ /**
+ * The specified index does not exist in a MultiAssets struct.
+ **/
+ AssetIndexNonExistent: AugmentedError<ApiType>;
+ /**
+ * The version of the `Versioned` value used is not able to be
+ * interpreted.
+ **/
+ BadVersion: AugmentedError<ApiType>;
+ /**
+ * Could not re-anchor the assets to declare the fees for the
+ * destination chain.
+ **/
+ CannotReanchor: AugmentedError<ApiType>;
+ /**
+ * The destination `MultiLocation` provided cannot be inverted.
+ **/
+ DestinationNotInvertible: AugmentedError<ApiType>;
+ /**
+ * We tried sending distinct asset and fee but they have different
+ * reserve chains.
+ **/
+ DistinctReserveForAssetAndFee: AugmentedError<ApiType>;
+ /**
+ * Fee is not enough.
+ **/
+ FeeNotEnough: AugmentedError<ApiType>;
+ /**
+ * Could not get ancestry of asset reserve location.
+ **/
+ InvalidAncestry: AugmentedError<ApiType>;
+ /**
+ * The MultiAsset is invalid.
+ **/
+ InvalidAsset: AugmentedError<ApiType>;
+ /**
+ * Invalid transfer destination.
+ **/
+ InvalidDest: AugmentedError<ApiType>;
+ /**
+ * MinXcmFee not registered for certain reserve location
+ **/
+ MinXcmFeeNotDefined: AugmentedError<ApiType>;
+ /**
+ * Not cross-chain transfer.
+ **/
+ NotCrossChainTransfer: AugmentedError<ApiType>;
+ /**
+ * Currency is not cross-chain transferable.
+ **/
+ NotCrossChainTransferableCurrency: AugmentedError<ApiType>;
+ /**
+ * Not supported MultiLocation
+ **/
+ NotSupportedMultiLocation: AugmentedError<ApiType>;
+ /**
+ * The number of assets to be sent is over the maximum.
+ **/
+ TooManyAssetsBeingSent: AugmentedError<ApiType>;
+ /**
+ * The message's weight could not be determined.
+ **/
+ UnweighableMessage: AugmentedError<ApiType>;
+ /**
+ * XCM execution failed.
+ **/
+ XcmExecutionFailed: AugmentedError<ApiType>;
+ /**
+ * The transfering asset amount is zero.
+ **/
+ ZeroAmount: AugmentedError<ApiType>;
+ /**
+ * The fee is zero.
+ **/
+ ZeroFee: AugmentedError<ApiType>;
+ /**
+ * Generic error
+ **/
+ [key: string]: AugmentedError<ApiType>;
+ };
} // AugmentedErrors
} // declare module
tests/src/interfaces/augment-api-events.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-events.ts
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -1,20 +1,14 @@
// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
/* eslint-disable */
-// import type lookup before we augment - in some environments
-// this is required to allow for ambient/previous definitions
-import '@polkadot/api-base/types/events';
-
-import type { ApiTypes, AugmentedEvent } from '@polkadot/api-base/types';
+import type { ApiTypes } from '@polkadot/api-base/types';
import type { Bytes, Null, Option, Result, U256, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';
import type { ITuple } from '@polkadot/types-codec/types';
import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';
-import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiLocation, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
-
-export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;
+import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchInfo, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeingAssetsAssetIds, PalletForeingAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetMultiAssets, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
declare module '@polkadot/api-base/types/events' {
- interface AugmentedEvents<ApiType extends ApiTypes> {
+ export interface AugmentedEvents<ApiType extends ApiTypes> {
balances: {
/**
* A balance was set by root.
@@ -208,6 +202,28 @@
**/
[key: string]: AugmentedEvent<ApiType>;
};
+ foreingAssets: {
+ /**
+ * The asset registered.
+ **/
+ AssetRegistered: AugmentedEvent<ApiType, [assetId: PalletForeingAssetsAssetIds, metadata: PalletForeingAssetsModuleAssetMetadata], { assetId: PalletForeingAssetsAssetIds, metadata: PalletForeingAssetsModuleAssetMetadata }>;
+ /**
+ * The asset updated.
+ **/
+ AssetUpdated: AugmentedEvent<ApiType, [assetId: PalletForeingAssetsAssetIds, metadata: PalletForeingAssetsModuleAssetMetadata], { assetId: PalletForeingAssetsAssetIds, metadata: PalletForeingAssetsModuleAssetMetadata }>;
+ /**
+ * The foreign asset registered.
+ **/
+ ForeignAssetRegistered: AugmentedEvent<ApiType, [assetId: u32, assetAddress: XcmV1MultiLocation, metadata: PalletForeingAssetsModuleAssetMetadata], { assetId: u32, assetAddress: XcmV1MultiLocation, metadata: PalletForeingAssetsModuleAssetMetadata }>;
+ /**
+ * The foreign asset updated.
+ **/
+ ForeignAssetUpdated: AugmentedEvent<ApiType, [assetId: u32, assetAddress: XcmV1MultiLocation, metadata: PalletForeingAssetsModuleAssetMetadata], { assetId: u32, assetAddress: XcmV1MultiLocation, metadata: PalletForeingAssetsModuleAssetMetadata }>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
parachainSystem: {
/**
* Downward messages were processed using the given weight.
@@ -469,6 +485,66 @@
**/
[key: string]: AugmentedEvent<ApiType>;
};
+ tokens: {
+ /**
+ * A balance was set by root.
+ **/
+ BalanceSet: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, who: AccountId32, free: u128, reserved: u128], { currencyId: PalletForeingAssetsAssetIds, who: AccountId32, free: u128, reserved: u128 }>;
+ /**
+ * Deposited some balance into an account
+ **/
+ Deposited: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128 }>;
+ /**
+ * An account was removed whose balance was non-zero but below
+ * ExistentialDeposit, resulting in an outright loss.
+ **/
+ DustLost: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128 }>;
+ /**
+ * An account was created with some free balance.
+ **/
+ Endowed: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128 }>;
+ /**
+ * Some locked funds were unlocked
+ **/
+ LockRemoved: AugmentedEvent<ApiType, [lockId: U8aFixed, currencyId: PalletForeingAssetsAssetIds, who: AccountId32], { lockId: U8aFixed, currencyId: PalletForeingAssetsAssetIds, who: AccountId32 }>;
+ /**
+ * Some funds are locked
+ **/
+ LockSet: AugmentedEvent<ApiType, [lockId: U8aFixed, currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128], { lockId: U8aFixed, currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128 }>;
+ /**
+ * Some balance was reserved (moved from free to reserved).
+ **/
+ Reserved: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128 }>;
+ /**
+ * Some reserved balance was repatriated (moved from reserved to
+ * another account).
+ **/
+ ReserveRepatriated: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, from: AccountId32, to: AccountId32, amount: u128, status: FrameSupportTokensMiscBalanceStatus], { currencyId: PalletForeingAssetsAssetIds, from: AccountId32, to: AccountId32, amount: u128, status: FrameSupportTokensMiscBalanceStatus }>;
+ /**
+ * Some balances were slashed (e.g. due to mis-behavior)
+ **/
+ Slashed: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, who: AccountId32, freeAmount: u128, reservedAmount: u128], { currencyId: PalletForeingAssetsAssetIds, who: AccountId32, freeAmount: u128, reservedAmount: u128 }>;
+ /**
+ * The total issuance of an currency has been set
+ **/
+ TotalIssuanceSet: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, amount: u128], { currencyId: PalletForeingAssetsAssetIds, amount: u128 }>;
+ /**
+ * Transfer succeeded.
+ **/
+ Transfer: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, from: AccountId32, to: AccountId32, amount: u128], { currencyId: PalletForeingAssetsAssetIds, from: AccountId32, to: AccountId32, amount: u128 }>;
+ /**
+ * Some balance was unreserved (moved from reserved to free).
+ **/
+ Unreserved: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128 }>;
+ /**
+ * Some balances were withdrawn (e.g. pay for transaction fee)
+ **/
+ Withdrawn: AugmentedEvent<ApiType, [currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128], { currencyId: PalletForeingAssetsAssetIds, who: AccountId32, amount: u128 }>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
transactionPayment: {
/**
* A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,
@@ -657,5 +733,15 @@
**/
[key: string]: AugmentedEvent<ApiType>;
};
+ xTokens: {
+ /**
+ * Transferred `MultiAsset` with fee.
+ **/
+ TransferredMultiAssets: AugmentedEvent<ApiType, [sender: AccountId32, assets: XcmV1MultiassetMultiAssets, fee: XcmV1MultiAsset, dest: XcmV1MultiLocation], { sender: AccountId32, assets: XcmV1MultiassetMultiAssets, fee: XcmV1MultiAsset, dest: XcmV1MultiLocation }>;
+ /**
+ * Generic event
+ **/
+ [key: string]: AugmentedEvent<ApiType>;
+ };
} // AugmentedEvents
} // declare module
tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -1,22 +1,15 @@
// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
/* eslint-disable */
-// import type lookup before we augment - in some environments
-// this is required to allow for ambient/previous definitions
-import '@polkadot/api-base/types/storage';
-
-import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@polkadot/api-base/types';
+import type { ApiTypes } from '@polkadot/api-base/types';
import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types-codec';
import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';
-import 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, UpDataStructsTokenChild } from '@polkadot/types/lookup';
+import 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, PalletForeingAssetsAssetIds, PalletForeingAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';
import type { Observable } from '@polkadot/types/types';
-
-export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;
-export type __QueryableStorageEntry<ApiType extends ApiTypes> = QueryableStorageEntry<ApiType>;
declare module '@polkadot/api-base/types/storage' {
- interface AugmentedQueries<ApiType extends ApiTypes> {
+ export interface AugmentedQueries<ApiType extends ApiTypes> {
balances: {
/**
* The Balances pallet example of storing the balance of an account.
@@ -213,6 +206,41 @@
**/
[key: string]: QueryableStorageEntry<ApiType>;
};
+ foreingAssets: {
+ /**
+ * The storages for assets to fungible collection binding
+ *
+ **/
+ assetBinding: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * The storages for AssetMetadatas.
+ *
+ * AssetMetadatas: map AssetIds => Option<AssetMetadata>
+ **/
+ assetMetadatas: AugmentedQuery<ApiType, (arg: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Option<PalletForeingAssetsModuleAssetMetadata>>, [PalletForeingAssetsAssetIds]> & QueryableStorageEntry<ApiType, [PalletForeingAssetsAssetIds]>;
+ /**
+ * The storages for MultiLocations.
+ *
+ * ForeignAssetLocations: map ForeignAssetId => Option<MultiLocation>
+ **/
+ foreignAssetLocations: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<XcmV1MultiLocation>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
+ * The storages for CurrencyIds.
+ *
+ * LocationToCurrencyIds: map MultiLocation => Option<ForeignAssetId>
+ **/
+ locationToCurrencyIds: AugmentedQuery<ApiType, (arg: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array) => Observable<Option<u32>>, [XcmV1MultiLocation]> & QueryableStorageEntry<ApiType, [XcmV1MultiLocation]>;
+ /**
+ * Next available Foreign AssetId ID.
+ *
+ * NextForeignAssetId: ForeignAssetId
+ **/
+ nextForeignAssetId: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
fungible: {
/**
* Storage for assets delegated to a limited extent to other users.
@@ -223,6 +251,10 @@
**/
balance: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => Observable<u128>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]> & QueryableStorageEntry<ApiType, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
/**
+ * Foreign collection flag
+ **/
+ foreignCollection: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<bool>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+ /**
* Total amount of fungible tokens inside a collection.
**/
totalSupply: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<u128>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
@@ -668,6 +700,34 @@
**/
[key: string]: QueryableStorageEntry<ApiType>;
};
+ tokens: {
+ /**
+ * The balance of a token type under an account.
+ *
+ * NOTE: If the total is ever zero, decrease account ref account.
+ *
+ * NOTE: This is only used in the case that this module is used to store
+ * balances.
+ **/
+ accounts: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<OrmlTokensAccountData>, [AccountId32, PalletForeingAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeingAssetsAssetIds]>;
+ /**
+ * Any liquidity locks of a token type under an account.
+ * NOTE: Should only be accessed when setting, changing and freeing a lock.
+ **/
+ locks: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Vec<OrmlTokensBalanceLock>>, [AccountId32, PalletForeingAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeingAssetsAssetIds]>;
+ /**
+ * Named reserves on some account balances.
+ **/
+ reserves: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<Vec<OrmlTokensReserveData>>, [AccountId32, PalletForeingAssetsAssetIds]> & QueryableStorageEntry<ApiType, [AccountId32, PalletForeingAssetsAssetIds]>;
+ /**
+ * The total issuance of a token type.
+ **/
+ totalIssuance: AugmentedQuery<ApiType, (arg: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array) => Observable<u128>, [PalletForeingAssetsAssetIds]> & QueryableStorageEntry<ApiType, [PalletForeingAssetsAssetIds]>;
+ /**
+ * Generic query
+ **/
+ [key: string]: QueryableStorageEntry<ApiType>;
+ };
transactionPayment: {
nextFeeMultiplier: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;
storageVersion: AugmentedQuery<ApiType, () => Observable<PalletTransactionPaymentReleases>, []> & QueryableStorageEntry<ApiType, []>;
tests/src/interfaces/augment-api-rpc.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-rpc.ts
+++ b/tests/src/interfaces/augment-api-rpc.ts
@@ -1,14 +1,10 @@
// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
/* eslint-disable */
-// import type lookup before we augment - in some environments
-// this is required to allow for ambient/previous definitions
-import '@polkadot/rpc-core/types/jsonrpc';
-
import type { PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsPartPartType, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenChild, UpDataStructsTokenData } from './default';
import type { AugmentedRpc } from '@polkadot/rpc-core/types';
import type { Metadata, StorageKey } from '@polkadot/types';
-import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, f64, u128, u32, u64 } from '@polkadot/types-codec';
+import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, u128, u32, u64 } from '@polkadot/types-codec';
import type { AnyNumber, Codec } from '@polkadot/types-codec/types';
import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';
import type { EpochAuthorship } from '@polkadot/types/interfaces/babe';
@@ -19,7 +15,7 @@
import type { CodeUploadRequest, CodeUploadResult, ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequest } from '@polkadot/types/interfaces/contracts';
import type { BlockStats } from '@polkadot/types/interfaces/dev';
import type { CreatedBlock } from '@polkadot/types/interfaces/engine';
-import type { EthAccount, EthCallRequest, EthFeeHistory, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@polkadot/types/interfaces/eth';
+import type { EthAccount, EthCallRequest, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@polkadot/types/interfaces/eth';
import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';
import type { EncodedFinalityProofs, JustificationNotification, ReportedRoundStates } from '@polkadot/types/interfaces/grandpa';
import type { MmrLeafBatchProof, MmrLeafProof } from '@polkadot/types/interfaces/mmr';
@@ -30,11 +26,9 @@
import type { MigrationStatusResult, ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state';
import type { ApplyExtrinsicResult, ChainProperties, ChainType, Health, NetworkState, NodeRole, PeerInfo, SyncState } from '@polkadot/types/interfaces/system';
import type { IExtrinsic, Observable } from '@polkadot/types/types';
-
-export type __AugmentedRpc = AugmentedRpc<() => unknown>;
declare module '@polkadot/rpc-core/types/jsonrpc' {
- interface RpcInterface {
+ export interface RpcInterface {
author: {
/**
* Returns true if the keystore has private keys for the given public key and key type.
@@ -63,11 +57,11 @@
/**
* Submit and subscribe to watch an extrinsic until unsubscribed
**/
- submitAndWatchExtrinsic: AugmentedRpc<(extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable<ExtrinsicStatus>>;
+ submitAndWatchExtrinsic: AugmentedRpc<(extrinsic: IExtrinsic) => Observable<ExtrinsicStatus>>;
/**
* Submit a fully formatted extrinsic for block inclusion
**/
- submitExtrinsic: AugmentedRpc<(extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable<Hash>>;
+ submitExtrinsic: AugmentedRpc<(extrinsic: IExtrinsic) => Observable<Hash>>;
};
babe: {
/**
@@ -205,10 +199,6 @@
**/
estimateGas: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>;
/**
- * Returns fee history for given block count & reward percentiles
- **/
- feeHistory: AugmentedRpc<(blockCount: U256 | AnyNumber | Uint8Array, newestBlock: BlockNumber | AnyNumber | Uint8Array, rewardPercentiles: Option<Vec<f64>> | null | Uint8Array | Vec<f64> | (f64)[]) => Observable<EthFeeHistory>>;
- /**
* Returns current gas price.
**/
gasPrice: AugmentedRpc<() => Observable<U256>>;
@@ -300,10 +290,6 @@
* Returns the number of hashes per second that the node is mining with.
**/
hashrate: AugmentedRpc<() => Observable<U256>>;
- /**
- * Returns max priority fee per gas
- **/
- maxPriorityFeePerGas: AugmentedRpc<() => Observable<U256>>;
/**
* Returns true if client is actively mining new blocks.
**/
@@ -463,7 +449,7 @@
/**
* Get Theme's keys values
**/
- themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | Uint8Array | Vec<Text> | (Text | string)[], at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsTheme>>>;
+ themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | object | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTraitsTheme>>>;
};
rpc: {
/**
@@ -551,7 +537,7 @@
/**
* Provides a way to trace the re-execution of a single block
**/
- traceBlock: AugmentedRpc<(block: Hash | string | Uint8Array, targets: Option<Text> | null | Uint8Array | Text | string, storageKeys: Option<Text> | null | Uint8Array | Text | string, methods: Option<Text> | null | Uint8Array | Text | string) => Observable<TraceBlockResponse>>;
+ traceBlock: AugmentedRpc<(block: Hash | string | Uint8Array, targets: Option<Text> | null | object | string | Uint8Array, storageKeys: Option<Text> | null | object | string | Uint8Array, methods: Option<Text> | null | object | string | Uint8Array) => Observable<TraceBlockResponse>>;
/**
* Check current migration state
**/
tests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -1,22 +1,14 @@
// Auto-generated via `yarn polkadot-types-from-chain`, do not edit
/* eslint-disable */
-// import type lookup before we augment - in some environments
-// this is required to allow for ambient/previous definitions
-import '@polkadot/api-base/types/submittable';
-
-import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@polkadot/api-base/types';
+import type { ApiTypes } from '@polkadot/api-base/types';
import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';
import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';
-import 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';
+import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeingAssetsAssetIds, PalletForeingAssetsModuleAssetMetadata, 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';
-export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;
-export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;
-export type __SubmittableExtrinsicFunction<ApiType extends ApiTypes> = SubmittableExtrinsicFunction<ApiType>;
-
declare module '@polkadot/api-base/types/submittable' {
- interface AugmentedSubmittables<ApiType extends ApiTypes> {
+ export interface AugmentedSubmittables<ApiType extends ApiTypes> {
balances: {
/**
* Exactly as `transfer`, except the origin must be root and the source account may be
@@ -113,8 +105,8 @@
[key: string]: SubmittableExtrinsicFunction<ApiType>;
};
configuration: {
- setMinGasPriceOverride: AugmentedSubmittable<(coeff: Option<u64> | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u64>]>;
- setWeightToFeeCoefficientOverride: AugmentedSubmittable<(coeff: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;
+ setMinGasPriceOverride: AugmentedSubmittable<(coeff: Option<u64> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u64>]>;
+ setWeightToFeeCoefficientOverride: AugmentedSubmittable<(coeff: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;
/**
* Generic tx
**/
@@ -161,16 +153,16 @@
/**
* Issue an EVM call operation. This is similar to a message call transaction in Ethereum.
**/
- call: AugmentedSubmittable<(source: H160 | string | Uint8Array, target: H160 | string | Uint8Array, input: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;
+ call: AugmentedSubmittable<(source: H160 | string | Uint8Array, target: H160 | string | Uint8Array, input: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;
/**
* Issue an EVM create operation. This is similar to a contract creation transaction in
* Ethereum.
**/
- create: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;
+ create: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;
/**
* Issue an EVM create2 operation.
**/
- create2: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, salt: H256 | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, H256, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;
+ create2: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, salt: H256 | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, H256, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;
/**
* Withdraw balance from EVM into currency/balances pallet.
**/
@@ -189,6 +181,14 @@
**/
[key: string]: SubmittableExtrinsicFunction<ApiType>;
};
+ foreingAssets: {
+ registerForeignAsset: AugmentedSubmittable<(owner: AccountId32 | string | Uint8Array, location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, metadata: PalletForeingAssetsModuleAssetMetadata | { name?: any; symbol?: any; decimals?: any; minimalBalance?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, XcmVersionedMultiLocation, PalletForeingAssetsModuleAssetMetadata]>;
+ updateForeignAsset: AugmentedSubmittable<(foreignAssetId: u32 | AnyNumber | Uint8Array, location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, metadata: PalletForeingAssetsModuleAssetMetadata | { name?: any; symbol?: any; decimals?: any; minimalBalance?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, XcmVersionedMultiLocation, PalletForeingAssetsModuleAssetMetadata]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
inflation: {
/**
* This method sets the inflation start date. Can be only called once.
@@ -252,7 +252,7 @@
* - `origin`: Must be Root.
* - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.
**/
- forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;
+ forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;
/**
* Ask a location to notify us regarding their XCM version and any changes to it.
*
@@ -509,7 +509,7 @@
* - `symbol`: UTF-8 string with token prefix, by which to represent the token in wallets and UIs.
* Analogous to Unique's [`token_prefix`](up_data_structs::Collection). Cannot be changed.
**/
- createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | Uint8Array | u32 | AnyNumber, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;
+ createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | object | string | Uint8Array, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;
/**
* Destroy a collection.
*
@@ -550,7 +550,7 @@
* - `transferable`: Can this NFT be transferred? Cannot be changed.
* - `resources`: Resource data to be added to the NFT immediately after minting.
**/
- mintNft: AugmentedSubmittable<(owner: Option<AccountId32> | null | Uint8Array | AccountId32 | string, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | Uint8Array | AccountId32 | string, royaltyAmount: Option<Permill> | null | Uint8Array | Permill | AnyNumber, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | Uint8Array | Vec<RmrkTraitsResourceResourceTypes> | (RmrkTraitsResourceResourceTypes | { Basic: any } | { Composable: any } | { Slot: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Option<AccountId32>, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;
+ mintNft: AugmentedSubmittable<(owner: Option<AccountId32> | null | object | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | object | string | Uint8Array, royaltyAmount: Option<Permill> | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<AccountId32>, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;
/**
* Reject an NFT sent from another account to self or owned NFT.
* The NFT in question will not be sent back and burnt instead.
@@ -636,7 +636,7 @@
* - `key`: Key of the custom property to be referenced by.
* - `value`: Value of the custom property to be stored.
**/
- setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;
+ setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;
/**
* Generic tx
**/
@@ -706,7 +706,7 @@
/**
* Schedule a named task.
**/
- scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;
+ scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;
/**
* Schedule a named task after a delay.
*
@@ -714,7 +714,7 @@
* Same as [`schedule_named`](Self::schedule_named).
* # </weight>
**/
- scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;
+ scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;
/**
* Generic tx
**/
@@ -878,6 +878,87 @@
**/
[key: string]: SubmittableExtrinsicFunction<ApiType>;
};
+ tokens: {
+ /**
+ * Exactly as `transfer`, except the origin must be root and the source
+ * account may be specified.
+ *
+ * The dispatch origin for this call must be _Root_.
+ *
+ * - `source`: The sender of the transfer.
+ * - `dest`: The recipient of the transfer.
+ * - `currency_id`: currency type.
+ * - `amount`: free balance amount to tranfer.
+ **/
+ 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: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, PalletForeingAssetsAssetIds, Compact<u128>]>;
+ /**
+ * Set the balances of a given account.
+ *
+ * This will alter `FreeBalance` and `ReservedBalance` in storage. it
+ * will also decrease the total issuance of the system
+ * (`TotalIssuance`). If the new free or reserved balance is below the
+ * existential deposit, it will reap the `AccountInfo`.
+ *
+ * The dispatch origin for this call is `root`.
+ **/
+ setBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, newFree: Compact<u128> | AnyNumber | Uint8Array, newReserved: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletForeingAssetsAssetIds, Compact<u128>, Compact<u128>]>;
+ /**
+ * Transfer some liquid free balance to another account.
+ *
+ * `transfer` will set the `FreeBalance` of the sender and receiver.
+ * It will decrease the total issuance of the system by the
+ * `TransferFee`. If the sender's account is below the existential
+ * deposit as a result of the transfer, the account will be reaped.
+ *
+ * The dispatch origin for this call must be `Signed` by the
+ * transactor.
+ *
+ * - `dest`: The recipient of the transfer.
+ * - `currency_id`: currency type.
+ * - `amount`: free balance amount to tranfer.
+ **/
+ transfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletForeingAssetsAssetIds, Compact<u128>]>;
+ /**
+ * Transfer all remaining balance to the given account.
+ *
+ * NOTE: This function only attempts to transfer _transferable_
+ * balances. This means that any locked, reserved, or existential
+ * deposits (when `keep_alive` is `true`), will not be transferred by
+ * this function. To ensure that this function results in a killed
+ * account, you might need to prepare the account by removing any
+ * reference counters, storage deposits, etc...
+ *
+ * The dispatch origin for this call must be `Signed` by the
+ * transactor.
+ *
+ * - `dest`: The recipient of the transfer.
+ * - `currency_id`: currency type.
+ * - `keep_alive`: A boolean to determine if the `transfer_all`
+ * operation should send all of the funds the account has, causing
+ * the sender account to be killed (false), or transfer everything
+ * except at least the existential deposit, which will guarantee to
+ * keep the sender account alive (true).
+ **/
+ transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletForeingAssetsAssetIds, bool]>;
+ /**
+ * Same as the [`transfer`] call, but with a check that the transfer
+ * will not kill the origin account.
+ *
+ * 99% of the time you want [`transfer`] instead.
+ *
+ * The dispatch origin for this call must be `Signed` by the
+ * transactor.
+ *
+ * - `dest`: The recipient of the transfer.
+ * - `currency_id`: currency type.
+ * - `amount`: free balance amount to tranfer.
+ **/
+ transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, currencyId: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, PalletForeingAssetsAssetIds, Compact<u128>]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
treasury: {
/**
* Approve a proposal. At a later time, the proposal will be allocated to the beneficiary
@@ -1538,5 +1619,125 @@
**/
[key: string]: SubmittableExtrinsicFunction<ApiType>;
};
+ xTokens: {
+ /**
+ * Transfer native currencies.
+ *
+ * `dest_weight` is the weight for XCM execution on the dest chain, and
+ * it would be charged from the transferred assets. If set below
+ * requirements, the execution may fail and assets wouldn't be
+ * received.
+ *
+ * It's a no-op if any error on local XCM execution or message sending.
+ * Note sending assets out per se doesn't guarantee they would be
+ * received. Receiving depends on if the XCM message could be delivered
+ * by the network, and if the receiving chain would handle
+ * messages correctly.
+ **/
+ transfer: AugmentedSubmittable<(currencyId: PalletForeingAssetsAssetIds | { ForeignAssetId: any } | { NativeAssetId: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array, dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, destWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletForeingAssetsAssetIds, u128, XcmVersionedMultiLocation, u64]>;
+ /**
+ * Transfer `MultiAsset`.
+ *
+ * `dest_weight` is the weight for XCM execution on the dest chain, and
+ * it would be charged from the transferred assets. If set below
+ * requirements, the execution may fail and assets wouldn't be
+ * received.
+ *
+ * It's a no-op if any error on local XCM execution or message sending.
+ * Note sending assets out per se doesn't guarantee they would be
+ * received. Receiving depends on if the XCM message could be delivered
+ * by the network, and if the receiving chain would handle
+ * messages correctly.
+ **/
+ 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]>;
+ /**
+ * Transfer several `MultiAsset` specifying the item to be used as fee
+ *
+ * `dest_weight` is the weight for XCM execution on the dest chain, and
+ * it would be charged from the transferred assets. If set below
+ * requirements, the execution may fail and assets wouldn't be
+ * received.
+ *
+ * `fee_item` is index of the MultiAssets that we want to use for
+ * payment
+ *
+ * It's a no-op if any error on local XCM execution or message sending.
+ * Note sending assets out per se doesn't guarantee they would be
+ * received. Receiving depends on if the XCM message could be delivered
+ * by the network, and if the receiving chain would handle
+ * messages correctly.
+ **/
+ 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]>;
+ /**
+ * Transfer `MultiAsset` specifying the fee and amount as separate.
+ *
+ * `dest_weight` is the weight for XCM execution on the dest chain, and
+ * it would be charged from the transferred assets. If set below
+ * requirements, the execution may fail and assets wouldn't be
+ * received.
+ *
+ * `fee` is the multiasset to be spent to pay for execution in
+ * destination chain. Both fee and amount will be subtracted form the
+ * callers balance For now we only accept fee and asset having the same
+ * `MultiLocation` id.
+ *
+ * If `fee` is not high enough to cover for the execution costs in the
+ * destination chain, then the assets will be trapped in the
+ * destination chain
+ *
+ * It's a no-op if any error on local XCM execution or message sending.
+ * Note sending assets out per se doesn't guarantee they would be
+ * received. Receiving depends on if the XCM message could be delivered
+ * by the network, and if the receiving chain would handle
+ * messages correctly.
+ **/
+ 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]>;
+ /**
+ * Transfer several currencies specifying the item to be used as fee
+ *
+ * `dest_weight` is the weight for XCM execution on the dest chain, and
+ * it would be charged from the transferred assets. If set below
+ * requirements, the execution may fail and assets wouldn't be
+ * received.
+ *
+ * `fee_item` is index of the currencies tuple that we want to use for
+ * payment
+ *
+ * It's a no-op if any error on local XCM execution or message sending.
+ * Note sending assets out per se doesn't guarantee they would be
+ * received. Receiving depends on if the XCM message could be delivered
+ * by the network, and if the receiving chain would handle
+ * messages correctly.
+ **/
+ transferMulticurrencies: AugmentedSubmittable<(currencies: Vec<ITuple<[PalletForeingAssetsAssetIds, u128]>> | ([PalletForeingAssetsAssetIds | { 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<[PalletForeingAssetsAssetIds, u128]>>, u32, XcmVersionedMultiLocation, u64]>;
+ /**
+ * Transfer native currencies specifying the fee and amount as
+ * separate.
+ *
+ * `dest_weight` is the weight for XCM execution on the dest chain, and
+ * it would be charged from the transferred assets. If set below
+ * requirements, the execution may fail and assets wouldn't be
+ * received.
+ *
+ * `fee` is the amount to be spent to pay for execution in destination
+ * chain. Both fee and amount will be subtracted form the callers
+ * balance.
+ *
+ * If `fee` is not high enough to cover for the execution costs in the
+ * destination chain, then the assets will be trapped in the
+ * destination chain
+ *
+ * It's a no-op if any error on local XCM execution or message sending.
+ * Note sending assets out per se doesn't guarantee they would be
+ * received. Receiving depends on if the XCM message could be delivered
+ * by the network, and if the receiving chain would handle
+ * messages correctly.
+ **/
+ transferWithFee: AugmentedSubmittable<(currencyId: PalletForeingAssetsAssetIds | { 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>, [PalletForeingAssetsAssetIds, u128, u128, XcmVersionedMultiLocation, u64]>;
+ /**
+ * Generic tx
+ **/
+ [key: string]: SubmittableExtrinsicFunction<ApiType>;
+ };
} // AugmentedSubmittables
} // declare module
tests/src/interfaces/augment-api.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-api.ts
+++ b/tests/src/interfaces/augment-api.ts
@@ -7,4 +7,3 @@
import './augment-api-query';
import './augment-api-tx';
import './augment-api-rpc';
-import './augment-api-runtime';
tests/src/interfaces/augment-types.tsdiffbeforeafterboth--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -1,23 +1,17 @@
// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
/* eslint-disable */
-// import type lookup before we augment - in some environments
-// this is required to allow for ambient/previous definitions
-import '@polkadot/types/types/registry';
-
-import 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, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, 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, UpDataStructsSponsorshipState, 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';
+import 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, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeingAssetsAssetIds, PalletForeingAssetsModuleAssetMetadata, PalletForeingAssetsModuleCall, PalletForeingAssetsModuleError, PalletForeingAssetsModuleEvent, PalletForeingAssetsNativeCurrency, 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, UpDataStructsSponsorshipState, 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';
import type { Data, StorageKey } from '@polkadot/types';
-import 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';
+import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';
import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
import type { BlockAttestations, IncludedBlocks, MoreAttestations } from '@polkadot/types/interfaces/attestations';
import type { RawAuraPreDigest } from '@polkadot/types/interfaces/aura';
import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author';
import type { UncleEntryItem } from '@polkadot/types/interfaces/authorship';
-import type { AllowedSlots, BabeAuthorityWeight, BabeBlockWeight, BabeEpochConfiguration, BabeEquivocationProof, BabeGenesisConfiguration, BabeGenesisConfigurationV1, BabeWeight, Epoch, EpochAuthorship, MaybeRandomness, MaybeVrf, NextConfigDescriptor, NextConfigDescriptorV1, OpaqueKeyOwnershipProof, Randomness, RawBabePreDigest, RawBabePreDigestCompat, RawBabePreDigestPrimary, RawBabePreDigestPrimaryTo159, RawBabePreDigestSecondaryPlain, RawBabePreDigestSecondaryTo159, RawBabePreDigestSecondaryVRF, RawBabePreDigestTo159, SlotNumber, VrfData, VrfOutput, VrfProof } from '@polkadot/types/interfaces/babe';
+import type { AllowedSlots, BabeAuthorityWeight, BabeBlockWeight, BabeEpochConfiguration, BabeEquivocationProof, BabeWeight, EpochAuthorship, MaybeRandomness, MaybeVrf, NextConfigDescriptor, NextConfigDescriptorV1, Randomness, RawBabePreDigest, RawBabePreDigestCompat, RawBabePreDigestPrimary, RawBabePreDigestPrimaryTo159, RawBabePreDigestSecondaryPlain, RawBabePreDigestSecondaryTo159, RawBabePreDigestSecondaryVRF, RawBabePreDigestTo159, SlotNumber, VrfData, VrfOutput, VrfProof } from '@polkadot/types/interfaces/babe';
import type { AccountData, BalanceLock, BalanceLockTo212, BalanceStatus, Reasons, ReserveData, ReserveIdentifier, VestingSchedule, WithdrawReasons } from '@polkadot/types/interfaces/balances';
-import type { BeefyAuthoritySet, BeefyCommitment, BeefyId, BeefyNextAuthoritySet, BeefyPayload, BeefyPayloadId, BeefySignedCommitment, MmrRootHash, ValidatorSet, ValidatorSetId } from '@polkadot/types/interfaces/beefy';
-import type { BenchmarkBatch, BenchmarkConfig, BenchmarkList, BenchmarkMetadata, BenchmarkParameter, BenchmarkResult } from '@polkadot/types/interfaces/benchmark';
-import type { CheckInherentsResult, InherentData, InherentIdentifier } from '@polkadot/types/interfaces/blockbuilder';
+import type { BeefyCommitment, BeefyId, BeefyNextAuthoritySet, BeefyPayload, BeefySignedCommitment, MmrRootHash, ValidatorSetId } from '@polkadot/types/interfaces/beefy';
import type { BridgeMessageId, BridgedBlockHash, BridgedBlockNumber, BridgedHeader, CallOrigin, ChainId, DeliveredMessages, DispatchFeePayment, InboundLaneData, InboundRelayer, InitializationData, LaneId, MessageData, MessageKey, MessageNonce, MessagesDeliveryProofOf, MessagesProofOf, OperatingMode, OutboundLaneData, OutboundMessageFee, OutboundPayload, Parameter, RelayerId, UnrewardedRelayer, UnrewardedRelayersState } from '@polkadot/types/interfaces/bridges';
import type { BlockHash } from '@polkadot/types/interfaces/chain';
import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';
@@ -27,13 +21,13 @@
import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';
import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';
import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan';
-import type { CollationInfo, CollationInfoV1, ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';
+import type { ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';
import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@polkadot/types/interfaces/democracy';
import type { BlockStats } from '@polkadot/types/interfaces/dev';
import type { ApprovalFlag, DefunctVoter, Renouncing, SetIndex, Vote, VoteIndex, VoteThreshold, VoterInfo } from '@polkadot/types/interfaces/elections';
import type { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine';
-import type { BlockV0, BlockV1, BlockV2, EIP1559Transaction, EIP2930Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthBlock, EthBloom, EthCallRequest, EthFeeHistory, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLog, EthReceipt, EthReceiptV0, EthReceiptV3, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2 } from '@polkadot/types/interfaces/eth';
-import type { EvmAccount, EvmCallInfo, EvmCreateInfo, EvmLog, EvmVicinity, ExitError, ExitFatal, ExitReason, ExitRevert, ExitSucceed } from '@polkadot/types/interfaces/evm';
+import type { BlockV0, BlockV1, BlockV2, EIP1559Transaction, EIP2930Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthBlock, EthBloom, EthCallRequest, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLog, EthReceipt, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2 } from '@polkadot/types/interfaces/eth';
+import type { EvmAccount, EvmLog, EvmVicinity, ExitError, ExitFatal, ExitReason, ExitRevert, ExitSucceed } from '@polkadot/types/interfaces/evm';
import type { AnySignature, EcdsaSignature, Ed25519Signature, Era, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, ExtrinsicSignature, ExtrinsicSignatureV4, ExtrinsicUnknown, ExtrinsicV4, ImmortalEra, MortalEra, MultiSignature, Signature, SignerPayload, Sr25519Signature } from '@polkadot/types/interfaces/extrinsics';
import type { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV1 } from '@polkadot/types/interfaces/genericAsset';
import type { ActiveGilt, ActiveGiltsTotal, ActiveIndex, GiltBid } from '@polkadot/types/interfaces/gilt';
@@ -41,37 +35,35 @@
import type { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityInfoTo198, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement, RegistrationTo198 } from '@polkadot/types/interfaces/identity';
import type { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline';
import type { CallIndex, LotteryConfig } from '@polkadot/types/interfaces/lottery';
-import type { ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV14, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV14, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, ExtrinsicMetadataV14, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV14, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV14, FunctionMetadataV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV9, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, OpaqueMetadata, PalletCallMetadataLatest, PalletCallMetadataV14, PalletConstantMetadataLatest, PalletConstantMetadataV14, PalletErrorMetadataLatest, PalletErrorMetadataV14, PalletEventMetadataLatest, PalletEventMetadataV14, PalletMetadataLatest, PalletMetadataV14, PalletStorageMetadataLatest, PalletStorageMetadataV14, PortableType, PortableTypeV14, SignedExtensionMetadataLatest, SignedExtensionMetadataV14, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV14, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV14, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV14, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV14, StorageHasherV9, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata';
-import type { MmrBatchProof, MmrEncodableOpaqueLeaf, MmrError, MmrLeafBatchProof, MmrLeafIndex, MmrLeafProof, MmrNodeIndex, MmrProof } from '@polkadot/types/interfaces/mmr';
-import type { NpApiError } from '@polkadot/types/interfaces/nompools';
+import type { ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV14, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV14, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, ExtrinsicMetadataV14, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV14, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV14, FunctionMetadataV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV9, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, PalletCallMetadataLatest, PalletCallMetadataV14, PalletConstantMetadataLatest, PalletConstantMetadataV14, PalletErrorMetadataLatest, PalletErrorMetadataV14, PalletEventMetadataLatest, PalletEventMetadataV14, PalletMetadataLatest, PalletMetadataV14, PalletStorageMetadataLatest, PalletStorageMetadataV14, PortableType, PortableTypeV14, SignedExtensionMetadataLatest, SignedExtensionMetadataV14, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV14, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV14, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV14, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV14, StorageHasherV9, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata';
+import type { MmrLeafBatchProof, MmrLeafProof } from '@polkadot/types/interfaces/mmr';
import type { StorageKind } from '@polkadot/types/interfaces/offchain';
import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';
-import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateEvent, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, CoreState, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, GroupRotationInfo, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OccupiedCore, OccupiedCoreAssumption, OldV1SessionInfo, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, PvfCheckStatement, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, ScheduledCore, Scheduling, ScrapedOnChainVotes, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@polkadot/types/interfaces/parachains';
+import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, Scheduling, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@polkadot/types/interfaces/parachains';
import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
import type { Approvals } from '@polkadot/types/interfaces/poll';
import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy';
import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase';
import type { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery';
import type { RpcMethods } from '@polkadot/types/interfaces/rpc';
-import type { AccountId, AccountId20, AccountId32, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, CrateVersion, Digest, DigestItem, EncodedJustification, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, PalletId, PalletVersion, PalletsOrigin, Pays, PerU16, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Releases, RuntimeDbWeight, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, SlotDuration, StorageData, StorageInfo, StorageProof, TransactionInfo, TransactionLongevity, TransactionPriority, TransactionStorageProof, TransactionTag, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';
+import type { AccountId, AccountId20, AccountId32, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, CrateVersion, Digest, DigestItem, EncodedJustification, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, PalletId, PalletVersion, PalletsOrigin, Pays, PerU16, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Releases, RuntimeDbWeight, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, StorageData, StorageProof, TransactionInfo, TransactionPriority, TransactionStorageProof, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';
import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, Si1Field, Si1LookupTypeId, Si1Path, Si1Type, Si1TypeDef, Si1TypeDefArray, Si1TypeDefBitSequence, Si1TypeDefCompact, Si1TypeDefComposite, Si1TypeDefPrimitive, Si1TypeDefSequence, Si1TypeDefTuple, Si1TypeDefVariant, Si1TypeParameter, Si1Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@polkadot/types/interfaces/scaleInfo';
import type { Period, Priority, SchedulePeriod, SchedulePriority, Scheduled, ScheduledTo254, TaskAddress } from '@polkadot/types/interfaces/scheduler';
import type { BeefyKey, FullIdentification, IdentificationTuple, Keys, MembershipProof, SessionIndex, SessionKeys1, SessionKeys10, SessionKeys10B, SessionKeys2, SessionKeys3, SessionKeys4, SessionKeys5, SessionKeys6, SessionKeys6B, SessionKeys7, SessionKeys7B, SessionKeys8, SessionKeys8B, SessionKeys9, SessionKeys9B, ValidatorCount } from '@polkadot/types/interfaces/session';
import type { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatus } from '@polkadot/types/interfaces/society';
import type { ActiveEraInfo, CompactAssignments, CompactAssignmentsTo257, CompactAssignmentsTo265, CompactAssignmentsWith16, CompactAssignmentsWith24, CompactScore, CompactScoreCompact, ElectionCompute, ElectionPhase, ElectionResult, ElectionScore, ElectionSize, ElectionStatus, EraIndex, EraPoints, EraRewardPoints, EraRewards, Exposure, ExtendedBalance, Forcing, IndividualExposure, KeyType, MomentOf, Nominations, NominatorIndex, NominatorIndexCompact, OffchainAccuracy, OffchainAccuracyCompact, PhragmenScore, Points, RawSolution, RawSolutionTo265, RawSolutionWith16, RawSolutionWith24, ReadySolution, RewardDestination, RewardPoint, RoundSnapshot, SeatHolder, SignedSubmission, SignedSubmissionOf, SignedSubmissionTo276, SlashJournalEntry, SlashingSpans, SlashingSpansTo204, SolutionOrSnapshotSize, SolutionSupport, SolutionSupports, SpanIndex, SpanRecord, StakingLedger, StakingLedgerTo223, StakingLedgerTo240, SubmissionIndicesOf, Supports, UnappliedSlash, UnappliedSlashOther, UnlockChunk, ValidatorIndex, ValidatorIndexCompact, ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196, ValidatorPrefsWithBlocked, ValidatorPrefsWithCommission, VoteWeight, Voter } from '@polkadot/types/interfaces/staking';
-import type { ApiId, BlockTrace, BlockTraceEvent, BlockTraceEventData, BlockTraceSpan, KeyValueOption, MigrationStatusResult, ReadProof, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial, RuntimeVersionPre3, RuntimeVersionPre4, SpecVersion, StorageChangeSet, TraceBlockResponse, TraceError } from '@polkadot/types/interfaces/state';
+import type { ApiId, BlockTrace, BlockTraceEvent, BlockTraceEventData, BlockTraceSpan, KeyValueOption, MigrationStatusResult, ReadProof, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial, SpecVersion, StorageChangeSet, TraceBlockResponse, TraceError } from '@polkadot/types/interfaces/state';
import type { WeightToFeeCoefficient } from '@polkadot/types/interfaces/support';
-import type { AccountInfo, AccountInfoWithDualRefCount, AccountInfoWithProviders, AccountInfoWithRefCount, AccountInfoWithRefCountU8, AccountInfoWithTripleRefCount, ApplyExtrinsicResult, ApplyExtrinsicResultPre6, ArithmeticError, BlockLength, BlockWeights, ChainProperties, ChainType, ConsumedWeight, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorModulePre6, DispatchErrorModuleU8, DispatchErrorModuleU8a, DispatchErrorPre6, DispatchErrorPre6First, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchOutcomePre6, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, PerDispatchClassU32, PerDispatchClassWeight, PerDispatchClassWeightsPerClass, Phase, RawOrigin, RefCount, RefCountTo259, SyncState, SystemOrigin, TokenError, TransactionValidityError, TransactionalError, UnknownTransaction, WeightPerClass } from '@polkadot/types/interfaces/system';
+import type { AccountInfo, AccountInfoWithDualRefCount, AccountInfoWithProviders, AccountInfoWithRefCount, AccountInfoWithRefCountU8, AccountInfoWithTripleRefCount, ApplyExtrinsicResult, ArithmeticError, BlockLength, BlockWeights, ChainProperties, ChainType, ConsumedWeight, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorModuleU8, DispatchErrorModuleU8a, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, PerDispatchClassU32, PerDispatchClassWeight, PerDispatchClassWeightsPerClass, Phase, RawOrigin, RefCount, RefCountTo259, SyncState, SystemOrigin, TokenError, TransactionValidityError, TransactionalError, UnknownTransaction, WeightPerClass } from '@polkadot/types/interfaces/system';
import type { Bounty, BountyIndex, BountyStatus, BountyStatusActive, BountyStatusCuratorProposed, BountyStatusPendingPayout, OpenTip, OpenTipFinderTo225, OpenTipTip, OpenTipTo225, TreasuryProposal } from '@polkadot/types/interfaces/treasury';
import type { Multiplier } from '@polkadot/types/interfaces/txpayment';
-import type { TransactionSource, TransactionValidity, ValidTransaction } from '@polkadot/types/interfaces/txqueue';
import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques';
import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility';
import type { VestingInfo } from '@polkadot/types/interfaces/vesting';
import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, BodyId, BodyPart, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, InboundStatus, InstructionV2, InteriorMultiLocation, Junction, JunctionV0, JunctionV1, JunctionV2, Junctions, JunctionsV1, JunctionsV2, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, NetworkId, OriginKindV0, OriginKindV1, OriginKindV2, OutboundStatus, Outcome, QueryId, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV2Result, VersionMigrationStage, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmVersion, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm';
declare module '@polkadot/types/types/registry' {
- interface InterfaceTypes {
+ export interface InterfaceTypes {
AbridgedCandidateReceipt: AbridgedCandidateReceipt;
AbridgedHostConfiguration: AbridgedHostConfiguration;
AbridgedHrmpChannel: AbridgedHrmpChannel;
@@ -103,7 +95,6 @@
AnySignature: AnySignature;
ApiId: ApiId;
ApplyExtrinsicResult: ApplyExtrinsicResult;
- ApplyExtrinsicResultPre6: ApplyExtrinsicResultPre6;
ApprovalFlag: ApprovalFlag;
Approvals: Approvals;
ArithmeticError: ArithmeticError;
@@ -139,8 +130,6 @@
BabeBlockWeight: BabeBlockWeight;
BabeEpochConfiguration: BabeEpochConfiguration;
BabeEquivocationProof: BabeEquivocationProof;
- BabeGenesisConfiguration: BabeGenesisConfiguration;
- BabeGenesisConfigurationV1: BabeGenesisConfigurationV1;
BabeWeight: BabeWeight;
BackedCandidate: BackedCandidate;
Balance: Balance;
@@ -148,20 +137,12 @@
BalanceLockTo212: BalanceLockTo212;
BalanceOf: BalanceOf;
BalanceStatus: BalanceStatus;
- BeefyAuthoritySet: BeefyAuthoritySet;
BeefyCommitment: BeefyCommitment;
BeefyId: BeefyId;
BeefyKey: BeefyKey;
BeefyNextAuthoritySet: BeefyNextAuthoritySet;
BeefyPayload: BeefyPayload;
- BeefyPayloadId: BeefyPayloadId;
BeefySignedCommitment: BeefySignedCommitment;
- BenchmarkBatch: BenchmarkBatch;
- BenchmarkConfig: BenchmarkConfig;
- BenchmarkList: BenchmarkList;
- BenchmarkMetadata: BenchmarkMetadata;
- BenchmarkParameter: BenchmarkParameter;
- BenchmarkResult: BenchmarkResult;
Bid: Bid;
Bidder: Bidder;
BidKind: BidKind;
@@ -205,7 +186,6 @@
CallOrigin: CallOrigin;
CandidateCommitments: CandidateCommitments;
CandidateDescriptor: CandidateDescriptor;
- CandidateEvent: CandidateEvent;
CandidateHash: CandidateHash;
CandidateInfo: CandidateInfo;
CandidatePendingAvailability: CandidatePendingAvailability;
@@ -215,7 +195,6 @@
ChainType: ChainType;
ChangesTrieConfiguration: ChangesTrieConfiguration;
ChangesTrieSignal: ChangesTrieSignal;
- CheckInherentsResult: CheckInherentsResult;
ClassDetails: ClassDetails;
ClassId: ClassId;
ClassMetadata: ClassMetadata;
@@ -225,8 +204,6 @@
CodeUploadRequest: CodeUploadRequest;
CodeUploadResult: CodeUploadResult;
CodeUploadResultValue: CodeUploadResultValue;
- CollationInfo: CollationInfo;
- CollationInfoV1: CollationInfoV1;
CollatorId: CollatorId;
CollatorSignature: CollatorSignature;
CollectiveOrigin: CollectiveOrigin;
@@ -310,7 +287,6 @@
CoreAssignment: CoreAssignment;
CoreIndex: CoreIndex;
CoreOccupied: CoreOccupied;
- CoreState: CoreState;
CrateVersion: CrateVersion;
CreatedBlock: CreatedBlock;
CumulusPalletDmpQueueCall: CumulusPalletDmpQueueCall;
@@ -352,18 +328,14 @@
DispatchClass: DispatchClass;
DispatchError: DispatchError;
DispatchErrorModule: DispatchErrorModule;
- DispatchErrorModulePre6: DispatchErrorModulePre6;
DispatchErrorModuleU8: DispatchErrorModuleU8;
DispatchErrorModuleU8a: DispatchErrorModuleU8a;
- DispatchErrorPre6: DispatchErrorPre6;
- DispatchErrorPre6First: DispatchErrorPre6First;
DispatchErrorTo198: DispatchErrorTo198;
DispatchFeePayment: DispatchFeePayment;
DispatchInfo: DispatchInfo;
DispatchInfoTo190: DispatchInfoTo190;
DispatchInfoTo244: DispatchInfoTo244;
DispatchOutcome: DispatchOutcome;
- DispatchOutcomePre6: DispatchOutcomePre6;
DispatchResult: DispatchResult;
DispatchResultOf: DispatchResultOf;
DispatchResultTo198: DispatchResultTo198;
@@ -387,7 +359,6 @@
ElectionStatus: ElectionStatus;
EncodedFinalityProofs: EncodedFinalityProofs;
EncodedJustification: EncodedJustification;
- Epoch: Epoch;
EpochAuthorship: EpochAuthorship;
Era: Era;
EraIndex: EraIndex;
@@ -426,7 +397,6 @@
EthereumTransactionTransactionSignature: EthereumTransactionTransactionSignature;
EthereumTransactionTransactionV2: EthereumTransactionTransactionV2;
EthereumTypesHashH64: EthereumTypesHashH64;
- EthFeeHistory: EthFeeHistory;
EthFilter: EthFilter;
EthFilterAddress: EthFilterAddress;
EthFilterChanges: EthFilterChanges;
@@ -436,8 +406,6 @@
EthHeader: EthHeader;
EthLog: EthLog;
EthReceipt: EthReceipt;
- EthReceiptV0: EthReceiptV0;
- EthReceiptV3: EthReceiptV3;
EthRichBlock: EthRichBlock;
EthRichHeader: EthRichHeader;
EthStorageProof: EthStorageProof;
@@ -465,13 +433,11 @@
EventMetadataV9: EventMetadataV9;
EventRecord: EventRecord;
EvmAccount: EvmAccount;
- EvmCallInfo: EvmCallInfo;
EvmCoreErrorExitError: EvmCoreErrorExitError;
EvmCoreErrorExitFatal: EvmCoreErrorExitFatal;
EvmCoreErrorExitReason: EvmCoreErrorExitReason;
EvmCoreErrorExitRevert: EvmCoreErrorExitRevert;
EvmCoreErrorExitSucceed: EvmCoreErrorExitSucceed;
- EvmCreateInfo: EvmCreateInfo;
EvmLog: EvmLog;
EvmVicinity: EvmVicinity;
ExecReturnValue: ExecReturnValue;
@@ -500,10 +466,6 @@
ExtrinsicsWeight: ExtrinsicsWeight;
ExtrinsicUnknown: ExtrinsicUnknown;
ExtrinsicV4: ExtrinsicV4;
- f32: f32;
- F32: F32;
- f64: f64;
- F64: F64;
FeeDetails: FeeDetails;
Fixed128: Fixed128;
Fixed64: Fixed64;
@@ -575,7 +537,6 @@
GrandpaPrevote: GrandpaPrevote;
GrandpaSignedPrecommit: GrandpaSignedPrecommit;
GroupIndex: GroupIndex;
- GroupRotationInfo: GroupRotationInfo;
H1024: H1024;
H128: H128;
H160: H160;
@@ -632,8 +593,6 @@
Index: Index;
IndicesLookupSource: IndicesLookupSource;
IndividualExposure: IndividualExposure;
- InherentData: InherentData;
- InherentIdentifier: InherentIdentifier;
InitializationData: InitializationData;
InstanceDetails: InstanceDetails;
InstanceId: InstanceId;
@@ -704,14 +663,8 @@
MetadataV14: MetadataV14;
MetadataV9: MetadataV9;
MigrationStatusResult: MigrationStatusResult;
- MmrBatchProof: MmrBatchProof;
- MmrEncodableOpaqueLeaf: MmrEncodableOpaqueLeaf;
- MmrError: MmrError;
MmrLeafBatchProof: MmrLeafBatchProof;
- MmrLeafIndex: MmrLeafIndex;
MmrLeafProof: MmrLeafProof;
- MmrNodeIndex: MmrNodeIndex;
- MmrProof: MmrProof;
MmrRootHash: MmrRootHash;
ModuleConstantMetadataV10: ModuleConstantMetadataV10;
ModuleConstantMetadataV11: ModuleConstantMetadataV11;
@@ -761,20 +714,14 @@
NominatorIndex: NominatorIndex;
NominatorIndexCompact: NominatorIndexCompact;
NotConnectedPeer: NotConnectedPeer;
- NpApiError: NpApiError;
Null: Null;
- OccupiedCore: OccupiedCore;
- OccupiedCoreAssumption: OccupiedCoreAssumption;
OffchainAccuracy: OffchainAccuracy;
OffchainAccuracyCompact: OffchainAccuracyCompact;
OffenceDetails: OffenceDetails;
Offender: Offender;
- OldV1SessionInfo: OldV1SessionInfo;
OpalRuntimeOriginCaller: OpalRuntimeOriginCaller;
OpalRuntimeRuntime: OpalRuntimeRuntime;
OpaqueCall: OpaqueCall;
- OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof;
- OpaqueMetadata: OpaqueMetadata;
OpaqueMultiaddr: OpaqueMultiaddr;
OpaqueNetworkState: OpaqueNetworkState;
OpaquePeerId: OpaquePeerId;
@@ -790,10 +737,19 @@
OriginKindV0: OriginKindV0;
OriginKindV1: OriginKindV1;
OriginKindV2: OriginKindV2;
+ OrmlTokensAccountData: OrmlTokensAccountData;
+ OrmlTokensBalanceLock: OrmlTokensBalanceLock;
+ OrmlTokensModuleCall: OrmlTokensModuleCall;
+ OrmlTokensModuleError: OrmlTokensModuleError;
+ OrmlTokensModuleEvent: OrmlTokensModuleEvent;
+ OrmlTokensReserveData: OrmlTokensReserveData;
OrmlVestingModuleCall: OrmlVestingModuleCall;
OrmlVestingModuleError: OrmlVestingModuleError;
OrmlVestingModuleEvent: OrmlVestingModuleEvent;
OrmlVestingVestingSchedule: OrmlVestingVestingSchedule;
+ OrmlXtokensModuleCall: OrmlXtokensModuleCall;
+ OrmlXtokensModuleError: OrmlXtokensModuleError;
+ OrmlXtokensModuleEvent: OrmlXtokensModuleEvent;
OutboundHrmpMessage: OutboundHrmpMessage;
OutboundLaneData: OutboundLaneData;
OutboundMessageFee: OutboundMessageFee;
@@ -837,6 +793,12 @@
PalletEvmEvent: PalletEvmEvent;
PalletEvmMigrationCall: PalletEvmMigrationCall;
PalletEvmMigrationError: PalletEvmMigrationError;
+ PalletForeingAssetsAssetIds: PalletForeingAssetsAssetIds;
+ PalletForeingAssetsModuleAssetMetadata: PalletForeingAssetsModuleAssetMetadata;
+ PalletForeingAssetsModuleCall: PalletForeingAssetsModuleCall;
+ PalletForeingAssetsModuleError: PalletForeingAssetsModuleError;
+ PalletForeingAssetsModuleEvent: PalletForeingAssetsModuleEvent;
+ PalletForeingAssetsNativeCurrency: PalletForeingAssetsNativeCurrency;
PalletFungibleError: PalletFungibleError;
PalletId: PalletId;
PalletInflationCall: PalletInflationCall;
@@ -951,7 +913,6 @@
ProxyDefinition: ProxyDefinition;
ProxyState: ProxyState;
ProxyType: ProxyType;
- PvfCheckStatement: PvfCheckStatement;
QueryId: QueryId;
QueryStatus: QueryStatus;
QueueConfigData: QueueConfigData;
@@ -1040,11 +1001,8 @@
RuntimeVersion: RuntimeVersion;
RuntimeVersionApi: RuntimeVersionApi;
RuntimeVersionPartial: RuntimeVersionPartial;
- RuntimeVersionPre3: RuntimeVersionPre3;
- RuntimeVersionPre4: RuntimeVersionPre4;
Schedule: Schedule;
Scheduled: Scheduled;
- ScheduledCore: ScheduledCore;
ScheduledTo254: ScheduledTo254;
SchedulePeriod: SchedulePeriod;
SchedulePriority: SchedulePriority;
@@ -1052,7 +1010,6 @@
ScheduleTo258: ScheduleTo258;
ScheduleTo264: ScheduleTo264;
Scheduling: Scheduling;
- ScrapedOnChainVotes: ScrapedOnChainVotes;
Seal: Seal;
SealV0: SealV0;
SeatHolder: SeatHolder;
@@ -1141,7 +1098,6 @@
SlashingSpansTo204: SlashingSpansTo204;
SlashJournalEntry: SlashJournalEntry;
Slot: Slot;
- SlotDuration: SlotDuration;
SlotNumber: SlotNumber;
SlotRange: SlotRange;
SlotRange10: SlotRange10;
@@ -1204,7 +1160,6 @@
StorageHasherV13: StorageHasherV13;
StorageHasherV14: StorageHasherV14;
StorageHasherV9: StorageHasherV9;
- StorageInfo: StorageInfo;
StorageKey: StorageKey;
StorageKind: StorageKind;
StorageMetadataV10: StorageMetadataV10;
@@ -1234,15 +1189,11 @@
TraceError: TraceError;
TransactionalError: TransactionalError;
TransactionInfo: TransactionInfo;
- TransactionLongevity: TransactionLongevity;
TransactionPriority: TransactionPriority;
- TransactionSource: TransactionSource;
TransactionStorageProof: TransactionStorageProof;
- TransactionTag: TransactionTag;
TransactionV0: TransactionV0;
TransactionV1: TransactionV1;
TransactionV2: TransactionV2;
- TransactionValidity: TransactionValidity;
TransactionValidityError: TransactionValidityError;
TransientValidationData: TransientValidationData;
TreasuryProposal: TreasuryProposal;
@@ -1318,12 +1269,10 @@
ValidatorPrefsTo196: ValidatorPrefsTo196;
ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked;
ValidatorPrefsWithCommission: ValidatorPrefsWithCommission;
- ValidatorSet: ValidatorSet;
ValidatorSetId: ValidatorSetId;
ValidatorSignature: ValidatorSignature;
ValidDisputeStatementKind: ValidDisputeStatementKind;
ValidityAttestation: ValidityAttestation;
- ValidTransaction: ValidTransaction;
VecInboundHrmpMessage: VecInboundHrmpMessage;
VersionedMultiAsset: VersionedMultiAsset;
VersionedMultiAssets: VersionedMultiAssets;
@@ -1417,6 +1366,7 @@
XcmV2WeightLimit: XcmV2WeightLimit;
XcmV2Xcm: XcmV2Xcm;
XcmVersion: XcmVersion;
+ XcmVersionedMultiAsset: XcmVersionedMultiAsset;
XcmVersionedMultiAssets: XcmVersionedMultiAssets;
XcmVersionedMultiLocation: XcmVersionedMultiLocation;
XcmVersionedXcm: XcmVersionedXcm;
tests/src/interfaces/default/types.tsdiffbeforeafterboth--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -747,6 +747,163 @@
/** @name OpalRuntimeRuntime */
export interface OpalRuntimeRuntime extends Null {}
+/** @name OrmlTokensAccountData */
+export interface OrmlTokensAccountData extends Struct {
+ readonly free: u128;
+ readonly reserved: u128;
+ readonly frozen: u128;
+}
+
+/** @name OrmlTokensBalanceLock */
+export interface OrmlTokensBalanceLock extends Struct {
+ readonly id: U8aFixed;
+ readonly amount: u128;
+}
+
+/** @name OrmlTokensModuleCall */
+export interface OrmlTokensModuleCall extends Enum {
+ readonly isTransfer: boolean;
+ readonly asTransfer: {
+ readonly dest: MultiAddress;
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly amount: Compact<u128>;
+ } & Struct;
+ readonly isTransferAll: boolean;
+ readonly asTransferAll: {
+ readonly dest: MultiAddress;
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly keepAlive: bool;
+ } & Struct;
+ readonly isTransferKeepAlive: boolean;
+ readonly asTransferKeepAlive: {
+ readonly dest: MultiAddress;
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly amount: Compact<u128>;
+ } & Struct;
+ readonly isForceTransfer: boolean;
+ readonly asForceTransfer: {
+ readonly source: MultiAddress;
+ readonly dest: MultiAddress;
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly amount: Compact<u128>;
+ } & Struct;
+ readonly isSetBalance: boolean;
+ readonly asSetBalance: {
+ readonly who: MultiAddress;
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly newFree: Compact<u128>;
+ readonly newReserved: Compact<u128>;
+ } & Struct;
+ readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';
+}
+
+/** @name OrmlTokensModuleError */
+export interface OrmlTokensModuleError extends Enum {
+ readonly isBalanceTooLow: boolean;
+ readonly isAmountIntoBalanceFailed: boolean;
+ readonly isLiquidityRestrictions: boolean;
+ readonly isMaxLocksExceeded: boolean;
+ readonly isKeepAlive: boolean;
+ readonly isExistentialDeposit: boolean;
+ readonly isDeadAccount: boolean;
+ readonly isTooManyReserves: boolean;
+ readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';
+}
+
+/** @name OrmlTokensModuleEvent */
+export interface OrmlTokensModuleEvent extends Enum {
+ readonly isEndowed: boolean;
+ readonly asEndowed: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly amount: u128;
+ } & Struct;
+ readonly isDustLost: boolean;
+ readonly asDustLost: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly amount: u128;
+ } & Struct;
+ readonly isTransfer: boolean;
+ readonly asTransfer: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly from: AccountId32;
+ readonly to: AccountId32;
+ readonly amount: u128;
+ } & Struct;
+ readonly isReserved: boolean;
+ readonly asReserved: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly amount: u128;
+ } & Struct;
+ readonly isUnreserved: boolean;
+ readonly asUnreserved: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly amount: u128;
+ } & Struct;
+ readonly isReserveRepatriated: boolean;
+ readonly asReserveRepatriated: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly from: AccountId32;
+ readonly to: AccountId32;
+ readonly amount: u128;
+ readonly status: FrameSupportTokensMiscBalanceStatus;
+ } & Struct;
+ readonly isBalanceSet: boolean;
+ readonly asBalanceSet: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly free: u128;
+ readonly reserved: u128;
+ } & Struct;
+ readonly isTotalIssuanceSet: boolean;
+ readonly asTotalIssuanceSet: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly amount: u128;
+ } & Struct;
+ readonly isWithdrawn: boolean;
+ readonly asWithdrawn: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly amount: u128;
+ } & Struct;
+ readonly isSlashed: boolean;
+ readonly asSlashed: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly freeAmount: u128;
+ readonly reservedAmount: u128;
+ } & Struct;
+ readonly isDeposited: boolean;
+ readonly asDeposited: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly amount: u128;
+ } & Struct;
+ readonly isLockSet: boolean;
+ readonly asLockSet: {
+ readonly lockId: U8aFixed;
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ readonly amount: u128;
+ } & Struct;
+ readonly isLockRemoved: boolean;
+ readonly asLockRemoved: {
+ readonly lockId: U8aFixed;
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly who: AccountId32;
+ } & Struct;
+ readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'BalanceSet' | 'TotalIssuanceSet' | 'Withdrawn' | 'Slashed' | 'Deposited' | 'LockSet' | 'LockRemoved';
+}
+
+/** @name OrmlTokensReserveData */
+export interface OrmlTokensReserveData extends Struct {
+ readonly id: Null;
+ readonly amount: u128;
+}
+
/** @name OrmlVestingModuleCall */
export interface OrmlVestingModuleCall extends Enum {
readonly isClaim: boolean;
@@ -806,6 +963,89 @@
readonly perPeriod: Compact<u128>;
}
+/** @name OrmlXtokensModuleCall */
+export interface OrmlXtokensModuleCall extends Enum {
+ readonly isTransfer: boolean;
+ readonly asTransfer: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly amount: u128;
+ readonly dest: XcmVersionedMultiLocation;
+ readonly destWeight: u64;
+ } & Struct;
+ readonly isTransferMultiasset: boolean;
+ readonly asTransferMultiasset: {
+ readonly asset: XcmVersionedMultiAsset;
+ readonly dest: XcmVersionedMultiLocation;
+ readonly destWeight: u64;
+ } & Struct;
+ readonly isTransferWithFee: boolean;
+ readonly asTransferWithFee: {
+ readonly currencyId: PalletForeingAssetsAssetIds;
+ readonly amount: u128;
+ readonly fee: u128;
+ readonly dest: XcmVersionedMultiLocation;
+ readonly destWeight: u64;
+ } & Struct;
+ readonly isTransferMultiassetWithFee: boolean;
+ readonly asTransferMultiassetWithFee: {
+ readonly asset: XcmVersionedMultiAsset;
+ readonly fee: XcmVersionedMultiAsset;
+ readonly dest: XcmVersionedMultiLocation;
+ readonly destWeight: u64;
+ } & Struct;
+ readonly isTransferMulticurrencies: boolean;
+ readonly asTransferMulticurrencies: {
+ readonly currencies: Vec<ITuple<[PalletForeingAssetsAssetIds, u128]>>;
+ readonly feeItem: u32;
+ readonly dest: XcmVersionedMultiLocation;
+ readonly destWeight: u64;
+ } & Struct;
+ readonly isTransferMultiassets: boolean;
+ readonly asTransferMultiassets: {
+ readonly assets: XcmVersionedMultiAssets;
+ readonly feeItem: u32;
+ readonly dest: XcmVersionedMultiLocation;
+ readonly destWeight: u64;
+ } & Struct;
+ readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';
+}
+
+/** @name OrmlXtokensModuleError */
+export interface OrmlXtokensModuleError extends Enum {
+ readonly isAssetHasNoReserve: boolean;
+ readonly isNotCrossChainTransfer: boolean;
+ readonly isInvalidDest: boolean;
+ readonly isNotCrossChainTransferableCurrency: boolean;
+ readonly isUnweighableMessage: boolean;
+ readonly isXcmExecutionFailed: boolean;
+ readonly isCannotReanchor: boolean;
+ readonly isInvalidAncestry: boolean;
+ readonly isInvalidAsset: boolean;
+ readonly isDestinationNotInvertible: boolean;
+ readonly isBadVersion: boolean;
+ readonly isDistinctReserveForAssetAndFee: boolean;
+ readonly isZeroFee: boolean;
+ readonly isZeroAmount: boolean;
+ readonly isTooManyAssetsBeingSent: boolean;
+ readonly isAssetIndexNonExistent: boolean;
+ readonly isFeeNotEnough: boolean;
+ readonly isNotSupportedMultiLocation: boolean;
+ readonly isMinXcmFeeNotDefined: boolean;
+ readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';
+}
+
+/** @name OrmlXtokensModuleEvent */
+export interface OrmlXtokensModuleEvent extends Enum {
+ readonly isTransferredMultiAssets: boolean;
+ readonly asTransferredMultiAssets: {
+ readonly sender: AccountId32;
+ readonly assets: XcmV1MultiassetMultiAssets;
+ readonly fee: XcmV1MultiAsset;
+ readonly dest: XcmV1MultiLocation;
+ } & Struct;
+ readonly type: 'TransferredMultiAssets';
+}
+
/** @name PalletBalancesAccountData */
export interface PalletBalancesAccountData extends Struct {
readonly free: u128;
@@ -1194,6 +1434,83 @@
readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
}
+/** @name PalletForeingAssetsAssetIds */
+export interface PalletForeingAssetsAssetIds extends Enum {
+ readonly isForeignAssetId: boolean;
+ readonly asForeignAssetId: u32;
+ readonly isNativeAssetId: boolean;
+ readonly asNativeAssetId: PalletForeingAssetsNativeCurrency;
+ readonly type: 'ForeignAssetId' | 'NativeAssetId';
+}
+
+/** @name PalletForeingAssetsModuleAssetMetadata */
+export interface PalletForeingAssetsModuleAssetMetadata extends Struct {
+ readonly name: Bytes;
+ readonly symbol: Bytes;
+ readonly decimals: u8;
+ readonly minimalBalance: u128;
+}
+
+/** @name PalletForeingAssetsModuleCall */
+export interface PalletForeingAssetsModuleCall extends Enum {
+ readonly isRegisterForeignAsset: boolean;
+ readonly asRegisterForeignAsset: {
+ readonly owner: AccountId32;
+ readonly location: XcmVersionedMultiLocation;
+ readonly metadata: PalletForeingAssetsModuleAssetMetadata;
+ } & Struct;
+ readonly isUpdateForeignAsset: boolean;
+ readonly asUpdateForeignAsset: {
+ readonly foreignAssetId: u32;
+ readonly location: XcmVersionedMultiLocation;
+ readonly metadata: PalletForeingAssetsModuleAssetMetadata;
+ } & Struct;
+ readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';
+}
+
+/** @name PalletForeingAssetsModuleError */
+export interface PalletForeingAssetsModuleError extends Enum {
+ readonly isBadLocation: boolean;
+ readonly isMultiLocationExisted: boolean;
+ readonly isAssetIdNotExists: boolean;
+ readonly isAssetIdExisted: boolean;
+ readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';
+}
+
+/** @name PalletForeingAssetsModuleEvent */
+export interface PalletForeingAssetsModuleEvent extends Enum {
+ readonly isForeignAssetRegistered: boolean;
+ readonly asForeignAssetRegistered: {
+ readonly assetId: u32;
+ readonly assetAddress: XcmV1MultiLocation;
+ readonly metadata: PalletForeingAssetsModuleAssetMetadata;
+ } & Struct;
+ readonly isForeignAssetUpdated: boolean;
+ readonly asForeignAssetUpdated: {
+ readonly assetId: u32;
+ readonly assetAddress: XcmV1MultiLocation;
+ readonly metadata: PalletForeingAssetsModuleAssetMetadata;
+ } & Struct;
+ readonly isAssetRegistered: boolean;
+ readonly asAssetRegistered: {
+ readonly assetId: PalletForeingAssetsAssetIds;
+ readonly metadata: PalletForeingAssetsModuleAssetMetadata;
+ } & Struct;
+ readonly isAssetUpdated: boolean;
+ readonly asAssetUpdated: {
+ readonly assetId: PalletForeingAssetsAssetIds;
+ readonly metadata: PalletForeingAssetsModuleAssetMetadata;
+ } & Struct;
+ readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';
+}
+
+/** @name PalletForeingAssetsNativeCurrency */
+export interface PalletForeingAssetsNativeCurrency extends Enum {
+ readonly isHere: boolean;
+ readonly isParent: boolean;
+ readonly type: 'Here' | 'Parent';
+}
+
/** @name PalletFungibleError */
export interface PalletFungibleError extends Enum {
readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
@@ -3362,6 +3679,15 @@
/** @name XcmV2Xcm */
export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}
+/** @name XcmVersionedMultiAsset */
+export interface XcmVersionedMultiAsset extends Enum {
+ readonly isV0: boolean;
+ readonly asV0: XcmV0MultiAsset;
+ readonly isV1: boolean;
+ readonly asV1: XcmV1MultiAsset;
+ readonly type: 'V0' | 'V1';
+}
+
/** @name XcmVersionedMultiAssets */
export interface XcmVersionedMultiAssets extends Enum {
readonly isV0: boolean;
tests/src/interfaces/lookup.tsdiffbeforeafterboth--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -323,118 +323,47 @@
perPeriod: 'Compact<u128>'
},
/**
- * Lookup39: cumulus_pallet_xcmp_queue::pallet::Event<T>
+ * Lookup39: orml_xtokens::module::Event<T>
**/
- CumulusPalletXcmpQueueEvent: {
+ OrmlXtokensModuleEvent: {
_enum: {
- Success: {
- messageHash: 'Option<H256>',
- weight: 'u64',
- },
- Fail: {
- messageHash: 'Option<H256>',
- error: 'XcmV2TraitsError',
- weight: 'u64',
- },
- BadVersion: {
- messageHash: 'Option<H256>',
- },
- BadFormat: {
- messageHash: 'Option<H256>',
- },
- UpwardMessageSent: {
- messageHash: 'Option<H256>',
- },
- XcmpMessageSent: {
- messageHash: 'Option<H256>',
- },
- OverweightEnqueued: {
- sender: 'u32',
- sentAt: 'u32',
- index: 'u64',
- required: 'u64',
- },
- OverweightServiced: {
- index: 'u64',
- used: 'u64'
+ TransferredMultiAssets: {
+ sender: 'AccountId32',
+ assets: 'XcmV1MultiassetMultiAssets',
+ fee: 'XcmV1MultiAsset',
+ dest: 'XcmV1MultiLocation'
}
}
},
/**
- * Lookup41: xcm::v2::traits::Error
+ * Lookup40: xcm::v1::multiasset::MultiAssets
**/
- XcmV2TraitsError: {
- _enum: {
- Overflow: 'Null',
- Unimplemented: 'Null',
- UntrustedReserveLocation: 'Null',
- UntrustedTeleportLocation: 'Null',
- MultiLocationFull: 'Null',
- MultiLocationNotInvertible: 'Null',
- BadOrigin: 'Null',
- InvalidLocation: 'Null',
- AssetNotFound: 'Null',
- FailedToTransactAsset: 'Null',
- NotWithdrawable: 'Null',
- LocationCannotHold: 'Null',
- ExceedsMaxMessageSize: 'Null',
- DestinationUnsupported: 'Null',
- Transport: 'Null',
- Unroutable: 'Null',
- UnknownClaim: 'Null',
- FailedToDecode: 'Null',
- MaxWeightInvalid: 'Null',
- NotHoldingFees: 'Null',
- TooExpensive: 'Null',
- Trap: 'u64',
- UnhandledXcmVersion: 'Null',
- WeightLimitReached: 'u64',
- Barrier: 'Null',
- WeightNotComputable: 'Null'
- }
- },
+ XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',
/**
- * Lookup43: pallet_xcm::pallet::Event<T>
+ * Lookup42: xcm::v1::multiasset::MultiAsset
**/
- PalletXcmEvent: {
- _enum: {
- Attempted: 'XcmV2TraitsOutcome',
- Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',
- UnexpectedResponse: '(XcmV1MultiLocation,u64)',
- ResponseReady: '(u64,XcmV2Response)',
- Notified: '(u64,u8,u8)',
- NotifyOverweight: '(u64,u8,u8,u64,u64)',
- NotifyDispatchError: '(u64,u8,u8)',
- NotifyDecodeFailed: '(u64,u8,u8)',
- InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',
- InvalidResponderVersion: '(XcmV1MultiLocation,u64)',
- ResponseTaken: 'u64',
- AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',
- VersionChangeNotified: '(XcmV1MultiLocation,u32)',
- SupportedVersionChanged: '(XcmV1MultiLocation,u32)',
- NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',
- NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'
- }
+ XcmV1MultiAsset: {
+ id: 'XcmV1MultiassetAssetId',
+ fun: 'XcmV1MultiassetFungibility'
},
/**
- * Lookup44: xcm::v2::traits::Outcome
+ * Lookup43: xcm::v1::multiasset::AssetId
**/
- XcmV2TraitsOutcome: {
+ XcmV1MultiassetAssetId: {
_enum: {
- Complete: 'u64',
- Incomplete: '(u64,XcmV2TraitsError)',
- Error: 'XcmV2TraitsError'
+ Concrete: 'XcmV1MultiLocation',
+ Abstract: 'Bytes'
}
},
/**
- * Lookup45: xcm::v1::multilocation::MultiLocation
+ * Lookup44: xcm::v1::multilocation::MultiLocation
**/
XcmV1MultiLocation: {
parents: 'u8',
interior: 'XcmV1MultilocationJunctions'
},
/**
- * Lookup46: xcm::v1::multilocation::Junctions
+ * Lookup45: xcm::v1::multilocation::Junctions
**/
XcmV1MultilocationJunctions: {
_enum: {
@@ -450,7 +379,7 @@
}
},
/**
- * Lookup47: xcm::v1::junction::Junction
+ * Lookup46: xcm::v1::junction::Junction
**/
XcmV1Junction: {
_enum: {
@@ -478,7 +407,7 @@
}
},
/**
- * Lookup49: xcm::v0::junction::NetworkId
+ * Lookup48: xcm::v0::junction::NetworkId
**/
XcmV0JunctionNetworkId: {
_enum: {
@@ -489,7 +418,7 @@
}
},
/**
- * Lookup53: xcm::v0::junction::BodyId
+ * Lookup52: xcm::v0::junction::BodyId
**/
XcmV0JunctionBodyId: {
_enum: {
@@ -503,7 +432,7 @@
}
},
/**
- * Lookup54: xcm::v0::junction::BodyPart
+ * Lookup53: xcm::v0::junction::BodyPart
**/
XcmV0JunctionBodyPart: {
_enum: {
@@ -526,11 +455,230 @@
}
},
/**
- * Lookup55: xcm::v2::Xcm<Call>
+ * Lookup54: xcm::v1::multiasset::Fungibility
**/
+ XcmV1MultiassetFungibility: {
+ _enum: {
+ Fungible: 'Compact<u128>',
+ NonFungible: 'XcmV1MultiassetAssetInstance'
+ }
+ },
+ /**
+ * Lookup55: xcm::v1::multiasset::AssetInstance
+ **/
+ XcmV1MultiassetAssetInstance: {
+ _enum: {
+ Undefined: 'Null',
+ Index: 'Compact<u128>',
+ Array4: '[u8;4]',
+ Array8: '[u8;8]',
+ Array16: '[u8;16]',
+ Array32: '[u8;32]',
+ Blob: 'Bytes'
+ }
+ },
+ /**
+ * Lookup58: orml_tokens::module::Event<T>
+ **/
+ OrmlTokensModuleEvent: {
+ _enum: {
+ Endowed: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ amount: 'u128',
+ },
+ DustLost: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ amount: 'u128',
+ },
+ Transfer: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ from: 'AccountId32',
+ to: 'AccountId32',
+ amount: 'u128',
+ },
+ Reserved: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ amount: 'u128',
+ },
+ Unreserved: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ amount: 'u128',
+ },
+ ReserveRepatriated: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ from: 'AccountId32',
+ to: 'AccountId32',
+ amount: 'u128',
+ status: 'FrameSupportTokensMiscBalanceStatus',
+ },
+ BalanceSet: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ free: 'u128',
+ reserved: 'u128',
+ },
+ TotalIssuanceSet: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ amount: 'u128',
+ },
+ Withdrawn: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ amount: 'u128',
+ },
+ Slashed: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ freeAmount: 'u128',
+ reservedAmount: 'u128',
+ },
+ Deposited: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ amount: 'u128',
+ },
+ LockSet: {
+ lockId: '[u8;8]',
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32',
+ amount: 'u128',
+ },
+ LockRemoved: {
+ lockId: '[u8;8]',
+ currencyId: 'PalletForeingAssetsAssetIds',
+ who: 'AccountId32'
+ }
+ }
+ },
+ /**
+ * Lookup59: pallet_foreing_assets::AssetIds
+ **/
+ PalletForeingAssetsAssetIds: {
+ _enum: {
+ ForeignAssetId: 'u32',
+ NativeAssetId: 'PalletForeingAssetsNativeCurrency'
+ }
+ },
+ /**
+ * Lookup60: pallet_foreing_assets::NativeCurrency
+ **/
+ PalletForeingAssetsNativeCurrency: {
+ _enum: ['Here', 'Parent']
+ },
+ /**
+ * Lookup61: cumulus_pallet_xcmp_queue::pallet::Event<T>
+ **/
+ CumulusPalletXcmpQueueEvent: {
+ _enum: {
+ Success: {
+ messageHash: 'Option<H256>',
+ weight: 'u64',
+ },
+ Fail: {
+ messageHash: 'Option<H256>',
+ error: 'XcmV2TraitsError',
+ weight: 'u64',
+ },
+ BadVersion: {
+ messageHash: 'Option<H256>',
+ },
+ BadFormat: {
+ messageHash: 'Option<H256>',
+ },
+ UpwardMessageSent: {
+ messageHash: 'Option<H256>',
+ },
+ XcmpMessageSent: {
+ messageHash: 'Option<H256>',
+ },
+ OverweightEnqueued: {
+ sender: 'u32',
+ sentAt: 'u32',
+ index: 'u64',
+ required: 'u64',
+ },
+ OverweightServiced: {
+ index: 'u64',
+ used: 'u64'
+ }
+ }
+ },
+ /**
+ * Lookup63: xcm::v2::traits::Error
+ **/
+ XcmV2TraitsError: {
+ _enum: {
+ Overflow: 'Null',
+ Unimplemented: 'Null',
+ UntrustedReserveLocation: 'Null',
+ UntrustedTeleportLocation: 'Null',
+ MultiLocationFull: 'Null',
+ MultiLocationNotInvertible: 'Null',
+ BadOrigin: 'Null',
+ InvalidLocation: 'Null',
+ AssetNotFound: 'Null',
+ FailedToTransactAsset: 'Null',
+ NotWithdrawable: 'Null',
+ LocationCannotHold: 'Null',
+ ExceedsMaxMessageSize: 'Null',
+ DestinationUnsupported: 'Null',
+ Transport: 'Null',
+ Unroutable: 'Null',
+ UnknownClaim: 'Null',
+ FailedToDecode: 'Null',
+ MaxWeightInvalid: 'Null',
+ NotHoldingFees: 'Null',
+ TooExpensive: 'Null',
+ Trap: 'u64',
+ UnhandledXcmVersion: 'Null',
+ WeightLimitReached: 'u64',
+ Barrier: 'Null',
+ WeightNotComputable: 'Null'
+ }
+ },
+ /**
+ * Lookup65: pallet_xcm::pallet::Event<T>
+ **/
+ PalletXcmEvent: {
+ _enum: {
+ Attempted: 'XcmV2TraitsOutcome',
+ Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',
+ UnexpectedResponse: '(XcmV1MultiLocation,u64)',
+ ResponseReady: '(u64,XcmV2Response)',
+ Notified: '(u64,u8,u8)',
+ NotifyOverweight: '(u64,u8,u8,u64,u64)',
+ NotifyDispatchError: '(u64,u8,u8)',
+ NotifyDecodeFailed: '(u64,u8,u8)',
+ InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',
+ InvalidResponderVersion: '(XcmV1MultiLocation,u64)',
+ ResponseTaken: 'u64',
+ AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',
+ VersionChangeNotified: '(XcmV1MultiLocation,u32)',
+ SupportedVersionChanged: '(XcmV1MultiLocation,u32)',
+ NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',
+ NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)'
+ }
+ },
+ /**
+ * Lookup66: xcm::v2::traits::Outcome
+ **/
+ XcmV2TraitsOutcome: {
+ _enum: {
+ Complete: 'u64',
+ Incomplete: '(u64,XcmV2TraitsError)',
+ Error: 'XcmV2TraitsError'
+ }
+ },
+ /**
+ * Lookup67: xcm::v2::Xcm<Call>
+ **/
XcmV2Xcm: 'Vec<XcmV2Instruction>',
/**
- * Lookup57: xcm::v2::Instruction<Call>
+ * Lookup69: xcm::v2::Instruction<Call>
**/
XcmV2Instruction: {
_enum: {
@@ -628,50 +776,7 @@
}
},
/**
- * Lookup58: xcm::v1::multiasset::MultiAssets
- **/
- XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',
- /**
- * Lookup60: xcm::v1::multiasset::MultiAsset
- **/
- XcmV1MultiAsset: {
- id: 'XcmV1MultiassetAssetId',
- fun: 'XcmV1MultiassetFungibility'
- },
- /**
- * Lookup61: xcm::v1::multiasset::AssetId
- **/
- XcmV1MultiassetAssetId: {
- _enum: {
- Concrete: 'XcmV1MultiLocation',
- Abstract: 'Bytes'
- }
- },
- /**
- * Lookup62: xcm::v1::multiasset::Fungibility
- **/
- XcmV1MultiassetFungibility: {
- _enum: {
- Fungible: 'Compact<u128>',
- NonFungible: 'XcmV1MultiassetAssetInstance'
- }
- },
- /**
- * Lookup63: xcm::v1::multiasset::AssetInstance
- **/
- XcmV1MultiassetAssetInstance: {
- _enum: {
- Undefined: 'Null',
- Index: 'Compact<u128>',
- Array4: '[u8;4]',
- Array8: '[u8;8]',
- Array16: '[u8;16]',
- Array32: '[u8;32]',
- Blob: 'Bytes'
- }
- },
- /**
- * Lookup66: xcm::v2::Response
+ * Lookup70: xcm::v2::Response
**/
XcmV2Response: {
_enum: {
@@ -682,19 +787,19 @@
}
},
/**
- * Lookup69: xcm::v0::OriginKind
+ * Lookup73: xcm::v0::OriginKind
**/
XcmV0OriginKind: {
_enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']
},
/**
- * Lookup70: xcm::double_encoded::DoubleEncoded<T>
+ * Lookup74: xcm::double_encoded::DoubleEncoded<T>
**/
XcmDoubleEncoded: {
encoded: 'Bytes'
},
/**
- * Lookup71: xcm::v1::multiasset::MultiAssetFilter
+ * Lookup75: xcm::v1::multiasset::MultiAssetFilter
**/
XcmV1MultiassetMultiAssetFilter: {
_enum: {
@@ -703,7 +808,7 @@
}
},
/**
- * Lookup72: xcm::v1::multiasset::WildMultiAsset
+ * Lookup76: xcm::v1::multiasset::WildMultiAsset
**/
XcmV1MultiassetWildMultiAsset: {
_enum: {
@@ -715,13 +820,13 @@
}
},
/**
- * Lookup73: xcm::v1::multiasset::WildFungibility
+ * Lookup77: xcm::v1::multiasset::WildFungibility
**/
XcmV1MultiassetWildFungibility: {
_enum: ['Fungible', 'NonFungible']
},
/**
- * Lookup74: xcm::v2::WeightLimit
+ * Lookup78: xcm::v2::WeightLimit
**/
XcmV2WeightLimit: {
_enum: {
@@ -730,7 +835,7 @@
}
},
/**
- * Lookup76: xcm::VersionedMultiAssets
+ * Lookup80: xcm::VersionedMultiAssets
**/
XcmVersionedMultiAssets: {
_enum: {
@@ -739,7 +844,7 @@
}
},
/**
- * Lookup78: xcm::v0::multi_asset::MultiAsset
+ * Lookup82: xcm::v0::multi_asset::MultiAsset
**/
XcmV0MultiAsset: {
_enum: {
@@ -778,7 +883,7 @@
}
},
/**
- * Lookup79: xcm::v0::multi_location::MultiLocation
+ * Lookup83: xcm::v0::multi_location::MultiLocation
**/
XcmV0MultiLocation: {
_enum: {
@@ -794,7 +899,7 @@
}
},
/**
- * Lookup80: xcm::v0::junction::Junction
+ * Lookup84: xcm::v0::junction::Junction
**/
XcmV0Junction: {
_enum: {
@@ -823,7 +928,7 @@
}
},
/**
- * Lookup81: xcm::VersionedMultiLocation
+ * Lookup85: xcm::VersionedMultiLocation
**/
XcmVersionedMultiLocation: {
_enum: {
@@ -832,7 +937,7 @@
}
},
/**
- * Lookup82: cumulus_pallet_xcm::pallet::Event<T>
+ * Lookup86: cumulus_pallet_xcm::pallet::Event<T>
**/
CumulusPalletXcmEvent: {
_enum: {
@@ -842,7 +947,7 @@
}
},
/**
- * Lookup83: cumulus_pallet_dmp_queue::pallet::Event<T>
+ * Lookup87: cumulus_pallet_dmp_queue::pallet::Event<T>
**/
CumulusPalletDmpQueueEvent: {
_enum: {
@@ -873,7 +978,7 @@
}
},
/**
- * Lookup84: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup88: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
PalletUniqueRawEvent: {
_enum: {
@@ -890,7 +995,7 @@
}
},
/**
- * Lookup85: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>
+ * Lookup89: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>
**/
PalletEvmAccountBasicCrossAccountIdRepr: {
_enum: {
@@ -899,7 +1004,7 @@
}
},
/**
- * Lookup88: pallet_unique_scheduler::pallet::Event<T>
+ * Lookup92: pallet_unique_scheduler::pallet::Event<T>
**/
PalletUniqueSchedulerEvent: {
_enum: {
@@ -924,13 +1029,13 @@
}
},
/**
- * Lookup91: frame_support::traits::schedule::LookupError
+ * Lookup95: frame_support::traits::schedule::LookupError
**/
FrameSupportScheduleLookupError: {
_enum: ['Unknown', 'BadFormat']
},
/**
- * Lookup92: pallet_common::pallet::Event<T>
+ * Lookup96: pallet_common::pallet::Event<T>
**/
PalletCommonEvent: {
_enum: {
@@ -948,7 +1053,7 @@
}
},
/**
- * Lookup95: pallet_structure::pallet::Event<T>
+ * Lookup99: pallet_structure::pallet::Event<T>
**/
PalletStructureEvent: {
_enum: {
@@ -956,7 +1061,7 @@
}
},
/**
- * Lookup96: pallet_rmrk_core::pallet::Event<T>
+ * Lookup100: pallet_rmrk_core::pallet::Event<T>
**/
PalletRmrkCoreEvent: {
_enum: {
@@ -1033,7 +1138,7 @@
}
},
/**
- * Lookup97: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
+ * Lookup101: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
**/
RmrkTraitsNftAccountIdOrCollectionNftTuple: {
_enum: {
@@ -1042,7 +1147,7 @@
}
},
/**
- * Lookup102: pallet_rmrk_equip::pallet::Event<T>
+ * Lookup106: pallet_rmrk_equip::pallet::Event<T>
**/
PalletRmrkEquipEvent: {
_enum: {
@@ -1057,8 +1162,42 @@
}
},
/**
- * Lookup103: pallet_evm::pallet::Event<T>
+ * Lookup107: pallet_foreing_assets::module::Event<T>
+ **/
+ PalletForeingAssetsModuleEvent: {
+ _enum: {
+ ForeignAssetRegistered: {
+ assetId: 'u32',
+ assetAddress: 'XcmV1MultiLocation',
+ metadata: 'PalletForeingAssetsModuleAssetMetadata',
+ },
+ ForeignAssetUpdated: {
+ assetId: 'u32',
+ assetAddress: 'XcmV1MultiLocation',
+ metadata: 'PalletForeingAssetsModuleAssetMetadata',
+ },
+ AssetRegistered: {
+ assetId: 'PalletForeingAssetsAssetIds',
+ metadata: 'PalletForeingAssetsModuleAssetMetadata',
+ },
+ AssetUpdated: {
+ assetId: 'PalletForeingAssetsAssetIds',
+ metadata: 'PalletForeingAssetsModuleAssetMetadata'
+ }
+ }
+ },
+ /**
+ * Lookup108: pallet_foreing_assets::module::AssetMetadata<Balance>
**/
+ PalletForeingAssetsModuleAssetMetadata: {
+ name: 'Bytes',
+ symbol: 'Bytes',
+ decimals: 'u8',
+ minimalBalance: 'u128'
+ },
+ /**
+ * Lookup109: pallet_evm::pallet::Event<T>
+ **/
PalletEvmEvent: {
_enum: {
Log: 'EthereumLog',
@@ -1071,7 +1210,7 @@
}
},
/**
- * Lookup104: ethereum::log::Log
+ * Lookup110: ethereum::log::Log
**/
EthereumLog: {
address: 'H160',
@@ -1079,7 +1218,7 @@
data: 'Bytes'
},
/**
- * Lookup108: pallet_ethereum::pallet::Event
+ * Lookup114: pallet_ethereum::pallet::Event
**/
PalletEthereumEvent: {
_enum: {
@@ -1087,7 +1226,7 @@
}
},
/**
- * Lookup109: evm_core::error::ExitReason
+ * Lookup115: evm_core::error::ExitReason
**/
EvmCoreErrorExitReason: {
_enum: {
@@ -1098,13 +1237,13 @@
}
},
/**
- * Lookup110: evm_core::error::ExitSucceed
+ * Lookup116: evm_core::error::ExitSucceed
**/
EvmCoreErrorExitSucceed: {
_enum: ['Stopped', 'Returned', 'Suicided']
},
/**
- * Lookup111: evm_core::error::ExitError
+ * Lookup117: evm_core::error::ExitError
**/
EvmCoreErrorExitError: {
_enum: {
@@ -1126,13 +1265,13 @@
}
},
/**
- * Lookup114: evm_core::error::ExitRevert
+ * Lookup120: evm_core::error::ExitRevert
**/
EvmCoreErrorExitRevert: {
_enum: ['Reverted']
},
/**
- * Lookup115: evm_core::error::ExitFatal
+ * Lookup121: evm_core::error::ExitFatal
**/
EvmCoreErrorExitFatal: {
_enum: {
@@ -1143,7 +1282,7 @@
}
},
/**
- * Lookup116: frame_system::Phase
+ * Lookup122: frame_system::Phase
**/
FrameSystemPhase: {
_enum: {
@@ -1153,14 +1292,14 @@
}
},
/**
- * Lookup118: frame_system::LastRuntimeUpgradeInfo
+ * Lookup124: frame_system::LastRuntimeUpgradeInfo
**/
FrameSystemLastRuntimeUpgradeInfo: {
specVersion: 'Compact<u32>',
specName: 'Text'
},
/**
- * Lookup119: frame_system::pallet::Call<T>
+ * Lookup125: frame_system::pallet::Call<T>
**/
FrameSystemCall: {
_enum: {
@@ -1198,7 +1337,7 @@
}
},
/**
- * Lookup124: frame_system::limits::BlockWeights
+ * Lookup130: frame_system::limits::BlockWeights
**/
FrameSystemLimitsBlockWeights: {
baseBlock: 'u64',
@@ -1206,7 +1345,7 @@
perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'
},
/**
- * Lookup125: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
+ * Lookup131: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
**/
FrameSupportWeightsPerDispatchClassWeightsPerClass: {
normal: 'FrameSystemLimitsWeightsPerClass',
@@ -1214,7 +1353,7 @@
mandatory: 'FrameSystemLimitsWeightsPerClass'
},
/**
- * Lookup126: frame_system::limits::WeightsPerClass
+ * Lookup132: frame_system::limits::WeightsPerClass
**/
FrameSystemLimitsWeightsPerClass: {
baseExtrinsic: 'u64',
@@ -1223,13 +1362,13 @@
reserved: 'Option<u64>'
},
/**
- * Lookup128: frame_system::limits::BlockLength
+ * Lookup134: frame_system::limits::BlockLength
**/
FrameSystemLimitsBlockLength: {
max: 'FrameSupportWeightsPerDispatchClassU32'
},
/**
- * Lookup129: frame_support::weights::PerDispatchClass<T>
+ * Lookup135: frame_support::weights::PerDispatchClass<T>
**/
FrameSupportWeightsPerDispatchClassU32: {
normal: 'u32',
@@ -1237,14 +1376,14 @@
mandatory: 'u32'
},
/**
- * Lookup130: frame_support::weights::RuntimeDbWeight
+ * Lookup136: frame_support::weights::RuntimeDbWeight
**/
FrameSupportWeightsRuntimeDbWeight: {
read: 'u64',
write: 'u64'
},
/**
- * Lookup131: sp_version::RuntimeVersion
+ * Lookup137: sp_version::RuntimeVersion
**/
SpVersionRuntimeVersion: {
specName: 'Text',
@@ -1257,13 +1396,13 @@
stateVersion: 'u8'
},
/**
- * Lookup136: frame_system::pallet::Error<T>
+ * Lookup142: frame_system::pallet::Error<T>
**/
FrameSystemError: {
_enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']
},
/**
- * Lookup137: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>
+ * Lookup143: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>
**/
PolkadotPrimitivesV2PersistedValidationData: {
parentHead: 'Bytes',
@@ -1272,19 +1411,19 @@
maxPovSize: 'u32'
},
/**
- * Lookup140: polkadot_primitives::v2::UpgradeRestriction
+ * Lookup146: polkadot_primitives::v2::UpgradeRestriction
**/
PolkadotPrimitivesV2UpgradeRestriction: {
_enum: ['Present']
},
/**
- * Lookup141: sp_trie::storage_proof::StorageProof
+ * Lookup147: sp_trie::storage_proof::StorageProof
**/
SpTrieStorageProof: {
trieNodes: 'BTreeSet<Bytes>'
},
/**
- * Lookup143: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot
+ * Lookup149: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot
**/
CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {
dmqMqcHead: 'H256',
@@ -1293,7 +1432,7 @@
egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'
},
/**
- * Lookup146: polkadot_primitives::v2::AbridgedHrmpChannel
+ * Lookup152: polkadot_primitives::v2::AbridgedHrmpChannel
**/
PolkadotPrimitivesV2AbridgedHrmpChannel: {
maxCapacity: 'u32',
@@ -1304,7 +1443,7 @@
mqcHead: 'Option<H256>'
},
/**
- * Lookup147: polkadot_primitives::v2::AbridgedHostConfiguration
+ * Lookup153: polkadot_primitives::v2::AbridgedHostConfiguration
**/
PolkadotPrimitivesV2AbridgedHostConfiguration: {
maxCodeSize: 'u32',
@@ -1318,14 +1457,14 @@
validationUpgradeDelay: 'u32'
},
/**
- * Lookup153: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>
+ * Lookup159: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>
**/
PolkadotCorePrimitivesOutboundHrmpMessage: {
recipient: 'u32',
data: 'Bytes'
},
/**
- * Lookup154: cumulus_pallet_parachain_system::pallet::Call<T>
+ * Lookup160: cumulus_pallet_parachain_system::pallet::Call<T>
**/
CumulusPalletParachainSystemCall: {
_enum: {
@@ -1344,7 +1483,7 @@
}
},
/**
- * Lookup155: cumulus_primitives_parachain_inherent::ParachainInherentData
+ * Lookup161: cumulus_primitives_parachain_inherent::ParachainInherentData
**/
CumulusPrimitivesParachainInherentParachainInherentData: {
validationData: 'PolkadotPrimitivesV2PersistedValidationData',
@@ -1353,27 +1492,27 @@
horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'
},
/**
- * Lookup157: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>
+ * Lookup163: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>
**/
PolkadotCorePrimitivesInboundDownwardMessage: {
sentAt: 'u32',
msg: 'Bytes'
},
/**
- * Lookup160: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>
+ * Lookup166: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>
**/
PolkadotCorePrimitivesInboundHrmpMessage: {
sentAt: 'u32',
data: 'Bytes'
},
/**
- * Lookup163: cumulus_pallet_parachain_system::pallet::Error<T>
+ * Lookup169: cumulus_pallet_parachain_system::pallet::Error<T>
**/
CumulusPalletParachainSystemError: {
_enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']
},
/**
- * Lookup165: pallet_balances::BalanceLock<Balance>
+ * Lookup171: pallet_balances::BalanceLock<Balance>
**/
PalletBalancesBalanceLock: {
id: '[u8;8]',
@@ -1381,26 +1520,26 @@
reasons: 'PalletBalancesReasons'
},
/**
- * Lookup166: pallet_balances::Reasons
+ * Lookup172: pallet_balances::Reasons
**/
PalletBalancesReasons: {
_enum: ['Fee', 'Misc', 'All']
},
/**
- * Lookup169: pallet_balances::ReserveData<ReserveIdentifier, Balance>
+ * Lookup175: pallet_balances::ReserveData<ReserveIdentifier, Balance>
**/
PalletBalancesReserveData: {
id: '[u8;16]',
amount: 'u128'
},
/**
- * Lookup171: pallet_balances::Releases
+ * Lookup177: pallet_balances::Releases
**/
PalletBalancesReleases: {
_enum: ['V1_0_0', 'V2_0_0']
},
/**
- * Lookup172: pallet_balances::pallet::Call<T, I>
+ * Lookup178: pallet_balances::pallet::Call<T, I>
**/
PalletBalancesCall: {
_enum: {
@@ -1433,13 +1572,13 @@
}
},
/**
- * Lookup175: pallet_balances::pallet::Error<T, I>
+ * Lookup181: pallet_balances::pallet::Error<T, I>
**/
PalletBalancesError: {
_enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']
},
/**
- * Lookup177: pallet_timestamp::pallet::Call<T>
+ * Lookup183: pallet_timestamp::pallet::Call<T>
**/
PalletTimestampCall: {
_enum: {
@@ -1449,13 +1588,13 @@
}
},
/**
- * Lookup179: pallet_transaction_payment::Releases
+ * Lookup185: pallet_transaction_payment::Releases
**/
PalletTransactionPaymentReleases: {
_enum: ['V1Ancient', 'V2']
},
/**
- * Lookup180: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>
+ * Lookup186: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>
**/
PalletTreasuryProposal: {
proposer: 'AccountId32',
@@ -1464,7 +1603,7 @@
bond: 'u128'
},
/**
- * Lookup183: pallet_treasury::pallet::Call<T, I>
+ * Lookup189: pallet_treasury::pallet::Call<T, I>
**/
PalletTreasuryCall: {
_enum: {
@@ -1488,17 +1627,17 @@
}
},
/**
- * Lookup186: frame_support::PalletId
+ * Lookup192: frame_support::PalletId
**/
FrameSupportPalletId: '[u8;8]',
/**
- * Lookup187: pallet_treasury::pallet::Error<T, I>
+ * Lookup193: pallet_treasury::pallet::Error<T, I>
**/
PalletTreasuryError: {
_enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']
},
/**
- * Lookup188: pallet_sudo::pallet::Call<T>
+ * Lookup194: pallet_sudo::pallet::Call<T>
**/
PalletSudoCall: {
_enum: {
@@ -1522,7 +1661,7 @@
}
},
/**
- * Lookup190: orml_vesting::module::Call<T>
+ * Lookup196: orml_vesting::module::Call<T>
**/
OrmlVestingModuleCall: {
_enum: {
@@ -1541,8 +1680,94 @@
}
},
/**
- * Lookup192: cumulus_pallet_xcmp_queue::pallet::Call<T>
+ * Lookup198: orml_xtokens::module::Call<T>
+ **/
+ OrmlXtokensModuleCall: {
+ _enum: {
+ transfer: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ amount: 'u128',
+ dest: 'XcmVersionedMultiLocation',
+ destWeight: 'u64',
+ },
+ transfer_multiasset: {
+ asset: 'XcmVersionedMultiAsset',
+ dest: 'XcmVersionedMultiLocation',
+ destWeight: 'u64',
+ },
+ transfer_with_fee: {
+ currencyId: 'PalletForeingAssetsAssetIds',
+ amount: 'u128',
+ fee: 'u128',
+ dest: 'XcmVersionedMultiLocation',
+ destWeight: 'u64',
+ },
+ transfer_multiasset_with_fee: {
+ asset: 'XcmVersionedMultiAsset',
+ fee: 'XcmVersionedMultiAsset',
+ dest: 'XcmVersionedMultiLocation',
+ destWeight: 'u64',
+ },
+ transfer_multicurrencies: {
+ currencies: 'Vec<(PalletForeingAssetsAssetIds,u128)>',
+ feeItem: 'u32',
+ dest: 'XcmVersionedMultiLocation',
+ destWeight: 'u64',
+ },
+ transfer_multiassets: {
+ assets: 'XcmVersionedMultiAssets',
+ feeItem: 'u32',
+ dest: 'XcmVersionedMultiLocation',
+ destWeight: 'u64'
+ }
+ }
+ },
+ /**
+ * Lookup199: xcm::VersionedMultiAsset
**/
+ XcmVersionedMultiAsset: {
+ _enum: {
+ V0: 'XcmV0MultiAsset',
+ V1: 'XcmV1MultiAsset'
+ }
+ },
+ /**
+ * Lookup202: orml_tokens::module::Call<T>
+ **/
+ OrmlTokensModuleCall: {
+ _enum: {
+ transfer: {
+ dest: 'MultiAddress',
+ currencyId: 'PalletForeingAssetsAssetIds',
+ amount: 'Compact<u128>',
+ },
+ transfer_all: {
+ dest: 'MultiAddress',
+ currencyId: 'PalletForeingAssetsAssetIds',
+ keepAlive: 'bool',
+ },
+ transfer_keep_alive: {
+ dest: 'MultiAddress',
+ currencyId: 'PalletForeingAssetsAssetIds',
+ amount: 'Compact<u128>',
+ },
+ force_transfer: {
+ source: 'MultiAddress',
+ dest: 'MultiAddress',
+ currencyId: 'PalletForeingAssetsAssetIds',
+ amount: 'Compact<u128>',
+ },
+ set_balance: {
+ who: 'MultiAddress',
+ currencyId: 'PalletForeingAssetsAssetIds',
+ newFree: 'Compact<u128>',
+ newReserved: 'Compact<u128>'
+ }
+ }
+ },
+ /**
+ * Lookup203: cumulus_pallet_xcmp_queue::pallet::Call<T>
+ **/
CumulusPalletXcmpQueueCall: {
_enum: {
service_overweight: {
@@ -1590,7 +1815,7 @@
}
},
/**
- * Lookup193: pallet_xcm::pallet::Call<T>
+ * Lookup204: pallet_xcm::pallet::Call<T>
**/
PalletXcmCall: {
_enum: {
@@ -1644,7 +1869,7 @@
}
},
/**
- * Lookup194: xcm::VersionedXcm<Call>
+ * Lookup205: xcm::VersionedXcm<Call>
**/
XcmVersionedXcm: {
_enum: {
@@ -1654,7 +1879,7 @@
}
},
/**
- * Lookup195: xcm::v0::Xcm<Call>
+ * Lookup206: xcm::v0::Xcm<Call>
**/
XcmV0Xcm: {
_enum: {
@@ -1708,7 +1933,7 @@
}
},
/**
- * Lookup197: xcm::v0::order::Order<Call>
+ * Lookup208: xcm::v0::order::Order<Call>
**/
XcmV0Order: {
_enum: {
@@ -1751,7 +1976,7 @@
}
},
/**
- * Lookup199: xcm::v0::Response
+ * Lookup210: xcm::v0::Response
**/
XcmV0Response: {
_enum: {
@@ -1759,7 +1984,7 @@
}
},
/**
- * Lookup200: xcm::v1::Xcm<Call>
+ * Lookup211: xcm::v1::Xcm<Call>
**/
XcmV1Xcm: {
_enum: {
@@ -1818,7 +2043,7 @@
}
},
/**
- * Lookup202: xcm::v1::order::Order<Call>
+ * Lookup213: xcm::v1::order::Order<Call>
**/
XcmV1Order: {
_enum: {
@@ -1863,7 +2088,7 @@
}
},
/**
- * Lookup204: xcm::v1::Response
+ * Lookup215: xcm::v1::Response
**/
XcmV1Response: {
_enum: {
@@ -1872,11 +2097,11 @@
}
},
/**
- * Lookup218: cumulus_pallet_xcm::pallet::Call<T>
+ * Lookup229: cumulus_pallet_xcm::pallet::Call<T>
**/
CumulusPalletXcmCall: 'Null',
/**
- * Lookup219: cumulus_pallet_dmp_queue::pallet::Call<T>
+ * Lookup230: cumulus_pallet_dmp_queue::pallet::Call<T>
**/
CumulusPalletDmpQueueCall: {
_enum: {
@@ -1887,7 +2112,7 @@
}
},
/**
- * Lookup220: pallet_inflation::pallet::Call<T>
+ * Lookup231: pallet_inflation::pallet::Call<T>
**/
PalletInflationCall: {
_enum: {
@@ -1897,7 +2122,7 @@
}
},
/**
- * Lookup221: pallet_unique::Call<T>
+ * Lookup232: pallet_unique::Call<T>
**/
PalletUniqueCall: {
_enum: {
@@ -2029,7 +2254,7 @@
}
},
/**
- * Lookup226: up_data_structs::CollectionMode
+ * Lookup237: up_data_structs::CollectionMode
**/
UpDataStructsCollectionMode: {
_enum: {
@@ -2039,7 +2264,7 @@
}
},
/**
- * Lookup227: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>
+ * Lookup238: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>
**/
UpDataStructsCreateCollectionData: {
mode: 'UpDataStructsCollectionMode',
@@ -2054,13 +2279,13 @@
properties: 'Vec<UpDataStructsProperty>'
},
/**
- * Lookup229: up_data_structs::AccessMode
+ * Lookup240: up_data_structs::AccessMode
**/
UpDataStructsAccessMode: {
_enum: ['Normal', 'AllowList']
},
/**
- * Lookup231: up_data_structs::CollectionLimits
+ * Lookup242: up_data_structs::CollectionLimits
**/
UpDataStructsCollectionLimits: {
accountTokenOwnershipLimit: 'Option<u32>',
@@ -2074,7 +2299,7 @@
transfersEnabled: 'Option<bool>'
},
/**
- * Lookup233: up_data_structs::SponsoringRateLimit
+ * Lookup244: up_data_structs::SponsoringRateLimit
**/
UpDataStructsSponsoringRateLimit: {
_enum: {
@@ -2083,7 +2308,7 @@
}
},
/**
- * Lookup236: up_data_structs::CollectionPermissions
+ * Lookup247: up_data_structs::CollectionPermissions
**/
UpDataStructsCollectionPermissions: {
access: 'Option<UpDataStructsAccessMode>',
@@ -2091,7 +2316,7 @@
nesting: 'Option<UpDataStructsNestingPermissions>'
},
/**
- * Lookup238: up_data_structs::NestingPermissions
+ * Lookup249: up_data_structs::NestingPermissions
**/
UpDataStructsNestingPermissions: {
tokenOwner: 'bool',
@@ -2099,18 +2324,18 @@
restricted: 'Option<UpDataStructsOwnerRestrictedSet>'
},
/**
- * Lookup240: up_data_structs::OwnerRestrictedSet
+ * Lookup251: up_data_structs::OwnerRestrictedSet
**/
UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',
/**
- * Lookup245: up_data_structs::PropertyKeyPermission
+ * Lookup256: up_data_structs::PropertyKeyPermission
**/
UpDataStructsPropertyKeyPermission: {
key: 'Bytes',
permission: 'UpDataStructsPropertyPermission'
},
/**
- * Lookup246: up_data_structs::PropertyPermission
+ * Lookup257: up_data_structs::PropertyPermission
**/
UpDataStructsPropertyPermission: {
mutable: 'bool',
@@ -2118,14 +2343,14 @@
tokenOwner: 'bool'
},
/**
- * Lookup249: up_data_structs::Property
+ * Lookup260: up_data_structs::Property
**/
UpDataStructsProperty: {
key: 'Bytes',
value: 'Bytes'
},
/**
- * Lookup252: up_data_structs::CreateItemData
+ * Lookup263: up_data_structs::CreateItemData
**/
UpDataStructsCreateItemData: {
_enum: {
@@ -2135,26 +2360,26 @@
}
},
/**
- * Lookup253: up_data_structs::CreateNftData
+ * Lookup264: up_data_structs::CreateNftData
**/
UpDataStructsCreateNftData: {
properties: 'Vec<UpDataStructsProperty>'
},
/**
- * Lookup254: up_data_structs::CreateFungibleData
+ * Lookup265: up_data_structs::CreateFungibleData
**/
UpDataStructsCreateFungibleData: {
value: 'u128'
},
/**
- * Lookup255: up_data_structs::CreateReFungibleData
+ * Lookup266: up_data_structs::CreateReFungibleData
**/
UpDataStructsCreateReFungibleData: {
pieces: 'u128',
properties: 'Vec<UpDataStructsProperty>'
},
/**
- * Lookup258: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup269: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsCreateItemExData: {
_enum: {
@@ -2165,14 +2390,14 @@
}
},
/**
- * Lookup260: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup271: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsCreateNftExData: {
properties: 'Vec<UpDataStructsProperty>',
owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
},
/**
- * Lookup267: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup278: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsCreateRefungibleExSingleOwner: {
user: 'PalletEvmAccountBasicCrossAccountIdRepr',
@@ -2180,14 +2405,14 @@
properties: 'Vec<UpDataStructsProperty>'
},
/**
- * Lookup269: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup280: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsCreateRefungibleExMultipleOwners: {
users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',
properties: 'Vec<UpDataStructsProperty>'
},
/**
- * Lookup270: pallet_unique_scheduler::pallet::Call<T>
+ * Lookup281: pallet_unique_scheduler::pallet::Call<T>
**/
PalletUniqueSchedulerCall: {
_enum: {
@@ -2211,7 +2436,7 @@
}
},
/**
- * Lookup272: frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>
+ * Lookup283: frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>
**/
FrameSupportScheduleMaybeHashed: {
_enum: {
@@ -2220,7 +2445,7 @@
}
},
/**
- * Lookup273: pallet_configuration::pallet::Call<T>
+ * Lookup284: pallet_configuration::pallet::Call<T>
**/
PalletConfigurationCall: {
_enum: {
@@ -2233,15 +2458,15 @@
}
},
/**
- * Lookup274: pallet_template_transaction_payment::Call<T>
+ * Lookup285: pallet_template_transaction_payment::Call<T>
**/
PalletTemplateTransactionPaymentCall: 'Null',
/**
- * Lookup275: pallet_structure::pallet::Call<T>
+ * Lookup286: pallet_structure::pallet::Call<T>
**/
PalletStructureCall: 'Null',
/**
- * Lookup276: pallet_rmrk_core::pallet::Call<T>
+ * Lookup287: pallet_rmrk_core::pallet::Call<T>
**/
PalletRmrkCoreCall: {
_enum: {
@@ -2332,7 +2557,7 @@
}
},
/**
- * Lookup282: rmrk_traits::resource::ResourceTypes<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup293: rmrk_traits::resource::ResourceTypes<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceResourceTypes: {
_enum: {
@@ -2342,7 +2567,7 @@
}
},
/**
- * Lookup284: rmrk_traits::resource::BasicResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup295: rmrk_traits::resource::BasicResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceBasicResource: {
src: 'Option<Bytes>',
@@ -2351,7 +2576,7 @@
thumb: 'Option<Bytes>'
},
/**
- * Lookup286: rmrk_traits::resource::ComposableResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup297: rmrk_traits::resource::ComposableResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceComposableResource: {
parts: 'Vec<u32>',
@@ -2362,7 +2587,7 @@
thumb: 'Option<Bytes>'
},
/**
- * Lookup287: rmrk_traits::resource::SlotResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup298: rmrk_traits::resource::SlotResource<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceSlotResource: {
base: 'u32',
@@ -2373,7 +2598,7 @@
thumb: 'Option<Bytes>'
},
/**
- * Lookup290: pallet_rmrk_equip::pallet::Call<T>
+ * Lookup301: pallet_rmrk_equip::pallet::Call<T>
**/
PalletRmrkEquipCall: {
_enum: {
@@ -2394,7 +2619,7 @@
}
},
/**
- * Lookup293: rmrk_traits::part::PartType<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup304: rmrk_traits::part::PartType<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPartPartType: {
_enum: {
@@ -2403,7 +2628,7 @@
}
},
/**
- * Lookup295: rmrk_traits::part::FixedPart<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup306: rmrk_traits::part::FixedPart<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPartFixedPart: {
id: 'u32',
@@ -2411,7 +2636,7 @@
src: 'Bytes'
},
/**
- * Lookup296: rmrk_traits::part::SlotPart<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup307: rmrk_traits::part::SlotPart<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPartSlotPart: {
id: 'u32',
@@ -2420,7 +2645,7 @@
z: 'u32'
},
/**
- * Lookup297: rmrk_traits::part::EquippableList<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup308: rmrk_traits::part::EquippableList<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPartEquippableList: {
_enum: {
@@ -2430,7 +2655,7 @@
}
},
/**
- * Lookup299: 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>>
+ * Lookup310: 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>>
**/
RmrkTraitsTheme: {
name: 'Bytes',
@@ -2438,14 +2663,31 @@
inherit: 'bool'
},
/**
- * Lookup301: rmrk_traits::theme::ThemeProperty<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup312: rmrk_traits::theme::ThemeProperty<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsThemeThemeProperty: {
key: 'Bytes',
value: 'Bytes'
},
/**
- * Lookup303: pallet_evm::pallet::Call<T>
+ * Lookup314: pallet_foreing_assets::module::Call<T>
+ **/
+ PalletForeingAssetsModuleCall: {
+ _enum: {
+ register_foreign_asset: {
+ owner: 'AccountId32',
+ location: 'XcmVersionedMultiLocation',
+ metadata: 'PalletForeingAssetsModuleAssetMetadata',
+ },
+ update_foreign_asset: {
+ foreignAssetId: 'u32',
+ location: 'XcmVersionedMultiLocation',
+ metadata: 'PalletForeingAssetsModuleAssetMetadata'
+ }
+ }
+ },
+ /**
+ * Lookup315: pallet_evm::pallet::Call<T>
**/
PalletEvmCall: {
_enum: {
@@ -2488,7 +2730,7 @@
}
},
/**
- * Lookup307: pallet_ethereum::pallet::Call<T>
+ * Lookup319: pallet_ethereum::pallet::Call<T>
**/
PalletEthereumCall: {
_enum: {
@@ -2498,7 +2740,7 @@
}
},
/**
- * Lookup308: ethereum::transaction::TransactionV2
+ * Lookup320: ethereum::transaction::TransactionV2
**/
EthereumTransactionTransactionV2: {
_enum: {
@@ -2508,7 +2750,7 @@
}
},
/**
- * Lookup309: ethereum::transaction::LegacyTransaction
+ * Lookup321: ethereum::transaction::LegacyTransaction
**/
EthereumTransactionLegacyTransaction: {
nonce: 'U256',
@@ -2520,7 +2762,7 @@
signature: 'EthereumTransactionTransactionSignature'
},
/**
- * Lookup310: ethereum::transaction::TransactionAction
+ * Lookup322: ethereum::transaction::TransactionAction
**/
EthereumTransactionTransactionAction: {
_enum: {
@@ -2529,7 +2771,7 @@
}
},
/**
- * Lookup311: ethereum::transaction::TransactionSignature
+ * Lookup323: ethereum::transaction::TransactionSignature
**/
EthereumTransactionTransactionSignature: {
v: 'u64',
@@ -2537,7 +2779,7 @@
s: 'H256'
},
/**
- * Lookup313: ethereum::transaction::EIP2930Transaction
+ * Lookup325: ethereum::transaction::EIP2930Transaction
**/
EthereumTransactionEip2930Transaction: {
chainId: 'u64',
@@ -2553,14 +2795,14 @@
s: 'H256'
},
/**
- * Lookup315: ethereum::transaction::AccessListItem
+ * Lookup327: ethereum::transaction::AccessListItem
**/
EthereumTransactionAccessListItem: {
address: 'H160',
storageKeys: 'Vec<H256>'
},
/**
- * Lookup316: ethereum::transaction::EIP1559Transaction
+ * Lookup328: ethereum::transaction::EIP1559Transaction
**/
EthereumTransactionEip1559Transaction: {
chainId: 'u64',
@@ -2577,7 +2819,7 @@
s: 'H256'
},
/**
- * Lookup317: pallet_evm_migration::pallet::Call<T>
+ * Lookup329: pallet_evm_migration::pallet::Call<T>
**/
PalletEvmMigrationCall: {
_enum: {
@@ -2595,19 +2837,53 @@
}
},
/**
- * Lookup320: pallet_sudo::pallet::Error<T>
+ * Lookup332: pallet_sudo::pallet::Error<T>
**/
PalletSudoError: {
_enum: ['RequireSudo']
},
/**
- * Lookup322: orml_vesting::module::Error<T>
+ * Lookup334: orml_vesting::module::Error<T>
**/
OrmlVestingModuleError: {
_enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
},
/**
- * Lookup324: cumulus_pallet_xcmp_queue::InboundChannelDetails
+ * Lookup335: orml_xtokens::module::Error<T>
+ **/
+ OrmlXtokensModuleError: {
+ _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']
+ },
+ /**
+ * Lookup338: orml_tokens::BalanceLock<Balance>
+ **/
+ OrmlTokensBalanceLock: {
+ id: '[u8;8]',
+ amount: 'u128'
+ },
+ /**
+ * Lookup340: orml_tokens::AccountData<Balance>
+ **/
+ OrmlTokensAccountData: {
+ free: 'u128',
+ reserved: 'u128',
+ frozen: 'u128'
+ },
+ /**
+ * Lookup342: orml_tokens::ReserveData<ReserveIdentifier, Balance>
+ **/
+ OrmlTokensReserveData: {
+ id: 'Null',
+ amount: 'u128'
+ },
+ /**
+ * Lookup344: orml_tokens::module::Error<T>
+ **/
+ OrmlTokensModuleError: {
+ _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']
+ },
+ /**
+ * Lookup346: cumulus_pallet_xcmp_queue::InboundChannelDetails
**/
CumulusPalletXcmpQueueInboundChannelDetails: {
sender: 'u32',
@@ -2615,19 +2891,19 @@
messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
},
/**
- * Lookup325: cumulus_pallet_xcmp_queue::InboundState
+ * Lookup347: cumulus_pallet_xcmp_queue::InboundState
**/
CumulusPalletXcmpQueueInboundState: {
_enum: ['Ok', 'Suspended']
},
/**
- * Lookup328: polkadot_parachain::primitives::XcmpMessageFormat
+ * Lookup350: polkadot_parachain::primitives::XcmpMessageFormat
**/
PolkadotParachainPrimitivesXcmpMessageFormat: {
_enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
},
/**
- * Lookup331: cumulus_pallet_xcmp_queue::OutboundChannelDetails
+ * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails
**/
CumulusPalletXcmpQueueOutboundChannelDetails: {
recipient: 'u32',
@@ -2637,13 +2913,13 @@
lastIndex: 'u16'
},
/**
- * Lookup332: cumulus_pallet_xcmp_queue::OutboundState
+ * Lookup354: cumulus_pallet_xcmp_queue::OutboundState
**/
CumulusPalletXcmpQueueOutboundState: {
_enum: ['Ok', 'Suspended']
},
/**
- * Lookup334: cumulus_pallet_xcmp_queue::QueueConfigData
+ * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData
**/
CumulusPalletXcmpQueueQueueConfigData: {
suspendThreshold: 'u32',
@@ -2654,29 +2930,29 @@
xcmpMaxIndividualWeight: 'u64'
},
/**
- * Lookup336: cumulus_pallet_xcmp_queue::pallet::Error<T>
+ * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error<T>
**/
CumulusPalletXcmpQueueError: {
_enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
},
/**
- * Lookup337: pallet_xcm::pallet::Error<T>
+ * Lookup359: pallet_xcm::pallet::Error<T>
**/
PalletXcmError: {
_enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
},
/**
- * Lookup338: cumulus_pallet_xcm::pallet::Error<T>
+ * Lookup360: cumulus_pallet_xcm::pallet::Error<T>
**/
CumulusPalletXcmError: 'Null',
/**
- * Lookup339: cumulus_pallet_dmp_queue::ConfigData
+ * Lookup361: cumulus_pallet_dmp_queue::ConfigData
**/
CumulusPalletDmpQueueConfigData: {
maxIndividual: 'u64'
},
/**
- * Lookup340: cumulus_pallet_dmp_queue::PageIndexData
+ * Lookup362: cumulus_pallet_dmp_queue::PageIndexData
**/
CumulusPalletDmpQueuePageIndexData: {
beginUsed: 'u32',
@@ -2684,19 +2960,19 @@
overweightCount: 'u64'
},
/**
- * Lookup343: cumulus_pallet_dmp_queue::pallet::Error<T>
+ * Lookup365: cumulus_pallet_dmp_queue::pallet::Error<T>
**/
CumulusPalletDmpQueueError: {
_enum: ['Unknown', 'OverLimit']
},
/**
- * Lookup347: pallet_unique::Error<T>
+ * Lookup369: pallet_unique::Error<T>
**/
PalletUniqueError: {
_enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']
},
/**
- * Lookup350: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
+ * Lookup372: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
**/
PalletUniqueSchedulerScheduledV3: {
maybeId: 'Option<[u8;16]>',
@@ -2706,7 +2982,7 @@
origin: 'OpalRuntimeOriginCaller'
},
/**
- * Lookup351: opal_runtime::OriginCaller
+ * Lookup373: opal_runtime::OriginCaller
**/
OpalRuntimeOriginCaller: {
_enum: {
@@ -2815,7 +3091,7 @@
}
},
/**
- * Lookup352: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
+ * Lookup374: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
**/
FrameSupportDispatchRawOrigin: {
_enum: {
@@ -2825,7 +3101,7 @@
}
},
/**
- * Lookup353: pallet_xcm::pallet::Origin
+ * Lookup375: pallet_xcm::pallet::Origin
**/
PalletXcmOrigin: {
_enum: {
@@ -2834,7 +3110,7 @@
}
},
/**
- * Lookup354: cumulus_pallet_xcm::pallet::Origin
+ * Lookup376: cumulus_pallet_xcm::pallet::Origin
**/
CumulusPalletXcmOrigin: {
_enum: {
@@ -2843,7 +3119,7 @@
}
},
/**
- * Lookup355: pallet_ethereum::RawOrigin
+ * Lookup377: pallet_ethereum::RawOrigin
**/
PalletEthereumRawOrigin: {
_enum: {
@@ -2851,17 +3127,17 @@
}
},
/**
- * Lookup356: sp_core::Void
+ * Lookup378: sp_core::Void
**/
SpCoreVoid: 'Null',
/**
- * Lookup357: pallet_unique_scheduler::pallet::Error<T>
+ * Lookup379: pallet_unique_scheduler::pallet::Error<T>
**/
PalletUniqueSchedulerError: {
_enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
},
/**
- * Lookup358: up_data_structs::Collection<sp_core::crypto::AccountId32>
+ * Lookup380: up_data_structs::Collection<sp_core::crypto::AccountId32>
**/
UpDataStructsCollection: {
owner: 'AccountId32',
@@ -2875,7 +3151,7 @@
externalCollection: 'bool'
},
/**
- * Lookup359: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
+ * Lookup381: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
**/
UpDataStructsSponsorshipState: {
_enum: {
@@ -2885,7 +3161,7 @@
}
},
/**
- * Lookup360: up_data_structs::Properties
+ * Lookup382: up_data_structs::Properties
**/
UpDataStructsProperties: {
map: 'UpDataStructsPropertiesMapBoundedVec',
@@ -2893,15 +3169,15 @@
spaceLimit: 'u32'
},
/**
- * Lookup361: up_data_structs::PropertiesMap<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup383: up_data_structs::PropertiesMap<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
/**
- * Lookup366: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
+ * Lookup388: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
**/
UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
/**
- * Lookup373: up_data_structs::CollectionStats
+ * Lookup395: up_data_structs::CollectionStats
**/
UpDataStructsCollectionStats: {
created: 'u32',
@@ -2909,18 +3185,18 @@
alive: 'u32'
},
/**
- * Lookup374: up_data_structs::TokenChild
+ * Lookup396: up_data_structs::TokenChild
**/
UpDataStructsTokenChild: {
token: 'u32',
collection: 'u32'
},
/**
- * Lookup375: PhantomType::up_data_structs<T>
+ * Lookup397: PhantomType::up_data_structs<T>
**/
PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',
/**
- * Lookup377: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup399: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
UpDataStructsTokenData: {
properties: 'Vec<UpDataStructsProperty>',
@@ -2928,7 +3204,7 @@
pieces: 'u128'
},
/**
- * Lookup379: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
+ * Lookup401: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
**/
UpDataStructsRpcCollection: {
owner: 'AccountId32',
@@ -2944,7 +3220,7 @@
readOnly: 'bool'
},
/**
- * Lookup380: rmrk_traits::collection::CollectionInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
+ * Lookup402: rmrk_traits::collection::CollectionInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
**/
RmrkTraitsCollectionCollectionInfo: {
issuer: 'AccountId32',
@@ -2954,7 +3230,7 @@
nftsCount: 'u32'
},
/**
- * Lookup381: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup403: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsNftNftInfo: {
owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',
@@ -2964,14 +3240,14 @@
pending: 'bool'
},
/**
- * Lookup383: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
+ * Lookup405: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
**/
RmrkTraitsNftRoyaltyInfo: {
recipient: 'AccountId32',
amount: 'Permill'
},
/**
- * Lookup384: rmrk_traits::resource::ResourceInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup406: rmrk_traits::resource::ResourceInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsResourceResourceInfo: {
id: 'u32',
@@ -2980,14 +3256,14 @@
pendingRemoval: 'bool'
},
/**
- * Lookup385: rmrk_traits::property::PropertyInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup407: rmrk_traits::property::PropertyInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsPropertyPropertyInfo: {
key: 'Bytes',
value: 'Bytes'
},
/**
- * Lookup386: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+ * Lookup408: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
**/
RmrkTraitsBaseBaseInfo: {
issuer: 'AccountId32',
@@ -2995,80 +3271,86 @@
symbol: 'Bytes'
},
/**
- * Lookup387: rmrk_traits::nft::NftChild
+ * Lookup409: rmrk_traits::nft::NftChild
**/
RmrkTraitsNftNftChild: {
collectionId: 'u32',
nftId: 'u32'
},
/**
- * Lookup389: pallet_common::pallet::Error<T>
+ * Lookup411: pallet_common::pallet::Error<T>
**/
PalletCommonError: {
_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']
},
/**
- * Lookup391: pallet_fungible::pallet::Error<T>
+ * Lookup413: pallet_fungible::pallet::Error<T>
**/
PalletFungibleError: {
_enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
},
/**
- * Lookup392: pallet_refungible::ItemData
+ * Lookup414: pallet_refungible::ItemData
**/
PalletRefungibleItemData: {
constData: 'Bytes'
},
/**
- * Lookup397: pallet_refungible::pallet::Error<T>
+ * Lookup419: pallet_refungible::pallet::Error<T>
**/
PalletRefungibleError: {
_enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
},
/**
- * Lookup398: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+ * Lookup420: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
**/
PalletNonfungibleItemData: {
owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
},
/**
- * Lookup400: up_data_structs::PropertyScope
+ * Lookup422: up_data_structs::PropertyScope
**/
UpDataStructsPropertyScope: {
_enum: ['None', 'Rmrk', 'Eth']
},
/**
- * Lookup402: pallet_nonfungible::pallet::Error<T>
+ * Lookup424: pallet_nonfungible::pallet::Error<T>
**/
PalletNonfungibleError: {
_enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']
},
/**
- * Lookup403: pallet_structure::pallet::Error<T>
+ * Lookup425: pallet_structure::pallet::Error<T>
**/
PalletStructureError: {
_enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']
},
/**
- * Lookup404: pallet_rmrk_core::pallet::Error<T>
+ * Lookup426: pallet_rmrk_core::pallet::Error<T>
**/
PalletRmrkCoreError: {
_enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']
},
/**
- * Lookup406: pallet_rmrk_equip::pallet::Error<T>
+ * Lookup428: pallet_rmrk_equip::pallet::Error<T>
**/
PalletRmrkEquipError: {
_enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']
},
/**
- * Lookup409: pallet_evm::pallet::Error<T>
+ * Lookup429: pallet_foreing_assets::module::Error<T>
**/
+ PalletForeingAssetsModuleError: {
+ _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']
+ },
+ /**
+ * Lookup432: pallet_evm::pallet::Error<T>
+ **/
PalletEvmError: {
_enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
},
/**
- * Lookup412: fp_rpc::TransactionStatus
+ * Lookup435: fp_rpc::TransactionStatus
**/
FpRpcTransactionStatus: {
transactionHash: 'H256',
@@ -3080,11 +3362,11 @@
logsBloom: 'EthbloomBloom'
},
/**
- * Lookup414: ethbloom::Bloom
+ * Lookup437: ethbloom::Bloom
**/
EthbloomBloom: '[u8;256]',
/**
- * Lookup416: ethereum::receipt::ReceiptV3
+ * Lookup439: ethereum::receipt::ReceiptV3
**/
EthereumReceiptReceiptV3: {
_enum: {
@@ -3094,7 +3376,7 @@
}
},
/**
- * Lookup417: ethereum::receipt::EIP658ReceiptData
+ * Lookup440: ethereum::receipt::EIP658ReceiptData
**/
EthereumReceiptEip658ReceiptData: {
statusCode: 'u8',
@@ -3103,7 +3385,7 @@
logs: 'Vec<EthereumLog>'
},
/**
- * Lookup418: ethereum::block::Block<ethereum::transaction::TransactionV2>
+ * Lookup441: ethereum::block::Block<ethereum::transaction::TransactionV2>
**/
EthereumBlock: {
header: 'EthereumHeader',
@@ -3111,7 +3393,7 @@
ommers: 'Vec<EthereumHeader>'
},
/**
- * Lookup419: ethereum::header::Header
+ * Lookup442: ethereum::header::Header
**/
EthereumHeader: {
parentHash: 'H256',
@@ -3131,41 +3413,41 @@
nonce: 'EthereumTypesHashH64'
},
/**
- * Lookup420: ethereum_types::hash::H64
+ * Lookup443: ethereum_types::hash::H64
**/
EthereumTypesHashH64: '[u8;8]',
/**
- * Lookup425: pallet_ethereum::pallet::Error<T>
+ * Lookup448: pallet_ethereum::pallet::Error<T>
**/
PalletEthereumError: {
_enum: ['InvalidSignature', 'PreLogExists']
},
/**
- * Lookup426: pallet_evm_coder_substrate::pallet::Error<T>
+ * Lookup449: pallet_evm_coder_substrate::pallet::Error<T>
**/
PalletEvmCoderSubstrateError: {
_enum: ['OutOfGas', 'OutOfFund']
},
/**
- * Lookup427: pallet_evm_contract_helpers::SponsoringModeT
+ * Lookup450: pallet_evm_contract_helpers::SponsoringModeT
**/
PalletEvmContractHelpersSponsoringModeT: {
_enum: ['Disabled', 'Allowlisted', 'Generous']
},
/**
- * Lookup429: pallet_evm_contract_helpers::pallet::Error<T>
+ * Lookup452: pallet_evm_contract_helpers::pallet::Error<T>
**/
PalletEvmContractHelpersError: {
_enum: ['NoPermission']
},
/**
- * Lookup430: pallet_evm_migration::pallet::Error<T>
+ * Lookup453: pallet_evm_migration::pallet::Error<T>
**/
PalletEvmMigrationError: {
_enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
},
/**
- * Lookup432: sp_runtime::MultiSignature
+ * Lookup455: sp_runtime::MultiSignature
**/
SpRuntimeMultiSignature: {
_enum: {
@@ -3175,43 +3457,43 @@
}
},
/**
- * Lookup433: sp_core::ed25519::Signature
+ * Lookup456: sp_core::ed25519::Signature
**/
SpCoreEd25519Signature: '[u8;64]',
/**
- * Lookup435: sp_core::sr25519::Signature
+ * Lookup458: sp_core::sr25519::Signature
**/
SpCoreSr25519Signature: '[u8;64]',
/**
- * Lookup436: sp_core::ecdsa::Signature
+ * Lookup459: sp_core::ecdsa::Signature
**/
SpCoreEcdsaSignature: '[u8;65]',
/**
- * Lookup439: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
+ * Lookup462: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
**/
FrameSystemExtensionsCheckSpecVersion: 'Null',
/**
- * Lookup440: frame_system::extensions::check_genesis::CheckGenesis<T>
+ * Lookup463: frame_system::extensions::check_genesis::CheckGenesis<T>
**/
FrameSystemExtensionsCheckGenesis: 'Null',
/**
- * Lookup443: frame_system::extensions::check_nonce::CheckNonce<T>
+ * Lookup466: frame_system::extensions::check_nonce::CheckNonce<T>
**/
FrameSystemExtensionsCheckNonce: 'Compact<u32>',
/**
- * Lookup444: frame_system::extensions::check_weight::CheckWeight<T>
+ * Lookup467: frame_system::extensions::check_weight::CheckWeight<T>
**/
FrameSystemExtensionsCheckWeight: 'Null',
/**
- * Lookup445: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
+ * Lookup468: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
**/
PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
/**
- * Lookup446: opal_runtime::Runtime
+ * Lookup469: opal_runtime::Runtime
**/
OpalRuntimeRuntime: 'Null',
/**
- * Lookup447: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
+ * Lookup470: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
**/
PalletEthereumFakeTransactionFinalizer: 'Null'
};
tests/src/interfaces/registry.tsdiffbeforeafterboth--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -1,14 +1,10 @@
// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
/* eslint-disable */
-// import type lookup before we augment - in some environments
-// this is required to allow for ambient/previous definitions
-import '@polkadot/types/types/registry';
-
-import 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, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, 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, UpDataStructsSponsorshipState, 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';
+import 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, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeingAssetsAssetIds, PalletForeingAssetsModuleAssetMetadata, PalletForeingAssetsModuleCall, PalletForeingAssetsModuleError, PalletForeingAssetsModuleEvent, PalletForeingAssetsNativeCurrency, 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, UpDataStructsSponsorshipState, 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';
declare module '@polkadot/types/types/registry' {
- interface InterfaceTypes {
+ export interface InterfaceTypes {
CumulusPalletDmpQueueCall: CumulusPalletDmpQueueCall;
CumulusPalletDmpQueueConfigData: CumulusPalletDmpQueueConfigData;
CumulusPalletDmpQueueError: CumulusPalletDmpQueueError;
@@ -79,10 +75,19 @@
FrameSystemPhase: FrameSystemPhase;
OpalRuntimeOriginCaller: OpalRuntimeOriginCaller;
OpalRuntimeRuntime: OpalRuntimeRuntime;
+ OrmlTokensAccountData: OrmlTokensAccountData;
+ OrmlTokensBalanceLock: OrmlTokensBalanceLock;
+ OrmlTokensModuleCall: OrmlTokensModuleCall;
+ OrmlTokensModuleError: OrmlTokensModuleError;
+ OrmlTokensModuleEvent: OrmlTokensModuleEvent;
+ OrmlTokensReserveData: OrmlTokensReserveData;
OrmlVestingModuleCall: OrmlVestingModuleCall;
OrmlVestingModuleError: OrmlVestingModuleError;
OrmlVestingModuleEvent: OrmlVestingModuleEvent;
OrmlVestingVestingSchedule: OrmlVestingVestingSchedule;
+ OrmlXtokensModuleCall: OrmlXtokensModuleCall;
+ OrmlXtokensModuleError: OrmlXtokensModuleError;
+ OrmlXtokensModuleEvent: OrmlXtokensModuleEvent;
PalletBalancesAccountData: PalletBalancesAccountData;
PalletBalancesBalanceLock: PalletBalancesBalanceLock;
PalletBalancesCall: PalletBalancesCall;
@@ -108,6 +113,12 @@
PalletEvmEvent: PalletEvmEvent;
PalletEvmMigrationCall: PalletEvmMigrationCall;
PalletEvmMigrationError: PalletEvmMigrationError;
+ PalletForeingAssetsAssetIds: PalletForeingAssetsAssetIds;
+ PalletForeingAssetsModuleAssetMetadata: PalletForeingAssetsModuleAssetMetadata;
+ PalletForeingAssetsModuleCall: PalletForeingAssetsModuleCall;
+ PalletForeingAssetsModuleError: PalletForeingAssetsModuleError;
+ PalletForeingAssetsModuleEvent: PalletForeingAssetsModuleEvent;
+ PalletForeingAssetsNativeCurrency: PalletForeingAssetsNativeCurrency;
PalletFungibleError: PalletFungibleError;
PalletInflationCall: PalletInflationCall;
PalletNonfungibleError: PalletNonfungibleError;
@@ -247,6 +258,7 @@
XcmV2TraitsOutcome: XcmV2TraitsOutcome;
XcmV2WeightLimit: XcmV2WeightLimit;
XcmV2Xcm: XcmV2Xcm;
+ XcmVersionedMultiAsset: XcmVersionedMultiAsset;
XcmVersionedMultiAssets: XcmVersionedMultiAssets;
XcmVersionedMultiLocation: XcmVersionedMultiLocation;
XcmVersionedXcm: XcmVersionedXcm;
tests/src/interfaces/types-lookup.tsdiffbeforeafterboth1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34// import type lookup before we augment - in some environments5// this is required to allow for ambient/previous definitions6import '@polkadot/types/lookup';78import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';9import type { ITuple } from '@polkadot/types-codec/types';10import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';11import type { Event } from '@polkadot/types/interfaces/system';1213declare module '@polkadot/types/lookup' {14 /** @name FrameSystemAccountInfo (3) */15 interface FrameSystemAccountInfo extends Struct {16 readonly nonce: u32;17 readonly consumers: u32;18 readonly providers: u32;19 readonly sufficients: u32;20 readonly data: PalletBalancesAccountData;21 }2223 /** @name PalletBalancesAccountData (5) */24 interface PalletBalancesAccountData extends Struct {25 readonly free: u128;26 readonly reserved: u128;27 readonly miscFrozen: u128;28 readonly feeFrozen: u128;29 }3031 /** @name FrameSupportWeightsPerDispatchClassU64 (7) */32 interface FrameSupportWeightsPerDispatchClassU64 extends Struct {33 readonly normal: u64;34 readonly operational: u64;35 readonly mandatory: u64;36 }3738 /** @name SpRuntimeDigest (11) */39 interface SpRuntimeDigest extends Struct {40 readonly logs: Vec<SpRuntimeDigestDigestItem>;41 }4243 /** @name SpRuntimeDigestDigestItem (13) */44 interface SpRuntimeDigestDigestItem extends Enum {45 readonly isOther: boolean;46 readonly asOther: Bytes;47 readonly isConsensus: boolean;48 readonly asConsensus: ITuple<[U8aFixed, Bytes]>;49 readonly isSeal: boolean;50 readonly asSeal: ITuple<[U8aFixed, Bytes]>;51 readonly isPreRuntime: boolean;52 readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;53 readonly isRuntimeEnvironmentUpdated: boolean;54 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';55 }5657 /** @name FrameSystemEventRecord (16) */58 interface FrameSystemEventRecord extends Struct {59 readonly phase: FrameSystemPhase;60 readonly event: Event;61 readonly topics: Vec<H256>;62 }6364 /** @name FrameSystemEvent (18) */65 interface FrameSystemEvent extends Enum {66 readonly isExtrinsicSuccess: boolean;67 readonly asExtrinsicSuccess: {68 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;69 } & Struct;70 readonly isExtrinsicFailed: boolean;71 readonly asExtrinsicFailed: {72 readonly dispatchError: SpRuntimeDispatchError;73 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;74 } & Struct;75 readonly isCodeUpdated: boolean;76 readonly isNewAccount: boolean;77 readonly asNewAccount: {78 readonly account: AccountId32;79 } & Struct;80 readonly isKilledAccount: boolean;81 readonly asKilledAccount: {82 readonly account: AccountId32;83 } & Struct;84 readonly isRemarked: boolean;85 readonly asRemarked: {86 readonly sender: AccountId32;87 readonly hash_: H256;88 } & Struct;89 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';90 }9192 /** @name FrameSupportWeightsDispatchInfo (19) */93 interface FrameSupportWeightsDispatchInfo extends Struct {94 readonly weight: u64;95 readonly class: FrameSupportWeightsDispatchClass;96 readonly paysFee: FrameSupportWeightsPays;97 }9899 /** @name FrameSupportWeightsDispatchClass (20) */100 interface FrameSupportWeightsDispatchClass extends Enum {101 readonly isNormal: boolean;102 readonly isOperational: boolean;103 readonly isMandatory: boolean;104 readonly type: 'Normal' | 'Operational' | 'Mandatory';105 }106107 /** @name FrameSupportWeightsPays (21) */108 interface FrameSupportWeightsPays extends Enum {109 readonly isYes: boolean;110 readonly isNo: boolean;111 readonly type: 'Yes' | 'No';112 }113114 /** @name SpRuntimeDispatchError (22) */115 interface SpRuntimeDispatchError extends Enum {116 readonly isOther: boolean;117 readonly isCannotLookup: boolean;118 readonly isBadOrigin: boolean;119 readonly isModule: boolean;120 readonly asModule: SpRuntimeModuleError;121 readonly isConsumerRemaining: boolean;122 readonly isNoProviders: boolean;123 readonly isTooManyConsumers: boolean;124 readonly isToken: boolean;125 readonly asToken: SpRuntimeTokenError;126 readonly isArithmetic: boolean;127 readonly asArithmetic: SpRuntimeArithmeticError;128 readonly isTransactional: boolean;129 readonly asTransactional: SpRuntimeTransactionalError;130 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';131 }132133 /** @name SpRuntimeModuleError (23) */134 interface SpRuntimeModuleError extends Struct {135 readonly index: u8;136 readonly error: U8aFixed;137 }138139 /** @name SpRuntimeTokenError (24) */140 interface SpRuntimeTokenError extends Enum {141 readonly isNoFunds: boolean;142 readonly isWouldDie: boolean;143 readonly isBelowMinimum: boolean;144 readonly isCannotCreate: boolean;145 readonly isUnknownAsset: boolean;146 readonly isFrozen: boolean;147 readonly isUnsupported: boolean;148 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';149 }150151 /** @name SpRuntimeArithmeticError (25) */152 interface SpRuntimeArithmeticError extends Enum {153 readonly isUnderflow: boolean;154 readonly isOverflow: boolean;155 readonly isDivisionByZero: boolean;156 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';157 }158159 /** @name SpRuntimeTransactionalError (26) */160 interface SpRuntimeTransactionalError extends Enum {161 readonly isLimitReached: boolean;162 readonly isNoLayer: boolean;163 readonly type: 'LimitReached' | 'NoLayer';164 }165166 /** @name CumulusPalletParachainSystemEvent (27) */167 interface CumulusPalletParachainSystemEvent extends Enum {168 readonly isValidationFunctionStored: boolean;169 readonly isValidationFunctionApplied: boolean;170 readonly asValidationFunctionApplied: {171 readonly relayChainBlockNum: u32;172 } & Struct;173 readonly isValidationFunctionDiscarded: boolean;174 readonly isUpgradeAuthorized: boolean;175 readonly asUpgradeAuthorized: {176 readonly codeHash: H256;177 } & Struct;178 readonly isDownwardMessagesReceived: boolean;179 readonly asDownwardMessagesReceived: {180 readonly count: u32;181 } & Struct;182 readonly isDownwardMessagesProcessed: boolean;183 readonly asDownwardMessagesProcessed: {184 readonly weightUsed: u64;185 readonly dmqHead: H256;186 } & Struct;187 readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';188 }189190 /** @name PalletBalancesEvent (28) */191 interface PalletBalancesEvent extends Enum {192 readonly isEndowed: boolean;193 readonly asEndowed: {194 readonly account: AccountId32;195 readonly freeBalance: u128;196 } & Struct;197 readonly isDustLost: boolean;198 readonly asDustLost: {199 readonly account: AccountId32;200 readonly amount: u128;201 } & Struct;202 readonly isTransfer: boolean;203 readonly asTransfer: {204 readonly from: AccountId32;205 readonly to: AccountId32;206 readonly amount: u128;207 } & Struct;208 readonly isBalanceSet: boolean;209 readonly asBalanceSet: {210 readonly who: AccountId32;211 readonly free: u128;212 readonly reserved: u128;213 } & Struct;214 readonly isReserved: boolean;215 readonly asReserved: {216 readonly who: AccountId32;217 readonly amount: u128;218 } & Struct;219 readonly isUnreserved: boolean;220 readonly asUnreserved: {221 readonly who: AccountId32;222 readonly amount: u128;223 } & Struct;224 readonly isReserveRepatriated: boolean;225 readonly asReserveRepatriated: {226 readonly from: AccountId32;227 readonly to: AccountId32;228 readonly amount: u128;229 readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;230 } & Struct;231 readonly isDeposit: boolean;232 readonly asDeposit: {233 readonly who: AccountId32;234 readonly amount: u128;235 } & Struct;236 readonly isWithdraw: boolean;237 readonly asWithdraw: {238 readonly who: AccountId32;239 readonly amount: u128;240 } & Struct;241 readonly isSlashed: boolean;242 readonly asSlashed: {243 readonly who: AccountId32;244 readonly amount: u128;245 } & Struct;246 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';247 }248249 /** @name FrameSupportTokensMiscBalanceStatus (29) */250 interface FrameSupportTokensMiscBalanceStatus extends Enum {251 readonly isFree: boolean;252 readonly isReserved: boolean;253 readonly type: 'Free' | 'Reserved';254 }255256 /** @name PalletTransactionPaymentEvent (30) */257 interface PalletTransactionPaymentEvent extends Enum {258 readonly isTransactionFeePaid: boolean;259 readonly asTransactionFeePaid: {260 readonly who: AccountId32;261 readonly actualFee: u128;262 readonly tip: u128;263 } & Struct;264 readonly type: 'TransactionFeePaid';265 }266267 /** @name PalletTreasuryEvent (31) */268 interface PalletTreasuryEvent extends Enum {269 readonly isProposed: boolean;270 readonly asProposed: {271 readonly proposalIndex: u32;272 } & Struct;273 readonly isSpending: boolean;274 readonly asSpending: {275 readonly budgetRemaining: u128;276 } & Struct;277 readonly isAwarded: boolean;278 readonly asAwarded: {279 readonly proposalIndex: u32;280 readonly award: u128;281 readonly account: AccountId32;282 } & Struct;283 readonly isRejected: boolean;284 readonly asRejected: {285 readonly proposalIndex: u32;286 readonly slashed: u128;287 } & Struct;288 readonly isBurnt: boolean;289 readonly asBurnt: {290 readonly burntFunds: u128;291 } & Struct;292 readonly isRollover: boolean;293 readonly asRollover: {294 readonly rolloverBalance: u128;295 } & Struct;296 readonly isDeposit: boolean;297 readonly asDeposit: {298 readonly value: u128;299 } & Struct;300 readonly isSpendApproved: boolean;301 readonly asSpendApproved: {302 readonly proposalIndex: u32;303 readonly amount: u128;304 readonly beneficiary: AccountId32;305 } & Struct;306 readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit' | 'SpendApproved';307 }308309 /** @name PalletSudoEvent (32) */310 interface PalletSudoEvent extends Enum {311 readonly isSudid: boolean;312 readonly asSudid: {313 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;314 } & Struct;315 readonly isKeyChanged: boolean;316 readonly asKeyChanged: {317 readonly oldSudoer: Option<AccountId32>;318 } & Struct;319 readonly isSudoAsDone: boolean;320 readonly asSudoAsDone: {321 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;322 } & Struct;323 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';324 }325326 /** @name OrmlVestingModuleEvent (36) */327 interface OrmlVestingModuleEvent extends Enum {328 readonly isVestingScheduleAdded: boolean;329 readonly asVestingScheduleAdded: {330 readonly from: AccountId32;331 readonly to: AccountId32;332 readonly vestingSchedule: OrmlVestingVestingSchedule;333 } & Struct;334 readonly isClaimed: boolean;335 readonly asClaimed: {336 readonly who: AccountId32;337 readonly amount: u128;338 } & Struct;339 readonly isVestingSchedulesUpdated: boolean;340 readonly asVestingSchedulesUpdated: {341 readonly who: AccountId32;342 } & Struct;343 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';344 }345346 /** @name OrmlVestingVestingSchedule (37) */347 interface OrmlVestingVestingSchedule extends Struct {348 readonly start: u32;349 readonly period: u32;350 readonly periodCount: u32;351 readonly perPeriod: Compact<u128>;352 }353354 /** @name CumulusPalletXcmpQueueEvent (39) */355 interface CumulusPalletXcmpQueueEvent extends Enum {356 readonly isSuccess: 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: {385 readonly sender: u32;386 readonly sentAt: u32;387 readonly index: u64;388 readonly required: u64;389 } & 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';396 }397398 /** @name XcmV2TraitsError (41) */399 interface XcmV2TraitsError extends Enum {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 }430431 /** @name PalletXcmEvent (43) */432 interface PalletXcmEvent extends Enum {433 readonly isAttempted: boolean;434 readonly asAttempted: XcmV2TraitsOutcome;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 }467468 /** @name XcmV2TraitsOutcome (44) */469 interface XcmV2TraitsOutcome extends Enum {470 readonly isComplete: boolean;471 readonly asComplete: u64;472 readonly isIncomplete: boolean;473 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;474 readonly isError: boolean;475 readonly asError: XcmV2TraitsError;476 readonly type: 'Complete' | 'Incomplete' | 'Error';477 }478479 /** @name XcmV1MultiLocation (45) */480 interface XcmV1MultiLocation extends Struct {481 readonly parents: u8;482 readonly interior: XcmV1MultilocationJunctions;483 }484485 /** @name XcmV1MultilocationJunctions (46) */486 interface XcmV1MultilocationJunctions extends Enum {487 readonly isHere: boolean;488 readonly isX1: boolean;489 readonly asX1: XcmV1Junction;490 readonly isX2: boolean;491 readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;492 readonly isX3: boolean;493 readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;494 readonly isX4: boolean;495 readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;496 readonly isX5: boolean;497 readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;498 readonly isX6: boolean;499 readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;500 readonly isX7: boolean;501 readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;502 readonly isX8: boolean;503 readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;504 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';505 }506507 /** @name XcmV1Junction (47) */508 interface XcmV1Junction extends Enum {509 readonly isParachain: boolean;510 readonly asParachain: Compact<u32>;511 readonly isAccountId32: boolean;512 readonly asAccountId32: {513 readonly network: XcmV0JunctionNetworkId;514 readonly id: U8aFixed;515 } & Struct;516 readonly isAccountIndex64: boolean;517 readonly asAccountIndex64: {518 readonly network: XcmV0JunctionNetworkId;519 readonly index: Compact<u64>;520 } & Struct;521 readonly isAccountKey20: boolean;522 readonly asAccountKey20: {523 readonly network: XcmV0JunctionNetworkId;524 readonly key: U8aFixed;525 } & Struct;526 readonly isPalletInstance: boolean;527 readonly asPalletInstance: u8;528 readonly isGeneralIndex: boolean;529 readonly asGeneralIndex: Compact<u128>;530 readonly isGeneralKey: boolean;531 readonly asGeneralKey: Bytes;532 readonly isOnlyChild: boolean;533 readonly isPlurality: boolean;534 readonly asPlurality: {535 readonly id: XcmV0JunctionBodyId;536 readonly part: XcmV0JunctionBodyPart;537 } & Struct;538 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';539 }540541 /** @name XcmV0JunctionNetworkId (49) */542 interface XcmV0JunctionNetworkId extends Enum {543 readonly isAny: boolean;544 readonly isNamed: boolean;545 readonly asNamed: Bytes;546 readonly isPolkadot: boolean;547 readonly isKusama: boolean;548 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';549 }550551 /** @name XcmV0JunctionBodyId (53) */552 interface XcmV0JunctionBodyId extends Enum {553 readonly isUnit: boolean;554 readonly isNamed: boolean;555 readonly asNamed: Bytes;556 readonly isIndex: boolean;557 readonly asIndex: Compact<u32>;558 readonly isExecutive: boolean;559 readonly isTechnical: boolean;560 readonly isLegislative: boolean;561 readonly isJudicial: boolean;562 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';563 }564565 /** @name XcmV0JunctionBodyPart (54) */566 interface XcmV0JunctionBodyPart extends Enum {567 readonly isVoice: boolean;568 readonly isMembers: boolean;569 readonly asMembers: {570 readonly count: Compact<u32>;571 } & Struct;572 readonly isFraction: boolean;573 readonly asFraction: {574 readonly nom: Compact<u32>;575 readonly denom: Compact<u32>;576 } & Struct;577 readonly isAtLeastProportion: boolean;578 readonly asAtLeastProportion: {579 readonly nom: Compact<u32>;580 readonly denom: Compact<u32>;581 } & Struct;582 readonly isMoreThanProportion: boolean;583 readonly asMoreThanProportion: {584 readonly nom: Compact<u32>;585 readonly denom: Compact<u32>;586 } & Struct;587 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';588 }589590 /** @name XcmV2Xcm (55) */591 interface XcmV2Xcm extends Vec<XcmV2Instruction> {}592593 /** @name XcmV2Instruction (57) */594 interface XcmV2Instruction extends Enum {595 readonly isWithdrawAsset: boolean;596 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;597 readonly isReserveAssetDeposited: boolean;598 readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;599 readonly isReceiveTeleportedAsset: boolean;600 readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;601 readonly isQueryResponse: boolean;602 readonly asQueryResponse: {603 readonly queryId: Compact<u64>;604 readonly response: XcmV2Response;605 readonly maxWeight: Compact<u64>;606 } & Struct;607 readonly isTransferAsset: boolean;608 readonly asTransferAsset: {609 readonly assets: XcmV1MultiassetMultiAssets;610 readonly beneficiary: XcmV1MultiLocation;611 } & Struct;612 readonly isTransferReserveAsset: boolean;613 readonly asTransferReserveAsset: {614 readonly assets: XcmV1MultiassetMultiAssets;615 readonly dest: XcmV1MultiLocation;616 readonly xcm: XcmV2Xcm;617 } & Struct;618 readonly isTransact: boolean;619 readonly asTransact: {620 readonly originType: XcmV0OriginKind;621 readonly requireWeightAtMost: Compact<u64>;622 readonly call: XcmDoubleEncoded;623 } & Struct;624 readonly isHrmpNewChannelOpenRequest: boolean;625 readonly asHrmpNewChannelOpenRequest: {626 readonly sender: Compact<u32>;627 readonly maxMessageSize: Compact<u32>;628 readonly maxCapacity: Compact<u32>;629 } & Struct;630 readonly isHrmpChannelAccepted: boolean;631 readonly asHrmpChannelAccepted: {632 readonly recipient: Compact<u32>;633 } & Struct;634 readonly isHrmpChannelClosing: boolean;635 readonly asHrmpChannelClosing: {636 readonly initiator: Compact<u32>;637 readonly sender: Compact<u32>;638 readonly recipient: Compact<u32>;639 } & Struct;640 readonly isClearOrigin: boolean;641 readonly isDescendOrigin: boolean;642 readonly asDescendOrigin: XcmV1MultilocationJunctions;643 readonly isReportError: boolean;644 readonly asReportError: {645 readonly queryId: Compact<u64>;646 readonly dest: XcmV1MultiLocation;647 readonly maxResponseWeight: Compact<u64>;648 } & Struct;649 readonly isDepositAsset: boolean;650 readonly asDepositAsset: {651 readonly assets: XcmV1MultiassetMultiAssetFilter;652 readonly maxAssets: Compact<u32>;653 readonly beneficiary: XcmV1MultiLocation;654 } & Struct;655 readonly isDepositReserveAsset: boolean;656 readonly asDepositReserveAsset: {657 readonly assets: XcmV1MultiassetMultiAssetFilter;658 readonly maxAssets: Compact<u32>;659 readonly dest: XcmV1MultiLocation;660 readonly xcm: XcmV2Xcm;661 } & Struct;662 readonly isExchangeAsset: boolean;663 readonly asExchangeAsset: {664 readonly give: XcmV1MultiassetMultiAssetFilter;665 readonly receive: XcmV1MultiassetMultiAssets;666 } & Struct;667 readonly isInitiateReserveWithdraw: boolean;668 readonly asInitiateReserveWithdraw: {669 readonly assets: XcmV1MultiassetMultiAssetFilter;670 readonly reserve: XcmV1MultiLocation;671 readonly xcm: XcmV2Xcm;672 } & Struct;673 readonly isInitiateTeleport: boolean;674 readonly asInitiateTeleport: {675 readonly assets: XcmV1MultiassetMultiAssetFilter;676 readonly dest: XcmV1MultiLocation;677 readonly xcm: XcmV2Xcm;678 } & Struct;679 readonly isQueryHolding: boolean;680 readonly asQueryHolding: {681 readonly queryId: Compact<u64>;682 readonly dest: XcmV1MultiLocation;683 readonly assets: XcmV1MultiassetMultiAssetFilter;684 readonly maxResponseWeight: Compact<u64>;685 } & Struct;686 readonly isBuyExecution: boolean;687 readonly asBuyExecution: {688 readonly fees: XcmV1MultiAsset;689 readonly weightLimit: XcmV2WeightLimit;690 } & Struct;691 readonly isRefundSurplus: boolean;692 readonly isSetErrorHandler: boolean;693 readonly asSetErrorHandler: XcmV2Xcm;694 readonly isSetAppendix: boolean;695 readonly asSetAppendix: XcmV2Xcm;696 readonly isClearError: boolean;697 readonly isClaimAsset: boolean;698 readonly asClaimAsset: {699 readonly assets: XcmV1MultiassetMultiAssets;700 readonly ticket: XcmV1MultiLocation;701 } & Struct;702 readonly isTrap: boolean;703 readonly asTrap: Compact<u64>;704 readonly isSubscribeVersion: boolean;705 readonly asSubscribeVersion: {706 readonly queryId: Compact<u64>;707 readonly maxResponseWeight: Compact<u64>;708 } & Struct;709 readonly isUnsubscribeVersion: boolean;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';711 }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 }757758 /** @name XcmV2Response (66) */759 interface XcmV2Response extends Enum {760 readonly isNull: boolean;761 readonly isAssets: boolean;762 readonly asAssets: XcmV1MultiassetMultiAssets;763 readonly isExecutionResult: boolean;764 readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;765 readonly isVersion: boolean;766 readonly asVersion: u32;767 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';768 }769770 /** @name XcmV0OriginKind (69) */771 interface XcmV0OriginKind extends Enum {772 readonly isNative: boolean;773 readonly isSovereignAccount: boolean;774 readonly isSuperuser: boolean;775 readonly isXcm: boolean;776 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';777 }778779 /** @name XcmDoubleEncoded (70) */780 interface XcmDoubleEncoded extends Struct {781 readonly encoded: Bytes;782 }783784 /** @name XcmV1MultiassetMultiAssetFilter (71) */785 interface XcmV1MultiassetMultiAssetFilter extends Enum {786 readonly isDefinite: boolean;787 readonly asDefinite: XcmV1MultiassetMultiAssets;788 readonly isWild: boolean;789 readonly asWild: XcmV1MultiassetWildMultiAsset;790 readonly type: 'Definite' | 'Wild';791 }792793 /** @name XcmV1MultiassetWildMultiAsset (72) */794 interface XcmV1MultiassetWildMultiAsset extends Enum {795 readonly isAll: boolean;796 readonly isAllOf: boolean;797 readonly asAllOf: {798 readonly id: XcmV1MultiassetAssetId;799 readonly fun: XcmV1MultiassetWildFungibility;800 } & Struct;801 readonly type: 'All' | 'AllOf';802 }803804 /** @name XcmV1MultiassetWildFungibility (73) */805 interface XcmV1MultiassetWildFungibility extends Enum {806 readonly isFungible: boolean;807 readonly isNonFungible: boolean;808 readonly type: 'Fungible' | 'NonFungible';809 }810811 /** @name XcmV2WeightLimit (74) */812 interface XcmV2WeightLimit extends Enum {813 readonly isUnlimited: boolean;814 readonly isLimited: boolean;815 readonly asLimited: Compact<u64>;816 readonly type: 'Unlimited' | 'Limited';817 }818819 /** @name XcmVersionedMultiAssets (76) */820 interface XcmVersionedMultiAssets extends Enum {821 readonly isV0: boolean;822 readonly asV0: Vec<XcmV0MultiAsset>;823 readonly isV1: boolean;824 readonly asV1: XcmV1MultiassetMultiAssets;825 readonly type: 'V0' | 'V1';826 }827828 /** @name XcmV0MultiAsset (78) */829 interface XcmV0MultiAsset extends Enum {830 readonly isNone: boolean;831 readonly isAll: boolean;832 readonly isAllFungible: boolean;833 readonly isAllNonFungible: boolean;834 readonly isAllAbstractFungible: boolean;835 readonly asAllAbstractFungible: {836 readonly id: Bytes;837 } & Struct;838 readonly isAllAbstractNonFungible: boolean;839 readonly asAllAbstractNonFungible: {840 readonly class: Bytes;841 } & Struct;842 readonly isAllConcreteFungible: boolean;843 readonly asAllConcreteFungible: {844 readonly id: XcmV0MultiLocation;845 } & Struct;846 readonly isAllConcreteNonFungible: boolean;847 readonly asAllConcreteNonFungible: {848 readonly class: XcmV0MultiLocation;849 } & Struct;850 readonly isAbstractFungible: boolean;851 readonly asAbstractFungible: {852 readonly id: Bytes;853 readonly amount: Compact<u128>;854 } & Struct;855 readonly isAbstractNonFungible: boolean;856 readonly asAbstractNonFungible: {857 readonly class: Bytes;858 readonly instance: XcmV1MultiassetAssetInstance;859 } & Struct;860 readonly isConcreteFungible: boolean;861 readonly asConcreteFungible: {862 readonly id: XcmV0MultiLocation;863 readonly amount: Compact<u128>;864 } & Struct;865 readonly isConcreteNonFungible: boolean;866 readonly asConcreteNonFungible: {867 readonly class: XcmV0MultiLocation;868 readonly instance: XcmV1MultiassetAssetInstance;869 } & Struct;870 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';871 }872873 /** @name XcmV0MultiLocation (79) */874 interface XcmV0MultiLocation extends Enum {875 readonly isNull: boolean;876 readonly isX1: boolean;877 readonly asX1: XcmV0Junction;878 readonly isX2: boolean;879 readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;880 readonly isX3: boolean;881 readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;882 readonly isX4: boolean;883 readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;884 readonly isX5: boolean;885 readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;886 readonly isX6: boolean;887 readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;888 readonly isX7: boolean;889 readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;890 readonly isX8: boolean;891 readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;892 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';893 }894895 /** @name XcmV0Junction (80) */896 interface XcmV0Junction extends Enum {897 readonly isParent: boolean;898 readonly isParachain: boolean;899 readonly asParachain: Compact<u32>;900 readonly isAccountId32: boolean;901 readonly asAccountId32: {902 readonly network: XcmV0JunctionNetworkId;903 readonly id: U8aFixed;904 } & Struct;905 readonly isAccountIndex64: boolean;906 readonly asAccountIndex64: {907 readonly network: XcmV0JunctionNetworkId;908 readonly index: Compact<u64>;909 } & Struct;910 readonly isAccountKey20: boolean;911 readonly asAccountKey20: {912 readonly network: XcmV0JunctionNetworkId;913 readonly key: U8aFixed;914 } & Struct;915 readonly isPalletInstance: boolean;916 readonly asPalletInstance: u8;917 readonly isGeneralIndex: boolean;918 readonly asGeneralIndex: Compact<u128>;919 readonly isGeneralKey: boolean;920 readonly asGeneralKey: Bytes;921 readonly isOnlyChild: boolean;922 readonly isPlurality: boolean;923 readonly asPlurality: {924 readonly id: XcmV0JunctionBodyId;925 readonly part: XcmV0JunctionBodyPart;926 } & Struct;927 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';928 }929930 /** @name XcmVersionedMultiLocation (81) */931 interface XcmVersionedMultiLocation extends Enum {932 readonly isV0: boolean;933 readonly asV0: XcmV0MultiLocation;934 readonly isV1: boolean;935 readonly asV1: XcmV1MultiLocation;936 readonly type: 'V0' | 'V1';937 }938939 /** @name CumulusPalletXcmEvent (82) */940 interface CumulusPalletXcmEvent extends Enum {941 readonly isInvalidFormat: boolean;942 readonly asInvalidFormat: U8aFixed;943 readonly isUnsupportedVersion: boolean;944 readonly asUnsupportedVersion: U8aFixed;945 readonly isExecutedDownward: boolean;946 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;947 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';948 }949950 /** @name CumulusPalletDmpQueueEvent (83) */951 interface CumulusPalletDmpQueueEvent extends Enum {952 readonly isInvalidFormat: boolean;953 readonly asInvalidFormat: {954 readonly messageId: U8aFixed;955 } & Struct;956 readonly isUnsupportedVersion: boolean;957 readonly asUnsupportedVersion: {958 readonly messageId: U8aFixed;959 } & Struct;960 readonly isExecutedDownward: boolean;961 readonly asExecutedDownward: {962 readonly messageId: U8aFixed;963 readonly outcome: XcmV2TraitsOutcome;964 } & Struct;965 readonly isWeightExhausted: boolean;966 readonly asWeightExhausted: {967 readonly messageId: U8aFixed;968 readonly remainingWeight: u64;969 readonly requiredWeight: u64;970 } & Struct;971 readonly isOverweightEnqueued: boolean;972 readonly asOverweightEnqueued: {973 readonly messageId: U8aFixed;974 readonly overweightIndex: u64;975 readonly requiredWeight: u64;976 } & Struct;977 readonly isOverweightServiced: boolean;978 readonly asOverweightServiced: {979 readonly overweightIndex: u64;980 readonly weightUsed: u64;981 } & Struct;982 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';983 }984985 /** @name PalletUniqueRawEvent (84) */986 interface PalletUniqueRawEvent extends Enum {987 readonly isCollectionSponsorRemoved: boolean;988 readonly asCollectionSponsorRemoved: u32;989 readonly isCollectionAdminAdded: boolean;990 readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;991 readonly isCollectionOwnedChanged: boolean;992 readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;993 readonly isCollectionSponsorSet: boolean;994 readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;995 readonly isSponsorshipConfirmed: boolean;996 readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;997 readonly isCollectionAdminRemoved: boolean;998 readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;999 readonly isAllowListAddressRemoved: boolean;1000 readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1001 readonly isAllowListAddressAdded: boolean;1002 readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1003 readonly isCollectionLimitSet: boolean;1004 readonly asCollectionLimitSet: u32;1005 readonly isCollectionPermissionSet: boolean;1006 readonly asCollectionPermissionSet: u32;1007 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';1008 }10091010 /** @name PalletEvmAccountBasicCrossAccountIdRepr (85) */1011 interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1012 readonly isSubstrate: boolean;1013 readonly asSubstrate: AccountId32;1014 readonly isEthereum: boolean;1015 readonly asEthereum: H160;1016 readonly type: 'Substrate' | 'Ethereum';1017 }10181019 /** @name PalletUniqueSchedulerEvent (88) */1020 interface PalletUniqueSchedulerEvent extends Enum {1021 readonly isScheduled: boolean;1022 readonly asScheduled: {1023 readonly when: u32;1024 readonly index: u32;1025 } & Struct;1026 readonly isCanceled: boolean;1027 readonly asCanceled: {1028 readonly when: u32;1029 readonly index: u32;1030 } & Struct;1031 readonly isDispatched: boolean;1032 readonly asDispatched: {1033 readonly task: ITuple<[u32, u32]>;1034 readonly id: Option<U8aFixed>;1035 readonly result: Result<Null, SpRuntimeDispatchError>;1036 } & Struct;1037 readonly isCallLookupFailed: boolean;1038 readonly asCallLookupFailed: {1039 readonly task: ITuple<[u32, u32]>;1040 readonly id: Option<U8aFixed>;1041 readonly error: FrameSupportScheduleLookupError;1042 } & Struct;1043 readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';1044 }10451046 /** @name FrameSupportScheduleLookupError (91) */1047 interface FrameSupportScheduleLookupError extends Enum {1048 readonly isUnknown: boolean;1049 readonly isBadFormat: boolean;1050 readonly type: 'Unknown' | 'BadFormat';1051 }10521053 /** @name PalletCommonEvent (92) */1054 interface PalletCommonEvent extends Enum {1055 readonly isCollectionCreated: boolean;1056 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;1057 readonly isCollectionDestroyed: boolean;1058 readonly asCollectionDestroyed: u32;1059 readonly isItemCreated: boolean;1060 readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1061 readonly isItemDestroyed: boolean;1062 readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1063 readonly isTransfer: boolean;1064 readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1065 readonly isApproved: boolean;1066 readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1067 readonly isCollectionPropertySet: boolean;1068 readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;1069 readonly isCollectionPropertyDeleted: boolean;1070 readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;1071 readonly isTokenPropertySet: boolean;1072 readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;1073 readonly isTokenPropertyDeleted: boolean;1074 readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;1075 readonly isPropertyPermissionSet: boolean;1076 readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;1077 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';1078 }10791080 /** @name PalletStructureEvent (95) */1081 interface PalletStructureEvent extends Enum {1082 readonly isExecuted: boolean;1083 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1084 readonly type: 'Executed';1085 }10861087 /** @name PalletRmrkCoreEvent (96) */1088 interface PalletRmrkCoreEvent extends Enum {1089 readonly isCollectionCreated: boolean;1090 readonly asCollectionCreated: {1091 readonly issuer: AccountId32;1092 readonly collectionId: u32;1093 } & Struct;1094 readonly isCollectionDestroyed: boolean;1095 readonly asCollectionDestroyed: {1096 readonly issuer: AccountId32;1097 readonly collectionId: u32;1098 } & Struct;1099 readonly isIssuerChanged: boolean;1100 readonly asIssuerChanged: {1101 readonly oldIssuer: AccountId32;1102 readonly newIssuer: AccountId32;1103 readonly collectionId: u32;1104 } & Struct;1105 readonly isCollectionLocked: boolean;1106 readonly asCollectionLocked: {1107 readonly issuer: AccountId32;1108 readonly collectionId: u32;1109 } & Struct;1110 readonly isNftMinted: boolean;1111 readonly asNftMinted: {1112 readonly owner: AccountId32;1113 readonly collectionId: u32;1114 readonly nftId: u32;1115 } & Struct;1116 readonly isNftBurned: boolean;1117 readonly asNftBurned: {1118 readonly owner: AccountId32;1119 readonly nftId: u32;1120 } & Struct;1121 readonly isNftSent: boolean;1122 readonly asNftSent: {1123 readonly sender: AccountId32;1124 readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;1125 readonly collectionId: u32;1126 readonly nftId: u32;1127 readonly approvalRequired: bool;1128 } & Struct;1129 readonly isNftAccepted: boolean;1130 readonly asNftAccepted: {1131 readonly sender: AccountId32;1132 readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;1133 readonly collectionId: u32;1134 readonly nftId: u32;1135 } & Struct;1136 readonly isNftRejected: boolean;1137 readonly asNftRejected: {1138 readonly sender: AccountId32;1139 readonly collectionId: u32;1140 readonly nftId: u32;1141 } & Struct;1142 readonly isPropertySet: boolean;1143 readonly asPropertySet: {1144 readonly collectionId: u32;1145 readonly maybeNftId: Option<u32>;1146 readonly key: Bytes;1147 readonly value: Bytes;1148 } & Struct;1149 readonly isResourceAdded: boolean;1150 readonly asResourceAdded: {1151 readonly nftId: u32;1152 readonly resourceId: u32;1153 } & Struct;1154 readonly isResourceRemoval: boolean;1155 readonly asResourceRemoval: {1156 readonly nftId: u32;1157 readonly resourceId: u32;1158 } & Struct;1159 readonly isResourceAccepted: boolean;1160 readonly asResourceAccepted: {1161 readonly nftId: u32;1162 readonly resourceId: u32;1163 } & Struct;1164 readonly isResourceRemovalAccepted: boolean;1165 readonly asResourceRemovalAccepted: {1166 readonly nftId: u32;1167 readonly resourceId: u32;1168 } & Struct;1169 readonly isPrioritySet: boolean;1170 readonly asPrioritySet: {1171 readonly collectionId: u32;1172 readonly nftId: u32;1173 } & Struct;1174 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';1175 }11761177 /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (97) */1178 interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1179 readonly isAccountId: boolean;1180 readonly asAccountId: AccountId32;1181 readonly isCollectionAndNftTuple: boolean;1182 readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;1183 readonly type: 'AccountId' | 'CollectionAndNftTuple';1184 }11851186 /** @name PalletRmrkEquipEvent (102) */1187 interface PalletRmrkEquipEvent extends Enum {1188 readonly isBaseCreated: boolean;1189 readonly asBaseCreated: {1190 readonly issuer: AccountId32;1191 readonly baseId: u32;1192 } & Struct;1193 readonly isEquippablesUpdated: boolean;1194 readonly asEquippablesUpdated: {1195 readonly baseId: u32;1196 readonly slotId: u32;1197 } & Struct;1198 readonly type: 'BaseCreated' | 'EquippablesUpdated';1199 }12001201 /** @name PalletEvmEvent (103) */1202 interface PalletEvmEvent extends Enum {1203 readonly isLog: boolean;1204 readonly asLog: EthereumLog;1205 readonly isCreated: boolean;1206 readonly asCreated: H160;1207 readonly isCreatedFailed: boolean;1208 readonly asCreatedFailed: H160;1209 readonly isExecuted: boolean;1210 readonly asExecuted: H160;1211 readonly isExecutedFailed: boolean;1212 readonly asExecutedFailed: H160;1213 readonly isBalanceDeposit: boolean;1214 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;1215 readonly isBalanceWithdraw: boolean;1216 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;1217 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1218 }12191220 /** @name EthereumLog (104) */1221 interface EthereumLog extends Struct {1222 readonly address: H160;1223 readonly topics: Vec<H256>;1224 readonly data: Bytes;1225 }12261227 /** @name PalletEthereumEvent (108) */1228 interface PalletEthereumEvent extends Enum {1229 readonly isExecuted: boolean;1230 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;1231 readonly type: 'Executed';1232 }12331234 /** @name EvmCoreErrorExitReason (109) */1235 interface EvmCoreErrorExitReason extends Enum {1236 readonly isSucceed: boolean;1237 readonly asSucceed: EvmCoreErrorExitSucceed;1238 readonly isError: boolean;1239 readonly asError: EvmCoreErrorExitError;1240 readonly isRevert: boolean;1241 readonly asRevert: EvmCoreErrorExitRevert;1242 readonly isFatal: boolean;1243 readonly asFatal: EvmCoreErrorExitFatal;1244 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';1245 }12461247 /** @name EvmCoreErrorExitSucceed (110) */1248 interface EvmCoreErrorExitSucceed extends Enum {1249 readonly isStopped: boolean;1250 readonly isReturned: boolean;1251 readonly isSuicided: boolean;1252 readonly type: 'Stopped' | 'Returned' | 'Suicided';1253 }12541255 /** @name EvmCoreErrorExitError (111) */1256 interface EvmCoreErrorExitError extends Enum {1257 readonly isStackUnderflow: boolean;1258 readonly isStackOverflow: boolean;1259 readonly isInvalidJump: boolean;1260 readonly isInvalidRange: boolean;1261 readonly isDesignatedInvalid: boolean;1262 readonly isCallTooDeep: boolean;1263 readonly isCreateCollision: boolean;1264 readonly isCreateContractLimit: boolean;1265 readonly isOutOfOffset: boolean;1266 readonly isOutOfGas: boolean;1267 readonly isOutOfFund: boolean;1268 readonly isPcUnderflow: boolean;1269 readonly isCreateEmpty: boolean;1270 readonly isOther: boolean;1271 readonly asOther: Text;1272 readonly isInvalidCode: boolean;1273 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';1274 }12751276 /** @name EvmCoreErrorExitRevert (114) */1277 interface EvmCoreErrorExitRevert extends Enum {1278 readonly isReverted: boolean;1279 readonly type: 'Reverted';1280 }12811282 /** @name EvmCoreErrorExitFatal (115) */1283 interface EvmCoreErrorExitFatal extends Enum {1284 readonly isNotSupported: boolean;1285 readonly isUnhandledInterrupt: boolean;1286 readonly isCallErrorAsFatal: boolean;1287 readonly asCallErrorAsFatal: EvmCoreErrorExitError;1288 readonly isOther: boolean;1289 readonly asOther: Text;1290 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';1291 }12921293 /** @name FrameSystemPhase (116) */1294 interface FrameSystemPhase extends Enum {1295 readonly isApplyExtrinsic: boolean;1296 readonly asApplyExtrinsic: u32;1297 readonly isFinalization: boolean;1298 readonly isInitialization: boolean;1299 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';1300 }13011302 /** @name FrameSystemLastRuntimeUpgradeInfo (118) */1303 interface FrameSystemLastRuntimeUpgradeInfo extends Struct {1304 readonly specVersion: Compact<u32>;1305 readonly specName: Text;1306 }13071308 /** @name FrameSystemCall (119) */1309 interface FrameSystemCall extends Enum {1310 readonly isFillBlock: boolean;1311 readonly asFillBlock: {1312 readonly ratio: Perbill;1313 } & Struct;1314 readonly isRemark: boolean;1315 readonly asRemark: {1316 readonly remark: Bytes;1317 } & Struct;1318 readonly isSetHeapPages: boolean;1319 readonly asSetHeapPages: {1320 readonly pages: u64;1321 } & Struct;1322 readonly isSetCode: boolean;1323 readonly asSetCode: {1324 readonly code: Bytes;1325 } & Struct;1326 readonly isSetCodeWithoutChecks: boolean;1327 readonly asSetCodeWithoutChecks: {1328 readonly code: Bytes;1329 } & Struct;1330 readonly isSetStorage: boolean;1331 readonly asSetStorage: {1332 readonly items: Vec<ITuple<[Bytes, Bytes]>>;1333 } & Struct;1334 readonly isKillStorage: boolean;1335 readonly asKillStorage: {1336 readonly keys_: Vec<Bytes>;1337 } & Struct;1338 readonly isKillPrefix: boolean;1339 readonly asKillPrefix: {1340 readonly prefix: Bytes;1341 readonly subkeys: u32;1342 } & Struct;1343 readonly isRemarkWithEvent: boolean;1344 readonly asRemarkWithEvent: {1345 readonly remark: Bytes;1346 } & Struct;1347 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';1348 }13491350 /** @name FrameSystemLimitsBlockWeights (124) */1351 interface FrameSystemLimitsBlockWeights extends Struct {1352 readonly baseBlock: u64;1353 readonly maxBlock: u64;1354 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;1355 }13561357 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (125) */1358 interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {1359 readonly normal: FrameSystemLimitsWeightsPerClass;1360 readonly operational: FrameSystemLimitsWeightsPerClass;1361 readonly mandatory: FrameSystemLimitsWeightsPerClass;1362 }13631364 /** @name FrameSystemLimitsWeightsPerClass (126) */1365 interface FrameSystemLimitsWeightsPerClass extends Struct {1366 readonly baseExtrinsic: u64;1367 readonly maxExtrinsic: Option<u64>;1368 readonly maxTotal: Option<u64>;1369 readonly reserved: Option<u64>;1370 }13711372 /** @name FrameSystemLimitsBlockLength (128) */1373 interface FrameSystemLimitsBlockLength extends Struct {1374 readonly max: FrameSupportWeightsPerDispatchClassU32;1375 }13761377 /** @name FrameSupportWeightsPerDispatchClassU32 (129) */1378 interface FrameSupportWeightsPerDispatchClassU32 extends Struct {1379 readonly normal: u32;1380 readonly operational: u32;1381 readonly mandatory: u32;1382 }13831384 /** @name FrameSupportWeightsRuntimeDbWeight (130) */1385 interface FrameSupportWeightsRuntimeDbWeight extends Struct {1386 readonly read: u64;1387 readonly write: u64;1388 }13891390 /** @name SpVersionRuntimeVersion (131) */1391 interface SpVersionRuntimeVersion extends Struct {1392 readonly specName: Text;1393 readonly implName: Text;1394 readonly authoringVersion: u32;1395 readonly specVersion: u32;1396 readonly implVersion: u32;1397 readonly apis: Vec<ITuple<[U8aFixed, u32]>>;1398 readonly transactionVersion: u32;1399 readonly stateVersion: u8;1400 }14011402 /** @name FrameSystemError (136) */1403 interface FrameSystemError extends Enum {1404 readonly isInvalidSpecName: boolean;1405 readonly isSpecVersionNeedsToIncrease: boolean;1406 readonly isFailedToExtractRuntimeVersion: boolean;1407 readonly isNonDefaultComposite: boolean;1408 readonly isNonZeroRefCount: boolean;1409 readonly isCallFiltered: boolean;1410 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';1411 }14121413 /** @name PolkadotPrimitivesV2PersistedValidationData (137) */1414 interface PolkadotPrimitivesV2PersistedValidationData extends Struct {1415 readonly parentHead: Bytes;1416 readonly relayParentNumber: u32;1417 readonly relayParentStorageRoot: H256;1418 readonly maxPovSize: u32;1419 }14201421 /** @name PolkadotPrimitivesV2UpgradeRestriction (140) */1422 interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {1423 readonly isPresent: boolean;1424 readonly type: 'Present';1425 }14261427 /** @name SpTrieStorageProof (141) */1428 interface SpTrieStorageProof extends Struct {1429 readonly trieNodes: BTreeSet<Bytes>;1430 }14311432 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (143) */1433 interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {1434 readonly dmqMqcHead: H256;1435 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;1436 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1437 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1438 }14391440 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (146) */1441 interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {1442 readonly maxCapacity: u32;1443 readonly maxTotalSize: u32;1444 readonly maxMessageSize: u32;1445 readonly msgCount: u32;1446 readonly totalSize: u32;1447 readonly mqcHead: Option<H256>;1448 }14491450 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (147) */1451 interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {1452 readonly maxCodeSize: u32;1453 readonly maxHeadDataSize: u32;1454 readonly maxUpwardQueueCount: u32;1455 readonly maxUpwardQueueSize: u32;1456 readonly maxUpwardMessageSize: u32;1457 readonly maxUpwardMessageNumPerCandidate: u32;1458 readonly hrmpMaxMessageNumPerCandidate: u32;1459 readonly validationUpgradeCooldown: u32;1460 readonly validationUpgradeDelay: u32;1461 }14621463 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (153) */1464 interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {1465 readonly recipient: u32;1466 readonly data: Bytes;1467 }14681469 /** @name CumulusPalletParachainSystemCall (154) */1470 interface CumulusPalletParachainSystemCall extends Enum {1471 readonly isSetValidationData: boolean;1472 readonly asSetValidationData: {1473 readonly data: CumulusPrimitivesParachainInherentParachainInherentData;1474 } & Struct;1475 readonly isSudoSendUpwardMessage: boolean;1476 readonly asSudoSendUpwardMessage: {1477 readonly message: Bytes;1478 } & Struct;1479 readonly isAuthorizeUpgrade: boolean;1480 readonly asAuthorizeUpgrade: {1481 readonly codeHash: H256;1482 } & Struct;1483 readonly isEnactAuthorizedUpgrade: boolean;1484 readonly asEnactAuthorizedUpgrade: {1485 readonly code: Bytes;1486 } & Struct;1487 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';1488 }14891490 /** @name CumulusPrimitivesParachainInherentParachainInherentData (155) */1491 interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {1492 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;1493 readonly relayChainState: SpTrieStorageProof;1494 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;1495 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;1496 }14971498 /** @name PolkadotCorePrimitivesInboundDownwardMessage (157) */1499 interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1500 readonly sentAt: u32;1501 readonly msg: Bytes;1502 }15031504 /** @name PolkadotCorePrimitivesInboundHrmpMessage (160) */1505 interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1506 readonly sentAt: u32;1507 readonly data: Bytes;1508 }15091510 /** @name CumulusPalletParachainSystemError (163) */1511 interface CumulusPalletParachainSystemError extends Enum {1512 readonly isOverlappingUpgrades: boolean;1513 readonly isProhibitedByPolkadot: boolean;1514 readonly isTooBig: boolean;1515 readonly isValidationDataNotAvailable: boolean;1516 readonly isHostConfigurationNotAvailable: boolean;1517 readonly isNotScheduled: boolean;1518 readonly isNothingAuthorized: boolean;1519 readonly isUnauthorized: boolean;1520 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';1521 }15221523 /** @name PalletBalancesBalanceLock (165) */1524 interface PalletBalancesBalanceLock extends Struct {1525 readonly id: U8aFixed;1526 readonly amount: u128;1527 readonly reasons: PalletBalancesReasons;1528 }15291530 /** @name PalletBalancesReasons (166) */1531 interface PalletBalancesReasons extends Enum {1532 readonly isFee: boolean;1533 readonly isMisc: boolean;1534 readonly isAll: boolean;1535 readonly type: 'Fee' | 'Misc' | 'All';1536 }15371538 /** @name PalletBalancesReserveData (169) */1539 interface PalletBalancesReserveData extends Struct {1540 readonly id: U8aFixed;1541 readonly amount: u128;1542 }15431544 /** @name PalletBalancesReleases (171) */1545 interface PalletBalancesReleases extends Enum {1546 readonly isV100: boolean;1547 readonly isV200: boolean;1548 readonly type: 'V100' | 'V200';1549 }15501551 /** @name PalletBalancesCall (172) */1552 interface PalletBalancesCall extends Enum {1553 readonly isTransfer: boolean;1554 readonly asTransfer: {1555 readonly dest: MultiAddress;1556 readonly value: Compact<u128>;1557 } & Struct;1558 readonly isSetBalance: boolean;1559 readonly asSetBalance: {1560 readonly who: MultiAddress;1561 readonly newFree: Compact<u128>;1562 readonly newReserved: Compact<u128>;1563 } & Struct;1564 readonly isForceTransfer: boolean;1565 readonly asForceTransfer: {1566 readonly source: MultiAddress;1567 readonly dest: MultiAddress;1568 readonly value: Compact<u128>;1569 } & Struct;1570 readonly isTransferKeepAlive: boolean;1571 readonly asTransferKeepAlive: {1572 readonly dest: MultiAddress;1573 readonly value: Compact<u128>;1574 } & Struct;1575 readonly isTransferAll: boolean;1576 readonly asTransferAll: {1577 readonly dest: MultiAddress;1578 readonly keepAlive: bool;1579 } & Struct;1580 readonly isForceUnreserve: boolean;1581 readonly asForceUnreserve: {1582 readonly who: MultiAddress;1583 readonly amount: u128;1584 } & Struct;1585 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';1586 }15871588 /** @name PalletBalancesError (175) */1589 interface PalletBalancesError extends Enum {1590 readonly isVestingBalance: boolean;1591 readonly isLiquidityRestrictions: boolean;1592 readonly isInsufficientBalance: boolean;1593 readonly isExistentialDeposit: boolean;1594 readonly isKeepAlive: boolean;1595 readonly isExistingVestingSchedule: boolean;1596 readonly isDeadAccount: boolean;1597 readonly isTooManyReserves: boolean;1598 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';1599 }16001601 /** @name PalletTimestampCall (177) */1602 interface PalletTimestampCall extends Enum {1603 readonly isSet: boolean;1604 readonly asSet: {1605 readonly now: Compact<u64>;1606 } & Struct;1607 readonly type: 'Set';1608 }16091610 /** @name PalletTransactionPaymentReleases (179) */1611 interface PalletTransactionPaymentReleases extends Enum {1612 readonly isV1Ancient: boolean;1613 readonly isV2: boolean;1614 readonly type: 'V1Ancient' | 'V2';1615 }16161617 /** @name PalletTreasuryProposal (180) */1618 interface PalletTreasuryProposal extends Struct {1619 readonly proposer: AccountId32;1620 readonly value: u128;1621 readonly beneficiary: AccountId32;1622 readonly bond: u128;1623 }16241625 /** @name PalletTreasuryCall (183) */1626 interface PalletTreasuryCall extends Enum {1627 readonly isProposeSpend: boolean;1628 readonly asProposeSpend: {1629 readonly value: Compact<u128>;1630 readonly beneficiary: MultiAddress;1631 } & Struct;1632 readonly isRejectProposal: boolean;1633 readonly asRejectProposal: {1634 readonly proposalId: Compact<u32>;1635 } & Struct;1636 readonly isApproveProposal: boolean;1637 readonly asApproveProposal: {1638 readonly proposalId: Compact<u32>;1639 } & Struct;1640 readonly isSpend: boolean;1641 readonly asSpend: {1642 readonly amount: Compact<u128>;1643 readonly beneficiary: MultiAddress;1644 } & Struct;1645 readonly isRemoveApproval: boolean;1646 readonly asRemoveApproval: {1647 readonly proposalId: Compact<u32>;1648 } & Struct;1649 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';1650 }16511652 /** @name FrameSupportPalletId (186) */1653 interface FrameSupportPalletId extends U8aFixed {}16541655 /** @name PalletTreasuryError (187) */1656 interface PalletTreasuryError extends Enum {1657 readonly isInsufficientProposersBalance: boolean;1658 readonly isInvalidIndex: boolean;1659 readonly isTooManyApprovals: boolean;1660 readonly isInsufficientPermission: boolean;1661 readonly isProposalNotApproved: boolean;1662 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';1663 }16641665 /** @name PalletSudoCall (188) */1666 interface PalletSudoCall extends Enum {1667 readonly isSudo: boolean;1668 readonly asSudo: {1669 readonly call: Call;1670 } & Struct;1671 readonly isSudoUncheckedWeight: boolean;1672 readonly asSudoUncheckedWeight: {1673 readonly call: Call;1674 readonly weight: u64;1675 } & Struct;1676 readonly isSetKey: boolean;1677 readonly asSetKey: {1678 readonly new_: MultiAddress;1679 } & Struct;1680 readonly isSudoAs: boolean;1681 readonly asSudoAs: {1682 readonly who: MultiAddress;1683 readonly call: Call;1684 } & Struct;1685 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1686 }16871688 /** @name OrmlVestingModuleCall (190) */1689 interface OrmlVestingModuleCall extends Enum {1690 readonly isClaim: boolean;1691 readonly isVestedTransfer: boolean;1692 readonly asVestedTransfer: {1693 readonly dest: MultiAddress;1694 readonly schedule: OrmlVestingVestingSchedule;1695 } & Struct;1696 readonly isUpdateVestingSchedules: boolean;1697 readonly asUpdateVestingSchedules: {1698 readonly who: MultiAddress;1699 readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;1700 } & Struct;1701 readonly isClaimFor: boolean;1702 readonly asClaimFor: {1703 readonly dest: MultiAddress;1704 } & Struct;1705 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';1706 }17071708 /** @name CumulusPalletXcmpQueueCall (192) */1709 interface CumulusPalletXcmpQueueCall extends Enum {1710 readonly isServiceOverweight: boolean;1711 readonly asServiceOverweight: {1712 readonly index: u64;1713 readonly weightLimit: u64;1714 } & Struct;1715 readonly isSuspendXcmExecution: boolean;1716 readonly isResumeXcmExecution: boolean;1717 readonly isUpdateSuspendThreshold: boolean;1718 readonly asUpdateSuspendThreshold: {1719 readonly new_: u32;1720 } & Struct;1721 readonly isUpdateDropThreshold: boolean;1722 readonly asUpdateDropThreshold: {1723 readonly new_: u32;1724 } & Struct;1725 readonly isUpdateResumeThreshold: boolean;1726 readonly asUpdateResumeThreshold: {1727 readonly new_: u32;1728 } & Struct;1729 readonly isUpdateThresholdWeight: boolean;1730 readonly asUpdateThresholdWeight: {1731 readonly new_: u64;1732 } & Struct;1733 readonly isUpdateWeightRestrictDecay: boolean;1734 readonly asUpdateWeightRestrictDecay: {1735 readonly new_: u64;1736 } & Struct;1737 readonly isUpdateXcmpMaxIndividualWeight: boolean;1738 readonly asUpdateXcmpMaxIndividualWeight: {1739 readonly new_: u64;1740 } & Struct;1741 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';1742 }17431744 /** @name PalletXcmCall (193) */1745 interface PalletXcmCall extends Enum {1746 readonly isSend: boolean;1747 readonly asSend: {1748 readonly dest: XcmVersionedMultiLocation;1749 readonly message: XcmVersionedXcm;1750 } & Struct;1751 readonly isTeleportAssets: boolean;1752 readonly asTeleportAssets: {1753 readonly dest: XcmVersionedMultiLocation;1754 readonly beneficiary: XcmVersionedMultiLocation;1755 readonly assets: XcmVersionedMultiAssets;1756 readonly feeAssetItem: u32;1757 } & Struct;1758 readonly isReserveTransferAssets: boolean;1759 readonly asReserveTransferAssets: {1760 readonly dest: XcmVersionedMultiLocation;1761 readonly beneficiary: XcmVersionedMultiLocation;1762 readonly assets: XcmVersionedMultiAssets;1763 readonly feeAssetItem: u32;1764 } & Struct;1765 readonly isExecute: boolean;1766 readonly asExecute: {1767 readonly message: XcmVersionedXcm;1768 readonly maxWeight: u64;1769 } & Struct;1770 readonly isForceXcmVersion: boolean;1771 readonly asForceXcmVersion: {1772 readonly location: XcmV1MultiLocation;1773 readonly xcmVersion: u32;1774 } & Struct;1775 readonly isForceDefaultXcmVersion: boolean;1776 readonly asForceDefaultXcmVersion: {1777 readonly maybeXcmVersion: Option<u32>;1778 } & Struct;1779 readonly isForceSubscribeVersionNotify: boolean;1780 readonly asForceSubscribeVersionNotify: {1781 readonly location: XcmVersionedMultiLocation;1782 } & Struct;1783 readonly isForceUnsubscribeVersionNotify: boolean;1784 readonly asForceUnsubscribeVersionNotify: {1785 readonly location: XcmVersionedMultiLocation;1786 } & Struct;1787 readonly isLimitedReserveTransferAssets: boolean;1788 readonly asLimitedReserveTransferAssets: {1789 readonly dest: XcmVersionedMultiLocation;1790 readonly beneficiary: XcmVersionedMultiLocation;1791 readonly assets: XcmVersionedMultiAssets;1792 readonly feeAssetItem: u32;1793 readonly weightLimit: XcmV2WeightLimit;1794 } & Struct;1795 readonly isLimitedTeleportAssets: boolean;1796 readonly asLimitedTeleportAssets: {1797 readonly dest: XcmVersionedMultiLocation;1798 readonly beneficiary: XcmVersionedMultiLocation;1799 readonly assets: XcmVersionedMultiAssets;1800 readonly feeAssetItem: u32;1801 readonly weightLimit: XcmV2WeightLimit;1802 } & Struct;1803 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';1804 }18051806 /** @name XcmVersionedXcm (194) */1807 interface XcmVersionedXcm extends Enum {1808 readonly isV0: boolean;1809 readonly asV0: XcmV0Xcm;1810 readonly isV1: boolean;1811 readonly asV1: XcmV1Xcm;1812 readonly isV2: boolean;1813 readonly asV2: XcmV2Xcm;1814 readonly type: 'V0' | 'V1' | 'V2';1815 }18161817 /** @name XcmV0Xcm (195) */1818 interface XcmV0Xcm extends Enum {1819 readonly isWithdrawAsset: boolean;1820 readonly asWithdrawAsset: {1821 readonly assets: Vec<XcmV0MultiAsset>;1822 readonly effects: Vec<XcmV0Order>;1823 } & Struct;1824 readonly isReserveAssetDeposit: boolean;1825 readonly asReserveAssetDeposit: {1826 readonly assets: Vec<XcmV0MultiAsset>;1827 readonly effects: Vec<XcmV0Order>;1828 } & Struct;1829 readonly isTeleportAsset: boolean;1830 readonly asTeleportAsset: {1831 readonly assets: Vec<XcmV0MultiAsset>;1832 readonly effects: Vec<XcmV0Order>;1833 } & Struct;1834 readonly isQueryResponse: boolean;1835 readonly asQueryResponse: {1836 readonly queryId: Compact<u64>;1837 readonly response: XcmV0Response;1838 } & Struct;1839 readonly isTransferAsset: boolean;1840 readonly asTransferAsset: {1841 readonly assets: Vec<XcmV0MultiAsset>;1842 readonly dest: XcmV0MultiLocation;1843 } & Struct;1844 readonly isTransferReserveAsset: boolean;1845 readonly asTransferReserveAsset: {1846 readonly assets: Vec<XcmV0MultiAsset>;1847 readonly dest: XcmV0MultiLocation;1848 readonly effects: Vec<XcmV0Order>;1849 } & Struct;1850 readonly isTransact: boolean;1851 readonly asTransact: {1852 readonly originType: XcmV0OriginKind;1853 readonly requireWeightAtMost: u64;1854 readonly call: XcmDoubleEncoded;1855 } & Struct;1856 readonly isHrmpNewChannelOpenRequest: boolean;1857 readonly asHrmpNewChannelOpenRequest: {1858 readonly sender: Compact<u32>;1859 readonly maxMessageSize: Compact<u32>;1860 readonly maxCapacity: Compact<u32>;1861 } & Struct;1862 readonly isHrmpChannelAccepted: boolean;1863 readonly asHrmpChannelAccepted: {1864 readonly recipient: Compact<u32>;1865 } & Struct;1866 readonly isHrmpChannelClosing: boolean;1867 readonly asHrmpChannelClosing: {1868 readonly initiator: Compact<u32>;1869 readonly sender: Compact<u32>;1870 readonly recipient: Compact<u32>;1871 } & Struct;1872 readonly isRelayedFrom: boolean;1873 readonly asRelayedFrom: {1874 readonly who: XcmV0MultiLocation;1875 readonly message: XcmV0Xcm;1876 } & Struct;1877 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';1878 }18791880 /** @name XcmV0Order (197) */1881 interface XcmV0Order extends Enum {1882 readonly isNull: boolean;1883 readonly isDepositAsset: boolean;1884 readonly asDepositAsset: {1885 readonly assets: Vec<XcmV0MultiAsset>;1886 readonly dest: XcmV0MultiLocation;1887 } & Struct;1888 readonly isDepositReserveAsset: boolean;1889 readonly asDepositReserveAsset: {1890 readonly assets: Vec<XcmV0MultiAsset>;1891 readonly dest: XcmV0MultiLocation;1892 readonly effects: Vec<XcmV0Order>;1893 } & Struct;1894 readonly isExchangeAsset: boolean;1895 readonly asExchangeAsset: {1896 readonly give: Vec<XcmV0MultiAsset>;1897 readonly receive: Vec<XcmV0MultiAsset>;1898 } & Struct;1899 readonly isInitiateReserveWithdraw: boolean;1900 readonly asInitiateReserveWithdraw: {1901 readonly assets: Vec<XcmV0MultiAsset>;1902 readonly reserve: XcmV0MultiLocation;1903 readonly effects: Vec<XcmV0Order>;1904 } & Struct;1905 readonly isInitiateTeleport: boolean;1906 readonly asInitiateTeleport: {1907 readonly assets: Vec<XcmV0MultiAsset>;1908 readonly dest: XcmV0MultiLocation;1909 readonly effects: Vec<XcmV0Order>;1910 } & Struct;1911 readonly isQueryHolding: boolean;1912 readonly asQueryHolding: {1913 readonly queryId: Compact<u64>;1914 readonly dest: XcmV0MultiLocation;1915 readonly assets: Vec<XcmV0MultiAsset>;1916 } & Struct;1917 readonly isBuyExecution: boolean;1918 readonly asBuyExecution: {1919 readonly fees: XcmV0MultiAsset;1920 readonly weight: u64;1921 readonly debt: u64;1922 readonly haltOnError: bool;1923 readonly xcm: Vec<XcmV0Xcm>;1924 } & Struct;1925 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';1926 }19271928 /** @name XcmV0Response (199) */1929 interface XcmV0Response extends Enum {1930 readonly isAssets: boolean;1931 readonly asAssets: Vec<XcmV0MultiAsset>;1932 readonly type: 'Assets';1933 }19341935 /** @name XcmV1Xcm (200) */1936 interface XcmV1Xcm extends Enum {1937 readonly isWithdrawAsset: boolean;1938 readonly asWithdrawAsset: {1939 readonly assets: XcmV1MultiassetMultiAssets;1940 readonly effects: Vec<XcmV1Order>;1941 } & Struct;1942 readonly isReserveAssetDeposited: boolean;1943 readonly asReserveAssetDeposited: {1944 readonly assets: XcmV1MultiassetMultiAssets;1945 readonly effects: Vec<XcmV1Order>;1946 } & Struct;1947 readonly isReceiveTeleportedAsset: boolean;1948 readonly asReceiveTeleportedAsset: {1949 readonly assets: XcmV1MultiassetMultiAssets;1950 readonly effects: Vec<XcmV1Order>;1951 } & Struct;1952 readonly isQueryResponse: boolean;1953 readonly asQueryResponse: {1954 readonly queryId: Compact<u64>;1955 readonly response: XcmV1Response;1956 } & Struct;1957 readonly isTransferAsset: boolean;1958 readonly asTransferAsset: {1959 readonly assets: XcmV1MultiassetMultiAssets;1960 readonly beneficiary: XcmV1MultiLocation;1961 } & Struct;1962 readonly isTransferReserveAsset: boolean;1963 readonly asTransferReserveAsset: {1964 readonly assets: XcmV1MultiassetMultiAssets;1965 readonly dest: XcmV1MultiLocation;1966 readonly effects: Vec<XcmV1Order>;1967 } & Struct;1968 readonly isTransact: boolean;1969 readonly asTransact: {1970 readonly originType: XcmV0OriginKind;1971 readonly requireWeightAtMost: u64;1972 readonly call: XcmDoubleEncoded;1973 } & Struct;1974 readonly isHrmpNewChannelOpenRequest: boolean;1975 readonly asHrmpNewChannelOpenRequest: {1976 readonly sender: Compact<u32>;1977 readonly maxMessageSize: Compact<u32>;1978 readonly maxCapacity: Compact<u32>;1979 } & Struct;1980 readonly isHrmpChannelAccepted: boolean;1981 readonly asHrmpChannelAccepted: {1982 readonly recipient: Compact<u32>;1983 } & Struct;1984 readonly isHrmpChannelClosing: boolean;1985 readonly asHrmpChannelClosing: {1986 readonly initiator: Compact<u32>;1987 readonly sender: Compact<u32>;1988 readonly recipient: Compact<u32>;1989 } & Struct;1990 readonly isRelayedFrom: boolean;1991 readonly asRelayedFrom: {1992 readonly who: XcmV1MultilocationJunctions;1993 readonly message: XcmV1Xcm;1994 } & Struct;1995 readonly isSubscribeVersion: boolean;1996 readonly asSubscribeVersion: {1997 readonly queryId: Compact<u64>;1998 readonly maxResponseWeight: Compact<u64>;1999 } & Struct;2000 readonly isUnsubscribeVersion: boolean;2001 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';2002 }20032004 /** @name XcmV1Order (202) */2005 interface XcmV1Order extends Enum {2006 readonly isNoop: boolean;2007 readonly isDepositAsset: boolean;2008 readonly asDepositAsset: {2009 readonly assets: XcmV1MultiassetMultiAssetFilter;2010 readonly maxAssets: u32;2011 readonly beneficiary: XcmV1MultiLocation;2012 } & Struct;2013 readonly isDepositReserveAsset: boolean;2014 readonly asDepositReserveAsset: {2015 readonly assets: XcmV1MultiassetMultiAssetFilter;2016 readonly maxAssets: u32;2017 readonly dest: XcmV1MultiLocation;2018 readonly effects: Vec<XcmV1Order>;2019 } & Struct;2020 readonly isExchangeAsset: boolean;2021 readonly asExchangeAsset: {2022 readonly give: XcmV1MultiassetMultiAssetFilter;2023 readonly receive: XcmV1MultiassetMultiAssets;2024 } & Struct;2025 readonly isInitiateReserveWithdraw: boolean;2026 readonly asInitiateReserveWithdraw: {2027 readonly assets: XcmV1MultiassetMultiAssetFilter;2028 readonly reserve: XcmV1MultiLocation;2029 readonly effects: Vec<XcmV1Order>;2030 } & Struct;2031 readonly isInitiateTeleport: boolean;2032 readonly asInitiateTeleport: {2033 readonly assets: XcmV1MultiassetMultiAssetFilter;2034 readonly dest: XcmV1MultiLocation;2035 readonly effects: Vec<XcmV1Order>;2036 } & Struct;2037 readonly isQueryHolding: boolean;2038 readonly asQueryHolding: {2039 readonly queryId: Compact<u64>;2040 readonly dest: XcmV1MultiLocation;2041 readonly assets: XcmV1MultiassetMultiAssetFilter;2042 } & Struct;2043 readonly isBuyExecution: boolean;2044 readonly asBuyExecution: {2045 readonly fees: XcmV1MultiAsset;2046 readonly weight: u64;2047 readonly debt: u64;2048 readonly haltOnError: bool;2049 readonly instructions: Vec<XcmV1Xcm>;2050 } & Struct;2051 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2052 }20532054 /** @name XcmV1Response (204) */2055 interface XcmV1Response extends Enum {2056 readonly isAssets: boolean;2057 readonly asAssets: XcmV1MultiassetMultiAssets;2058 readonly isVersion: boolean;2059 readonly asVersion: u32;2060 readonly type: 'Assets' | 'Version';2061 }20622063 /** @name CumulusPalletXcmCall (218) */2064 type CumulusPalletXcmCall = Null;20652066 /** @name CumulusPalletDmpQueueCall (219) */2067 interface CumulusPalletDmpQueueCall extends Enum {2068 readonly isServiceOverweight: boolean;2069 readonly asServiceOverweight: {2070 readonly index: u64;2071 readonly weightLimit: u64;2072 } & Struct;2073 readonly type: 'ServiceOverweight';2074 }20752076 /** @name PalletInflationCall (220) */2077 interface PalletInflationCall extends Enum {2078 readonly isStartInflation: boolean;2079 readonly asStartInflation: {2080 readonly inflationStartRelayBlock: u32;2081 } & Struct;2082 readonly type: 'StartInflation';2083 }20842085 /** @name PalletUniqueCall (221) */2086 interface PalletUniqueCall extends Enum {2087 readonly isCreateCollection: boolean;2088 readonly asCreateCollection: {2089 readonly collectionName: Vec<u16>;2090 readonly collectionDescription: Vec<u16>;2091 readonly tokenPrefix: Bytes;2092 readonly mode: UpDataStructsCollectionMode;2093 } & Struct;2094 readonly isCreateCollectionEx: boolean;2095 readonly asCreateCollectionEx: {2096 readonly data: UpDataStructsCreateCollectionData;2097 } & Struct;2098 readonly isDestroyCollection: boolean;2099 readonly asDestroyCollection: {2100 readonly collectionId: u32;2101 } & Struct;2102 readonly isAddToAllowList: boolean;2103 readonly asAddToAllowList: {2104 readonly collectionId: u32;2105 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;2106 } & Struct;2107 readonly isRemoveFromAllowList: boolean;2108 readonly asRemoveFromAllowList: {2109 readonly collectionId: u32;2110 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;2111 } & Struct;2112 readonly isChangeCollectionOwner: boolean;2113 readonly asChangeCollectionOwner: {2114 readonly collectionId: u32;2115 readonly newOwner: AccountId32;2116 } & Struct;2117 readonly isAddCollectionAdmin: boolean;2118 readonly asAddCollectionAdmin: {2119 readonly collectionId: u32;2120 readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;2121 } & Struct;2122 readonly isRemoveCollectionAdmin: boolean;2123 readonly asRemoveCollectionAdmin: {2124 readonly collectionId: u32;2125 readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;2126 } & Struct;2127 readonly isSetCollectionSponsor: boolean;2128 readonly asSetCollectionSponsor: {2129 readonly collectionId: u32;2130 readonly newSponsor: AccountId32;2131 } & Struct;2132 readonly isConfirmSponsorship: boolean;2133 readonly asConfirmSponsorship: {2134 readonly collectionId: u32;2135 } & Struct;2136 readonly isRemoveCollectionSponsor: boolean;2137 readonly asRemoveCollectionSponsor: {2138 readonly collectionId: u32;2139 } & Struct;2140 readonly isCreateItem: boolean;2141 readonly asCreateItem: {2142 readonly collectionId: u32;2143 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2144 readonly data: UpDataStructsCreateItemData;2145 } & Struct;2146 readonly isCreateMultipleItems: boolean;2147 readonly asCreateMultipleItems: {2148 readonly collectionId: u32;2149 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2150 readonly itemsData: Vec<UpDataStructsCreateItemData>;2151 } & Struct;2152 readonly isSetCollectionProperties: boolean;2153 readonly asSetCollectionProperties: {2154 readonly collectionId: u32;2155 readonly properties: Vec<UpDataStructsProperty>;2156 } & Struct;2157 readonly isDeleteCollectionProperties: boolean;2158 readonly asDeleteCollectionProperties: {2159 readonly collectionId: u32;2160 readonly propertyKeys: Vec<Bytes>;2161 } & Struct;2162 readonly isSetTokenProperties: boolean;2163 readonly asSetTokenProperties: {2164 readonly collectionId: u32;2165 readonly tokenId: u32;2166 readonly properties: Vec<UpDataStructsProperty>;2167 } & Struct;2168 readonly isDeleteTokenProperties: boolean;2169 readonly asDeleteTokenProperties: {2170 readonly collectionId: u32;2171 readonly tokenId: u32;2172 readonly propertyKeys: Vec<Bytes>;2173 } & Struct;2174 readonly isSetTokenPropertyPermissions: boolean;2175 readonly asSetTokenPropertyPermissions: {2176 readonly collectionId: u32;2177 readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2178 } & Struct;2179 readonly isCreateMultipleItemsEx: boolean;2180 readonly asCreateMultipleItemsEx: {2181 readonly collectionId: u32;2182 readonly data: UpDataStructsCreateItemExData;2183 } & Struct;2184 readonly isSetTransfersEnabledFlag: boolean;2185 readonly asSetTransfersEnabledFlag: {2186 readonly collectionId: u32;2187 readonly value: bool;2188 } & Struct;2189 readonly isBurnItem: boolean;2190 readonly asBurnItem: {2191 readonly collectionId: u32;2192 readonly itemId: u32;2193 readonly value: u128;2194 } & Struct;2195 readonly isBurnFrom: boolean;2196 readonly asBurnFrom: {2197 readonly collectionId: u32;2198 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;2199 readonly itemId: u32;2200 readonly value: u128;2201 } & Struct;2202 readonly isTransfer: boolean;2203 readonly asTransfer: {2204 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;2205 readonly collectionId: u32;2206 readonly itemId: u32;2207 readonly value: u128;2208 } & Struct;2209 readonly isApprove: boolean;2210 readonly asApprove: {2211 readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;2212 readonly collectionId: u32;2213 readonly itemId: u32;2214 readonly amount: u128;2215 } & Struct;2216 readonly isTransferFrom: boolean;2217 readonly asTransferFrom: {2218 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;2219 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;2220 readonly collectionId: u32;2221 readonly itemId: u32;2222 readonly value: u128;2223 } & Struct;2224 readonly isSetCollectionLimits: boolean;2225 readonly asSetCollectionLimits: {2226 readonly collectionId: u32;2227 readonly newLimit: UpDataStructsCollectionLimits;2228 } & Struct;2229 readonly isSetCollectionPermissions: boolean;2230 readonly asSetCollectionPermissions: {2231 readonly collectionId: u32;2232 readonly newPermission: UpDataStructsCollectionPermissions;2233 } & Struct;2234 readonly isRepartition: boolean;2235 readonly asRepartition: {2236 readonly collectionId: u32;2237 readonly tokenId: u32;2238 readonly amount: u128;2239 } & Struct;2240 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';2241 }22422243 /** @name UpDataStructsCollectionMode (226) */2244 interface UpDataStructsCollectionMode extends Enum {2245 readonly isNft: boolean;2246 readonly isFungible: boolean;2247 readonly asFungible: u8;2248 readonly isReFungible: boolean;2249 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2250 }22512252 /** @name UpDataStructsCreateCollectionData (227) */2253 interface UpDataStructsCreateCollectionData extends Struct {2254 readonly mode: UpDataStructsCollectionMode;2255 readonly access: Option<UpDataStructsAccessMode>;2256 readonly name: Vec<u16>;2257 readonly description: Vec<u16>;2258 readonly tokenPrefix: Bytes;2259 readonly pendingSponsor: Option<AccountId32>;2260 readonly limits: Option<UpDataStructsCollectionLimits>;2261 readonly permissions: Option<UpDataStructsCollectionPermissions>;2262 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2263 readonly properties: Vec<UpDataStructsProperty>;2264 }22652266 /** @name UpDataStructsAccessMode (229) */2267 interface UpDataStructsAccessMode extends Enum {2268 readonly isNormal: boolean;2269 readonly isAllowList: boolean;2270 readonly type: 'Normal' | 'AllowList';2271 }22722273 /** @name UpDataStructsCollectionLimits (231) */2274 interface UpDataStructsCollectionLimits extends Struct {2275 readonly accountTokenOwnershipLimit: Option<u32>;2276 readonly sponsoredDataSize: Option<u32>;2277 readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;2278 readonly tokenLimit: Option<u32>;2279 readonly sponsorTransferTimeout: Option<u32>;2280 readonly sponsorApproveTimeout: Option<u32>;2281 readonly ownerCanTransfer: Option<bool>;2282 readonly ownerCanDestroy: Option<bool>;2283 readonly transfersEnabled: Option<bool>;2284 }22852286 /** @name UpDataStructsSponsoringRateLimit (233) */2287 interface UpDataStructsSponsoringRateLimit extends Enum {2288 readonly isSponsoringDisabled: boolean;2289 readonly isBlocks: boolean;2290 readonly asBlocks: u32;2291 readonly type: 'SponsoringDisabled' | 'Blocks';2292 }22932294 /** @name UpDataStructsCollectionPermissions (236) */2295 interface UpDataStructsCollectionPermissions extends Struct {2296 readonly access: Option<UpDataStructsAccessMode>;2297 readonly mintMode: Option<bool>;2298 readonly nesting: Option<UpDataStructsNestingPermissions>;2299 }23002301 /** @name UpDataStructsNestingPermissions (238) */2302 interface UpDataStructsNestingPermissions extends Struct {2303 readonly tokenOwner: bool;2304 readonly collectionAdmin: bool;2305 readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;2306 }23072308 /** @name UpDataStructsOwnerRestrictedSet (240) */2309 interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}23102311 /** @name UpDataStructsPropertyKeyPermission (245) */2312 interface UpDataStructsPropertyKeyPermission extends Struct {2313 readonly key: Bytes;2314 readonly permission: UpDataStructsPropertyPermission;2315 }23162317 /** @name UpDataStructsPropertyPermission (246) */2318 interface UpDataStructsPropertyPermission extends Struct {2319 readonly mutable: bool;2320 readonly collectionAdmin: bool;2321 readonly tokenOwner: bool;2322 }23232324 /** @name UpDataStructsProperty (249) */2325 interface UpDataStructsProperty extends Struct {2326 readonly key: Bytes;2327 readonly value: Bytes;2328 }23292330 /** @name UpDataStructsCreateItemData (252) */2331 interface UpDataStructsCreateItemData extends Enum {2332 readonly isNft: boolean;2333 readonly asNft: UpDataStructsCreateNftData;2334 readonly isFungible: boolean;2335 readonly asFungible: UpDataStructsCreateFungibleData;2336 readonly isReFungible: boolean;2337 readonly asReFungible: UpDataStructsCreateReFungibleData;2338 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2339 }23402341 /** @name UpDataStructsCreateNftData (253) */2342 interface UpDataStructsCreateNftData extends Struct {2343 readonly properties: Vec<UpDataStructsProperty>;2344 }23452346 /** @name UpDataStructsCreateFungibleData (254) */2347 interface UpDataStructsCreateFungibleData extends Struct {2348 readonly value: u128;2349 }23502351 /** @name UpDataStructsCreateReFungibleData (255) */2352 interface UpDataStructsCreateReFungibleData extends Struct {2353 readonly pieces: u128;2354 readonly properties: Vec<UpDataStructsProperty>;2355 }23562357 /** @name UpDataStructsCreateItemExData (258) */2358 interface UpDataStructsCreateItemExData extends Enum {2359 readonly isNft: boolean;2360 readonly asNft: Vec<UpDataStructsCreateNftExData>;2361 readonly isFungible: boolean;2362 readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2363 readonly isRefungibleMultipleItems: boolean;2364 readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExSingleOwner>;2365 readonly isRefungibleMultipleOwners: boolean;2366 readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExMultipleOwners;2367 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2368 }23692370 /** @name UpDataStructsCreateNftExData (260) */2371 interface UpDataStructsCreateNftExData extends Struct {2372 readonly properties: Vec<UpDataStructsProperty>;2373 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2374 }23752376 /** @name UpDataStructsCreateRefungibleExSingleOwner (267) */2377 interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {2378 readonly user: PalletEvmAccountBasicCrossAccountIdRepr;2379 readonly pieces: u128;2380 readonly properties: Vec<UpDataStructsProperty>;2381 }23822383 /** @name UpDataStructsCreateRefungibleExMultipleOwners (269) */2384 interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {2385 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2386 readonly properties: Vec<UpDataStructsProperty>;2387 }23882389 /** @name PalletUniqueSchedulerCall (270) */2390 interface PalletUniqueSchedulerCall extends Enum {2391 readonly isScheduleNamed: boolean;2392 readonly asScheduleNamed: {2393 readonly id: U8aFixed;2394 readonly when: u32;2395 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2396 readonly priority: u8;2397 readonly call: FrameSupportScheduleMaybeHashed;2398 } & Struct;2399 readonly isCancelNamed: boolean;2400 readonly asCancelNamed: {2401 readonly id: U8aFixed;2402 } & Struct;2403 readonly isScheduleNamedAfter: boolean;2404 readonly asScheduleNamedAfter: {2405 readonly id: U8aFixed;2406 readonly after: u32;2407 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2408 readonly priority: u8;2409 readonly call: FrameSupportScheduleMaybeHashed;2410 } & Struct;2411 readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';2412 }24132414 /** @name FrameSupportScheduleMaybeHashed (272) */2415 interface FrameSupportScheduleMaybeHashed extends Enum {2416 readonly isValue: boolean;2417 readonly asValue: Call;2418 readonly isHash: boolean;2419 readonly asHash: H256;2420 readonly type: 'Value' | 'Hash';2421 }24222423 /** @name PalletConfigurationCall (273) */2424 interface PalletConfigurationCall extends Enum {2425 readonly isSetWeightToFeeCoefficientOverride: boolean;2426 readonly asSetWeightToFeeCoefficientOverride: {2427 readonly coeff: Option<u32>;2428 } & Struct;2429 readonly isSetMinGasPriceOverride: boolean;2430 readonly asSetMinGasPriceOverride: {2431 readonly coeff: Option<u64>;2432 } & Struct;2433 readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';2434 }24352436 /** @name PalletTemplateTransactionPaymentCall (274) */2437 type PalletTemplateTransactionPaymentCall = Null;24382439 /** @name PalletStructureCall (275) */2440 type PalletStructureCall = Null;24412442 /** @name PalletRmrkCoreCall (276) */2443 interface PalletRmrkCoreCall extends Enum {2444 readonly isCreateCollection: boolean;2445 readonly asCreateCollection: {2446 readonly metadata: Bytes;2447 readonly max: Option<u32>;2448 readonly symbol: Bytes;2449 } & Struct;2450 readonly isDestroyCollection: boolean;2451 readonly asDestroyCollection: {2452 readonly collectionId: u32;2453 } & Struct;2454 readonly isChangeCollectionIssuer: boolean;2455 readonly asChangeCollectionIssuer: {2456 readonly collectionId: u32;2457 readonly newIssuer: MultiAddress;2458 } & Struct;2459 readonly isLockCollection: boolean;2460 readonly asLockCollection: {2461 readonly collectionId: u32;2462 } & Struct;2463 readonly isMintNft: boolean;2464 readonly asMintNft: {2465 readonly owner: Option<AccountId32>;2466 readonly collectionId: u32;2467 readonly recipient: Option<AccountId32>;2468 readonly royaltyAmount: Option<Permill>;2469 readonly metadata: Bytes;2470 readonly transferable: bool;2471 readonly resources: Option<Vec<RmrkTraitsResourceResourceTypes>>;2472 } & Struct;2473 readonly isBurnNft: boolean;2474 readonly asBurnNft: {2475 readonly collectionId: u32;2476 readonly nftId: u32;2477 readonly maxBurns: u32;2478 } & Struct;2479 readonly isSend: boolean;2480 readonly asSend: {2481 readonly rmrkCollectionId: u32;2482 readonly rmrkNftId: u32;2483 readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;2484 } & Struct;2485 readonly isAcceptNft: boolean;2486 readonly asAcceptNft: {2487 readonly rmrkCollectionId: u32;2488 readonly rmrkNftId: u32;2489 readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;2490 } & Struct;2491 readonly isRejectNft: boolean;2492 readonly asRejectNft: {2493 readonly rmrkCollectionId: u32;2494 readonly rmrkNftId: u32;2495 } & Struct;2496 readonly isAcceptResource: boolean;2497 readonly asAcceptResource: {2498 readonly rmrkCollectionId: u32;2499 readonly rmrkNftId: u32;2500 readonly resourceId: u32;2501 } & Struct;2502 readonly isAcceptResourceRemoval: boolean;2503 readonly asAcceptResourceRemoval: {2504 readonly rmrkCollectionId: u32;2505 readonly rmrkNftId: u32;2506 readonly resourceId: u32;2507 } & Struct;2508 readonly isSetProperty: boolean;2509 readonly asSetProperty: {2510 readonly rmrkCollectionId: Compact<u32>;2511 readonly maybeNftId: Option<u32>;2512 readonly key: Bytes;2513 readonly value: Bytes;2514 } & Struct;2515 readonly isSetPriority: boolean;2516 readonly asSetPriority: {2517 readonly rmrkCollectionId: u32;2518 readonly rmrkNftId: u32;2519 readonly priorities: Vec<u32>;2520 } & Struct;2521 readonly isAddBasicResource: boolean;2522 readonly asAddBasicResource: {2523 readonly rmrkCollectionId: u32;2524 readonly nftId: u32;2525 readonly resource: RmrkTraitsResourceBasicResource;2526 } & Struct;2527 readonly isAddComposableResource: boolean;2528 readonly asAddComposableResource: {2529 readonly rmrkCollectionId: u32;2530 readonly nftId: u32;2531 readonly resource: RmrkTraitsResourceComposableResource;2532 } & Struct;2533 readonly isAddSlotResource: boolean;2534 readonly asAddSlotResource: {2535 readonly rmrkCollectionId: u32;2536 readonly nftId: u32;2537 readonly resource: RmrkTraitsResourceSlotResource;2538 } & Struct;2539 readonly isRemoveResource: boolean;2540 readonly asRemoveResource: {2541 readonly rmrkCollectionId: u32;2542 readonly nftId: u32;2543 readonly resourceId: u32;2544 } & Struct;2545 readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';2546 }25472548 /** @name RmrkTraitsResourceResourceTypes (282) */2549 interface RmrkTraitsResourceResourceTypes extends Enum {2550 readonly isBasic: boolean;2551 readonly asBasic: RmrkTraitsResourceBasicResource;2552 readonly isComposable: boolean;2553 readonly asComposable: RmrkTraitsResourceComposableResource;2554 readonly isSlot: boolean;2555 readonly asSlot: RmrkTraitsResourceSlotResource;2556 readonly type: 'Basic' | 'Composable' | 'Slot';2557 }25582559 /** @name RmrkTraitsResourceBasicResource (284) */2560 interface RmrkTraitsResourceBasicResource extends Struct {2561 readonly src: Option<Bytes>;2562 readonly metadata: Option<Bytes>;2563 readonly license: Option<Bytes>;2564 readonly thumb: Option<Bytes>;2565 }25662567 /** @name RmrkTraitsResourceComposableResource (286) */2568 interface RmrkTraitsResourceComposableResource extends Struct {2569 readonly parts: Vec<u32>;2570 readonly base: u32;2571 readonly src: Option<Bytes>;2572 readonly metadata: Option<Bytes>;2573 readonly license: Option<Bytes>;2574 readonly thumb: Option<Bytes>;2575 }25762577 /** @name RmrkTraitsResourceSlotResource (287) */2578 interface RmrkTraitsResourceSlotResource extends Struct {2579 readonly base: u32;2580 readonly src: Option<Bytes>;2581 readonly metadata: Option<Bytes>;2582 readonly slot: u32;2583 readonly license: Option<Bytes>;2584 readonly thumb: Option<Bytes>;2585 }25862587 /** @name PalletRmrkEquipCall (290) */2588 interface PalletRmrkEquipCall extends Enum {2589 readonly isCreateBase: boolean;2590 readonly asCreateBase: {2591 readonly baseType: Bytes;2592 readonly symbol: Bytes;2593 readonly parts: Vec<RmrkTraitsPartPartType>;2594 } & Struct;2595 readonly isThemeAdd: boolean;2596 readonly asThemeAdd: {2597 readonly baseId: u32;2598 readonly theme: RmrkTraitsTheme;2599 } & Struct;2600 readonly isEquippable: boolean;2601 readonly asEquippable: {2602 readonly baseId: u32;2603 readonly slotId: u32;2604 readonly equippables: RmrkTraitsPartEquippableList;2605 } & Struct;2606 readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';2607 }26082609 /** @name RmrkTraitsPartPartType (293) */2610 interface RmrkTraitsPartPartType extends Enum {2611 readonly isFixedPart: boolean;2612 readonly asFixedPart: RmrkTraitsPartFixedPart;2613 readonly isSlotPart: boolean;2614 readonly asSlotPart: RmrkTraitsPartSlotPart;2615 readonly type: 'FixedPart' | 'SlotPart';2616 }26172618 /** @name RmrkTraitsPartFixedPart (295) */2619 interface RmrkTraitsPartFixedPart extends Struct {2620 readonly id: u32;2621 readonly z: u32;2622 readonly src: Bytes;2623 }26242625 /** @name RmrkTraitsPartSlotPart (296) */2626 interface RmrkTraitsPartSlotPart extends Struct {2627 readonly id: u32;2628 readonly equippable: RmrkTraitsPartEquippableList;2629 readonly src: Bytes;2630 readonly z: u32;2631 }26322633 /** @name RmrkTraitsPartEquippableList (297) */2634 interface RmrkTraitsPartEquippableList extends Enum {2635 readonly isAll: boolean;2636 readonly isEmpty: boolean;2637 readonly isCustom: boolean;2638 readonly asCustom: Vec<u32>;2639 readonly type: 'All' | 'Empty' | 'Custom';2640 }26412642 /** @name RmrkTraitsTheme (299) */2643 interface RmrkTraitsTheme extends Struct {2644 readonly name: Bytes;2645 readonly properties: Vec<RmrkTraitsThemeThemeProperty>;2646 readonly inherit: bool;2647 }26482649 /** @name RmrkTraitsThemeThemeProperty (301) */2650 interface RmrkTraitsThemeThemeProperty extends Struct {2651 readonly key: Bytes;2652 readonly value: Bytes;2653 }26542655 /** @name PalletEvmCall (303) */2656 interface PalletEvmCall extends Enum {2657 readonly isWithdraw: boolean;2658 readonly asWithdraw: {2659 readonly address: H160;2660 readonly value: u128;2661 } & Struct;2662 readonly isCall: boolean;2663 readonly asCall: {2664 readonly source: H160;2665 readonly target: H160;2666 readonly input: Bytes;2667 readonly value: U256;2668 readonly gasLimit: u64;2669 readonly maxFeePerGas: U256;2670 readonly maxPriorityFeePerGas: Option<U256>;2671 readonly nonce: Option<U256>;2672 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;2673 } & Struct;2674 readonly isCreate: boolean;2675 readonly asCreate: {2676 readonly source: H160;2677 readonly init: Bytes;2678 readonly value: U256;2679 readonly gasLimit: u64;2680 readonly maxFeePerGas: U256;2681 readonly maxPriorityFeePerGas: Option<U256>;2682 readonly nonce: Option<U256>;2683 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;2684 } & Struct;2685 readonly isCreate2: boolean;2686 readonly asCreate2: {2687 readonly source: H160;2688 readonly init: Bytes;2689 readonly salt: H256;2690 readonly value: U256;2691 readonly gasLimit: u64;2692 readonly maxFeePerGas: U256;2693 readonly maxPriorityFeePerGas: Option<U256>;2694 readonly nonce: Option<U256>;2695 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;2696 } & Struct;2697 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';2698 }26992700 /** @name PalletEthereumCall (307) */2701 interface PalletEthereumCall extends Enum {2702 readonly isTransact: boolean;2703 readonly asTransact: {2704 readonly transaction: EthereumTransactionTransactionV2;2705 } & Struct;2706 readonly type: 'Transact';2707 }27082709 /** @name EthereumTransactionTransactionV2 (308) */2710 interface EthereumTransactionTransactionV2 extends Enum {2711 readonly isLegacy: boolean;2712 readonly asLegacy: EthereumTransactionLegacyTransaction;2713 readonly isEip2930: boolean;2714 readonly asEip2930: EthereumTransactionEip2930Transaction;2715 readonly isEip1559: boolean;2716 readonly asEip1559: EthereumTransactionEip1559Transaction;2717 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';2718 }27192720 /** @name EthereumTransactionLegacyTransaction (309) */2721 interface EthereumTransactionLegacyTransaction extends Struct {2722 readonly nonce: U256;2723 readonly gasPrice: U256;2724 readonly gasLimit: U256;2725 readonly action: EthereumTransactionTransactionAction;2726 readonly value: U256;2727 readonly input: Bytes;2728 readonly signature: EthereumTransactionTransactionSignature;2729 }27302731 /** @name EthereumTransactionTransactionAction (310) */2732 interface EthereumTransactionTransactionAction extends Enum {2733 readonly isCall: boolean;2734 readonly asCall: H160;2735 readonly isCreate: boolean;2736 readonly type: 'Call' | 'Create';2737 }27382739 /** @name EthereumTransactionTransactionSignature (311) */2740 interface EthereumTransactionTransactionSignature extends Struct {2741 readonly v: u64;2742 readonly r: H256;2743 readonly s: H256;2744 }27452746 /** @name EthereumTransactionEip2930Transaction (313) */2747 interface EthereumTransactionEip2930Transaction extends Struct {2748 readonly chainId: u64;2749 readonly nonce: U256;2750 readonly gasPrice: U256;2751 readonly gasLimit: U256;2752 readonly action: EthereumTransactionTransactionAction;2753 readonly value: U256;2754 readonly input: Bytes;2755 readonly accessList: Vec<EthereumTransactionAccessListItem>;2756 readonly oddYParity: bool;2757 readonly r: H256;2758 readonly s: H256;2759 }27602761 /** @name EthereumTransactionAccessListItem (315) */2762 interface EthereumTransactionAccessListItem extends Struct {2763 readonly address: H160;2764 readonly storageKeys: Vec<H256>;2765 }27662767 /** @name EthereumTransactionEip1559Transaction (316) */2768 interface EthereumTransactionEip1559Transaction extends Struct {2769 readonly chainId: u64;2770 readonly nonce: U256;2771 readonly maxPriorityFeePerGas: U256;2772 readonly maxFeePerGas: U256;2773 readonly gasLimit: U256;2774 readonly action: EthereumTransactionTransactionAction;2775 readonly value: U256;2776 readonly input: Bytes;2777 readonly accessList: Vec<EthereumTransactionAccessListItem>;2778 readonly oddYParity: bool;2779 readonly r: H256;2780 readonly s: H256;2781 }27822783 /** @name PalletEvmMigrationCall (317) */2784 interface PalletEvmMigrationCall extends Enum {2785 readonly isBegin: boolean;2786 readonly asBegin: {2787 readonly address: H160;2788 } & Struct;2789 readonly isSetData: boolean;2790 readonly asSetData: {2791 readonly address: H160;2792 readonly data: Vec<ITuple<[H256, H256]>>;2793 } & Struct;2794 readonly isFinish: boolean;2795 readonly asFinish: {2796 readonly address: H160;2797 readonly code: Bytes;2798 } & Struct;2799 readonly type: 'Begin' | 'SetData' | 'Finish';2800 }28012802 /** @name PalletSudoError (320) */2803 interface PalletSudoError extends Enum {2804 readonly isRequireSudo: boolean;2805 readonly type: 'RequireSudo';2806 }28072808 /** @name OrmlVestingModuleError (322) */2809 interface OrmlVestingModuleError extends Enum {2810 readonly isZeroVestingPeriod: boolean;2811 readonly isZeroVestingPeriodCount: boolean;2812 readonly isInsufficientBalanceToLock: boolean;2813 readonly isTooManyVestingSchedules: boolean;2814 readonly isAmountLow: boolean;2815 readonly isMaxVestingSchedulesExceeded: boolean;2816 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';2817 }28182819 /** @name CumulusPalletXcmpQueueInboundChannelDetails (324) */2820 interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {2821 readonly sender: u32;2822 readonly state: CumulusPalletXcmpQueueInboundState;2823 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;2824 }28252826 /** @name CumulusPalletXcmpQueueInboundState (325) */2827 interface CumulusPalletXcmpQueueInboundState extends Enum {2828 readonly isOk: boolean;2829 readonly isSuspended: boolean;2830 readonly type: 'Ok' | 'Suspended';2831 }28322833 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (328) */2834 interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2835 readonly isConcatenatedVersionedXcm: boolean;2836 readonly isConcatenatedEncodedBlob: boolean;2837 readonly isSignals: boolean;2838 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2839 }28402841 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (331) */2842 interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {2843 readonly recipient: u32;2844 readonly state: CumulusPalletXcmpQueueOutboundState;2845 readonly signalsExist: bool;2846 readonly firstIndex: u16;2847 readonly lastIndex: u16;2848 }28492850 /** @name CumulusPalletXcmpQueueOutboundState (332) */2851 interface CumulusPalletXcmpQueueOutboundState extends Enum {2852 readonly isOk: boolean;2853 readonly isSuspended: boolean;2854 readonly type: 'Ok' | 'Suspended';2855 }28562857 /** @name CumulusPalletXcmpQueueQueueConfigData (334) */2858 interface CumulusPalletXcmpQueueQueueConfigData extends Struct {2859 readonly suspendThreshold: u32;2860 readonly dropThreshold: u32;2861 readonly resumeThreshold: u32;2862 readonly thresholdWeight: u64;2863 readonly weightRestrictDecay: u64;2864 readonly xcmpMaxIndividualWeight: u64;2865 }28662867 /** @name CumulusPalletXcmpQueueError (336) */2868 interface CumulusPalletXcmpQueueError extends Enum {2869 readonly isFailedToSend: boolean;2870 readonly isBadXcmOrigin: boolean;2871 readonly isBadXcm: boolean;2872 readonly isBadOverweightIndex: boolean;2873 readonly isWeightOverLimit: boolean;2874 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';2875 }28762877 /** @name PalletXcmError (337) */2878 interface PalletXcmError extends Enum {2879 readonly isUnreachable: boolean;2880 readonly isSendFailure: boolean;2881 readonly isFiltered: boolean;2882 readonly isUnweighableMessage: boolean;2883 readonly isDestinationNotInvertible: boolean;2884 readonly isEmpty: boolean;2885 readonly isCannotReanchor: boolean;2886 readonly isTooManyAssets: boolean;2887 readonly isInvalidOrigin: boolean;2888 readonly isBadVersion: boolean;2889 readonly isBadLocation: boolean;2890 readonly isNoSubscription: boolean;2891 readonly isAlreadySubscribed: boolean;2892 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2893 }28942895 /** @name CumulusPalletXcmError (338) */2896 type CumulusPalletXcmError = Null;28972898 /** @name CumulusPalletDmpQueueConfigData (339) */2899 interface CumulusPalletDmpQueueConfigData extends Struct {2900 readonly maxIndividual: u64;2901 }29022903 /** @name CumulusPalletDmpQueuePageIndexData (340) */2904 interface CumulusPalletDmpQueuePageIndexData extends Struct {2905 readonly beginUsed: u32;2906 readonly endUsed: u32;2907 readonly overweightCount: u64;2908 }29092910 /** @name CumulusPalletDmpQueueError (343) */2911 interface CumulusPalletDmpQueueError extends Enum {2912 readonly isUnknown: boolean;2913 readonly isOverLimit: boolean;2914 readonly type: 'Unknown' | 'OverLimit';2915 }29162917 /** @name PalletUniqueError (347) */2918 interface PalletUniqueError extends Enum {2919 readonly isCollectionDecimalPointLimitExceeded: boolean;2920 readonly isConfirmUnsetSponsorFail: boolean;2921 readonly isEmptyArgument: boolean;2922 readonly isRepartitionCalledOnNonRefungibleCollection: boolean;2923 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';2924 }29252926 /** @name PalletUniqueSchedulerScheduledV3 (350) */2927 interface PalletUniqueSchedulerScheduledV3 extends Struct {2928 readonly maybeId: Option<U8aFixed>;2929 readonly priority: u8;2930 readonly call: FrameSupportScheduleMaybeHashed;2931 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2932 readonly origin: OpalRuntimeOriginCaller;2933 }29342935 /** @name OpalRuntimeOriginCaller (351) */2936 interface OpalRuntimeOriginCaller extends Enum {2937 readonly isSystem: boolean;2938 readonly asSystem: FrameSupportDispatchRawOrigin;2939 readonly isVoid: boolean;2940 readonly isPolkadotXcm: boolean;2941 readonly asPolkadotXcm: PalletXcmOrigin;2942 readonly isCumulusXcm: boolean;2943 readonly asCumulusXcm: CumulusPalletXcmOrigin;2944 readonly isEthereum: boolean;2945 readonly asEthereum: PalletEthereumRawOrigin;2946 readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';2947 }29482949 /** @name FrameSupportDispatchRawOrigin (352) */2950 interface FrameSupportDispatchRawOrigin extends Enum {2951 readonly isRoot: boolean;2952 readonly isSigned: boolean;2953 readonly asSigned: AccountId32;2954 readonly isNone: boolean;2955 readonly type: 'Root' | 'Signed' | 'None';2956 }29572958 /** @name PalletXcmOrigin (353) */2959 interface PalletXcmOrigin extends Enum {2960 readonly isXcm: boolean;2961 readonly asXcm: XcmV1MultiLocation;2962 readonly isResponse: boolean;2963 readonly asResponse: XcmV1MultiLocation;2964 readonly type: 'Xcm' | 'Response';2965 }29662967 /** @name CumulusPalletXcmOrigin (354) */2968 interface CumulusPalletXcmOrigin extends Enum {2969 readonly isRelay: boolean;2970 readonly isSiblingParachain: boolean;2971 readonly asSiblingParachain: u32;2972 readonly type: 'Relay' | 'SiblingParachain';2973 }29742975 /** @name PalletEthereumRawOrigin (355) */2976 interface PalletEthereumRawOrigin extends Enum {2977 readonly isEthereumTransaction: boolean;2978 readonly asEthereumTransaction: H160;2979 readonly type: 'EthereumTransaction';2980 }29812982 /** @name SpCoreVoid (356) */2983 type SpCoreVoid = Null;29842985 /** @name PalletUniqueSchedulerError (357) */2986 interface PalletUniqueSchedulerError extends Enum {2987 readonly isFailedToSchedule: boolean;2988 readonly isNotFound: boolean;2989 readonly isTargetBlockNumberInPast: boolean;2990 readonly isRescheduleNoChange: boolean;2991 readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';2992 }29932994 /** @name UpDataStructsCollection (358) */2995 interface UpDataStructsCollection extends Struct {2996 readonly owner: AccountId32;2997 readonly mode: UpDataStructsCollectionMode;2998 readonly name: Vec<u16>;2999 readonly description: Vec<u16>;3000 readonly tokenPrefix: Bytes;3001 readonly sponsorship: UpDataStructsSponsorshipState;3002 readonly limits: UpDataStructsCollectionLimits;3003 readonly permissions: UpDataStructsCollectionPermissions;3004 readonly externalCollection: bool;3005 }30063007 /** @name UpDataStructsSponsorshipState (359) */3008 interface UpDataStructsSponsorshipState extends Enum {3009 readonly isDisabled: boolean;3010 readonly isUnconfirmed: boolean;3011 readonly asUnconfirmed: AccountId32;3012 readonly isConfirmed: boolean;3013 readonly asConfirmed: AccountId32;3014 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3015 }30163017 /** @name UpDataStructsProperties (360) */3018 interface UpDataStructsProperties extends Struct {3019 readonly map: UpDataStructsPropertiesMapBoundedVec;3020 readonly consumedSpace: u32;3021 readonly spaceLimit: u32;3022 }30233024 /** @name UpDataStructsPropertiesMapBoundedVec (361) */3025 interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}30263027 /** @name UpDataStructsPropertiesMapPropertyPermission (366) */3028 interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}30293030 /** @name UpDataStructsCollectionStats (373) */3031 interface UpDataStructsCollectionStats extends Struct {3032 readonly created: u32;3033 readonly destroyed: u32;3034 readonly alive: u32;3035 }30363037 /** @name UpDataStructsTokenChild (374) */3038 interface UpDataStructsTokenChild extends Struct {3039 readonly token: u32;3040 readonly collection: u32;3041 }30423043 /** @name PhantomTypeUpDataStructs (375) */3044 interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}30453046 /** @name UpDataStructsTokenData (377) */3047 interface UpDataStructsTokenData extends Struct {3048 readonly properties: Vec<UpDataStructsProperty>;3049 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;3050 readonly pieces: u128;3051 }30523053 /** @name UpDataStructsRpcCollection (379) */3054 interface UpDataStructsRpcCollection extends Struct {3055 readonly owner: AccountId32;3056 readonly mode: UpDataStructsCollectionMode;3057 readonly name: Vec<u16>;3058 readonly description: Vec<u16>;3059 readonly tokenPrefix: Bytes;3060 readonly sponsorship: UpDataStructsSponsorshipState;3061 readonly limits: UpDataStructsCollectionLimits;3062 readonly permissions: UpDataStructsCollectionPermissions;3063 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;3064 readonly properties: Vec<UpDataStructsProperty>;3065 readonly readOnly: bool;3066 }30673068 /** @name RmrkTraitsCollectionCollectionInfo (380) */3069 interface RmrkTraitsCollectionCollectionInfo extends Struct {3070 readonly issuer: AccountId32;3071 readonly metadata: Bytes;3072 readonly max: Option<u32>;3073 readonly symbol: Bytes;3074 readonly nftsCount: u32;3075 }30763077 /** @name RmrkTraitsNftNftInfo (381) */3078 interface RmrkTraitsNftNftInfo extends Struct {3079 readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;3080 readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;3081 readonly metadata: Bytes;3082 readonly equipped: bool;3083 readonly pending: bool;3084 }30853086 /** @name RmrkTraitsNftRoyaltyInfo (383) */3087 interface RmrkTraitsNftRoyaltyInfo extends Struct {3088 readonly recipient: AccountId32;3089 readonly amount: Permill;3090 }30913092 /** @name RmrkTraitsResourceResourceInfo (384) */3093 interface RmrkTraitsResourceResourceInfo extends Struct {3094 readonly id: u32;3095 readonly resource: RmrkTraitsResourceResourceTypes;3096 readonly pending: bool;3097 readonly pendingRemoval: bool;3098 }30993100 /** @name RmrkTraitsPropertyPropertyInfo (385) */3101 interface RmrkTraitsPropertyPropertyInfo extends Struct {3102 readonly key: Bytes;3103 readonly value: Bytes;3104 }31053106 /** @name RmrkTraitsBaseBaseInfo (386) */3107 interface RmrkTraitsBaseBaseInfo extends Struct {3108 readonly issuer: AccountId32;3109 readonly baseType: Bytes;3110 readonly symbol: Bytes;3111 }31123113 /** @name RmrkTraitsNftNftChild (387) */3114 interface RmrkTraitsNftNftChild extends Struct {3115 readonly collectionId: u32;3116 readonly nftId: u32;3117 }31183119 /** @name PalletCommonError (389) */3120 interface PalletCommonError extends Enum {3121 readonly isCollectionNotFound: boolean;3122 readonly isMustBeTokenOwner: boolean;3123 readonly isNoPermission: boolean;3124 readonly isCantDestroyNotEmptyCollection: boolean;3125 readonly isPublicMintingNotAllowed: boolean;3126 readonly isAddressNotInAllowlist: boolean;3127 readonly isCollectionNameLimitExceeded: boolean;3128 readonly isCollectionDescriptionLimitExceeded: boolean;3129 readonly isCollectionTokenPrefixLimitExceeded: boolean;3130 readonly isTotalCollectionsLimitExceeded: boolean;3131 readonly isCollectionAdminCountExceeded: boolean;3132 readonly isCollectionLimitBoundsExceeded: boolean;3133 readonly isOwnerPermissionsCantBeReverted: boolean;3134 readonly isTransferNotAllowed: boolean;3135 readonly isAccountTokenLimitExceeded: boolean;3136 readonly isCollectionTokenLimitExceeded: boolean;3137 readonly isMetadataFlagFrozen: boolean;3138 readonly isTokenNotFound: boolean;3139 readonly isTokenValueTooLow: boolean;3140 readonly isApprovedValueTooLow: boolean;3141 readonly isCantApproveMoreThanOwned: boolean;3142 readonly isAddressIsZero: boolean;3143 readonly isUnsupportedOperation: boolean;3144 readonly isNotSufficientFounds: boolean;3145 readonly isUserIsNotAllowedToNest: boolean;3146 readonly isSourceCollectionIsNotAllowedToNest: boolean;3147 readonly isCollectionFieldSizeExceeded: boolean;3148 readonly isNoSpaceForProperty: boolean;3149 readonly isPropertyLimitReached: boolean;3150 readonly isPropertyKeyIsTooLong: boolean;3151 readonly isInvalidCharacterInPropertyKey: boolean;3152 readonly isEmptyPropertyKey: boolean;3153 readonly isCollectionIsExternal: boolean;3154 readonly isCollectionIsInternal: boolean;3155 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';3156 }31573158 /** @name PalletFungibleError (391) */3159 interface PalletFungibleError extends Enum {3160 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3161 readonly isFungibleItemsHaveNoId: boolean;3162 readonly isFungibleItemsDontHaveData: boolean;3163 readonly isFungibleDisallowsNesting: boolean;3164 readonly isSettingPropertiesNotAllowed: boolean;3165 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3166 }31673168 /** @name PalletRefungibleItemData (392) */3169 interface PalletRefungibleItemData extends Struct {3170 readonly constData: Bytes;3171 }31723173 /** @name PalletRefungibleError (397) */3174 interface PalletRefungibleError extends Enum {3175 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3176 readonly isWrongRefungiblePieces: boolean;3177 readonly isRepartitionWhileNotOwningAllPieces: boolean;3178 readonly isRefungibleDisallowsNesting: boolean;3179 readonly isSettingPropertiesNotAllowed: boolean;3180 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3181 }31823183 /** @name PalletNonfungibleItemData (398) */3184 interface PalletNonfungibleItemData extends Struct {3185 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3186 }31873188 /** @name UpDataStructsPropertyScope (400) */3189 interface UpDataStructsPropertyScope extends Enum {3190 readonly isNone: boolean;3191 readonly isRmrk: boolean;3192 readonly isEth: boolean;3193 readonly type: 'None' | 'Rmrk' | 'Eth';3194 }31953196 /** @name PalletNonfungibleError (402) */3197 interface PalletNonfungibleError extends Enum {3198 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3199 readonly isNonfungibleItemsHaveNoAmount: boolean;3200 readonly isCantBurnNftWithChildren: boolean;3201 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3202 }32033204 /** @name PalletStructureError (403) */3205 interface PalletStructureError extends Enum {3206 readonly isOuroborosDetected: boolean;3207 readonly isDepthLimit: boolean;3208 readonly isBreadthLimit: boolean;3209 readonly isTokenNotFound: boolean;3210 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3211 }32123213 /** @name PalletRmrkCoreError (404) */3214 interface PalletRmrkCoreError extends Enum {3215 readonly isCorruptedCollectionType: boolean;3216 readonly isRmrkPropertyKeyIsTooLong: boolean;3217 readonly isRmrkPropertyValueIsTooLong: boolean;3218 readonly isRmrkPropertyIsNotFound: boolean;3219 readonly isUnableToDecodeRmrkData: boolean;3220 readonly isCollectionNotEmpty: boolean;3221 readonly isNoAvailableCollectionId: boolean;3222 readonly isNoAvailableNftId: boolean;3223 readonly isCollectionUnknown: boolean;3224 readonly isNoPermission: boolean;3225 readonly isNonTransferable: boolean;3226 readonly isCollectionFullOrLocked: boolean;3227 readonly isResourceDoesntExist: boolean;3228 readonly isCannotSendToDescendentOrSelf: boolean;3229 readonly isCannotAcceptNonOwnedNft: boolean;3230 readonly isCannotRejectNonOwnedNft: boolean;3231 readonly isCannotRejectNonPendingNft: boolean;3232 readonly isResourceNotPending: boolean;3233 readonly isNoAvailableResourceId: boolean;3234 readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';3235 }32363237 /** @name PalletRmrkEquipError (406) */3238 interface PalletRmrkEquipError extends Enum {3239 readonly isPermissionError: boolean;3240 readonly isNoAvailableBaseId: boolean;3241 readonly isNoAvailablePartId: boolean;3242 readonly isBaseDoesntExist: boolean;3243 readonly isNeedsDefaultThemeFirst: boolean;3244 readonly isPartDoesntExist: boolean;3245 readonly isNoEquippableOnFixedPart: boolean;3246 readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';3247 }32483249 /** @name PalletEvmError (409) */3250 interface PalletEvmError extends Enum {3251 readonly isBalanceLow: boolean;3252 readonly isFeeOverflow: boolean;3253 readonly isPaymentOverflow: boolean;3254 readonly isWithdrawFailed: boolean;3255 readonly isGasPriceTooLow: boolean;3256 readonly isInvalidNonce: boolean;3257 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';3258 }32593260 /** @name FpRpcTransactionStatus (412) */3261 interface FpRpcTransactionStatus extends Struct {3262 readonly transactionHash: H256;3263 readonly transactionIndex: u32;3264 readonly from: H160;3265 readonly to: Option<H160>;3266 readonly contractAddress: Option<H160>;3267 readonly logs: Vec<EthereumLog>;3268 readonly logsBloom: EthbloomBloom;3269 }32703271 /** @name EthbloomBloom (414) */3272 interface EthbloomBloom extends U8aFixed {}32733274 /** @name EthereumReceiptReceiptV3 (416) */3275 interface EthereumReceiptReceiptV3 extends Enum {3276 readonly isLegacy: boolean;3277 readonly asLegacy: EthereumReceiptEip658ReceiptData;3278 readonly isEip2930: boolean;3279 readonly asEip2930: EthereumReceiptEip658ReceiptData;3280 readonly isEip1559: boolean;3281 readonly asEip1559: EthereumReceiptEip658ReceiptData;3282 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3283 }32843285 /** @name EthereumReceiptEip658ReceiptData (417) */3286 interface EthereumReceiptEip658ReceiptData extends Struct {3287 readonly statusCode: u8;3288 readonly usedGas: U256;3289 readonly logsBloom: EthbloomBloom;3290 readonly logs: Vec<EthereumLog>;3291 }32923293 /** @name EthereumBlock (418) */3294 interface EthereumBlock extends Struct {3295 readonly header: EthereumHeader;3296 readonly transactions: Vec<EthereumTransactionTransactionV2>;3297 readonly ommers: Vec<EthereumHeader>;3298 }32993300 /** @name EthereumHeader (419) */3301 interface EthereumHeader extends Struct {3302 readonly parentHash: H256;3303 readonly ommersHash: H256;3304 readonly beneficiary: H160;3305 readonly stateRoot: H256;3306 readonly transactionsRoot: H256;3307 readonly receiptsRoot: H256;3308 readonly logsBloom: EthbloomBloom;3309 readonly difficulty: U256;3310 readonly number: U256;3311 readonly gasLimit: U256;3312 readonly gasUsed: U256;3313 readonly timestamp: u64;3314 readonly extraData: Bytes;3315 readonly mixHash: H256;3316 readonly nonce: EthereumTypesHashH64;3317 }33183319 /** @name EthereumTypesHashH64 (420) */3320 interface EthereumTypesHashH64 extends U8aFixed {}33213322 /** @name PalletEthereumError (425) */3323 interface PalletEthereumError extends Enum {3324 readonly isInvalidSignature: boolean;3325 readonly isPreLogExists: boolean;3326 readonly type: 'InvalidSignature' | 'PreLogExists';3327 }33283329 /** @name PalletEvmCoderSubstrateError (426) */3330 interface PalletEvmCoderSubstrateError extends Enum {3331 readonly isOutOfGas: boolean;3332 readonly isOutOfFund: boolean;3333 readonly type: 'OutOfGas' | 'OutOfFund';3334 }33353336 /** @name PalletEvmContractHelpersSponsoringModeT (427) */3337 interface PalletEvmContractHelpersSponsoringModeT extends Enum {3338 readonly isDisabled: boolean;3339 readonly isAllowlisted: boolean;3340 readonly isGenerous: boolean;3341 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3342 }33433344 /** @name PalletEvmContractHelpersError (429) */3345 interface PalletEvmContractHelpersError extends Enum {3346 readonly isNoPermission: boolean;3347 readonly type: 'NoPermission';3348 }33493350 /** @name PalletEvmMigrationError (430) */3351 interface PalletEvmMigrationError extends Enum {3352 readonly isAccountNotEmpty: boolean;3353 readonly isAccountIsNotMigrating: boolean;3354 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';3355 }33563357 /** @name SpRuntimeMultiSignature (432) */3358 interface SpRuntimeMultiSignature extends Enum {3359 readonly isEd25519: boolean;3360 readonly asEd25519: SpCoreEd25519Signature;3361 readonly isSr25519: boolean;3362 readonly asSr25519: SpCoreSr25519Signature;3363 readonly isEcdsa: boolean;3364 readonly asEcdsa: SpCoreEcdsaSignature;3365 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3366 }33673368 /** @name SpCoreEd25519Signature (433) */3369 interface SpCoreEd25519Signature extends U8aFixed {}33703371 /** @name SpCoreSr25519Signature (435) */3372 interface SpCoreSr25519Signature extends U8aFixed {}33733374 /** @name SpCoreEcdsaSignature (436) */3375 interface SpCoreEcdsaSignature extends U8aFixed {}33763377 /** @name FrameSystemExtensionsCheckSpecVersion (439) */3378 type FrameSystemExtensionsCheckSpecVersion = Null;33793380 /** @name FrameSystemExtensionsCheckGenesis (440) */3381 type FrameSystemExtensionsCheckGenesis = Null;33823383 /** @name FrameSystemExtensionsCheckNonce (443) */3384 interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}33853386 /** @name FrameSystemExtensionsCheckWeight (444) */3387 type FrameSystemExtensionsCheckWeight = Null;33883389 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (445) */3390 interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}33913392 /** @name OpalRuntimeRuntime (446) */3393 type OpalRuntimeRuntime = Null;33943395 /** @name PalletEthereumFakeTransactionFinalizer (447) */3396 type PalletEthereumFakeTransactionFinalizer = Null;33973398} // declare module1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34declare module '@polkadot/types/lookup' {5 import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6 import type { ITuple } from '@polkadot/types-codec/types';7 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8 import type { Event } from '@polkadot/types/interfaces/system';910 /** @name FrameSystemAccountInfo (3) */11 export interface FrameSystemAccountInfo extends Struct {12 readonly nonce: u32;13 readonly consumers: u32;14 readonly providers: u32;15 readonly sufficients: u32;16 readonly data: PalletBalancesAccountData;17 }1819 /** @name PalletBalancesAccountData (5) */20 export interface PalletBalancesAccountData extends Struct {21 readonly free: u128;22 readonly reserved: u128;23 readonly miscFrozen: u128;24 readonly feeFrozen: u128;25 }2627 /** @name FrameSupportWeightsPerDispatchClassU64 (7) */28 export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {29 readonly normal: u64;30 readonly operational: u64;31 readonly mandatory: u64;32 }3334 /** @name SpRuntimeDigest (11) */35 export interface SpRuntimeDigest extends Struct {36 readonly logs: Vec<SpRuntimeDigestDigestItem>;37 }3839 /** @name SpRuntimeDigestDigestItem (13) */40 export interface SpRuntimeDigestDigestItem extends Enum {41 readonly isOther: boolean;42 readonly asOther: Bytes;43 readonly isConsensus: boolean;44 readonly asConsensus: ITuple<[U8aFixed, Bytes]>;45 readonly isSeal: boolean;46 readonly asSeal: ITuple<[U8aFixed, Bytes]>;47 readonly isPreRuntime: boolean;48 readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;49 readonly isRuntimeEnvironmentUpdated: boolean;50 readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';51 }5253 /** @name FrameSystemEventRecord (16) */54 export interface FrameSystemEventRecord extends Struct {55 readonly phase: FrameSystemPhase;56 readonly event: Event;57 readonly topics: Vec<H256>;58 }5960 /** @name FrameSystemEvent (18) */61 export interface FrameSystemEvent extends Enum {62 readonly isExtrinsicSuccess: boolean;63 readonly asExtrinsicSuccess: {64 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;65 } & Struct;66 readonly isExtrinsicFailed: boolean;67 readonly asExtrinsicFailed: {68 readonly dispatchError: SpRuntimeDispatchError;69 readonly dispatchInfo: FrameSupportWeightsDispatchInfo;70 } & Struct;71 readonly isCodeUpdated: boolean;72 readonly isNewAccount: boolean;73 readonly asNewAccount: {74 readonly account: AccountId32;75 } & Struct;76 readonly isKilledAccount: boolean;77 readonly asKilledAccount: {78 readonly account: AccountId32;79 } & Struct;80 readonly isRemarked: boolean;81 readonly asRemarked: {82 readonly sender: AccountId32;83 readonly hash_: H256;84 } & Struct;85 readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';86 }8788 /** @name FrameSupportWeightsDispatchInfo (19) */89 export interface FrameSupportWeightsDispatchInfo extends Struct {90 readonly weight: u64;91 readonly class: FrameSupportWeightsDispatchClass;92 readonly paysFee: FrameSupportWeightsPays;93 }9495 /** @name FrameSupportWeightsDispatchClass (20) */96 export interface FrameSupportWeightsDispatchClass extends Enum {97 readonly isNormal: boolean;98 readonly isOperational: boolean;99 readonly isMandatory: boolean;100 readonly type: 'Normal' | 'Operational' | 'Mandatory';101 }102103 /** @name FrameSupportWeightsPays (21) */104 export interface FrameSupportWeightsPays extends Enum {105 readonly isYes: boolean;106 readonly isNo: boolean;107 readonly type: 'Yes' | 'No';108 }109110 /** @name SpRuntimeDispatchError (22) */111 export interface SpRuntimeDispatchError extends Enum {112 readonly isOther: boolean;113 readonly isCannotLookup: boolean;114 readonly isBadOrigin: boolean;115 readonly isModule: boolean;116 readonly asModule: SpRuntimeModuleError;117 readonly isConsumerRemaining: boolean;118 readonly isNoProviders: boolean;119 readonly isTooManyConsumers: boolean;120 readonly isToken: boolean;121 readonly asToken: SpRuntimeTokenError;122 readonly isArithmetic: boolean;123 readonly asArithmetic: SpRuntimeArithmeticError;124 readonly isTransactional: boolean;125 readonly asTransactional: SpRuntimeTransactionalError;126 readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';127 }128129 /** @name SpRuntimeModuleError (23) */130 export interface SpRuntimeModuleError extends Struct {131 readonly index: u8;132 readonly error: U8aFixed;133 }134135 /** @name SpRuntimeTokenError (24) */136 export interface SpRuntimeTokenError extends Enum {137 readonly isNoFunds: boolean;138 readonly isWouldDie: boolean;139 readonly isBelowMinimum: boolean;140 readonly isCannotCreate: boolean;141 readonly isUnknownAsset: boolean;142 readonly isFrozen: boolean;143 readonly isUnsupported: boolean;144 readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';145 }146147 /** @name SpRuntimeArithmeticError (25) */148 export interface SpRuntimeArithmeticError extends Enum {149 readonly isUnderflow: boolean;150 readonly isOverflow: boolean;151 readonly isDivisionByZero: boolean;152 readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';153 }154155 /** @name SpRuntimeTransactionalError (26) */156 export interface SpRuntimeTransactionalError extends Enum {157 readonly isLimitReached: boolean;158 readonly isNoLayer: boolean;159 readonly type: 'LimitReached' | 'NoLayer';160 }161162 /** @name CumulusPalletParachainSystemEvent (27) */163 export interface CumulusPalletParachainSystemEvent extends Enum {164 readonly isValidationFunctionStored: boolean;165 readonly isValidationFunctionApplied: boolean;166 readonly asValidationFunctionApplied: {167 readonly relayChainBlockNum: u32;168 } & Struct;169 readonly isValidationFunctionDiscarded: boolean;170 readonly isUpgradeAuthorized: boolean;171 readonly asUpgradeAuthorized: {172 readonly codeHash: H256;173 } & Struct;174 readonly isDownwardMessagesReceived: boolean;175 readonly asDownwardMessagesReceived: {176 readonly count: u32;177 } & Struct;178 readonly isDownwardMessagesProcessed: boolean;179 readonly asDownwardMessagesProcessed: {180 readonly weightUsed: u64;181 readonly dmqHead: H256;182 } & Struct;183 readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';184 }185186 /** @name PalletBalancesEvent (28) */187 export interface PalletBalancesEvent extends Enum {188 readonly isEndowed: boolean;189 readonly asEndowed: {190 readonly account: AccountId32;191 readonly freeBalance: u128;192 } & Struct;193 readonly isDustLost: boolean;194 readonly asDustLost: {195 readonly account: AccountId32;196 readonly amount: u128;197 } & Struct;198 readonly isTransfer: boolean;199 readonly asTransfer: {200 readonly from: AccountId32;201 readonly to: AccountId32;202 readonly amount: u128;203 } & Struct;204 readonly isBalanceSet: boolean;205 readonly asBalanceSet: {206 readonly who: AccountId32;207 readonly free: u128;208 readonly reserved: u128;209 } & Struct;210 readonly isReserved: boolean;211 readonly asReserved: {212 readonly who: AccountId32;213 readonly amount: u128;214 } & Struct;215 readonly isUnreserved: boolean;216 readonly asUnreserved: {217 readonly who: AccountId32;218 readonly amount: u128;219 } & Struct;220 readonly isReserveRepatriated: boolean;221 readonly asReserveRepatriated: {222 readonly from: AccountId32;223 readonly to: AccountId32;224 readonly amount: u128;225 readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;226 } & Struct;227 readonly isDeposit: boolean;228 readonly asDeposit: {229 readonly who: AccountId32;230 readonly amount: u128;231 } & Struct;232 readonly isWithdraw: boolean;233 readonly asWithdraw: {234 readonly who: AccountId32;235 readonly amount: u128;236 } & Struct;237 readonly isSlashed: boolean;238 readonly asSlashed: {239 readonly who: AccountId32;240 readonly amount: u128;241 } & Struct;242 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';243 }244245 /** @name FrameSupportTokensMiscBalanceStatus (29) */246 export interface FrameSupportTokensMiscBalanceStatus extends Enum {247 readonly isFree: boolean;248 readonly isReserved: boolean;249 readonly type: 'Free' | 'Reserved';250 }251252 /** @name PalletTransactionPaymentEvent (30) */253 export interface PalletTransactionPaymentEvent extends Enum {254 readonly isTransactionFeePaid: boolean;255 readonly asTransactionFeePaid: {256 readonly who: AccountId32;257 readonly actualFee: u128;258 readonly tip: u128;259 } & Struct;260 readonly type: 'TransactionFeePaid';261 }262263 /** @name PalletTreasuryEvent (31) */264 export interface PalletTreasuryEvent extends Enum {265 readonly isProposed: boolean;266 readonly asProposed: {267 readonly proposalIndex: u32;268 } & Struct;269 readonly isSpending: boolean;270 readonly asSpending: {271 readonly budgetRemaining: u128;272 } & Struct;273 readonly isAwarded: boolean;274 readonly asAwarded: {275 readonly proposalIndex: u32;276 readonly award: u128;277 readonly account: AccountId32;278 } & Struct;279 readonly isRejected: boolean;280 readonly asRejected: {281 readonly proposalIndex: u32;282 readonly slashed: u128;283 } & Struct;284 readonly isBurnt: boolean;285 readonly asBurnt: {286 readonly burntFunds: u128;287 } & Struct;288 readonly isRollover: boolean;289 readonly asRollover: {290 readonly rolloverBalance: u128;291 } & Struct;292 readonly isDeposit: boolean;293 readonly asDeposit: {294 readonly value: u128;295 } & Struct;296 readonly isSpendApproved: boolean;297 readonly asSpendApproved: {298 readonly proposalIndex: u32;299 readonly amount: u128;300 readonly beneficiary: AccountId32;301 } & Struct;302 readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit' | 'SpendApproved';303 }304305 /** @name PalletSudoEvent (32) */306 export interface PalletSudoEvent extends Enum {307 readonly isSudid: boolean;308 readonly asSudid: {309 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;310 } & Struct;311 readonly isKeyChanged: boolean;312 readonly asKeyChanged: {313 readonly oldSudoer: Option<AccountId32>;314 } & Struct;315 readonly isSudoAsDone: boolean;316 readonly asSudoAsDone: {317 readonly sudoResult: Result<Null, SpRuntimeDispatchError>;318 } & Struct;319 readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';320 }321322 /** @name OrmlVestingModuleEvent (36) */323 export interface OrmlVestingModuleEvent extends Enum {324 readonly isVestingScheduleAdded: boolean;325 readonly asVestingScheduleAdded: {326 readonly from: AccountId32;327 readonly to: AccountId32;328 readonly vestingSchedule: OrmlVestingVestingSchedule;329 } & Struct;330 readonly isClaimed: boolean;331 readonly asClaimed: {332 readonly who: AccountId32;333 readonly amount: u128;334 } & Struct;335 readonly isVestingSchedulesUpdated: boolean;336 readonly asVestingSchedulesUpdated: {337 readonly who: AccountId32;338 } & Struct;339 readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';340 }341342 /** @name OrmlVestingVestingSchedule (37) */343 export interface OrmlVestingVestingSchedule extends Struct {344 readonly start: u32;345 readonly period: u32;346 readonly periodCount: u32;347 readonly perPeriod: Compact<u128>;348 }349350 /** @name OrmlXtokensModuleEvent (39) */351 export interface OrmlXtokensModuleEvent extends Enum {352 readonly isTransferredMultiAssets: boolean;353 readonly asTransferredMultiAssets: {354 readonly sender: AccountId32;355 readonly assets: XcmV1MultiassetMultiAssets;356 readonly fee: XcmV1MultiAsset;357 readonly dest: XcmV1MultiLocation;358 } & Struct;359 readonly type: 'TransferredMultiAssets';360 }361362 /** @name XcmV1MultiassetMultiAssets (40) */363 export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}364365 /** @name XcmV1MultiAsset (42) */366 export interface XcmV1MultiAsset extends Struct {367 readonly id: XcmV1MultiassetAssetId;368 readonly fun: XcmV1MultiassetFungibility;369 }370371 /** @name XcmV1MultiassetAssetId (43) */372 export interface XcmV1MultiassetAssetId extends Enum {373 readonly isConcrete: boolean;374 readonly asConcrete: XcmV1MultiLocation;375 readonly isAbstract: boolean;376 readonly asAbstract: Bytes;377 readonly type: 'Concrete' | 'Abstract';378 }379380 /** @name XcmV1MultiLocation (44) */381 export interface XcmV1MultiLocation extends Struct {382 readonly parents: u8;383 readonly interior: XcmV1MultilocationJunctions;384 }385386 /** @name XcmV1MultilocationJunctions (45) */387 export interface XcmV1MultilocationJunctions extends Enum {388 readonly isHere: boolean;389 readonly isX1: boolean;390 readonly asX1: XcmV1Junction;391 readonly isX2: boolean;392 readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;393 readonly isX3: boolean;394 readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;395 readonly isX4: boolean;396 readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;397 readonly isX5: boolean;398 readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;399 readonly isX6: boolean;400 readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;401 readonly isX7: boolean;402 readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;403 readonly isX8: boolean;404 readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;405 readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';406 }407408 /** @name XcmV1Junction (46) */409 export interface XcmV1Junction extends Enum {410 readonly isParachain: boolean;411 readonly asParachain: Compact<u32>;412 readonly isAccountId32: boolean;413 readonly asAccountId32: {414 readonly network: XcmV0JunctionNetworkId;415 readonly id: U8aFixed;416 } & Struct;417 readonly isAccountIndex64: boolean;418 readonly asAccountIndex64: {419 readonly network: XcmV0JunctionNetworkId;420 readonly index: Compact<u64>;421 } & Struct;422 readonly isAccountKey20: boolean;423 readonly asAccountKey20: {424 readonly network: XcmV0JunctionNetworkId;425 readonly key: U8aFixed;426 } & Struct;427 readonly isPalletInstance: boolean;428 readonly asPalletInstance: u8;429 readonly isGeneralIndex: boolean;430 readonly asGeneralIndex: Compact<u128>;431 readonly isGeneralKey: boolean;432 readonly asGeneralKey: Bytes;433 readonly isOnlyChild: boolean;434 readonly isPlurality: boolean;435 readonly asPlurality: {436 readonly id: XcmV0JunctionBodyId;437 readonly part: XcmV0JunctionBodyPart;438 } & Struct;439 readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';440 }441442 /** @name XcmV0JunctionNetworkId (48) */443 export interface XcmV0JunctionNetworkId extends Enum {444 readonly isAny: boolean;445 readonly isNamed: boolean;446 readonly asNamed: Bytes;447 readonly isPolkadot: boolean;448 readonly isKusama: boolean;449 readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';450 }451452 /** @name XcmV0JunctionBodyId (52) */453 export interface XcmV0JunctionBodyId extends Enum {454 readonly isUnit: boolean;455 readonly isNamed: boolean;456 readonly asNamed: Bytes;457 readonly isIndex: boolean;458 readonly asIndex: Compact<u32>;459 readonly isExecutive: boolean;460 readonly isTechnical: boolean;461 readonly isLegislative: boolean;462 readonly isJudicial: boolean;463 readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';464 }465466 /** @name XcmV0JunctionBodyPart (53) */467 export interface XcmV0JunctionBodyPart extends Enum {468 readonly isVoice: boolean;469 readonly isMembers: boolean;470 readonly asMembers: {471 readonly count: Compact<u32>;472 } & Struct;473 readonly isFraction: boolean;474 readonly asFraction: {475 readonly nom: Compact<u32>;476 readonly denom: Compact<u32>;477 } & Struct;478 readonly isAtLeastProportion: boolean;479 readonly asAtLeastProportion: {480 readonly nom: Compact<u32>;481 readonly denom: Compact<u32>;482 } & Struct;483 readonly isMoreThanProportion: boolean;484 readonly asMoreThanProportion: {485 readonly nom: Compact<u32>;486 readonly denom: Compact<u32>;487 } & Struct;488 readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';489 }490491 /** @name XcmV1MultiassetFungibility (54) */492 export interface XcmV1MultiassetFungibility extends Enum {493 readonly isFungible: boolean;494 readonly asFungible: Compact<u128>;495 readonly isNonFungible: boolean;496 readonly asNonFungible: XcmV1MultiassetAssetInstance;497 readonly type: 'Fungible' | 'NonFungible';498 }499500 /** @name XcmV1MultiassetAssetInstance (55) */501 export interface XcmV1MultiassetAssetInstance extends Enum {502 readonly isUndefined: boolean;503 readonly isIndex: boolean;504 readonly asIndex: Compact<u128>;505 readonly isArray4: boolean;506 readonly asArray4: U8aFixed;507 readonly isArray8: boolean;508 readonly asArray8: U8aFixed;509 readonly isArray16: boolean;510 readonly asArray16: U8aFixed;511 readonly isArray32: boolean;512 readonly asArray32: U8aFixed;513 readonly isBlob: boolean;514 readonly asBlob: Bytes;515 readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';516 }517518 /** @name OrmlTokensModuleEvent (58) */519 export interface OrmlTokensModuleEvent extends Enum {520 readonly isEndowed: boolean;521 readonly asEndowed: {522 readonly currencyId: PalletForeingAssetsAssetIds;523 readonly who: AccountId32;524 readonly amount: u128;525 } & Struct;526 readonly isDustLost: boolean;527 readonly asDustLost: {528 readonly currencyId: PalletForeingAssetsAssetIds;529 readonly who: AccountId32;530 readonly amount: u128;531 } & Struct;532 readonly isTransfer: boolean;533 readonly asTransfer: {534 readonly currencyId: PalletForeingAssetsAssetIds;535 readonly from: AccountId32;536 readonly to: AccountId32;537 readonly amount: u128;538 } & Struct;539 readonly isReserved: boolean;540 readonly asReserved: {541 readonly currencyId: PalletForeingAssetsAssetIds;542 readonly who: AccountId32;543 readonly amount: u128;544 } & Struct;545 readonly isUnreserved: boolean;546 readonly asUnreserved: {547 readonly currencyId: PalletForeingAssetsAssetIds;548 readonly who: AccountId32;549 readonly amount: u128;550 } & Struct;551 readonly isReserveRepatriated: boolean;552 readonly asReserveRepatriated: {553 readonly currencyId: PalletForeingAssetsAssetIds;554 readonly from: AccountId32;555 readonly to: AccountId32;556 readonly amount: u128;557 readonly status: FrameSupportTokensMiscBalanceStatus;558 } & Struct;559 readonly isBalanceSet: boolean;560 readonly asBalanceSet: {561 readonly currencyId: PalletForeingAssetsAssetIds;562 readonly who: AccountId32;563 readonly free: u128;564 readonly reserved: u128;565 } & Struct;566 readonly isTotalIssuanceSet: boolean;567 readonly asTotalIssuanceSet: {568 readonly currencyId: PalletForeingAssetsAssetIds;569 readonly amount: u128;570 } & Struct;571 readonly isWithdrawn: boolean;572 readonly asWithdrawn: {573 readonly currencyId: PalletForeingAssetsAssetIds;574 readonly who: AccountId32;575 readonly amount: u128;576 } & Struct;577 readonly isSlashed: boolean;578 readonly asSlashed: {579 readonly currencyId: PalletForeingAssetsAssetIds;580 readonly who: AccountId32;581 readonly freeAmount: u128;582 readonly reservedAmount: u128;583 } & Struct;584 readonly isDeposited: boolean;585 readonly asDeposited: {586 readonly currencyId: PalletForeingAssetsAssetIds;587 readonly who: AccountId32;588 readonly amount: u128;589 } & Struct;590 readonly isLockSet: boolean;591 readonly asLockSet: {592 readonly lockId: U8aFixed;593 readonly currencyId: PalletForeingAssetsAssetIds;594 readonly who: AccountId32;595 readonly amount: u128;596 } & Struct;597 readonly isLockRemoved: boolean;598 readonly asLockRemoved: {599 readonly lockId: U8aFixed;600 readonly currencyId: PalletForeingAssetsAssetIds;601 readonly who: AccountId32;602 } & Struct;603 readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'BalanceSet' | 'TotalIssuanceSet' | 'Withdrawn' | 'Slashed' | 'Deposited' | 'LockSet' | 'LockRemoved';604 }605606 /** @name PalletForeingAssetsAssetIds (59) */607 export interface PalletForeingAssetsAssetIds extends Enum {608 readonly isForeignAssetId: boolean;609 readonly asForeignAssetId: u32;610 readonly isNativeAssetId: boolean;611 readonly asNativeAssetId: PalletForeingAssetsNativeCurrency;612 readonly type: 'ForeignAssetId' | 'NativeAssetId';613 }614615 /** @name PalletForeingAssetsNativeCurrency (60) */616 export interface PalletForeingAssetsNativeCurrency extends Enum {617 readonly isHere: boolean;618 readonly isParent: boolean;619 readonly type: 'Here' | 'Parent';620 }621622 /** @name CumulusPalletXcmpQueueEvent (61) */623 export interface CumulusPalletXcmpQueueEvent extends Enum {624 readonly isSuccess: boolean;625 readonly asSuccess: {626 readonly messageHash: Option<H256>;627 readonly weight: u64;628 } & Struct;629 readonly isFail: boolean;630 readonly asFail: {631 readonly messageHash: Option<H256>;632 readonly error: XcmV2TraitsError;633 readonly weight: u64;634 } & Struct;635 readonly isBadVersion: boolean;636 readonly asBadVersion: {637 readonly messageHash: Option<H256>;638 } & Struct;639 readonly isBadFormat: boolean;640 readonly asBadFormat: {641 readonly messageHash: Option<H256>;642 } & Struct;643 readonly isUpwardMessageSent: boolean;644 readonly asUpwardMessageSent: {645 readonly messageHash: Option<H256>;646 } & Struct;647 readonly isXcmpMessageSent: boolean;648 readonly asXcmpMessageSent: {649 readonly messageHash: Option<H256>;650 } & Struct;651 readonly isOverweightEnqueued: boolean;652 readonly asOverweightEnqueued: {653 readonly sender: u32;654 readonly sentAt: u32;655 readonly index: u64;656 readonly required: u64;657 } & Struct;658 readonly isOverweightServiced: boolean;659 readonly asOverweightServiced: {660 readonly index: u64;661 readonly used: u64;662 } & Struct;663 readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';664 }665666 /** @name XcmV2TraitsError (63) */667 export interface XcmV2TraitsError extends Enum {668 readonly isOverflow: boolean;669 readonly isUnimplemented: boolean;670 readonly isUntrustedReserveLocation: boolean;671 readonly isUntrustedTeleportLocation: boolean;672 readonly isMultiLocationFull: boolean;673 readonly isMultiLocationNotInvertible: boolean;674 readonly isBadOrigin: boolean;675 readonly isInvalidLocation: boolean;676 readonly isAssetNotFound: boolean;677 readonly isFailedToTransactAsset: boolean;678 readonly isNotWithdrawable: boolean;679 readonly isLocationCannotHold: boolean;680 readonly isExceedsMaxMessageSize: boolean;681 readonly isDestinationUnsupported: boolean;682 readonly isTransport: boolean;683 readonly isUnroutable: boolean;684 readonly isUnknownClaim: boolean;685 readonly isFailedToDecode: boolean;686 readonly isMaxWeightInvalid: boolean;687 readonly isNotHoldingFees: boolean;688 readonly isTooExpensive: boolean;689 readonly isTrap: boolean;690 readonly asTrap: u64;691 readonly isUnhandledXcmVersion: boolean;692 readonly isWeightLimitReached: boolean;693 readonly asWeightLimitReached: u64;694 readonly isBarrier: boolean;695 readonly isWeightNotComputable: boolean;696 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';697 }698699 /** @name PalletXcmEvent (65) */700 export interface PalletXcmEvent extends Enum {701 readonly isAttempted: boolean;702 readonly asAttempted: XcmV2TraitsOutcome;703 readonly isSent: boolean;704 readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;705 readonly isUnexpectedResponse: boolean;706 readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;707 readonly isResponseReady: boolean;708 readonly asResponseReady: ITuple<[u64, XcmV2Response]>;709 readonly isNotified: boolean;710 readonly asNotified: ITuple<[u64, u8, u8]>;711 readonly isNotifyOverweight: boolean;712 readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;713 readonly isNotifyDispatchError: boolean;714 readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;715 readonly isNotifyDecodeFailed: boolean;716 readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;717 readonly isInvalidResponder: boolean;718 readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;719 readonly isInvalidResponderVersion: boolean;720 readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;721 readonly isResponseTaken: boolean;722 readonly asResponseTaken: u64;723 readonly isAssetsTrapped: boolean;724 readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;725 readonly isVersionChangeNotified: boolean;726 readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;727 readonly isSupportedVersionChanged: boolean;728 readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;729 readonly isNotifyTargetSendFail: boolean;730 readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;731 readonly isNotifyTargetMigrationFail: boolean;732 readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;733 readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';734 }735736 /** @name XcmV2TraitsOutcome (66) */737 export interface XcmV2TraitsOutcome extends Enum {738 readonly isComplete: boolean;739 readonly asComplete: u64;740 readonly isIncomplete: boolean;741 readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;742 readonly isError: boolean;743 readonly asError: XcmV2TraitsError;744 readonly type: 'Complete' | 'Incomplete' | 'Error';745 }746747 /** @name XcmV2Xcm (67) */748 export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}749750 /** @name XcmV2Instruction (69) */751 export interface XcmV2Instruction extends Enum {752 readonly isWithdrawAsset: boolean;753 readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;754 readonly isReserveAssetDeposited: boolean;755 readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;756 readonly isReceiveTeleportedAsset: boolean;757 readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;758 readonly isQueryResponse: boolean;759 readonly asQueryResponse: {760 readonly queryId: Compact<u64>;761 readonly response: XcmV2Response;762 readonly maxWeight: Compact<u64>;763 } & Struct;764 readonly isTransferAsset: boolean;765 readonly asTransferAsset: {766 readonly assets: XcmV1MultiassetMultiAssets;767 readonly beneficiary: XcmV1MultiLocation;768 } & Struct;769 readonly isTransferReserveAsset: boolean;770 readonly asTransferReserveAsset: {771 readonly assets: XcmV1MultiassetMultiAssets;772 readonly dest: XcmV1MultiLocation;773 readonly xcm: XcmV2Xcm;774 } & Struct;775 readonly isTransact: boolean;776 readonly asTransact: {777 readonly originType: XcmV0OriginKind;778 readonly requireWeightAtMost: Compact<u64>;779 readonly call: XcmDoubleEncoded;780 } & Struct;781 readonly isHrmpNewChannelOpenRequest: boolean;782 readonly asHrmpNewChannelOpenRequest: {783 readonly sender: Compact<u32>;784 readonly maxMessageSize: Compact<u32>;785 readonly maxCapacity: Compact<u32>;786 } & Struct;787 readonly isHrmpChannelAccepted: boolean;788 readonly asHrmpChannelAccepted: {789 readonly recipient: Compact<u32>;790 } & Struct;791 readonly isHrmpChannelClosing: boolean;792 readonly asHrmpChannelClosing: {793 readonly initiator: Compact<u32>;794 readonly sender: Compact<u32>;795 readonly recipient: Compact<u32>;796 } & Struct;797 readonly isClearOrigin: boolean;798 readonly isDescendOrigin: boolean;799 readonly asDescendOrigin: XcmV1MultilocationJunctions;800 readonly isReportError: boolean;801 readonly asReportError: {802 readonly queryId: Compact<u64>;803 readonly dest: XcmV1MultiLocation;804 readonly maxResponseWeight: Compact<u64>;805 } & Struct;806 readonly isDepositAsset: boolean;807 readonly asDepositAsset: {808 readonly assets: XcmV1MultiassetMultiAssetFilter;809 readonly maxAssets: Compact<u32>;810 readonly beneficiary: XcmV1MultiLocation;811 } & Struct;812 readonly isDepositReserveAsset: boolean;813 readonly asDepositReserveAsset: {814 readonly assets: XcmV1MultiassetMultiAssetFilter;815 readonly maxAssets: Compact<u32>;816 readonly dest: XcmV1MultiLocation;817 readonly xcm: XcmV2Xcm;818 } & Struct;819 readonly isExchangeAsset: boolean;820 readonly asExchangeAsset: {821 readonly give: XcmV1MultiassetMultiAssetFilter;822 readonly receive: XcmV1MultiassetMultiAssets;823 } & Struct;824 readonly isInitiateReserveWithdraw: boolean;825 readonly asInitiateReserveWithdraw: {826 readonly assets: XcmV1MultiassetMultiAssetFilter;827 readonly reserve: XcmV1MultiLocation;828 readonly xcm: XcmV2Xcm;829 } & Struct;830 readonly isInitiateTeleport: boolean;831 readonly asInitiateTeleport: {832 readonly assets: XcmV1MultiassetMultiAssetFilter;833 readonly dest: XcmV1MultiLocation;834 readonly xcm: XcmV2Xcm;835 } & Struct;836 readonly isQueryHolding: boolean;837 readonly asQueryHolding: {838 readonly queryId: Compact<u64>;839 readonly dest: XcmV1MultiLocation;840 readonly assets: XcmV1MultiassetMultiAssetFilter;841 readonly maxResponseWeight: Compact<u64>;842 } & Struct;843 readonly isBuyExecution: boolean;844 readonly asBuyExecution: {845 readonly fees: XcmV1MultiAsset;846 readonly weightLimit: XcmV2WeightLimit;847 } & Struct;848 readonly isRefundSurplus: boolean;849 readonly isSetErrorHandler: boolean;850 readonly asSetErrorHandler: XcmV2Xcm;851 readonly isSetAppendix: boolean;852 readonly asSetAppendix: XcmV2Xcm;853 readonly isClearError: boolean;854 readonly isClaimAsset: boolean;855 readonly asClaimAsset: {856 readonly assets: XcmV1MultiassetMultiAssets;857 readonly ticket: XcmV1MultiLocation;858 } & Struct;859 readonly isTrap: boolean;860 readonly asTrap: Compact<u64>;861 readonly isSubscribeVersion: boolean;862 readonly asSubscribeVersion: {863 readonly queryId: Compact<u64>;864 readonly maxResponseWeight: Compact<u64>;865 } & Struct;866 readonly isUnsubscribeVersion: boolean;867 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';868 }869870 /** @name XcmV2Response (70) */871 export interface XcmV2Response extends Enum {872 readonly isNull: boolean;873 readonly isAssets: boolean;874 readonly asAssets: XcmV1MultiassetMultiAssets;875 readonly isExecutionResult: boolean;876 readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;877 readonly isVersion: boolean;878 readonly asVersion: u32;879 readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';880 }881882 /** @name XcmV0OriginKind (73) */883 export interface XcmV0OriginKind extends Enum {884 readonly isNative: boolean;885 readonly isSovereignAccount: boolean;886 readonly isSuperuser: boolean;887 readonly isXcm: boolean;888 readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';889 }890891 /** @name XcmDoubleEncoded (74) */892 export interface XcmDoubleEncoded extends Struct {893 readonly encoded: Bytes;894 }895896 /** @name XcmV1MultiassetMultiAssetFilter (75) */897 export interface XcmV1MultiassetMultiAssetFilter extends Enum {898 readonly isDefinite: boolean;899 readonly asDefinite: XcmV1MultiassetMultiAssets;900 readonly isWild: boolean;901 readonly asWild: XcmV1MultiassetWildMultiAsset;902 readonly type: 'Definite' | 'Wild';903 }904905 /** @name XcmV1MultiassetWildMultiAsset (76) */906 export interface XcmV1MultiassetWildMultiAsset extends Enum {907 readonly isAll: boolean;908 readonly isAllOf: boolean;909 readonly asAllOf: {910 readonly id: XcmV1MultiassetAssetId;911 readonly fun: XcmV1MultiassetWildFungibility;912 } & Struct;913 readonly type: 'All' | 'AllOf';914 }915916 /** @name XcmV1MultiassetWildFungibility (77) */917 export interface XcmV1MultiassetWildFungibility extends Enum {918 readonly isFungible: boolean;919 readonly isNonFungible: boolean;920 readonly type: 'Fungible' | 'NonFungible';921 }922923 /** @name XcmV2WeightLimit (78) */924 export interface XcmV2WeightLimit extends Enum {925 readonly isUnlimited: boolean;926 readonly isLimited: boolean;927 readonly asLimited: Compact<u64>;928 readonly type: 'Unlimited' | 'Limited';929 }930931 /** @name XcmVersionedMultiAssets (80) */932 export interface XcmVersionedMultiAssets extends Enum {933 readonly isV0: boolean;934 readonly asV0: Vec<XcmV0MultiAsset>;935 readonly isV1: boolean;936 readonly asV1: XcmV1MultiassetMultiAssets;937 readonly type: 'V0' | 'V1';938 }939940 /** @name XcmV0MultiAsset (82) */941 export interface XcmV0MultiAsset extends Enum {942 readonly isNone: boolean;943 readonly isAll: boolean;944 readonly isAllFungible: boolean;945 readonly isAllNonFungible: boolean;946 readonly isAllAbstractFungible: boolean;947 readonly asAllAbstractFungible: {948 readonly id: Bytes;949 } & Struct;950 readonly isAllAbstractNonFungible: boolean;951 readonly asAllAbstractNonFungible: {952 readonly class: Bytes;953 } & Struct;954 readonly isAllConcreteFungible: boolean;955 readonly asAllConcreteFungible: {956 readonly id: XcmV0MultiLocation;957 } & Struct;958 readonly isAllConcreteNonFungible: boolean;959 readonly asAllConcreteNonFungible: {960 readonly class: XcmV0MultiLocation;961 } & Struct;962 readonly isAbstractFungible: boolean;963 readonly asAbstractFungible: {964 readonly id: Bytes;965 readonly amount: Compact<u128>;966 } & Struct;967 readonly isAbstractNonFungible: boolean;968 readonly asAbstractNonFungible: {969 readonly class: Bytes;970 readonly instance: XcmV1MultiassetAssetInstance;971 } & Struct;972 readonly isConcreteFungible: boolean;973 readonly asConcreteFungible: {974 readonly id: XcmV0MultiLocation;975 readonly amount: Compact<u128>;976 } & Struct;977 readonly isConcreteNonFungible: boolean;978 readonly asConcreteNonFungible: {979 readonly class: XcmV0MultiLocation;980 readonly instance: XcmV1MultiassetAssetInstance;981 } & Struct;982 readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';983 }984985 /** @name XcmV0MultiLocation (83) */986 export interface XcmV0MultiLocation extends Enum {987 readonly isNull: boolean;988 readonly isX1: boolean;989 readonly asX1: XcmV0Junction;990 readonly isX2: boolean;991 readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;992 readonly isX3: boolean;993 readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;994 readonly isX4: boolean;995 readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;996 readonly isX5: boolean;997 readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;998 readonly isX6: boolean;999 readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;1000 readonly isX7: boolean;1001 readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;1002 readonly isX8: boolean;1003 readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;1004 readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';1005 }10061007 /** @name XcmV0Junction (84) */1008 export interface XcmV0Junction extends Enum {1009 readonly isParent: boolean;1010 readonly isParachain: boolean;1011 readonly asParachain: Compact<u32>;1012 readonly isAccountId32: boolean;1013 readonly asAccountId32: {1014 readonly network: XcmV0JunctionNetworkId;1015 readonly id: U8aFixed;1016 } & Struct;1017 readonly isAccountIndex64: boolean;1018 readonly asAccountIndex64: {1019 readonly network: XcmV0JunctionNetworkId;1020 readonly index: Compact<u64>;1021 } & Struct;1022 readonly isAccountKey20: boolean;1023 readonly asAccountKey20: {1024 readonly network: XcmV0JunctionNetworkId;1025 readonly key: U8aFixed;1026 } & Struct;1027 readonly isPalletInstance: boolean;1028 readonly asPalletInstance: u8;1029 readonly isGeneralIndex: boolean;1030 readonly asGeneralIndex: Compact<u128>;1031 readonly isGeneralKey: boolean;1032 readonly asGeneralKey: Bytes;1033 readonly isOnlyChild: boolean;1034 readonly isPlurality: boolean;1035 readonly asPlurality: {1036 readonly id: XcmV0JunctionBodyId;1037 readonly part: XcmV0JunctionBodyPart;1038 } & Struct;1039 readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';1040 }10411042 /** @name XcmVersionedMultiLocation (85) */1043 export interface XcmVersionedMultiLocation extends Enum {1044 readonly isV0: boolean;1045 readonly asV0: XcmV0MultiLocation;1046 readonly isV1: boolean;1047 readonly asV1: XcmV1MultiLocation;1048 readonly type: 'V0' | 'V1';1049 }10501051 /** @name CumulusPalletXcmEvent (86) */1052 export interface CumulusPalletXcmEvent extends Enum {1053 readonly isInvalidFormat: boolean;1054 readonly asInvalidFormat: U8aFixed;1055 readonly isUnsupportedVersion: boolean;1056 readonly asUnsupportedVersion: U8aFixed;1057 readonly isExecutedDownward: boolean;1058 readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;1059 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';1060 }10611062 /** @name CumulusPalletDmpQueueEvent (87) */1063 export interface CumulusPalletDmpQueueEvent extends Enum {1064 readonly isInvalidFormat: boolean;1065 readonly asInvalidFormat: {1066 readonly messageId: U8aFixed;1067 } & Struct;1068 readonly isUnsupportedVersion: boolean;1069 readonly asUnsupportedVersion: {1070 readonly messageId: U8aFixed;1071 } & Struct;1072 readonly isExecutedDownward: boolean;1073 readonly asExecutedDownward: {1074 readonly messageId: U8aFixed;1075 readonly outcome: XcmV2TraitsOutcome;1076 } & Struct;1077 readonly isWeightExhausted: boolean;1078 readonly asWeightExhausted: {1079 readonly messageId: U8aFixed;1080 readonly remainingWeight: u64;1081 readonly requiredWeight: u64;1082 } & Struct;1083 readonly isOverweightEnqueued: boolean;1084 readonly asOverweightEnqueued: {1085 readonly messageId: U8aFixed;1086 readonly overweightIndex: u64;1087 readonly requiredWeight: u64;1088 } & Struct;1089 readonly isOverweightServiced: boolean;1090 readonly asOverweightServiced: {1091 readonly overweightIndex: u64;1092 readonly weightUsed: u64;1093 } & Struct;1094 readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';1095 }10961097 /** @name PalletUniqueRawEvent (88) */1098 export interface PalletUniqueRawEvent extends Enum {1099 readonly isCollectionSponsorRemoved: boolean;1100 readonly asCollectionSponsorRemoved: u32;1101 readonly isCollectionAdminAdded: boolean;1102 readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1103 readonly isCollectionOwnedChanged: boolean;1104 readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;1105 readonly isCollectionSponsorSet: boolean;1106 readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;1107 readonly isSponsorshipConfirmed: boolean;1108 readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;1109 readonly isCollectionAdminRemoved: boolean;1110 readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1111 readonly isAllowListAddressRemoved: boolean;1112 readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1113 readonly isAllowListAddressAdded: boolean;1114 readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1115 readonly isCollectionLimitSet: boolean;1116 readonly asCollectionLimitSet: u32;1117 readonly isCollectionPermissionSet: boolean;1118 readonly asCollectionPermissionSet: u32;1119 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';1120 }11211122 /** @name PalletEvmAccountBasicCrossAccountIdRepr (89) */1123 export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1124 readonly isSubstrate: boolean;1125 readonly asSubstrate: AccountId32;1126 readonly isEthereum: boolean;1127 readonly asEthereum: H160;1128 readonly type: 'Substrate' | 'Ethereum';1129 }11301131 /** @name PalletUniqueSchedulerEvent (92) */1132 export interface PalletUniqueSchedulerEvent extends Enum {1133 readonly isScheduled: boolean;1134 readonly asScheduled: {1135 readonly when: u32;1136 readonly index: u32;1137 } & Struct;1138 readonly isCanceled: boolean;1139 readonly asCanceled: {1140 readonly when: u32;1141 readonly index: u32;1142 } & Struct;1143 readonly isDispatched: boolean;1144 readonly asDispatched: {1145 readonly task: ITuple<[u32, u32]>;1146 readonly id: Option<U8aFixed>;1147 readonly result: Result<Null, SpRuntimeDispatchError>;1148 } & Struct;1149 readonly isCallLookupFailed: boolean;1150 readonly asCallLookupFailed: {1151 readonly task: ITuple<[u32, u32]>;1152 readonly id: Option<U8aFixed>;1153 readonly error: FrameSupportScheduleLookupError;1154 } & Struct;1155 readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';1156 }11571158 /** @name FrameSupportScheduleLookupError (95) */1159 export interface FrameSupportScheduleLookupError extends Enum {1160 readonly isUnknown: boolean;1161 readonly isBadFormat: boolean;1162 readonly type: 'Unknown' | 'BadFormat';1163 }11641165 /** @name PalletCommonEvent (96) */1166 export interface PalletCommonEvent extends Enum {1167 readonly isCollectionCreated: boolean;1168 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;1169 readonly isCollectionDestroyed: boolean;1170 readonly asCollectionDestroyed: u32;1171 readonly isItemCreated: boolean;1172 readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1173 readonly isItemDestroyed: boolean;1174 readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1175 readonly isTransfer: boolean;1176 readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1177 readonly isApproved: boolean;1178 readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1179 readonly isCollectionPropertySet: boolean;1180 readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;1181 readonly isCollectionPropertyDeleted: boolean;1182 readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;1183 readonly isTokenPropertySet: boolean;1184 readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;1185 readonly isTokenPropertyDeleted: boolean;1186 readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;1187 readonly isPropertyPermissionSet: boolean;1188 readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;1189 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';1190 }11911192 /** @name PalletStructureEvent (99) */1193 export interface PalletStructureEvent extends Enum {1194 readonly isExecuted: boolean;1195 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1196 readonly type: 'Executed';1197 }11981199 /** @name PalletRmrkCoreEvent (100) */1200 export interface PalletRmrkCoreEvent extends Enum {1201 readonly isCollectionCreated: boolean;1202 readonly asCollectionCreated: {1203 readonly issuer: AccountId32;1204 readonly collectionId: u32;1205 } & Struct;1206 readonly isCollectionDestroyed: boolean;1207 readonly asCollectionDestroyed: {1208 readonly issuer: AccountId32;1209 readonly collectionId: u32;1210 } & Struct;1211 readonly isIssuerChanged: boolean;1212 readonly asIssuerChanged: {1213 readonly oldIssuer: AccountId32;1214 readonly newIssuer: AccountId32;1215 readonly collectionId: u32;1216 } & Struct;1217 readonly isCollectionLocked: boolean;1218 readonly asCollectionLocked: {1219 readonly issuer: AccountId32;1220 readonly collectionId: u32;1221 } & Struct;1222 readonly isNftMinted: boolean;1223 readonly asNftMinted: {1224 readonly owner: AccountId32;1225 readonly collectionId: u32;1226 readonly nftId: u32;1227 } & Struct;1228 readonly isNftBurned: boolean;1229 readonly asNftBurned: {1230 readonly owner: AccountId32;1231 readonly nftId: u32;1232 } & Struct;1233 readonly isNftSent: boolean;1234 readonly asNftSent: {1235 readonly sender: AccountId32;1236 readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;1237 readonly collectionId: u32;1238 readonly nftId: u32;1239 readonly approvalRequired: bool;1240 } & Struct;1241 readonly isNftAccepted: boolean;1242 readonly asNftAccepted: {1243 readonly sender: AccountId32;1244 readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;1245 readonly collectionId: u32;1246 readonly nftId: u32;1247 } & Struct;1248 readonly isNftRejected: boolean;1249 readonly asNftRejected: {1250 readonly sender: AccountId32;1251 readonly collectionId: u32;1252 readonly nftId: u32;1253 } & Struct;1254 readonly isPropertySet: boolean;1255 readonly asPropertySet: {1256 readonly collectionId: u32;1257 readonly maybeNftId: Option<u32>;1258 readonly key: Bytes;1259 readonly value: Bytes;1260 } & Struct;1261 readonly isResourceAdded: boolean;1262 readonly asResourceAdded: {1263 readonly nftId: u32;1264 readonly resourceId: u32;1265 } & Struct;1266 readonly isResourceRemoval: boolean;1267 readonly asResourceRemoval: {1268 readonly nftId: u32;1269 readonly resourceId: u32;1270 } & Struct;1271 readonly isResourceAccepted: boolean;1272 readonly asResourceAccepted: {1273 readonly nftId: u32;1274 readonly resourceId: u32;1275 } & Struct;1276 readonly isResourceRemovalAccepted: boolean;1277 readonly asResourceRemovalAccepted: {1278 readonly nftId: u32;1279 readonly resourceId: u32;1280 } & Struct;1281 readonly isPrioritySet: boolean;1282 readonly asPrioritySet: {1283 readonly collectionId: u32;1284 readonly nftId: u32;1285 } & Struct;1286 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';1287 }12881289 /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (101) */1290 export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1291 readonly isAccountId: boolean;1292 readonly asAccountId: AccountId32;1293 readonly isCollectionAndNftTuple: boolean;1294 readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;1295 readonly type: 'AccountId' | 'CollectionAndNftTuple';1296 }12971298 /** @name PalletRmrkEquipEvent (106) */1299 export interface PalletRmrkEquipEvent extends Enum {1300 readonly isBaseCreated: boolean;1301 readonly asBaseCreated: {1302 readonly issuer: AccountId32;1303 readonly baseId: u32;1304 } & Struct;1305 readonly isEquippablesUpdated: boolean;1306 readonly asEquippablesUpdated: {1307 readonly baseId: u32;1308 readonly slotId: u32;1309 } & Struct;1310 readonly type: 'BaseCreated' | 'EquippablesUpdated';1311 }13121313 /** @name PalletForeingAssetsModuleEvent (107) */1314 export interface PalletForeingAssetsModuleEvent extends Enum {1315 readonly isForeignAssetRegistered: boolean;1316 readonly asForeignAssetRegistered: {1317 readonly assetId: u32;1318 readonly assetAddress: XcmV1MultiLocation;1319 readonly metadata: PalletForeingAssetsModuleAssetMetadata;1320 } & Struct;1321 readonly isForeignAssetUpdated: boolean;1322 readonly asForeignAssetUpdated: {1323 readonly assetId: u32;1324 readonly assetAddress: XcmV1MultiLocation;1325 readonly metadata: PalletForeingAssetsModuleAssetMetadata;1326 } & Struct;1327 readonly isAssetRegistered: boolean;1328 readonly asAssetRegistered: {1329 readonly assetId: PalletForeingAssetsAssetIds;1330 readonly metadata: PalletForeingAssetsModuleAssetMetadata;1331 } & Struct;1332 readonly isAssetUpdated: boolean;1333 readonly asAssetUpdated: {1334 readonly assetId: PalletForeingAssetsAssetIds;1335 readonly metadata: PalletForeingAssetsModuleAssetMetadata;1336 } & Struct;1337 readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';1338 }13391340 /** @name PalletForeingAssetsModuleAssetMetadata (108) */1341 export interface PalletForeingAssetsModuleAssetMetadata extends Struct {1342 readonly name: Bytes;1343 readonly symbol: Bytes;1344 readonly decimals: u8;1345 readonly minimalBalance: u128;1346 }13471348 /** @name PalletEvmEvent (109) */1349 export interface PalletEvmEvent extends Enum {1350 readonly isLog: boolean;1351 readonly asLog: EthereumLog;1352 readonly isCreated: boolean;1353 readonly asCreated: H160;1354 readonly isCreatedFailed: boolean;1355 readonly asCreatedFailed: H160;1356 readonly isExecuted: boolean;1357 readonly asExecuted: H160;1358 readonly isExecutedFailed: boolean;1359 readonly asExecutedFailed: H160;1360 readonly isBalanceDeposit: boolean;1361 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;1362 readonly isBalanceWithdraw: boolean;1363 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;1364 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1365 }13661367 /** @name EthereumLog (110) */1368 export interface EthereumLog extends Struct {1369 readonly address: H160;1370 readonly topics: Vec<H256>;1371 readonly data: Bytes;1372 }13731374 /** @name PalletEthereumEvent (114) */1375 export interface PalletEthereumEvent extends Enum {1376 readonly isExecuted: boolean;1377 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;1378 readonly type: 'Executed';1379 }13801381 /** @name EvmCoreErrorExitReason (115) */1382 export interface EvmCoreErrorExitReason extends Enum {1383 readonly isSucceed: boolean;1384 readonly asSucceed: EvmCoreErrorExitSucceed;1385 readonly isError: boolean;1386 readonly asError: EvmCoreErrorExitError;1387 readonly isRevert: boolean;1388 readonly asRevert: EvmCoreErrorExitRevert;1389 readonly isFatal: boolean;1390 readonly asFatal: EvmCoreErrorExitFatal;1391 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';1392 }13931394 /** @name EvmCoreErrorExitSucceed (116) */1395 export interface EvmCoreErrorExitSucceed extends Enum {1396 readonly isStopped: boolean;1397 readonly isReturned: boolean;1398 readonly isSuicided: boolean;1399 readonly type: 'Stopped' | 'Returned' | 'Suicided';1400 }14011402 /** @name EvmCoreErrorExitError (117) */1403 export interface EvmCoreErrorExitError extends Enum {1404 readonly isStackUnderflow: boolean;1405 readonly isStackOverflow: boolean;1406 readonly isInvalidJump: boolean;1407 readonly isInvalidRange: boolean;1408 readonly isDesignatedInvalid: boolean;1409 readonly isCallTooDeep: boolean;1410 readonly isCreateCollision: boolean;1411 readonly isCreateContractLimit: boolean;1412 readonly isOutOfOffset: boolean;1413 readonly isOutOfGas: boolean;1414 readonly isOutOfFund: boolean;1415 readonly isPcUnderflow: boolean;1416 readonly isCreateEmpty: boolean;1417 readonly isOther: boolean;1418 readonly asOther: Text;1419 readonly isInvalidCode: boolean;1420 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';1421 }14221423 /** @name EvmCoreErrorExitRevert (120) */1424 export interface EvmCoreErrorExitRevert extends Enum {1425 readonly isReverted: boolean;1426 readonly type: 'Reverted';1427 }14281429 /** @name EvmCoreErrorExitFatal (121) */1430 export interface EvmCoreErrorExitFatal extends Enum {1431 readonly isNotSupported: boolean;1432 readonly isUnhandledInterrupt: boolean;1433 readonly isCallErrorAsFatal: boolean;1434 readonly asCallErrorAsFatal: EvmCoreErrorExitError;1435 readonly isOther: boolean;1436 readonly asOther: Text;1437 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';1438 }14391440 /** @name FrameSystemPhase (122) */1441 export interface FrameSystemPhase extends Enum {1442 readonly isApplyExtrinsic: boolean;1443 readonly asApplyExtrinsic: u32;1444 readonly isFinalization: boolean;1445 readonly isInitialization: boolean;1446 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';1447 }14481449 /** @name FrameSystemLastRuntimeUpgradeInfo (124) */1450 export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {1451 readonly specVersion: Compact<u32>;1452 readonly specName: Text;1453 }14541455 /** @name FrameSystemCall (125) */1456 export interface FrameSystemCall extends Enum {1457 readonly isFillBlock: boolean;1458 readonly asFillBlock: {1459 readonly ratio: Perbill;1460 } & Struct;1461 readonly isRemark: boolean;1462 readonly asRemark: {1463 readonly remark: Bytes;1464 } & Struct;1465 readonly isSetHeapPages: boolean;1466 readonly asSetHeapPages: {1467 readonly pages: u64;1468 } & Struct;1469 readonly isSetCode: boolean;1470 readonly asSetCode: {1471 readonly code: Bytes;1472 } & Struct;1473 readonly isSetCodeWithoutChecks: boolean;1474 readonly asSetCodeWithoutChecks: {1475 readonly code: Bytes;1476 } & Struct;1477 readonly isSetStorage: boolean;1478 readonly asSetStorage: {1479 readonly items: Vec<ITuple<[Bytes, Bytes]>>;1480 } & Struct;1481 readonly isKillStorage: boolean;1482 readonly asKillStorage: {1483 readonly keys_: Vec<Bytes>;1484 } & Struct;1485 readonly isKillPrefix: boolean;1486 readonly asKillPrefix: {1487 readonly prefix: Bytes;1488 readonly subkeys: u32;1489 } & Struct;1490 readonly isRemarkWithEvent: boolean;1491 readonly asRemarkWithEvent: {1492 readonly remark: Bytes;1493 } & Struct;1494 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';1495 }14961497 /** @name FrameSystemLimitsBlockWeights (130) */1498 export interface FrameSystemLimitsBlockWeights extends Struct {1499 readonly baseBlock: u64;1500 readonly maxBlock: u64;1501 readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;1502 }15031504 /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (131) */1505 export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {1506 readonly normal: FrameSystemLimitsWeightsPerClass;1507 readonly operational: FrameSystemLimitsWeightsPerClass;1508 readonly mandatory: FrameSystemLimitsWeightsPerClass;1509 }15101511 /** @name FrameSystemLimitsWeightsPerClass (132) */1512 export interface FrameSystemLimitsWeightsPerClass extends Struct {1513 readonly baseExtrinsic: u64;1514 readonly maxExtrinsic: Option<u64>;1515 readonly maxTotal: Option<u64>;1516 readonly reserved: Option<u64>;1517 }15181519 /** @name FrameSystemLimitsBlockLength (134) */1520 export interface FrameSystemLimitsBlockLength extends Struct {1521 readonly max: FrameSupportWeightsPerDispatchClassU32;1522 }15231524 /** @name FrameSupportWeightsPerDispatchClassU32 (135) */1525 export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {1526 readonly normal: u32;1527 readonly operational: u32;1528 readonly mandatory: u32;1529 }15301531 /** @name FrameSupportWeightsRuntimeDbWeight (136) */1532 export interface FrameSupportWeightsRuntimeDbWeight extends Struct {1533 readonly read: u64;1534 readonly write: u64;1535 }15361537 /** @name SpVersionRuntimeVersion (137) */1538 export interface SpVersionRuntimeVersion extends Struct {1539 readonly specName: Text;1540 readonly implName: Text;1541 readonly authoringVersion: u32;1542 readonly specVersion: u32;1543 readonly implVersion: u32;1544 readonly apis: Vec<ITuple<[U8aFixed, u32]>>;1545 readonly transactionVersion: u32;1546 readonly stateVersion: u8;1547 }15481549 /** @name FrameSystemError (142) */1550 export interface FrameSystemError extends Enum {1551 readonly isInvalidSpecName: boolean;1552 readonly isSpecVersionNeedsToIncrease: boolean;1553 readonly isFailedToExtractRuntimeVersion: boolean;1554 readonly isNonDefaultComposite: boolean;1555 readonly isNonZeroRefCount: boolean;1556 readonly isCallFiltered: boolean;1557 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';1558 }15591560 /** @name PolkadotPrimitivesV2PersistedValidationData (143) */1561 export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {1562 readonly parentHead: Bytes;1563 readonly relayParentNumber: u32;1564 readonly relayParentStorageRoot: H256;1565 readonly maxPovSize: u32;1566 }15671568 /** @name PolkadotPrimitivesV2UpgradeRestriction (146) */1569 export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {1570 readonly isPresent: boolean;1571 readonly type: 'Present';1572 }15731574 /** @name SpTrieStorageProof (147) */1575 export interface SpTrieStorageProof extends Struct {1576 readonly trieNodes: BTreeSet<Bytes>;1577 }15781579 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (149) */1580 export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {1581 readonly dmqMqcHead: H256;1582 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;1583 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1584 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1585 }15861587 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (152) */1588 export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {1589 readonly maxCapacity: u32;1590 readonly maxTotalSize: u32;1591 readonly maxMessageSize: u32;1592 readonly msgCount: u32;1593 readonly totalSize: u32;1594 readonly mqcHead: Option<H256>;1595 }15961597 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (153) */1598 export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {1599 readonly maxCodeSize: u32;1600 readonly maxHeadDataSize: u32;1601 readonly maxUpwardQueueCount: u32;1602 readonly maxUpwardQueueSize: u32;1603 readonly maxUpwardMessageSize: u32;1604 readonly maxUpwardMessageNumPerCandidate: u32;1605 readonly hrmpMaxMessageNumPerCandidate: u32;1606 readonly validationUpgradeCooldown: u32;1607 readonly validationUpgradeDelay: u32;1608 }16091610 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (159) */1611 export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {1612 readonly recipient: u32;1613 readonly data: Bytes;1614 }16151616 /** @name CumulusPalletParachainSystemCall (160) */1617 export interface CumulusPalletParachainSystemCall extends Enum {1618 readonly isSetValidationData: boolean;1619 readonly asSetValidationData: {1620 readonly data: CumulusPrimitivesParachainInherentParachainInherentData;1621 } & Struct;1622 readonly isSudoSendUpwardMessage: boolean;1623 readonly asSudoSendUpwardMessage: {1624 readonly message: Bytes;1625 } & Struct;1626 readonly isAuthorizeUpgrade: boolean;1627 readonly asAuthorizeUpgrade: {1628 readonly codeHash: H256;1629 } & Struct;1630 readonly isEnactAuthorizedUpgrade: boolean;1631 readonly asEnactAuthorizedUpgrade: {1632 readonly code: Bytes;1633 } & Struct;1634 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';1635 }16361637 /** @name CumulusPrimitivesParachainInherentParachainInherentData (161) */1638 export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {1639 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;1640 readonly relayChainState: SpTrieStorageProof;1641 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;1642 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;1643 }16441645 /** @name PolkadotCorePrimitivesInboundDownwardMessage (163) */1646 export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1647 readonly sentAt: u32;1648 readonly msg: Bytes;1649 }16501651 /** @name PolkadotCorePrimitivesInboundHrmpMessage (166) */1652 export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1653 readonly sentAt: u32;1654 readonly data: Bytes;1655 }16561657 /** @name CumulusPalletParachainSystemError (169) */1658 export interface CumulusPalletParachainSystemError extends Enum {1659 readonly isOverlappingUpgrades: boolean;1660 readonly isProhibitedByPolkadot: boolean;1661 readonly isTooBig: boolean;1662 readonly isValidationDataNotAvailable: boolean;1663 readonly isHostConfigurationNotAvailable: boolean;1664 readonly isNotScheduled: boolean;1665 readonly isNothingAuthorized: boolean;1666 readonly isUnauthorized: boolean;1667 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';1668 }16691670 /** @name PalletBalancesBalanceLock (171) */1671 export interface PalletBalancesBalanceLock extends Struct {1672 readonly id: U8aFixed;1673 readonly amount: u128;1674 readonly reasons: PalletBalancesReasons;1675 }16761677 /** @name PalletBalancesReasons (172) */1678 export interface PalletBalancesReasons extends Enum {1679 readonly isFee: boolean;1680 readonly isMisc: boolean;1681 readonly isAll: boolean;1682 readonly type: 'Fee' | 'Misc' | 'All';1683 }16841685 /** @name PalletBalancesReserveData (175) */1686 export interface PalletBalancesReserveData extends Struct {1687 readonly id: U8aFixed;1688 readonly amount: u128;1689 }16901691 /** @name PalletBalancesReleases (177) */1692 export interface PalletBalancesReleases extends Enum {1693 readonly isV100: boolean;1694 readonly isV200: boolean;1695 readonly type: 'V100' | 'V200';1696 }16971698 /** @name PalletBalancesCall (178) */1699 export interface PalletBalancesCall extends Enum {1700 readonly isTransfer: boolean;1701 readonly asTransfer: {1702 readonly dest: MultiAddress;1703 readonly value: Compact<u128>;1704 } & Struct;1705 readonly isSetBalance: boolean;1706 readonly asSetBalance: {1707 readonly who: MultiAddress;1708 readonly newFree: Compact<u128>;1709 readonly newReserved: Compact<u128>;1710 } & Struct;1711 readonly isForceTransfer: boolean;1712 readonly asForceTransfer: {1713 readonly source: MultiAddress;1714 readonly dest: MultiAddress;1715 readonly value: Compact<u128>;1716 } & Struct;1717 readonly isTransferKeepAlive: boolean;1718 readonly asTransferKeepAlive: {1719 readonly dest: MultiAddress;1720 readonly value: Compact<u128>;1721 } & Struct;1722 readonly isTransferAll: boolean;1723 readonly asTransferAll: {1724 readonly dest: MultiAddress;1725 readonly keepAlive: bool;1726 } & Struct;1727 readonly isForceUnreserve: boolean;1728 readonly asForceUnreserve: {1729 readonly who: MultiAddress;1730 readonly amount: u128;1731 } & Struct;1732 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';1733 }17341735 /** @name PalletBalancesError (181) */1736 export interface PalletBalancesError extends Enum {1737 readonly isVestingBalance: boolean;1738 readonly isLiquidityRestrictions: boolean;1739 readonly isInsufficientBalance: boolean;1740 readonly isExistentialDeposit: boolean;1741 readonly isKeepAlive: boolean;1742 readonly isExistingVestingSchedule: boolean;1743 readonly isDeadAccount: boolean;1744 readonly isTooManyReserves: boolean;1745 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';1746 }17471748 /** @name PalletTimestampCall (183) */1749 export interface PalletTimestampCall extends Enum {1750 readonly isSet: boolean;1751 readonly asSet: {1752 readonly now: Compact<u64>;1753 } & Struct;1754 readonly type: 'Set';1755 }17561757 /** @name PalletTransactionPaymentReleases (185) */1758 export interface PalletTransactionPaymentReleases extends Enum {1759 readonly isV1Ancient: boolean;1760 readonly isV2: boolean;1761 readonly type: 'V1Ancient' | 'V2';1762 }17631764 /** @name PalletTreasuryProposal (186) */1765 export interface PalletTreasuryProposal extends Struct {1766 readonly proposer: AccountId32;1767 readonly value: u128;1768 readonly beneficiary: AccountId32;1769 readonly bond: u128;1770 }17711772 /** @name PalletTreasuryCall (189) */1773 export interface PalletTreasuryCall extends Enum {1774 readonly isProposeSpend: boolean;1775 readonly asProposeSpend: {1776 readonly value: Compact<u128>;1777 readonly beneficiary: MultiAddress;1778 } & Struct;1779 readonly isRejectProposal: boolean;1780 readonly asRejectProposal: {1781 readonly proposalId: Compact<u32>;1782 } & Struct;1783 readonly isApproveProposal: boolean;1784 readonly asApproveProposal: {1785 readonly proposalId: Compact<u32>;1786 } & Struct;1787 readonly isSpend: boolean;1788 readonly asSpend: {1789 readonly amount: Compact<u128>;1790 readonly beneficiary: MultiAddress;1791 } & Struct;1792 readonly isRemoveApproval: boolean;1793 readonly asRemoveApproval: {1794 readonly proposalId: Compact<u32>;1795 } & Struct;1796 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';1797 }17981799 /** @name FrameSupportPalletId (192) */1800 export interface FrameSupportPalletId extends U8aFixed {}18011802 /** @name PalletTreasuryError (193) */1803 export interface PalletTreasuryError extends Enum {1804 readonly isInsufficientProposersBalance: boolean;1805 readonly isInvalidIndex: boolean;1806 readonly isTooManyApprovals: boolean;1807 readonly isInsufficientPermission: boolean;1808 readonly isProposalNotApproved: boolean;1809 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';1810 }18111812 /** @name PalletSudoCall (194) */1813 export interface PalletSudoCall extends Enum {1814 readonly isSudo: boolean;1815 readonly asSudo: {1816 readonly call: Call;1817 } & Struct;1818 readonly isSudoUncheckedWeight: boolean;1819 readonly asSudoUncheckedWeight: {1820 readonly call: Call;1821 readonly weight: u64;1822 } & Struct;1823 readonly isSetKey: boolean;1824 readonly asSetKey: {1825 readonly new_: MultiAddress;1826 } & Struct;1827 readonly isSudoAs: boolean;1828 readonly asSudoAs: {1829 readonly who: MultiAddress;1830 readonly call: Call;1831 } & Struct;1832 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1833 }18341835 /** @name OrmlVestingModuleCall (196) */1836 export interface OrmlVestingModuleCall extends Enum {1837 readonly isClaim: boolean;1838 readonly isVestedTransfer: boolean;1839 readonly asVestedTransfer: {1840 readonly dest: MultiAddress;1841 readonly schedule: OrmlVestingVestingSchedule;1842 } & Struct;1843 readonly isUpdateVestingSchedules: boolean;1844 readonly asUpdateVestingSchedules: {1845 readonly who: MultiAddress;1846 readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;1847 } & Struct;1848 readonly isClaimFor: boolean;1849 readonly asClaimFor: {1850 readonly dest: MultiAddress;1851 } & Struct;1852 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';1853 }18541855 /** @name OrmlXtokensModuleCall (198) */1856 export interface OrmlXtokensModuleCall extends Enum {1857 readonly isTransfer: boolean;1858 readonly asTransfer: {1859 readonly currencyId: PalletForeingAssetsAssetIds;1860 readonly amount: u128;1861 readonly dest: XcmVersionedMultiLocation;1862 readonly destWeight: u64;1863 } & Struct;1864 readonly isTransferMultiasset: boolean;1865 readonly asTransferMultiasset: {1866 readonly asset: XcmVersionedMultiAsset;1867 readonly dest: XcmVersionedMultiLocation;1868 readonly destWeight: u64;1869 } & Struct;1870 readonly isTransferWithFee: boolean;1871 readonly asTransferWithFee: {1872 readonly currencyId: PalletForeingAssetsAssetIds;1873 readonly amount: u128;1874 readonly fee: u128;1875 readonly dest: XcmVersionedMultiLocation;1876 readonly destWeight: u64;1877 } & Struct;1878 readonly isTransferMultiassetWithFee: boolean;1879 readonly asTransferMultiassetWithFee: {1880 readonly asset: XcmVersionedMultiAsset;1881 readonly fee: XcmVersionedMultiAsset;1882 readonly dest: XcmVersionedMultiLocation;1883 readonly destWeight: u64;1884 } & Struct;1885 readonly isTransferMulticurrencies: boolean;1886 readonly asTransferMulticurrencies: {1887 readonly currencies: Vec<ITuple<[PalletForeingAssetsAssetIds, u128]>>;1888 readonly feeItem: u32;1889 readonly dest: XcmVersionedMultiLocation;1890 readonly destWeight: u64;1891 } & Struct;1892 readonly isTransferMultiassets: boolean;1893 readonly asTransferMultiassets: {1894 readonly assets: XcmVersionedMultiAssets;1895 readonly feeItem: u32;1896 readonly dest: XcmVersionedMultiLocation;1897 readonly destWeight: u64;1898 } & Struct;1899 readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';1900 }19011902 /** @name XcmVersionedMultiAsset (199) */1903 export interface XcmVersionedMultiAsset extends Enum {1904 readonly isV0: boolean;1905 readonly asV0: XcmV0MultiAsset;1906 readonly isV1: boolean;1907 readonly asV1: XcmV1MultiAsset;1908 readonly type: 'V0' | 'V1';1909 }19101911 /** @name OrmlTokensModuleCall (202) */1912 export interface OrmlTokensModuleCall extends Enum {1913 readonly isTransfer: boolean;1914 readonly asTransfer: {1915 readonly dest: MultiAddress;1916 readonly currencyId: PalletForeingAssetsAssetIds;1917 readonly amount: Compact<u128>;1918 } & Struct;1919 readonly isTransferAll: boolean;1920 readonly asTransferAll: {1921 readonly dest: MultiAddress;1922 readonly currencyId: PalletForeingAssetsAssetIds;1923 readonly keepAlive: bool;1924 } & Struct;1925 readonly isTransferKeepAlive: boolean;1926 readonly asTransferKeepAlive: {1927 readonly dest: MultiAddress;1928 readonly currencyId: PalletForeingAssetsAssetIds;1929 readonly amount: Compact<u128>;1930 } & Struct;1931 readonly isForceTransfer: boolean;1932 readonly asForceTransfer: {1933 readonly source: MultiAddress;1934 readonly dest: MultiAddress;1935 readonly currencyId: PalletForeingAssetsAssetIds;1936 readonly amount: Compact<u128>;1937 } & Struct;1938 readonly isSetBalance: boolean;1939 readonly asSetBalance: {1940 readonly who: MultiAddress;1941 readonly currencyId: PalletForeingAssetsAssetIds;1942 readonly newFree: Compact<u128>;1943 readonly newReserved: Compact<u128>;1944 } & Struct;1945 readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';1946 }19471948 /** @name CumulusPalletXcmpQueueCall (203) */1949 export interface CumulusPalletXcmpQueueCall extends Enum {1950 readonly isServiceOverweight: boolean;1951 readonly asServiceOverweight: {1952 readonly index: u64;1953 readonly weightLimit: u64;1954 } & Struct;1955 readonly isSuspendXcmExecution: boolean;1956 readonly isResumeXcmExecution: boolean;1957 readonly isUpdateSuspendThreshold: boolean;1958 readonly asUpdateSuspendThreshold: {1959 readonly new_: u32;1960 } & Struct;1961 readonly isUpdateDropThreshold: boolean;1962 readonly asUpdateDropThreshold: {1963 readonly new_: u32;1964 } & Struct;1965 readonly isUpdateResumeThreshold: boolean;1966 readonly asUpdateResumeThreshold: {1967 readonly new_: u32;1968 } & Struct;1969 readonly isUpdateThresholdWeight: boolean;1970 readonly asUpdateThresholdWeight: {1971 readonly new_: u64;1972 } & Struct;1973 readonly isUpdateWeightRestrictDecay: boolean;1974 readonly asUpdateWeightRestrictDecay: {1975 readonly new_: u64;1976 } & Struct;1977 readonly isUpdateXcmpMaxIndividualWeight: boolean;1978 readonly asUpdateXcmpMaxIndividualWeight: {1979 readonly new_: u64;1980 } & Struct;1981 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';1982 }19831984 /** @name PalletXcmCall (204) */1985 export interface PalletXcmCall extends Enum {1986 readonly isSend: boolean;1987 readonly asSend: {1988 readonly dest: XcmVersionedMultiLocation;1989 readonly message: XcmVersionedXcm;1990 } & Struct;1991 readonly isTeleportAssets: boolean;1992 readonly asTeleportAssets: {1993 readonly dest: XcmVersionedMultiLocation;1994 readonly beneficiary: XcmVersionedMultiLocation;1995 readonly assets: XcmVersionedMultiAssets;1996 readonly feeAssetItem: u32;1997 } & Struct;1998 readonly isReserveTransferAssets: boolean;1999 readonly asReserveTransferAssets: {2000 readonly dest: XcmVersionedMultiLocation;2001 readonly beneficiary: XcmVersionedMultiLocation;2002 readonly assets: XcmVersionedMultiAssets;2003 readonly feeAssetItem: u32;2004 } & Struct;2005 readonly isExecute: boolean;2006 readonly asExecute: {2007 readonly message: XcmVersionedXcm;2008 readonly maxWeight: u64;2009 } & Struct;2010 readonly isForceXcmVersion: boolean;2011 readonly asForceXcmVersion: {2012 readonly location: XcmV1MultiLocation;2013 readonly xcmVersion: u32;2014 } & Struct;2015 readonly isForceDefaultXcmVersion: boolean;2016 readonly asForceDefaultXcmVersion: {2017 readonly maybeXcmVersion: Option<u32>;2018 } & Struct;2019 readonly isForceSubscribeVersionNotify: boolean;2020 readonly asForceSubscribeVersionNotify: {2021 readonly location: XcmVersionedMultiLocation;2022 } & Struct;2023 readonly isForceUnsubscribeVersionNotify: boolean;2024 readonly asForceUnsubscribeVersionNotify: {2025 readonly location: XcmVersionedMultiLocation;2026 } & Struct;2027 readonly isLimitedReserveTransferAssets: boolean;2028 readonly asLimitedReserveTransferAssets: {2029 readonly dest: XcmVersionedMultiLocation;2030 readonly beneficiary: XcmVersionedMultiLocation;2031 readonly assets: XcmVersionedMultiAssets;2032 readonly feeAssetItem: u32;2033 readonly weightLimit: XcmV2WeightLimit;2034 } & Struct;2035 readonly isLimitedTeleportAssets: boolean;2036 readonly asLimitedTeleportAssets: {2037 readonly dest: XcmVersionedMultiLocation;2038 readonly beneficiary: XcmVersionedMultiLocation;2039 readonly assets: XcmVersionedMultiAssets;2040 readonly feeAssetItem: u32;2041 readonly weightLimit: XcmV2WeightLimit;2042 } & Struct;2043 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';2044 }20452046 /** @name XcmVersionedXcm (205) */2047 export interface XcmVersionedXcm extends Enum {2048 readonly isV0: boolean;2049 readonly asV0: XcmV0Xcm;2050 readonly isV1: boolean;2051 readonly asV1: XcmV1Xcm;2052 readonly isV2: boolean;2053 readonly asV2: XcmV2Xcm;2054 readonly type: 'V0' | 'V1' | 'V2';2055 }20562057 /** @name XcmV0Xcm (206) */2058 export interface XcmV0Xcm extends Enum {2059 readonly isWithdrawAsset: boolean;2060 readonly asWithdrawAsset: {2061 readonly assets: Vec<XcmV0MultiAsset>;2062 readonly effects: Vec<XcmV0Order>;2063 } & Struct;2064 readonly isReserveAssetDeposit: boolean;2065 readonly asReserveAssetDeposit: {2066 readonly assets: Vec<XcmV0MultiAsset>;2067 readonly effects: Vec<XcmV0Order>;2068 } & Struct;2069 readonly isTeleportAsset: boolean;2070 readonly asTeleportAsset: {2071 readonly assets: Vec<XcmV0MultiAsset>;2072 readonly effects: Vec<XcmV0Order>;2073 } & Struct;2074 readonly isQueryResponse: boolean;2075 readonly asQueryResponse: {2076 readonly queryId: Compact<u64>;2077 readonly response: XcmV0Response;2078 } & Struct;2079 readonly isTransferAsset: boolean;2080 readonly asTransferAsset: {2081 readonly assets: Vec<XcmV0MultiAsset>;2082 readonly dest: XcmV0MultiLocation;2083 } & Struct;2084 readonly isTransferReserveAsset: boolean;2085 readonly asTransferReserveAsset: {2086 readonly assets: Vec<XcmV0MultiAsset>;2087 readonly dest: XcmV0MultiLocation;2088 readonly effects: Vec<XcmV0Order>;2089 } & Struct;2090 readonly isTransact: boolean;2091 readonly asTransact: {2092 readonly originType: XcmV0OriginKind;2093 readonly requireWeightAtMost: u64;2094 readonly call: XcmDoubleEncoded;2095 } & Struct;2096 readonly isHrmpNewChannelOpenRequest: boolean;2097 readonly asHrmpNewChannelOpenRequest: {2098 readonly sender: Compact<u32>;2099 readonly maxMessageSize: Compact<u32>;2100 readonly maxCapacity: Compact<u32>;2101 } & Struct;2102 readonly isHrmpChannelAccepted: boolean;2103 readonly asHrmpChannelAccepted: {2104 readonly recipient: Compact<u32>;2105 } & Struct;2106 readonly isHrmpChannelClosing: boolean;2107 readonly asHrmpChannelClosing: {2108 readonly initiator: Compact<u32>;2109 readonly sender: Compact<u32>;2110 readonly recipient: Compact<u32>;2111 } & Struct;2112 readonly isRelayedFrom: boolean;2113 readonly asRelayedFrom: {2114 readonly who: XcmV0MultiLocation;2115 readonly message: XcmV0Xcm;2116 } & Struct;2117 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';2118 }21192120 /** @name XcmV0Order (208) */2121 export interface XcmV0Order extends Enum {2122 readonly isNull: boolean;2123 readonly isDepositAsset: boolean;2124 readonly asDepositAsset: {2125 readonly assets: Vec<XcmV0MultiAsset>;2126 readonly dest: XcmV0MultiLocation;2127 } & Struct;2128 readonly isDepositReserveAsset: boolean;2129 readonly asDepositReserveAsset: {2130 readonly assets: Vec<XcmV0MultiAsset>;2131 readonly dest: XcmV0MultiLocation;2132 readonly effects: Vec<XcmV0Order>;2133 } & Struct;2134 readonly isExchangeAsset: boolean;2135 readonly asExchangeAsset: {2136 readonly give: Vec<XcmV0MultiAsset>;2137 readonly receive: Vec<XcmV0MultiAsset>;2138 } & Struct;2139 readonly isInitiateReserveWithdraw: boolean;2140 readonly asInitiateReserveWithdraw: {2141 readonly assets: Vec<XcmV0MultiAsset>;2142 readonly reserve: XcmV0MultiLocation;2143 readonly effects: Vec<XcmV0Order>;2144 } & Struct;2145 readonly isInitiateTeleport: boolean;2146 readonly asInitiateTeleport: {2147 readonly assets: Vec<XcmV0MultiAsset>;2148 readonly dest: XcmV0MultiLocation;2149 readonly effects: Vec<XcmV0Order>;2150 } & Struct;2151 readonly isQueryHolding: boolean;2152 readonly asQueryHolding: {2153 readonly queryId: Compact<u64>;2154 readonly dest: XcmV0MultiLocation;2155 readonly assets: Vec<XcmV0MultiAsset>;2156 } & Struct;2157 readonly isBuyExecution: boolean;2158 readonly asBuyExecution: {2159 readonly fees: XcmV0MultiAsset;2160 readonly weight: u64;2161 readonly debt: u64;2162 readonly haltOnError: bool;2163 readonly xcm: Vec<XcmV0Xcm>;2164 } & Struct;2165 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2166 }21672168 /** @name XcmV0Response (210) */2169 export interface XcmV0Response extends Enum {2170 readonly isAssets: boolean;2171 readonly asAssets: Vec<XcmV0MultiAsset>;2172 readonly type: 'Assets';2173 }21742175 /** @name XcmV1Xcm (211) */2176 export interface XcmV1Xcm extends Enum {2177 readonly isWithdrawAsset: boolean;2178 readonly asWithdrawAsset: {2179 readonly assets: XcmV1MultiassetMultiAssets;2180 readonly effects: Vec<XcmV1Order>;2181 } & Struct;2182 readonly isReserveAssetDeposited: boolean;2183 readonly asReserveAssetDeposited: {2184 readonly assets: XcmV1MultiassetMultiAssets;2185 readonly effects: Vec<XcmV1Order>;2186 } & Struct;2187 readonly isReceiveTeleportedAsset: boolean;2188 readonly asReceiveTeleportedAsset: {2189 readonly assets: XcmV1MultiassetMultiAssets;2190 readonly effects: Vec<XcmV1Order>;2191 } & Struct;2192 readonly isQueryResponse: boolean;2193 readonly asQueryResponse: {2194 readonly queryId: Compact<u64>;2195 readonly response: XcmV1Response;2196 } & Struct;2197 readonly isTransferAsset: boolean;2198 readonly asTransferAsset: {2199 readonly assets: XcmV1MultiassetMultiAssets;2200 readonly beneficiary: XcmV1MultiLocation;2201 } & Struct;2202 readonly isTransferReserveAsset: boolean;2203 readonly asTransferReserveAsset: {2204 readonly assets: XcmV1MultiassetMultiAssets;2205 readonly dest: XcmV1MultiLocation;2206 readonly effects: Vec<XcmV1Order>;2207 } & Struct;2208 readonly isTransact: boolean;2209 readonly asTransact: {2210 readonly originType: XcmV0OriginKind;2211 readonly requireWeightAtMost: u64;2212 readonly call: XcmDoubleEncoded;2213 } & Struct;2214 readonly isHrmpNewChannelOpenRequest: boolean;2215 readonly asHrmpNewChannelOpenRequest: {2216 readonly sender: Compact<u32>;2217 readonly maxMessageSize: Compact<u32>;2218 readonly maxCapacity: Compact<u32>;2219 } & Struct;2220 readonly isHrmpChannelAccepted: boolean;2221 readonly asHrmpChannelAccepted: {2222 readonly recipient: Compact<u32>;2223 } & Struct;2224 readonly isHrmpChannelClosing: boolean;2225 readonly asHrmpChannelClosing: {2226 readonly initiator: Compact<u32>;2227 readonly sender: Compact<u32>;2228 readonly recipient: Compact<u32>;2229 } & Struct;2230 readonly isRelayedFrom: boolean;2231 readonly asRelayedFrom: {2232 readonly who: XcmV1MultilocationJunctions;2233 readonly message: XcmV1Xcm;2234 } & Struct;2235 readonly isSubscribeVersion: boolean;2236 readonly asSubscribeVersion: {2237 readonly queryId: Compact<u64>;2238 readonly maxResponseWeight: Compact<u64>;2239 } & Struct;2240 readonly isUnsubscribeVersion: boolean;2241 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';2242 }22432244 /** @name XcmV1Order (213) */2245 export interface XcmV1Order extends Enum {2246 readonly isNoop: boolean;2247 readonly isDepositAsset: boolean;2248 readonly asDepositAsset: {2249 readonly assets: XcmV1MultiassetMultiAssetFilter;2250 readonly maxAssets: u32;2251 readonly beneficiary: XcmV1MultiLocation;2252 } & Struct;2253 readonly isDepositReserveAsset: boolean;2254 readonly asDepositReserveAsset: {2255 readonly assets: XcmV1MultiassetMultiAssetFilter;2256 readonly maxAssets: u32;2257 readonly dest: XcmV1MultiLocation;2258 readonly effects: Vec<XcmV1Order>;2259 } & Struct;2260 readonly isExchangeAsset: boolean;2261 readonly asExchangeAsset: {2262 readonly give: XcmV1MultiassetMultiAssetFilter;2263 readonly receive: XcmV1MultiassetMultiAssets;2264 } & Struct;2265 readonly isInitiateReserveWithdraw: boolean;2266 readonly asInitiateReserveWithdraw: {2267 readonly assets: XcmV1MultiassetMultiAssetFilter;2268 readonly reserve: XcmV1MultiLocation;2269 readonly effects: Vec<XcmV1Order>;2270 } & Struct;2271 readonly isInitiateTeleport: boolean;2272 readonly asInitiateTeleport: {2273 readonly assets: XcmV1MultiassetMultiAssetFilter;2274 readonly dest: XcmV1MultiLocation;2275 readonly effects: Vec<XcmV1Order>;2276 } & Struct;2277 readonly isQueryHolding: boolean;2278 readonly asQueryHolding: {2279 readonly queryId: Compact<u64>;2280 readonly dest: XcmV1MultiLocation;2281 readonly assets: XcmV1MultiassetMultiAssetFilter;2282 } & Struct;2283 readonly isBuyExecution: boolean;2284 readonly asBuyExecution: {2285 readonly fees: XcmV1MultiAsset;2286 readonly weight: u64;2287 readonly debt: u64;2288 readonly haltOnError: bool;2289 readonly instructions: Vec<XcmV1Xcm>;2290 } & Struct;2291 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2292 }22932294 /** @name XcmV1Response (215) */2295 export interface XcmV1Response extends Enum {2296 readonly isAssets: boolean;2297 readonly asAssets: XcmV1MultiassetMultiAssets;2298 readonly isVersion: boolean;2299 readonly asVersion: u32;2300 readonly type: 'Assets' | 'Version';2301 }23022303 /** @name CumulusPalletXcmCall (229) */2304 export type CumulusPalletXcmCall = Null;23052306 /** @name CumulusPalletDmpQueueCall (230) */2307 export interface CumulusPalletDmpQueueCall extends Enum {2308 readonly isServiceOverweight: boolean;2309 readonly asServiceOverweight: {2310 readonly index: u64;2311 readonly weightLimit: u64;2312 } & Struct;2313 readonly type: 'ServiceOverweight';2314 }23152316 /** @name PalletInflationCall (231) */2317 export interface PalletInflationCall extends Enum {2318 readonly isStartInflation: boolean;2319 readonly asStartInflation: {2320 readonly inflationStartRelayBlock: u32;2321 } & Struct;2322 readonly type: 'StartInflation';2323 }23242325 /** @name PalletUniqueCall (232) */2326 export interface PalletUniqueCall extends Enum {2327 readonly isCreateCollection: boolean;2328 readonly asCreateCollection: {2329 readonly collectionName: Vec<u16>;2330 readonly collectionDescription: Vec<u16>;2331 readonly tokenPrefix: Bytes;2332 readonly mode: UpDataStructsCollectionMode;2333 } & Struct;2334 readonly isCreateCollectionEx: boolean;2335 readonly asCreateCollectionEx: {2336 readonly data: UpDataStructsCreateCollectionData;2337 } & Struct;2338 readonly isDestroyCollection: boolean;2339 readonly asDestroyCollection: {2340 readonly collectionId: u32;2341 } & Struct;2342 readonly isAddToAllowList: boolean;2343 readonly asAddToAllowList: {2344 readonly collectionId: u32;2345 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;2346 } & Struct;2347 readonly isRemoveFromAllowList: boolean;2348 readonly asRemoveFromAllowList: {2349 readonly collectionId: u32;2350 readonly address: PalletEvmAccountBasicCrossAccountIdRepr;2351 } & Struct;2352 readonly isChangeCollectionOwner: boolean;2353 readonly asChangeCollectionOwner: {2354 readonly collectionId: u32;2355 readonly newOwner: AccountId32;2356 } & Struct;2357 readonly isAddCollectionAdmin: boolean;2358 readonly asAddCollectionAdmin: {2359 readonly collectionId: u32;2360 readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;2361 } & Struct;2362 readonly isRemoveCollectionAdmin: boolean;2363 readonly asRemoveCollectionAdmin: {2364 readonly collectionId: u32;2365 readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;2366 } & Struct;2367 readonly isSetCollectionSponsor: boolean;2368 readonly asSetCollectionSponsor: {2369 readonly collectionId: u32;2370 readonly newSponsor: AccountId32;2371 } & Struct;2372 readonly isConfirmSponsorship: boolean;2373 readonly asConfirmSponsorship: {2374 readonly collectionId: u32;2375 } & Struct;2376 readonly isRemoveCollectionSponsor: boolean;2377 readonly asRemoveCollectionSponsor: {2378 readonly collectionId: u32;2379 } & Struct;2380 readonly isCreateItem: boolean;2381 readonly asCreateItem: {2382 readonly collectionId: u32;2383 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2384 readonly data: UpDataStructsCreateItemData;2385 } & Struct;2386 readonly isCreateMultipleItems: boolean;2387 readonly asCreateMultipleItems: {2388 readonly collectionId: u32;2389 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2390 readonly itemsData: Vec<UpDataStructsCreateItemData>;2391 } & Struct;2392 readonly isSetCollectionProperties: boolean;2393 readonly asSetCollectionProperties: {2394 readonly collectionId: u32;2395 readonly properties: Vec<UpDataStructsProperty>;2396 } & Struct;2397 readonly isDeleteCollectionProperties: boolean;2398 readonly asDeleteCollectionProperties: {2399 readonly collectionId: u32;2400 readonly propertyKeys: Vec<Bytes>;2401 } & Struct;2402 readonly isSetTokenProperties: boolean;2403 readonly asSetTokenProperties: {2404 readonly collectionId: u32;2405 readonly tokenId: u32;2406 readonly properties: Vec<UpDataStructsProperty>;2407 } & Struct;2408 readonly isDeleteTokenProperties: boolean;2409 readonly asDeleteTokenProperties: {2410 readonly collectionId: u32;2411 readonly tokenId: u32;2412 readonly propertyKeys: Vec<Bytes>;2413 } & Struct;2414 readonly isSetTokenPropertyPermissions: boolean;2415 readonly asSetTokenPropertyPermissions: {2416 readonly collectionId: u32;2417 readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2418 } & Struct;2419 readonly isCreateMultipleItemsEx: boolean;2420 readonly asCreateMultipleItemsEx: {2421 readonly collectionId: u32;2422 readonly data: UpDataStructsCreateItemExData;2423 } & Struct;2424 readonly isSetTransfersEnabledFlag: boolean;2425 readonly asSetTransfersEnabledFlag: {2426 readonly collectionId: u32;2427 readonly value: bool;2428 } & Struct;2429 readonly isBurnItem: boolean;2430 readonly asBurnItem: {2431 readonly collectionId: u32;2432 readonly itemId: u32;2433 readonly value: u128;2434 } & Struct;2435 readonly isBurnFrom: boolean;2436 readonly asBurnFrom: {2437 readonly collectionId: u32;2438 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;2439 readonly itemId: u32;2440 readonly value: u128;2441 } & Struct;2442 readonly isTransfer: boolean;2443 readonly asTransfer: {2444 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;2445 readonly collectionId: u32;2446 readonly itemId: u32;2447 readonly value: u128;2448 } & Struct;2449 readonly isApprove: boolean;2450 readonly asApprove: {2451 readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;2452 readonly collectionId: u32;2453 readonly itemId: u32;2454 readonly amount: u128;2455 } & Struct;2456 readonly isTransferFrom: boolean;2457 readonly asTransferFrom: {2458 readonly from: PalletEvmAccountBasicCrossAccountIdRepr;2459 readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;2460 readonly collectionId: u32;2461 readonly itemId: u32;2462 readonly value: u128;2463 } & Struct;2464 readonly isSetCollectionLimits: boolean;2465 readonly asSetCollectionLimits: {2466 readonly collectionId: u32;2467 readonly newLimit: UpDataStructsCollectionLimits;2468 } & Struct;2469 readonly isSetCollectionPermissions: boolean;2470 readonly asSetCollectionPermissions: {2471 readonly collectionId: u32;2472 readonly newPermission: UpDataStructsCollectionPermissions;2473 } & Struct;2474 readonly isRepartition: boolean;2475 readonly asRepartition: {2476 readonly collectionId: u32;2477 readonly tokenId: u32;2478 readonly amount: u128;2479 } & Struct;2480 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';2481 }24822483 /** @name UpDataStructsCollectionMode (237) */2484 export interface UpDataStructsCollectionMode extends Enum {2485 readonly isNft: boolean;2486 readonly isFungible: boolean;2487 readonly asFungible: u8;2488 readonly isReFungible: boolean;2489 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2490 }24912492 /** @name UpDataStructsCreateCollectionData (238) */2493 export interface UpDataStructsCreateCollectionData extends Struct {2494 readonly mode: UpDataStructsCollectionMode;2495 readonly access: Option<UpDataStructsAccessMode>;2496 readonly name: Vec<u16>;2497 readonly description: Vec<u16>;2498 readonly tokenPrefix: Bytes;2499 readonly pendingSponsor: Option<AccountId32>;2500 readonly limits: Option<UpDataStructsCollectionLimits>;2501 readonly permissions: Option<UpDataStructsCollectionPermissions>;2502 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2503 readonly properties: Vec<UpDataStructsProperty>;2504 }25052506 /** @name UpDataStructsAccessMode (240) */2507 export interface UpDataStructsAccessMode extends Enum {2508 readonly isNormal: boolean;2509 readonly isAllowList: boolean;2510 readonly type: 'Normal' | 'AllowList';2511 }25122513 /** @name UpDataStructsCollectionLimits (242) */2514 export interface UpDataStructsCollectionLimits extends Struct {2515 readonly accountTokenOwnershipLimit: Option<u32>;2516 readonly sponsoredDataSize: Option<u32>;2517 readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;2518 readonly tokenLimit: Option<u32>;2519 readonly sponsorTransferTimeout: Option<u32>;2520 readonly sponsorApproveTimeout: Option<u32>;2521 readonly ownerCanTransfer: Option<bool>;2522 readonly ownerCanDestroy: Option<bool>;2523 readonly transfersEnabled: Option<bool>;2524 }25252526 /** @name UpDataStructsSponsoringRateLimit (244) */2527 export interface UpDataStructsSponsoringRateLimit extends Enum {2528 readonly isSponsoringDisabled: boolean;2529 readonly isBlocks: boolean;2530 readonly asBlocks: u32;2531 readonly type: 'SponsoringDisabled' | 'Blocks';2532 }25332534 /** @name UpDataStructsCollectionPermissions (247) */2535 export interface UpDataStructsCollectionPermissions extends Struct {2536 readonly access: Option<UpDataStructsAccessMode>;2537 readonly mintMode: Option<bool>;2538 readonly nesting: Option<UpDataStructsNestingPermissions>;2539 }25402541 /** @name UpDataStructsNestingPermissions (249) */2542 export interface UpDataStructsNestingPermissions extends Struct {2543 readonly tokenOwner: bool;2544 readonly collectionAdmin: bool;2545 readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;2546 }25472548 /** @name UpDataStructsOwnerRestrictedSet (251) */2549 export interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}25502551 /** @name UpDataStructsPropertyKeyPermission (256) */2552 export interface UpDataStructsPropertyKeyPermission extends Struct {2553 readonly key: Bytes;2554 readonly permission: UpDataStructsPropertyPermission;2555 }25562557 /** @name UpDataStructsPropertyPermission (257) */2558 export interface UpDataStructsPropertyPermission extends Struct {2559 readonly mutable: bool;2560 readonly collectionAdmin: bool;2561 readonly tokenOwner: bool;2562 }25632564 /** @name UpDataStructsProperty (260) */2565 export interface UpDataStructsProperty extends Struct {2566 readonly key: Bytes;2567 readonly value: Bytes;2568 }25692570 /** @name UpDataStructsCreateItemData (263) */2571 export interface UpDataStructsCreateItemData extends Enum {2572 readonly isNft: boolean;2573 readonly asNft: UpDataStructsCreateNftData;2574 readonly isFungible: boolean;2575 readonly asFungible: UpDataStructsCreateFungibleData;2576 readonly isReFungible: boolean;2577 readonly asReFungible: UpDataStructsCreateReFungibleData;2578 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2579 }25802581 /** @name UpDataStructsCreateNftData (264) */2582 export interface UpDataStructsCreateNftData extends Struct {2583 readonly properties: Vec<UpDataStructsProperty>;2584 }25852586 /** @name UpDataStructsCreateFungibleData (265) */2587 export interface UpDataStructsCreateFungibleData extends Struct {2588 readonly value: u128;2589 }25902591 /** @name UpDataStructsCreateReFungibleData (266) */2592 export interface UpDataStructsCreateReFungibleData extends Struct {2593 readonly pieces: u128;2594 readonly properties: Vec<UpDataStructsProperty>;2595 }25962597 /** @name UpDataStructsCreateItemExData (269) */2598 export interface UpDataStructsCreateItemExData extends Enum {2599 readonly isNft: boolean;2600 readonly asNft: Vec<UpDataStructsCreateNftExData>;2601 readonly isFungible: boolean;2602 readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2603 readonly isRefungibleMultipleItems: boolean;2604 readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExSingleOwner>;2605 readonly isRefungibleMultipleOwners: boolean;2606 readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExMultipleOwners;2607 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2608 }26092610 /** @name UpDataStructsCreateNftExData (271) */2611 export interface UpDataStructsCreateNftExData extends Struct {2612 readonly properties: Vec<UpDataStructsProperty>;2613 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2614 }26152616 /** @name UpDataStructsCreateRefungibleExSingleOwner (278) */2617 export interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {2618 readonly user: PalletEvmAccountBasicCrossAccountIdRepr;2619 readonly pieces: u128;2620 readonly properties: Vec<UpDataStructsProperty>;2621 }26222623 /** @name UpDataStructsCreateRefungibleExMultipleOwners (280) */2624 export interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {2625 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2626 readonly properties: Vec<UpDataStructsProperty>;2627 }26282629 /** @name PalletUniqueSchedulerCall (281) */2630 export interface PalletUniqueSchedulerCall extends Enum {2631 readonly isScheduleNamed: boolean;2632 readonly asScheduleNamed: {2633 readonly id: U8aFixed;2634 readonly when: u32;2635 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2636 readonly priority: u8;2637 readonly call: FrameSupportScheduleMaybeHashed;2638 } & Struct;2639 readonly isCancelNamed: boolean;2640 readonly asCancelNamed: {2641 readonly id: U8aFixed;2642 } & Struct;2643 readonly isScheduleNamedAfter: boolean;2644 readonly asScheduleNamedAfter: {2645 readonly id: U8aFixed;2646 readonly after: u32;2647 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2648 readonly priority: u8;2649 readonly call: FrameSupportScheduleMaybeHashed;2650 } & Struct;2651 readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter';2652 }26532654 /** @name FrameSupportScheduleMaybeHashed (283) */2655 export interface FrameSupportScheduleMaybeHashed extends Enum {2656 readonly isValue: boolean;2657 readonly asValue: Call;2658 readonly isHash: boolean;2659 readonly asHash: H256;2660 readonly type: 'Value' | 'Hash';2661 }26622663 /** @name PalletConfigurationCall (284) */2664 export interface PalletConfigurationCall extends Enum {2665 readonly isSetWeightToFeeCoefficientOverride: boolean;2666 readonly asSetWeightToFeeCoefficientOverride: {2667 readonly coeff: Option<u32>;2668 } & Struct;2669 readonly isSetMinGasPriceOverride: boolean;2670 readonly asSetMinGasPriceOverride: {2671 readonly coeff: Option<u64>;2672 } & Struct;2673 readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';2674 }26752676 /** @name PalletTemplateTransactionPaymentCall (285) */2677 export type PalletTemplateTransactionPaymentCall = Null;26782679 /** @name PalletStructureCall (286) */2680 export type PalletStructureCall = Null;26812682 /** @name PalletRmrkCoreCall (287) */2683 export interface PalletRmrkCoreCall extends Enum {2684 readonly isCreateCollection: boolean;2685 readonly asCreateCollection: {2686 readonly metadata: Bytes;2687 readonly max: Option<u32>;2688 readonly symbol: Bytes;2689 } & Struct;2690 readonly isDestroyCollection: boolean;2691 readonly asDestroyCollection: {2692 readonly collectionId: u32;2693 } & Struct;2694 readonly isChangeCollectionIssuer: boolean;2695 readonly asChangeCollectionIssuer: {2696 readonly collectionId: u32;2697 readonly newIssuer: MultiAddress;2698 } & Struct;2699 readonly isLockCollection: boolean;2700 readonly asLockCollection: {2701 readonly collectionId: u32;2702 } & Struct;2703 readonly isMintNft: boolean;2704 readonly asMintNft: {2705 readonly owner: Option<AccountId32>;2706 readonly collectionId: u32;2707 readonly recipient: Option<AccountId32>;2708 readonly royaltyAmount: Option<Permill>;2709 readonly metadata: Bytes;2710 readonly transferable: bool;2711 readonly resources: Option<Vec<RmrkTraitsResourceResourceTypes>>;2712 } & Struct;2713 readonly isBurnNft: boolean;2714 readonly asBurnNft: {2715 readonly collectionId: u32;2716 readonly nftId: u32;2717 readonly maxBurns: u32;2718 } & Struct;2719 readonly isSend: boolean;2720 readonly asSend: {2721 readonly rmrkCollectionId: u32;2722 readonly rmrkNftId: u32;2723 readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;2724 } & Struct;2725 readonly isAcceptNft: boolean;2726 readonly asAcceptNft: {2727 readonly rmrkCollectionId: u32;2728 readonly rmrkNftId: u32;2729 readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;2730 } & Struct;2731 readonly isRejectNft: boolean;2732 readonly asRejectNft: {2733 readonly rmrkCollectionId: u32;2734 readonly rmrkNftId: u32;2735 } & Struct;2736 readonly isAcceptResource: boolean;2737 readonly asAcceptResource: {2738 readonly rmrkCollectionId: u32;2739 readonly rmrkNftId: u32;2740 readonly resourceId: u32;2741 } & Struct;2742 readonly isAcceptResourceRemoval: boolean;2743 readonly asAcceptResourceRemoval: {2744 readonly rmrkCollectionId: u32;2745 readonly rmrkNftId: u32;2746 readonly resourceId: u32;2747 } & Struct;2748 readonly isSetProperty: boolean;2749 readonly asSetProperty: {2750 readonly rmrkCollectionId: Compact<u32>;2751 readonly maybeNftId: Option<u32>;2752 readonly key: Bytes;2753 readonly value: Bytes;2754 } & Struct;2755 readonly isSetPriority: boolean;2756 readonly asSetPriority: {2757 readonly rmrkCollectionId: u32;2758 readonly rmrkNftId: u32;2759 readonly priorities: Vec<u32>;2760 } & Struct;2761 readonly isAddBasicResource: boolean;2762 readonly asAddBasicResource: {2763 readonly rmrkCollectionId: u32;2764 readonly nftId: u32;2765 readonly resource: RmrkTraitsResourceBasicResource;2766 } & Struct;2767 readonly isAddComposableResource: boolean;2768 readonly asAddComposableResource: {2769 readonly rmrkCollectionId: u32;2770 readonly nftId: u32;2771 readonly resource: RmrkTraitsResourceComposableResource;2772 } & Struct;2773 readonly isAddSlotResource: boolean;2774 readonly asAddSlotResource: {2775 readonly rmrkCollectionId: u32;2776 readonly nftId: u32;2777 readonly resource: RmrkTraitsResourceSlotResource;2778 } & Struct;2779 readonly isRemoveResource: boolean;2780 readonly asRemoveResource: {2781 readonly rmrkCollectionId: u32;2782 readonly nftId: u32;2783 readonly resourceId: u32;2784 } & Struct;2785 readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';2786 }27872788 /** @name RmrkTraitsResourceResourceTypes (293) */2789 export interface RmrkTraitsResourceResourceTypes extends Enum {2790 readonly isBasic: boolean;2791 readonly asBasic: RmrkTraitsResourceBasicResource;2792 readonly isComposable: boolean;2793 readonly asComposable: RmrkTraitsResourceComposableResource;2794 readonly isSlot: boolean;2795 readonly asSlot: RmrkTraitsResourceSlotResource;2796 readonly type: 'Basic' | 'Composable' | 'Slot';2797 }27982799 /** @name RmrkTraitsResourceBasicResource (295) */2800 export interface RmrkTraitsResourceBasicResource extends Struct {2801 readonly src: Option<Bytes>;2802 readonly metadata: Option<Bytes>;2803 readonly license: Option<Bytes>;2804 readonly thumb: Option<Bytes>;2805 }28062807 /** @name RmrkTraitsResourceComposableResource (297) */2808 export interface RmrkTraitsResourceComposableResource extends Struct {2809 readonly parts: Vec<u32>;2810 readonly base: u32;2811 readonly src: Option<Bytes>;2812 readonly metadata: Option<Bytes>;2813 readonly license: Option<Bytes>;2814 readonly thumb: Option<Bytes>;2815 }28162817 /** @name RmrkTraitsResourceSlotResource (298) */2818 export interface RmrkTraitsResourceSlotResource extends Struct {2819 readonly base: u32;2820 readonly src: Option<Bytes>;2821 readonly metadata: Option<Bytes>;2822 readonly slot: u32;2823 readonly license: Option<Bytes>;2824 readonly thumb: Option<Bytes>;2825 }28262827 /** @name PalletRmrkEquipCall (301) */2828 export interface PalletRmrkEquipCall extends Enum {2829 readonly isCreateBase: boolean;2830 readonly asCreateBase: {2831 readonly baseType: Bytes;2832 readonly symbol: Bytes;2833 readonly parts: Vec<RmrkTraitsPartPartType>;2834 } & Struct;2835 readonly isThemeAdd: boolean;2836 readonly asThemeAdd: {2837 readonly baseId: u32;2838 readonly theme: RmrkTraitsTheme;2839 } & Struct;2840 readonly isEquippable: boolean;2841 readonly asEquippable: {2842 readonly baseId: u32;2843 readonly slotId: u32;2844 readonly equippables: RmrkTraitsPartEquippableList;2845 } & Struct;2846 readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';2847 }28482849 /** @name RmrkTraitsPartPartType (304) */2850 export interface RmrkTraitsPartPartType extends Enum {2851 readonly isFixedPart: boolean;2852 readonly asFixedPart: RmrkTraitsPartFixedPart;2853 readonly isSlotPart: boolean;2854 readonly asSlotPart: RmrkTraitsPartSlotPart;2855 readonly type: 'FixedPart' | 'SlotPart';2856 }28572858 /** @name RmrkTraitsPartFixedPart (306) */2859 export interface RmrkTraitsPartFixedPart extends Struct {2860 readonly id: u32;2861 readonly z: u32;2862 readonly src: Bytes;2863 }28642865 /** @name RmrkTraitsPartSlotPart (307) */2866 export interface RmrkTraitsPartSlotPart extends Struct {2867 readonly id: u32;2868 readonly equippable: RmrkTraitsPartEquippableList;2869 readonly src: Bytes;2870 readonly z: u32;2871 }28722873 /** @name RmrkTraitsPartEquippableList (308) */2874 export interface RmrkTraitsPartEquippableList extends Enum {2875 readonly isAll: boolean;2876 readonly isEmpty: boolean;2877 readonly isCustom: boolean;2878 readonly asCustom: Vec<u32>;2879 readonly type: 'All' | 'Empty' | 'Custom';2880 }28812882 /** @name RmrkTraitsTheme (310) */2883 export interface RmrkTraitsTheme extends Struct {2884 readonly name: Bytes;2885 readonly properties: Vec<RmrkTraitsThemeThemeProperty>;2886 readonly inherit: bool;2887 }28882889 /** @name RmrkTraitsThemeThemeProperty (312) */2890 export interface RmrkTraitsThemeThemeProperty extends Struct {2891 readonly key: Bytes;2892 readonly value: Bytes;2893 }28942895 /** @name PalletForeingAssetsModuleCall (314) */2896 export interface PalletForeingAssetsModuleCall extends Enum {2897 readonly isRegisterForeignAsset: boolean;2898 readonly asRegisterForeignAsset: {2899 readonly owner: AccountId32;2900 readonly location: XcmVersionedMultiLocation;2901 readonly metadata: PalletForeingAssetsModuleAssetMetadata;2902 } & Struct;2903 readonly isUpdateForeignAsset: boolean;2904 readonly asUpdateForeignAsset: {2905 readonly foreignAssetId: u32;2906 readonly location: XcmVersionedMultiLocation;2907 readonly metadata: PalletForeingAssetsModuleAssetMetadata;2908 } & Struct;2909 readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';2910 }29112912 /** @name PalletEvmCall (315) */2913 export interface PalletEvmCall extends Enum {2914 readonly isWithdraw: boolean;2915 readonly asWithdraw: {2916 readonly address: H160;2917 readonly value: u128;2918 } & Struct;2919 readonly isCall: boolean;2920 readonly asCall: {2921 readonly source: H160;2922 readonly target: H160;2923 readonly input: Bytes;2924 readonly value: U256;2925 readonly gasLimit: u64;2926 readonly maxFeePerGas: U256;2927 readonly maxPriorityFeePerGas: Option<U256>;2928 readonly nonce: Option<U256>;2929 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;2930 } & Struct;2931 readonly isCreate: boolean;2932 readonly asCreate: {2933 readonly source: H160;2934 readonly init: Bytes;2935 readonly value: U256;2936 readonly gasLimit: u64;2937 readonly maxFeePerGas: U256;2938 readonly maxPriorityFeePerGas: Option<U256>;2939 readonly nonce: Option<U256>;2940 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;2941 } & Struct;2942 readonly isCreate2: boolean;2943 readonly asCreate2: {2944 readonly source: H160;2945 readonly init: Bytes;2946 readonly salt: H256;2947 readonly value: U256;2948 readonly gasLimit: u64;2949 readonly maxFeePerGas: U256;2950 readonly maxPriorityFeePerGas: Option<U256>;2951 readonly nonce: Option<U256>;2952 readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;2953 } & Struct;2954 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';2955 }29562957 /** @name PalletEthereumCall (319) */2958 export interface PalletEthereumCall extends Enum {2959 readonly isTransact: boolean;2960 readonly asTransact: {2961 readonly transaction: EthereumTransactionTransactionV2;2962 } & Struct;2963 readonly type: 'Transact';2964 }29652966 /** @name EthereumTransactionTransactionV2 (320) */2967 export interface EthereumTransactionTransactionV2 extends Enum {2968 readonly isLegacy: boolean;2969 readonly asLegacy: EthereumTransactionLegacyTransaction;2970 readonly isEip2930: boolean;2971 readonly asEip2930: EthereumTransactionEip2930Transaction;2972 readonly isEip1559: boolean;2973 readonly asEip1559: EthereumTransactionEip1559Transaction;2974 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';2975 }29762977 /** @name EthereumTransactionLegacyTransaction (321) */2978 export interface EthereumTransactionLegacyTransaction extends Struct {2979 readonly nonce: U256;2980 readonly gasPrice: U256;2981 readonly gasLimit: U256;2982 readonly action: EthereumTransactionTransactionAction;2983 readonly value: U256;2984 readonly input: Bytes;2985 readonly signature: EthereumTransactionTransactionSignature;2986 }29872988 /** @name EthereumTransactionTransactionAction (322) */2989 export interface EthereumTransactionTransactionAction extends Enum {2990 readonly isCall: boolean;2991 readonly asCall: H160;2992 readonly isCreate: boolean;2993 readonly type: 'Call' | 'Create';2994 }29952996 /** @name EthereumTransactionTransactionSignature (323) */2997 export interface EthereumTransactionTransactionSignature extends Struct {2998 readonly v: u64;2999 readonly r: H256;3000 readonly s: H256;3001 }30023003 /** @name EthereumTransactionEip2930Transaction (325) */3004 export interface EthereumTransactionEip2930Transaction extends Struct {3005 readonly chainId: u64;3006 readonly nonce: U256;3007 readonly gasPrice: U256;3008 readonly gasLimit: U256;3009 readonly action: EthereumTransactionTransactionAction;3010 readonly value: U256;3011 readonly input: Bytes;3012 readonly accessList: Vec<EthereumTransactionAccessListItem>;3013 readonly oddYParity: bool;3014 readonly r: H256;3015 readonly s: H256;3016 }30173018 /** @name EthereumTransactionAccessListItem (327) */3019 export interface EthereumTransactionAccessListItem extends Struct {3020 readonly address: H160;3021 readonly storageKeys: Vec<H256>;3022 }30233024 /** @name EthereumTransactionEip1559Transaction (328) */3025 export interface EthereumTransactionEip1559Transaction extends Struct {3026 readonly chainId: u64;3027 readonly nonce: U256;3028 readonly maxPriorityFeePerGas: U256;3029 readonly maxFeePerGas: U256;3030 readonly gasLimit: U256;3031 readonly action: EthereumTransactionTransactionAction;3032 readonly value: U256;3033 readonly input: Bytes;3034 readonly accessList: Vec<EthereumTransactionAccessListItem>;3035 readonly oddYParity: bool;3036 readonly r: H256;3037 readonly s: H256;3038 }30393040 /** @name PalletEvmMigrationCall (329) */3041 export interface PalletEvmMigrationCall extends Enum {3042 readonly isBegin: boolean;3043 readonly asBegin: {3044 readonly address: H160;3045 } & Struct;3046 readonly isSetData: boolean;3047 readonly asSetData: {3048 readonly address: H160;3049 readonly data: Vec<ITuple<[H256, H256]>>;3050 } & Struct;3051 readonly isFinish: boolean;3052 readonly asFinish: {3053 readonly address: H160;3054 readonly code: Bytes;3055 } & Struct;3056 readonly type: 'Begin' | 'SetData' | 'Finish';3057 }30583059 /** @name PalletSudoError (332) */3060 export interface PalletSudoError extends Enum {3061 readonly isRequireSudo: boolean;3062 readonly type: 'RequireSudo';3063 }30643065 /** @name OrmlVestingModuleError (334) */3066 export interface OrmlVestingModuleError extends Enum {3067 readonly isZeroVestingPeriod: boolean;3068 readonly isZeroVestingPeriodCount: boolean;3069 readonly isInsufficientBalanceToLock: boolean;3070 readonly isTooManyVestingSchedules: boolean;3071 readonly isAmountLow: boolean;3072 readonly isMaxVestingSchedulesExceeded: boolean;3073 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';3074 }30753076 /** @name OrmlXtokensModuleError (335) */3077 export interface OrmlXtokensModuleError extends Enum {3078 readonly isAssetHasNoReserve: boolean;3079 readonly isNotCrossChainTransfer: boolean;3080 readonly isInvalidDest: boolean;3081 readonly isNotCrossChainTransferableCurrency: boolean;3082 readonly isUnweighableMessage: boolean;3083 readonly isXcmExecutionFailed: boolean;3084 readonly isCannotReanchor: boolean;3085 readonly isInvalidAncestry: boolean;3086 readonly isInvalidAsset: boolean;3087 readonly isDestinationNotInvertible: boolean;3088 readonly isBadVersion: boolean;3089 readonly isDistinctReserveForAssetAndFee: boolean;3090 readonly isZeroFee: boolean;3091 readonly isZeroAmount: boolean;3092 readonly isTooManyAssetsBeingSent: boolean;3093 readonly isAssetIndexNonExistent: boolean;3094 readonly isFeeNotEnough: boolean;3095 readonly isNotSupportedMultiLocation: boolean;3096 readonly isMinXcmFeeNotDefined: boolean;3097 readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';3098 }30993100 /** @name OrmlTokensBalanceLock (338) */3101 export interface OrmlTokensBalanceLock extends Struct {3102 readonly id: U8aFixed;3103 readonly amount: u128;3104 }31053106 /** @name OrmlTokensAccountData (340) */3107 export interface OrmlTokensAccountData extends Struct {3108 readonly free: u128;3109 readonly reserved: u128;3110 readonly frozen: u128;3111 }31123113 /** @name OrmlTokensReserveData (342) */3114 export interface OrmlTokensReserveData extends Struct {3115 readonly id: Null;3116 readonly amount: u128;3117 }31183119 /** @name OrmlTokensModuleError (344) */3120 export interface OrmlTokensModuleError extends Enum {3121 readonly isBalanceTooLow: boolean;3122 readonly isAmountIntoBalanceFailed: boolean;3123 readonly isLiquidityRestrictions: boolean;3124 readonly isMaxLocksExceeded: boolean;3125 readonly isKeepAlive: boolean;3126 readonly isExistentialDeposit: boolean;3127 readonly isDeadAccount: boolean;3128 readonly isTooManyReserves: boolean;3129 readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';3130 }31313132 /** @name CumulusPalletXcmpQueueInboundChannelDetails (346) */3133 export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {3134 readonly sender: u32;3135 readonly state: CumulusPalletXcmpQueueInboundState;3136 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;3137 }31383139 /** @name CumulusPalletXcmpQueueInboundState (347) */3140 export interface CumulusPalletXcmpQueueInboundState extends Enum {3141 readonly isOk: boolean;3142 readonly isSuspended: boolean;3143 readonly type: 'Ok' | 'Suspended';3144 }31453146 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (350) */3147 export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {3148 readonly isConcatenatedVersionedXcm: boolean;3149 readonly isConcatenatedEncodedBlob: boolean;3150 readonly isSignals: boolean;3151 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';3152 }31533154 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (353) */3155 export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {3156 readonly recipient: u32;3157 readonly state: CumulusPalletXcmpQueueOutboundState;3158 readonly signalsExist: bool;3159 readonly firstIndex: u16;3160 readonly lastIndex: u16;3161 }31623163 /** @name CumulusPalletXcmpQueueOutboundState (354) */3164 export interface CumulusPalletXcmpQueueOutboundState extends Enum {3165 readonly isOk: boolean;3166 readonly isSuspended: boolean;3167 readonly type: 'Ok' | 'Suspended';3168 }31693170 /** @name CumulusPalletXcmpQueueQueueConfigData (356) */3171 export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {3172 readonly suspendThreshold: u32;3173 readonly dropThreshold: u32;3174 readonly resumeThreshold: u32;3175 readonly thresholdWeight: u64;3176 readonly weightRestrictDecay: u64;3177 readonly xcmpMaxIndividualWeight: u64;3178 }31793180 /** @name CumulusPalletXcmpQueueError (358) */3181 export interface CumulusPalletXcmpQueueError extends Enum {3182 readonly isFailedToSend: boolean;3183 readonly isBadXcmOrigin: boolean;3184 readonly isBadXcm: boolean;3185 readonly isBadOverweightIndex: boolean;3186 readonly isWeightOverLimit: boolean;3187 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';3188 }31893190 /** @name PalletXcmError (359) */3191 export interface PalletXcmError extends Enum {3192 readonly isUnreachable: boolean;3193 readonly isSendFailure: boolean;3194 readonly isFiltered: boolean;3195 readonly isUnweighableMessage: boolean;3196 readonly isDestinationNotInvertible: boolean;3197 readonly isEmpty: boolean;3198 readonly isCannotReanchor: boolean;3199 readonly isTooManyAssets: boolean;3200 readonly isInvalidOrigin: boolean;3201 readonly isBadVersion: boolean;3202 readonly isBadLocation: boolean;3203 readonly isNoSubscription: boolean;3204 readonly isAlreadySubscribed: boolean;3205 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';3206 }32073208 /** @name CumulusPalletXcmError (360) */3209 export type CumulusPalletXcmError = Null;32103211 /** @name CumulusPalletDmpQueueConfigData (361) */3212 export interface CumulusPalletDmpQueueConfigData extends Struct {3213 readonly maxIndividual: u64;3214 }32153216 /** @name CumulusPalletDmpQueuePageIndexData (362) */3217 export interface CumulusPalletDmpQueuePageIndexData extends Struct {3218 readonly beginUsed: u32;3219 readonly endUsed: u32;3220 readonly overweightCount: u64;3221 }32223223 /** @name CumulusPalletDmpQueueError (365) */3224 export interface CumulusPalletDmpQueueError extends Enum {3225 readonly isUnknown: boolean;3226 readonly isOverLimit: boolean;3227 readonly type: 'Unknown' | 'OverLimit';3228 }32293230 /** @name PalletUniqueError (369) */3231 export interface PalletUniqueError extends Enum {3232 readonly isCollectionDecimalPointLimitExceeded: boolean;3233 readonly isConfirmUnsetSponsorFail: boolean;3234 readonly isEmptyArgument: boolean;3235 readonly isRepartitionCalledOnNonRefungibleCollection: boolean;3236 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';3237 }32383239 /** @name PalletUniqueSchedulerScheduledV3 (372) */3240 export interface PalletUniqueSchedulerScheduledV3 extends Struct {3241 readonly maybeId: Option<U8aFixed>;3242 readonly priority: u8;3243 readonly call: FrameSupportScheduleMaybeHashed;3244 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;3245 readonly origin: OpalRuntimeOriginCaller;3246 }32473248 /** @name OpalRuntimeOriginCaller (373) */3249 export interface OpalRuntimeOriginCaller extends Enum {3250 readonly isSystem: boolean;3251 readonly asSystem: FrameSupportDispatchRawOrigin;3252 readonly isVoid: boolean;3253 readonly isPolkadotXcm: boolean;3254 readonly asPolkadotXcm: PalletXcmOrigin;3255 readonly isCumulusXcm: boolean;3256 readonly asCumulusXcm: CumulusPalletXcmOrigin;3257 readonly isEthereum: boolean;3258 readonly asEthereum: PalletEthereumRawOrigin;3259 readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';3260 }32613262 /** @name FrameSupportDispatchRawOrigin (374) */3263 export interface FrameSupportDispatchRawOrigin extends Enum {3264 readonly isRoot: boolean;3265 readonly isSigned: boolean;3266 readonly asSigned: AccountId32;3267 readonly isNone: boolean;3268 readonly type: 'Root' | 'Signed' | 'None';3269 }32703271 /** @name PalletXcmOrigin (375) */3272 export interface PalletXcmOrigin extends Enum {3273 readonly isXcm: boolean;3274 readonly asXcm: XcmV1MultiLocation;3275 readonly isResponse: boolean;3276 readonly asResponse: XcmV1MultiLocation;3277 readonly type: 'Xcm' | 'Response';3278 }32793280 /** @name CumulusPalletXcmOrigin (376) */3281 export interface CumulusPalletXcmOrigin extends Enum {3282 readonly isRelay: boolean;3283 readonly isSiblingParachain: boolean;3284 readonly asSiblingParachain: u32;3285 readonly type: 'Relay' | 'SiblingParachain';3286 }32873288 /** @name PalletEthereumRawOrigin (377) */3289 export interface PalletEthereumRawOrigin extends Enum {3290 readonly isEthereumTransaction: boolean;3291 readonly asEthereumTransaction: H160;3292 readonly type: 'EthereumTransaction';3293 }32943295 /** @name SpCoreVoid (378) */3296 export type SpCoreVoid = Null;32973298 /** @name PalletUniqueSchedulerError (379) */3299 export interface PalletUniqueSchedulerError extends Enum {3300 readonly isFailedToSchedule: boolean;3301 readonly isNotFound: boolean;3302 readonly isTargetBlockNumberInPast: boolean;3303 readonly isRescheduleNoChange: boolean;3304 readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';3305 }33063307 /** @name UpDataStructsCollection (380) */3308 export interface UpDataStructsCollection extends Struct {3309 readonly owner: AccountId32;3310 readonly mode: UpDataStructsCollectionMode;3311 readonly name: Vec<u16>;3312 readonly description: Vec<u16>;3313 readonly tokenPrefix: Bytes;3314 readonly sponsorship: UpDataStructsSponsorshipState;3315 readonly limits: UpDataStructsCollectionLimits;3316 readonly permissions: UpDataStructsCollectionPermissions;3317 readonly externalCollection: bool;3318 }33193320 /** @name UpDataStructsSponsorshipState (381) */3321 export interface UpDataStructsSponsorshipState extends Enum {3322 readonly isDisabled: boolean;3323 readonly isUnconfirmed: boolean;3324 readonly asUnconfirmed: AccountId32;3325 readonly isConfirmed: boolean;3326 readonly asConfirmed: AccountId32;3327 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3328 }33293330 /** @name UpDataStructsProperties (382) */3331 export interface UpDataStructsProperties extends Struct {3332 readonly map: UpDataStructsPropertiesMapBoundedVec;3333 readonly consumedSpace: u32;3334 readonly spaceLimit: u32;3335 }33363337 /** @name UpDataStructsPropertiesMapBoundedVec (383) */3338 export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}33393340 /** @name UpDataStructsPropertiesMapPropertyPermission (388) */3341 export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}33423343 /** @name UpDataStructsCollectionStats (395) */3344 export interface UpDataStructsCollectionStats extends Struct {3345 readonly created: u32;3346 readonly destroyed: u32;3347 readonly alive: u32;3348 }33493350 /** @name UpDataStructsTokenChild (396) */3351 export interface UpDataStructsTokenChild extends Struct {3352 readonly token: u32;3353 readonly collection: u32;3354 }33553356 /** @name PhantomTypeUpDataStructs (397) */3357 export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}33583359 /** @name UpDataStructsTokenData (399) */3360 export interface UpDataStructsTokenData extends Struct {3361 readonly properties: Vec<UpDataStructsProperty>;3362 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;3363 readonly pieces: u128;3364 }33653366 /** @name UpDataStructsRpcCollection (401) */3367 export interface UpDataStructsRpcCollection extends Struct {3368 readonly owner: AccountId32;3369 readonly mode: UpDataStructsCollectionMode;3370 readonly name: Vec<u16>;3371 readonly description: Vec<u16>;3372 readonly tokenPrefix: Bytes;3373 readonly sponsorship: UpDataStructsSponsorshipState;3374 readonly limits: UpDataStructsCollectionLimits;3375 readonly permissions: UpDataStructsCollectionPermissions;3376 readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;3377 readonly properties: Vec<UpDataStructsProperty>;3378 readonly readOnly: bool;3379 }33803381 /** @name RmrkTraitsCollectionCollectionInfo (402) */3382 export interface RmrkTraitsCollectionCollectionInfo extends Struct {3383 readonly issuer: AccountId32;3384 readonly metadata: Bytes;3385 readonly max: Option<u32>;3386 readonly symbol: Bytes;3387 readonly nftsCount: u32;3388 }33893390 /** @name RmrkTraitsNftNftInfo (403) */3391 export interface RmrkTraitsNftNftInfo extends Struct {3392 readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;3393 readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;3394 readonly metadata: Bytes;3395 readonly equipped: bool;3396 readonly pending: bool;3397 }33983399 /** @name RmrkTraitsNftRoyaltyInfo (405) */3400 export interface RmrkTraitsNftRoyaltyInfo extends Struct {3401 readonly recipient: AccountId32;3402 readonly amount: Permill;3403 }34043405 /** @name RmrkTraitsResourceResourceInfo (406) */3406 export interface RmrkTraitsResourceResourceInfo extends Struct {3407 readonly id: u32;3408 readonly resource: RmrkTraitsResourceResourceTypes;3409 readonly pending: bool;3410 readonly pendingRemoval: bool;3411 }34123413 /** @name RmrkTraitsPropertyPropertyInfo (407) */3414 export interface RmrkTraitsPropertyPropertyInfo extends Struct {3415 readonly key: Bytes;3416 readonly value: Bytes;3417 }34183419 /** @name RmrkTraitsBaseBaseInfo (408) */3420 export interface RmrkTraitsBaseBaseInfo extends Struct {3421 readonly issuer: AccountId32;3422 readonly baseType: Bytes;3423 readonly symbol: Bytes;3424 }34253426 /** @name RmrkTraitsNftNftChild (409) */3427 export interface RmrkTraitsNftNftChild extends Struct {3428 readonly collectionId: u32;3429 readonly nftId: u32;3430 }34313432 /** @name PalletCommonError (411) */3433 export interface PalletCommonError extends Enum {3434 readonly isCollectionNotFound: boolean;3435 readonly isMustBeTokenOwner: boolean;3436 readonly isNoPermission: boolean;3437 readonly isCantDestroyNotEmptyCollection: boolean;3438 readonly isPublicMintingNotAllowed: boolean;3439 readonly isAddressNotInAllowlist: boolean;3440 readonly isCollectionNameLimitExceeded: boolean;3441 readonly isCollectionDescriptionLimitExceeded: boolean;3442 readonly isCollectionTokenPrefixLimitExceeded: boolean;3443 readonly isTotalCollectionsLimitExceeded: boolean;3444 readonly isCollectionAdminCountExceeded: boolean;3445 readonly isCollectionLimitBoundsExceeded: boolean;3446 readonly isOwnerPermissionsCantBeReverted: boolean;3447 readonly isTransferNotAllowed: boolean;3448 readonly isAccountTokenLimitExceeded: boolean;3449 readonly isCollectionTokenLimitExceeded: boolean;3450 readonly isMetadataFlagFrozen: boolean;3451 readonly isTokenNotFound: boolean;3452 readonly isTokenValueTooLow: boolean;3453 readonly isApprovedValueTooLow: boolean;3454 readonly isCantApproveMoreThanOwned: boolean;3455 readonly isAddressIsZero: boolean;3456 readonly isUnsupportedOperation: boolean;3457 readonly isNotSufficientFounds: boolean;3458 readonly isUserIsNotAllowedToNest: boolean;3459 readonly isSourceCollectionIsNotAllowedToNest: boolean;3460 readonly isCollectionFieldSizeExceeded: boolean;3461 readonly isNoSpaceForProperty: boolean;3462 readonly isPropertyLimitReached: boolean;3463 readonly isPropertyKeyIsTooLong: boolean;3464 readonly isInvalidCharacterInPropertyKey: boolean;3465 readonly isEmptyPropertyKey: boolean;3466 readonly isCollectionIsExternal: boolean;3467 readonly isCollectionIsInternal: boolean;3468 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';3469 }34703471 /** @name PalletFungibleError (413) */3472 export interface PalletFungibleError extends Enum {3473 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3474 readonly isFungibleItemsHaveNoId: boolean;3475 readonly isFungibleItemsDontHaveData: boolean;3476 readonly isFungibleDisallowsNesting: boolean;3477 readonly isSettingPropertiesNotAllowed: boolean;3478 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3479 }34803481 /** @name PalletRefungibleItemData (414) */3482 export interface PalletRefungibleItemData extends Struct {3483 readonly constData: Bytes;3484 }34853486 /** @name PalletRefungibleError (419) */3487 export interface PalletRefungibleError extends Enum {3488 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3489 readonly isWrongRefungiblePieces: boolean;3490 readonly isRepartitionWhileNotOwningAllPieces: boolean;3491 readonly isRefungibleDisallowsNesting: boolean;3492 readonly isSettingPropertiesNotAllowed: boolean;3493 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3494 }34953496 /** @name PalletNonfungibleItemData (420) */3497 export interface PalletNonfungibleItemData extends Struct {3498 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3499 }35003501 /** @name UpDataStructsPropertyScope (422) */3502 export interface UpDataStructsPropertyScope extends Enum {3503 readonly isNone: boolean;3504 readonly isRmrk: boolean;3505 readonly isEth: boolean;3506 readonly type: 'None' | 'Rmrk' | 'Eth';3507 }35083509 /** @name PalletNonfungibleError (424) */3510 export interface PalletNonfungibleError extends Enum {3511 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3512 readonly isNonfungibleItemsHaveNoAmount: boolean;3513 readonly isCantBurnNftWithChildren: boolean;3514 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3515 }35163517 /** @name PalletStructureError (425) */3518 export interface PalletStructureError extends Enum {3519 readonly isOuroborosDetected: boolean;3520 readonly isDepthLimit: boolean;3521 readonly isBreadthLimit: boolean;3522 readonly isTokenNotFound: boolean;3523 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3524 }35253526 /** @name PalletRmrkCoreError (426) */3527 export interface PalletRmrkCoreError extends Enum {3528 readonly isCorruptedCollectionType: boolean;3529 readonly isRmrkPropertyKeyIsTooLong: boolean;3530 readonly isRmrkPropertyValueIsTooLong: boolean;3531 readonly isRmrkPropertyIsNotFound: boolean;3532 readonly isUnableToDecodeRmrkData: boolean;3533 readonly isCollectionNotEmpty: boolean;3534 readonly isNoAvailableCollectionId: boolean;3535 readonly isNoAvailableNftId: boolean;3536 readonly isCollectionUnknown: boolean;3537 readonly isNoPermission: boolean;3538 readonly isNonTransferable: boolean;3539 readonly isCollectionFullOrLocked: boolean;3540 readonly isResourceDoesntExist: boolean;3541 readonly isCannotSendToDescendentOrSelf: boolean;3542 readonly isCannotAcceptNonOwnedNft: boolean;3543 readonly isCannotRejectNonOwnedNft: boolean;3544 readonly isCannotRejectNonPendingNft: boolean;3545 readonly isResourceNotPending: boolean;3546 readonly isNoAvailableResourceId: boolean;3547 readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';3548 }35493550 /** @name PalletRmrkEquipError (428) */3551 export interface PalletRmrkEquipError extends Enum {3552 readonly isPermissionError: boolean;3553 readonly isNoAvailableBaseId: boolean;3554 readonly isNoAvailablePartId: boolean;3555 readonly isBaseDoesntExist: boolean;3556 readonly isNeedsDefaultThemeFirst: boolean;3557 readonly isPartDoesntExist: boolean;3558 readonly isNoEquippableOnFixedPart: boolean;3559 readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';3560 }35613562 /** @name PalletForeingAssetsModuleError (429) */3563 export interface PalletForeingAssetsModuleError extends Enum {3564 readonly isBadLocation: boolean;3565 readonly isMultiLocationExisted: boolean;3566 readonly isAssetIdNotExists: boolean;3567 readonly isAssetIdExisted: boolean;3568 readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';3569 }35703571 /** @name PalletEvmError (432) */3572 export interface PalletEvmError extends Enum {3573 readonly isBalanceLow: boolean;3574 readonly isFeeOverflow: boolean;3575 readonly isPaymentOverflow: boolean;3576 readonly isWithdrawFailed: boolean;3577 readonly isGasPriceTooLow: boolean;3578 readonly isInvalidNonce: boolean;3579 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';3580 }35813582 /** @name FpRpcTransactionStatus (435) */3583 export interface FpRpcTransactionStatus extends Struct {3584 readonly transactionHash: H256;3585 readonly transactionIndex: u32;3586 readonly from: H160;3587 readonly to: Option<H160>;3588 readonly contractAddress: Option<H160>;3589 readonly logs: Vec<EthereumLog>;3590 readonly logsBloom: EthbloomBloom;3591 }35923593 /** @name EthbloomBloom (437) */3594 export interface EthbloomBloom extends U8aFixed {}35953596 /** @name EthereumReceiptReceiptV3 (439) */3597 export interface EthereumReceiptReceiptV3 extends Enum {3598 readonly isLegacy: boolean;3599 readonly asLegacy: EthereumReceiptEip658ReceiptData;3600 readonly isEip2930: boolean;3601 readonly asEip2930: EthereumReceiptEip658ReceiptData;3602 readonly isEip1559: boolean;3603 readonly asEip1559: EthereumReceiptEip658ReceiptData;3604 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3605 }36063607 /** @name EthereumReceiptEip658ReceiptData (440) */3608 export interface EthereumReceiptEip658ReceiptData extends Struct {3609 readonly statusCode: u8;3610 readonly usedGas: U256;3611 readonly logsBloom: EthbloomBloom;3612 readonly logs: Vec<EthereumLog>;3613 }36143615 /** @name EthereumBlock (441) */3616 export interface EthereumBlock extends Struct {3617 readonly header: EthereumHeader;3618 readonly transactions: Vec<EthereumTransactionTransactionV2>;3619 readonly ommers: Vec<EthereumHeader>;3620 }36213622 /** @name EthereumHeader (442) */3623 export interface EthereumHeader extends Struct {3624 readonly parentHash: H256;3625 readonly ommersHash: H256;3626 readonly beneficiary: H160;3627 readonly stateRoot: H256;3628 readonly transactionsRoot: H256;3629 readonly receiptsRoot: H256;3630 readonly logsBloom: EthbloomBloom;3631 readonly difficulty: U256;3632 readonly number: U256;3633 readonly gasLimit: U256;3634 readonly gasUsed: U256;3635 readonly timestamp: u64;3636 readonly extraData: Bytes;3637 readonly mixHash: H256;3638 readonly nonce: EthereumTypesHashH64;3639 }36403641 /** @name EthereumTypesHashH64 (443) */3642 export interface EthereumTypesHashH64 extends U8aFixed {}36433644 /** @name PalletEthereumError (448) */3645 export interface PalletEthereumError extends Enum {3646 readonly isInvalidSignature: boolean;3647 readonly isPreLogExists: boolean;3648 readonly type: 'InvalidSignature' | 'PreLogExists';3649 }36503651 /** @name PalletEvmCoderSubstrateError (449) */3652 export interface PalletEvmCoderSubstrateError extends Enum {3653 readonly isOutOfGas: boolean;3654 readonly isOutOfFund: boolean;3655 readonly type: 'OutOfGas' | 'OutOfFund';3656 }36573658 /** @name PalletEvmContractHelpersSponsoringModeT (450) */3659 export interface PalletEvmContractHelpersSponsoringModeT extends Enum {3660 readonly isDisabled: boolean;3661 readonly isAllowlisted: boolean;3662 readonly isGenerous: boolean;3663 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3664 }36653666 /** @name PalletEvmContractHelpersError (452) */3667 export interface PalletEvmContractHelpersError extends Enum {3668 readonly isNoPermission: boolean;3669 readonly type: 'NoPermission';3670 }36713672 /** @name PalletEvmMigrationError (453) */3673 export interface PalletEvmMigrationError extends Enum {3674 readonly isAccountNotEmpty: boolean;3675 readonly isAccountIsNotMigrating: boolean;3676 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';3677 }36783679 /** @name SpRuntimeMultiSignature (455) */3680 export interface SpRuntimeMultiSignature extends Enum {3681 readonly isEd25519: boolean;3682 readonly asEd25519: SpCoreEd25519Signature;3683 readonly isSr25519: boolean;3684 readonly asSr25519: SpCoreSr25519Signature;3685 readonly isEcdsa: boolean;3686 readonly asEcdsa: SpCoreEcdsaSignature;3687 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3688 }36893690 /** @name SpCoreEd25519Signature (456) */3691 export interface SpCoreEd25519Signature extends U8aFixed {}36923693 /** @name SpCoreSr25519Signature (458) */3694 export interface SpCoreSr25519Signature extends U8aFixed {}36953696 /** @name SpCoreEcdsaSignature (459) */3697 export interface SpCoreEcdsaSignature extends U8aFixed {}36983699 /** @name FrameSystemExtensionsCheckSpecVersion (462) */3700 export type FrameSystemExtensionsCheckSpecVersion = Null;37013702 /** @name FrameSystemExtensionsCheckGenesis (463) */3703 export type FrameSystemExtensionsCheckGenesis = Null;37043705 /** @name FrameSystemExtensionsCheckNonce (466) */3706 export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}37073708 /** @name FrameSystemExtensionsCheckWeight (467) */3709 export type FrameSystemExtensionsCheckWeight = Null;37103711 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (468) */3712 export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}37133714 /** @name OpalRuntimeRuntime (469) */3715 export type OpalRuntimeRuntime = Null;37163717 /** @name PalletEthereumFakeTransactionFinalizer (470) */3718 export type PalletEthereumFakeTransactionFinalizer = Null;37193720} // declare moduletests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -16,7 +16,7 @@
import '../interfaces/augment-api-rpc';
import '../interfaces/augment-api-query';
-import {ApiPromise} from '@polkadot/api';
+import {ApiPromise, Keyring} from '@polkadot/api';
import type {AccountId, EventRecord, Event} from '@polkadot/types/interfaces';
import type {GenericEventData} from '@polkadot/types';
import {AnyTuple, IEvent, IKeyringPair} from '@polkadot/types/types';
@@ -1100,6 +1100,16 @@
return balance;
}
+export async function paraSiblingSovereignAccount(paraid: number): Promise<string> {
+ return usingApi(async api => {
+ const siblingPrefix = '0x7369626c';
+ const encodedParaId = api.createType('u32', paraid).toHex(true).substring(2);
+ const suffix = '000000000000000000000000000000000000000000000000';
+
+ return siblingPrefix + encodedParaId + suffix;
+ });
+}
+
export async function transferBalanceTo(api: ApiPromise, source: IKeyringPair, target: string, amount = 1000n * UNIQUE) {
const tx = api.tx.balances.transfer(target, amount);
const events = await submitTransactionAsync(source, tx);
@@ -1779,3 +1789,19 @@
itApi.only = (name: string, cb: (apis: { api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair }) => any) => itApi(name, cb, {only: true});
itApi.skip = (name: string, cb: (apis: { api: ApiPromise, privateKeyWrapper: (account: string) => IKeyringPair }) => any) => itApi(name, cb, {skip: true});
+
+let accountSeed = 10000;
+
+const keyringEth = new Keyring({type: 'ethereum'});
+const keyringEd25519 = new Keyring({type: 'ed25519'});
+const keyringSr25519 = new Keyring({type: 'sr25519'});
+
+export function generateKeyringPair(type: 'ethereum' | 'sr25519' | 'ed25519' = 'sr25519') {
+ const privateKey = `0xDEADBEEF${(accountSeed++).toString(16).padStart(56, '0')}`;
+ if (type == 'sr25519') {
+ return keyringSr25519.addFromUri(privateKey);
+ } else if (type == 'ed25519') {
+ return keyringEd25519.addFromUri(privateKey);
+ }
+ return keyringEth.addFromUri(privateKey);
+}
tests/src/xcm/xcmTransfer.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/xcm/xcmTransfer.test.ts
@@ -0,0 +1,186 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+
+import {WsProvider} from '@polkadot/api';
+import {ApiOptions} from '@polkadot/api/types';
+import {IKeyringPair} from '@polkadot/types/types';
+import usingApi, {submitTransactionAsync} from './substrate/substrate-api';
+import {getGenericResult} from './util/helpers';
+import waitNewBlocks from './substrate/wait-new-blocks';
+import getBalance from './substrate/get-balance';
+
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
+const UNIQUE_CHAIN = 1000;
+const KARURA_CHAIN = 2000;
+const KARURA_PORT = '9946';
+const TRANSFER_AMOUNT = 2000000000000000000000000n;
+
+describe.skip('Integration test: Exchanging QTZ with Karura', () => {
+ let alice: IKeyringPair;
+
+ before(async () => {
+ await usingApi(async (api, privateKeyWrapper) => {
+ alice = privateKeyWrapper('//Alice');
+ });
+
+ const karuraApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT),
+ };
+
+ await usingApi(async (api) => {
+ const destination = {
+ V0: {
+ X2: [
+ 'Parent',
+ {
+ Parachain: UNIQUE_CHAIN,
+ },
+ ],
+ },
+ };
+
+ const metadata =
+ {
+ name: 'QTZ',
+ symbol: 'QTZ',
+ decimals: 18,
+ minimalBalance: 1,
+ };
+
+ const tx = api.tx.assetRegistry.registerForeignAsset(destination, metadata);
+ const sudoTx = api.tx.sudo.sudo(tx as any);
+ const events = await submitTransactionAsync(alice, sudoTx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+ }, karuraApiOptions);
+ });
+
+ it('Should connect and send QTZ to Karura', async () => {
+ let balanceOnKaruraBefore: bigint;
+
+ await usingApi(async (api) => {
+ const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAsset: 0})).toJSON() as any;
+ balanceOnKaruraBefore = free;
+ }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});
+
+ await usingApi(async (api) => {
+ const destination = {
+ V0: {
+ X2: [
+ 'Parent',
+ {
+ Parachain: KARURA_CHAIN,
+ },
+ ],
+ },
+ };
+
+ const beneficiary = {
+ V0: {
+ X1: {
+ AccountId32: {
+ network: 'Any',
+ id: alice.addressRaw,
+ },
+ },
+ },
+ };
+
+ const assets = {
+ V1: [
+ {
+ id: {
+ Concrete: {
+ parents: 0,
+ interior: 'Here',
+ },
+ },
+ fun: {
+ Fungible: TRANSFER_AMOUNT,
+ },
+ },
+ ],
+ };
+
+ const feeAssetItem = 0;
+
+ const weightLimit = {
+ Limited: 5000000000,
+ };
+
+ const tx = api.tx.polkadotXcm.limitedReserveTransferAssets(destination, beneficiary, assets, feeAssetItem, weightLimit);
+ const events = await submitTransactionAsync(alice, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+ });
+
+ await usingApi(async (api) => {
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+ const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAsset: 0})).toJSON() as any;
+ expect(free > balanceOnKaruraBefore).to.be.true;
+ }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});
+ });
+
+ it('Should connect to Karura and send QTZ back', async () => {
+ let balanceBefore: bigint;
+
+ await usingApi(async (api) => {
+ [balanceBefore] = await getBalance(api, [alice.address]);
+ });
+
+ await usingApi(async (api) => {
+ const destination = {
+ V1: {
+ parents: 1,
+ interior: {
+ X2: [
+ {Parachain: UNIQUE_CHAIN},
+ {AccountId32: {
+ network: 'Any',
+ id: alice.addressRaw,
+ }},
+ ],
+ },
+ },
+ };
+
+ const id = {
+ ForeignAsset: 0,
+ };
+
+ const amount = TRANSFER_AMOUNT;
+ const destWeight = 50000000;
+
+ const tx = api.tx.xTokens.transfer(id, amount, destination, destWeight);
+ const events = await submitTransactionAsync(alice, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+ }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});
+
+ await usingApi(async (api) => {
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+ const [balanceAfter] = await getBalance(api, [alice.address]);
+ expect(balanceAfter > balanceBefore).to.be.true;
+ });
+ });
+});
tests/src/xcm/xcmTransferAcala.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/xcm/xcmTransferAcala.test.ts
@@ -0,0 +1,265 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+
+import {WsProvider} from '@polkadot/api';
+import {ApiOptions} from '@polkadot/api/types';
+import {IKeyringPair} from '@polkadot/types/types';
+import usingApi, {submitTransactionAsync} from './substrate/substrate-api';
+import {getGenericResult, generateKeyringPair} from './util/helpers';
+import waitNewBlocks from './substrate/wait-new-blocks';
+import getBalance from './substrate/get-balance';
+
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
+let UNIQUE_CHAIN = 0;
+let ACALA_CHAIN = 0;
+
+// parse parachain id numbers
+process.argv.forEach((val) => {
+
+ const ai = val.indexOf('acalaId=');
+ const ui = val.indexOf('uniqueId=');
+ if (ai != -1)
+ {
+ ACALA_CHAIN = Number(val.substring('acalaId='.length));
+ }
+ if (ui != -1)
+ {
+ UNIQUE_CHAIN = Number(val.substring('uniqueId='.length));
+ }
+});
+
+const ACALA_PORT = '9946';
+const TRANSFER_AMOUNT = 2000000000000000000000000n;
+
+describe('Integration test: Exchanging UNQ with Acala', () => {
+ let alice: IKeyringPair;
+ let randomAccount: IKeyringPair;
+
+ let balanceUniqueTokenBefore: bigint;
+ let balanceUniqueTokenAfter: bigint;
+ let balanceUniqueTokenFinal: bigint;
+ let balanceAcalaTokenBefore: bigint;
+ let balanceAcalaTokenAfter: bigint;
+ let balanceAcalaTokenFinal: bigint;
+ let balanceUniqueForeignTokenAfter: bigint;
+ let balanceUniqueForeignTokenBefore: bigint;
+ let balanceUniqueForeignTokenFinal: bigint;
+
+ before(async () => {
+ await usingApi(async (api, privateKeyWrapper) => {
+ alice = privateKeyWrapper('//Alice');
+ randomAccount = generateKeyringPair();
+ });
+
+ const acalaApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + ACALA_PORT),
+ };
+
+ await usingApi(
+ async (api) => {
+ const destination = {
+ V0: {
+ X2: [
+ 'Parent',
+ {
+ Parachain: UNIQUE_CHAIN,
+ },
+ ],
+ },
+ };
+
+ const metadata = {
+ name: 'UNQ',
+ symbol: 'UNQ',
+ decimals: 18,
+ minimalBalance: 1,
+ };
+
+ const tx = api.tx.assetRegistry.registerForeignAsset(destination, metadata);
+ const sudoTx = api.tx.sudo.sudo(tx as any);
+ const events = await submitTransactionAsync(alice, sudoTx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ const tx1 = api.tx.balances.transfer(randomAccount.address, 10000000000000n);
+ const events1 = await submitTransactionAsync(alice, tx1);
+ const result1 = getGenericResult(events1);
+ expect(result1.success).to.be.true;
+
+ [balanceAcalaTokenBefore] = await getBalance(api, [randomAccount.address]);
+ {
+ const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAsset: 0})).toJSON() as any;
+ balanceUniqueForeignTokenBefore = BigInt(free);
+ }
+ },
+ acalaApiOptions,
+ );
+
+ await usingApi(async (api) => {
+ const tx0 = api.tx.balances.transfer(randomAccount.address, 10n * TRANSFER_AMOUNT);
+ const events0 = await submitTransactionAsync(alice, tx0);
+ const result0 = getGenericResult(events0);
+ expect(result0.success).to.be.true;
+
+ [balanceUniqueTokenBefore] = await getBalance(api, [randomAccount.address]);
+ });
+ });
+
+ it('Should connect and send UNQ to Acala', async () => {
+
+ await usingApi(async (api) => {
+
+ const destination = {
+ V0: {
+ X2: [
+ 'Parent',
+ {
+ Parachain: ACALA_CHAIN,
+ },
+ ],
+ },
+ };
+
+ const beneficiary = {
+ V0: {
+ X1: {
+ AccountId32: {
+ network: 'Any',
+ id: randomAccount.addressRaw,
+ },
+ },
+ },
+ };
+
+ const assets = {
+ V1: [
+ {
+ id: {
+ Concrete: {
+ parents: 0,
+ interior: 'Here',
+ },
+ },
+ fun: {
+ Fungible: TRANSFER_AMOUNT,
+ },
+ },
+ ],
+ };
+
+ const feeAssetItem = 0;
+
+ const weightLimit = {
+ Limited: 5000000000,
+ };
+
+ const tx = api.tx.polkadotXcm.limitedReserveTransferAssets(destination, beneficiary, assets, feeAssetItem, weightLimit);
+ const events = await submitTransactionAsync(randomAccount, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ [balanceUniqueTokenAfter] = await getBalance(api, [randomAccount.address]);
+
+ expect((balanceUniqueTokenBefore - balanceUniqueTokenAfter) > 0n).to.be.true;
+ });
+
+ await usingApi(
+ async (api) => {
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+ const {free} = (await api.query.tokens.accounts(randomAccount.addressRaw, {ForeignAsset: 0})).toJSON() as any;
+ balanceUniqueForeignTokenAfter = BigInt(free);
+
+ [balanceAcalaTokenAfter] = await getBalance(api, [randomAccount.address]);
+ const acaFees = balanceAcalaTokenBefore - balanceAcalaTokenAfter;
+ const unqFees = balanceUniqueForeignTokenBefore - balanceUniqueForeignTokenAfter;
+ console.log('Unique to Acala transaction fees on Acala: %s ACA', acaFees);
+ console.log('Unique to Acala transaction fees on Acala: %s UNQ', unqFees);
+ expect(acaFees == 0n).to.be.true;
+ expect(unqFees == 0n).to.be.true;
+ },
+ {provider: new WsProvider('ws://127.0.0.1:' + ACALA_PORT)},
+ );
+ });
+
+ it('Should connect to Acala and send UNQ back', async () => {
+
+ await usingApi(
+ async (api) => {
+ const destination = {
+ V1: {
+ parents: 1,
+ interior: {
+ X2: [
+ {Parachain: UNIQUE_CHAIN},
+ {
+ AccountId32: {
+ network: 'Any',
+ id: randomAccount.addressRaw,
+ },
+ },
+ ],
+ },
+ },
+ };
+
+ const id = {
+ ForeignAsset: 0,
+ };
+
+ const amount = TRANSFER_AMOUNT;
+ const destWeight = 50000000;
+
+ const tx = api.tx.xTokens.transfer(id, amount, destination, destWeight);
+ const events = await submitTransactionAsync(randomAccount, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ [balanceAcalaTokenFinal] = await getBalance(api, [randomAccount.address]);
+ {
+ const {free} = (await api.query.tokens.accounts(randomAccount.addressRaw, {ForeignAsset: 0})).toJSON() as any;
+ balanceUniqueForeignTokenFinal = BigInt(free);
+ }
+
+ const acaFees = balanceAcalaTokenFinal - balanceAcalaTokenAfter;
+ const unqFees = balanceUniqueForeignTokenFinal - balanceUniqueForeignTokenAfter;
+ console.log('Acala to Unique transaction fees on Acala: %s ACA', acaFees);
+ console.log('Acala to Unique transaction fees on Acala: %s UNQ', unqFees);
+ expect(acaFees > 0).to.be.true;
+ expect(unqFees == 0n).to.be.true;
+ },
+ {provider: new WsProvider('ws://127.0.0.1:' + ACALA_PORT)},
+ );
+
+ await usingApi(async (api) => {
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+
+ [balanceUniqueTokenFinal] = await getBalance(api, [randomAccount.address]);
+ const actuallyDelivered = balanceUniqueTokenFinal - balanceUniqueTokenAfter;
+ expect(actuallyDelivered > 0).to.be.true;
+
+ const unqFees = TRANSFER_AMOUNT - actuallyDelivered;
+ console.log('Acala to Unique transaction fees on Unique: %s UNQ', unqFees);
+ expect(unqFees > 0).to.be.true;
+ });
+ });
+});
\ No newline at end of file
tests/src/xcm/xcmTransferMoonbeam.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/xcm/xcmTransferMoonbeam.test.ts
@@ -0,0 +1,382 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+
+import {Keyring, WsProvider} from '@polkadot/api';
+import {ApiOptions} from '@polkadot/api/types';
+import {IKeyringPair} from '@polkadot/types/types';
+import usingApi, {submitTransactionAsync} from './substrate/substrate-api';
+import {getGenericResult, generateKeyringPair} from './util/helpers';
+import {MultiLocation} from '@polkadot/types/interfaces';
+import {blake2AsHex} from '@polkadot/util-crypto';
+import getBalance from './substrate/get-balance';
+import waitNewBlocks from './substrate/wait-new-blocks';
+
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
+
+let UNIQUE_CHAIN = 0;
+let MOONBEAM_CHAIN = 0;
+
+// parse parachain id numbers
+process.argv.forEach((val) => {
+
+ const ai = val.indexOf('moonbeamId=');
+ const ui = val.indexOf('uniqueId=');
+ if (ai != -1)
+ {
+ MOONBEAM_CHAIN = Number(val.substring('moonbeamId='.length));
+ }
+ if (ui != -1)
+ {
+ UNIQUE_CHAIN = Number(val.substring('uniqueId='.length));
+ }
+});
+
+const UNIQUE_PORT = '9944';
+const MOONBEAM_PORT = '9946';
+const TRANSFER_AMOUNT = 2000000000000000000000000n;
+
+describe('Integration test: Exchanging UNQ with Moonbeam', () => {
+
+ // Unique constants
+ let uniqueAlice: IKeyringPair;
+ let uniqueAssetLocation;
+
+ let randomAccountUnique: IKeyringPair;
+ let randomAccountMoonbeam: IKeyringPair;
+
+ // Moonbeam constants
+ let assetId: Uint8Array;
+
+ const moonbeamKeyring = new Keyring({type: 'ethereum'});
+ const alithPrivateKey = '0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133';
+ const baltatharPrivateKey = '0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b';
+ const dorothyPrivateKey = '0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68';
+
+ const alithAccount = moonbeamKeyring.addFromUri(alithPrivateKey, undefined, 'ethereum');
+ const baltatharAccount = moonbeamKeyring.addFromUri(baltatharPrivateKey, undefined, 'ethereum');
+ const dorothyAccount = moonbeamKeyring.addFromUri(dorothyPrivateKey, undefined, 'ethereum');
+
+ const councilVotingThreshold = 2;
+ const technicalCommitteeThreshold = 2;
+ const votingPeriod = 3;
+ const delayPeriod = 0;
+
+ const uniqueAssetMetadata = {
+ name: 'xcUnique',
+ symbol: 'xcUNQ',
+ decimals: 18,
+ isFrozen: false,
+ minimalBalance: 1,
+ };
+
+ // let actuallySent1: bigint;
+ // let actuallySent2: bigint;
+
+ // let balanceUnique1: bigint;
+ // let balanceUnique2: bigint;
+ // let balanceUnique3: bigint;
+
+ // let balanceMoonbeamGlmr1: bigint;
+ // let balanceMoonbeamGlmr2: bigint;
+ // let balanceMoonbeamGlmr3: bigint;
+
+ let balanceUniqueTokenBefore: bigint;
+ let balanceUniqueTokenAfter: bigint;
+ let balanceUniqueTokenFinal: bigint;
+ let balanceGlmrTokenBefore: bigint;
+ let balanceGlmrTokenAfter: bigint;
+ let balanceGlmrTokenFinal: bigint;
+
+ before(async () => {
+ await usingApi(async (api, privateKeyWrapper) => {
+ uniqueAlice = privateKeyWrapper('//Alice');
+ randomAccountUnique = generateKeyringPair();
+ randomAccountMoonbeam = generateKeyringPair('ethereum');
+ });
+
+ const moonbeamApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + MOONBEAM_PORT),
+ };
+
+ await usingApi(
+ async (api) => {
+
+ // >>> Sponsoring Dorothy >>>
+ const tx0 = api.tx.balances.transfer(dorothyAccount.address, 11_000_000_000_000_000_000n);
+ const events0 = await submitTransactionAsync(alithAccount, tx0);
+ const result0 = getGenericResult(events0);
+ expect(result0.success).to.be.true;
+ // <<< Sponsoring Dorothy <<<
+
+ const sourceLocation: MultiLocation = api.createType(
+ 'MultiLocation',
+ {
+ parents: 1,
+ interior: {X1: {Parachain: UNIQUE_CHAIN}},
+ },
+ );
+
+ assetId = api.registry.hash(sourceLocation.toU8a()).slice(0, 16).reverse();
+ console.log('Internal asset ID is %s', assetId);
+ uniqueAssetLocation = {XCM: sourceLocation};
+ const existentialDeposit = 1;
+ const isSufficient = true;
+ const unitsPerSecond = '1';
+ const numAssetsWeightHint = 0;
+
+ const registerTx = api.tx.assetManager.registerForeignAsset(
+ uniqueAssetLocation,
+ uniqueAssetMetadata,
+ existentialDeposit,
+ isSufficient,
+ );
+ console.log('Encoded proposal for registerAsset is %s', registerTx.method.toHex() || '');
+
+ const setUnitsTx = api.tx.assetManager.setAssetUnitsPerSecond(
+ uniqueAssetLocation,
+ unitsPerSecond,
+ numAssetsWeightHint,
+ );
+ console.log('Encoded proposal for setAssetUnitsPerSecond is %s', setUnitsTx.method.toHex() || '');
+
+ const batchCall = api.tx.utility.batchAll([registerTx, setUnitsTx]);
+ console.log('Encoded proposal for batchCall is %s', batchCall.method.toHex() || '');
+
+ // >>> Note motion preimage >>>
+ const encodedProposal = batchCall?.method.toHex() || '';
+ const proposalHash = blake2AsHex(encodedProposal);
+ console.log('Encoded proposal for batch utility after schedule is %s', encodedProposal);
+ console.log('Encoded proposal hash for batch utility after schedule is %s', proposalHash);
+ console.log('Encoded length %d', encodedProposal.length);
+
+ const tx1 = api.tx.democracy.notePreimage(encodedProposal);
+ const events1 = await submitTransactionAsync(baltatharAccount, tx1);
+ const result1 = getGenericResult(events1);
+ expect(result1.success).to.be.true;
+ // <<< Note motion preimage <<<
+
+ // >>> Propose external motion through council >>>
+ const externalMotion = api.tx.democracy.externalProposeMajority(proposalHash);
+ const tx2 = api.tx.councilCollective.propose(
+ councilVotingThreshold,
+ externalMotion,
+ externalMotion.encodedLength,
+ );
+ const events2 = await submitTransactionAsync(baltatharAccount, tx2);
+ const result2 = getGenericResult(events2);
+ expect(result2.success).to.be.true;
+
+ const encodedMotion = externalMotion?.method.toHex() || '';
+ const motionHash = blake2AsHex(encodedMotion);
+ console.log('Motion hash is %s', motionHash);
+
+ const tx3 = api.tx.councilCollective.vote(motionHash, 0, true);
+ {
+ const events3 = await submitTransactionAsync(dorothyAccount, tx3);
+ const result3 = getGenericResult(events3);
+ expect(result3.success).to.be.true;
+ }
+ {
+ const events3 = await submitTransactionAsync(baltatharAccount, tx3);
+ const result3 = getGenericResult(events3);
+ expect(result3.success).to.be.true;
+ }
+
+ const tx4 = api.tx.councilCollective.close(motionHash, 0, 1_000_000_000, externalMotion.encodedLength);
+ const events4 = await submitTransactionAsync(dorothyAccount, tx4);
+ const result4 = getGenericResult(events4);
+ expect(result4.success).to.be.true;
+ // <<< Propose external motion through council <<<
+
+ // >>> Fast track proposal through technical committee >>>
+ const fastTrack = api.tx.democracy.fastTrack(proposalHash, votingPeriod, delayPeriod);
+ const tx5 = api.tx.techCommitteeCollective.propose(
+ technicalCommitteeThreshold,
+ fastTrack,
+ fastTrack.encodedLength,
+ );
+ const events5 = await submitTransactionAsync(alithAccount, tx5);
+ const result5 = getGenericResult(events5);
+ expect(result5.success).to.be.true;
+
+ const encodedFastTrack = fastTrack?.method.toHex() || '';
+ const fastTrackHash = blake2AsHex(encodedFastTrack);
+ console.log('FastTrack hash is %s', fastTrackHash);
+
+ const proposalIdx = Number(await api.query.techCommitteeCollective.proposalCount()) - 1;
+ const tx6 = api.tx.techCommitteeCollective.vote(fastTrackHash, proposalIdx, true);
+ {
+ const events6 = await submitTransactionAsync(baltatharAccount, tx6);
+ const result6 = getGenericResult(events6);
+ expect(result6.success).to.be.true;
+ }
+ {
+ const events6 = await submitTransactionAsync(alithAccount, tx6);
+ const result6 = getGenericResult(events6);
+ expect(result6.success).to.be.true;
+ }
+
+ const tx7 = api.tx.techCommitteeCollective
+ .close(fastTrackHash, proposalIdx, 1_000_000_000, fastTrack.encodedLength);
+ const events7 = await submitTransactionAsync(baltatharAccount, tx7);
+ const result7 = getGenericResult(events7);
+ expect(result7.success).to.be.true;
+ // <<< Fast track proposal through technical committee <<<
+
+ // >>> Referendum voting >>>
+ const tx8 = api.tx.democracy.vote(
+ 0,
+ {Standard: {balance: 10_000_000_000_000_000_000n, vote: {aye: true, conviction: 1}}},
+ );
+ const events8 = await submitTransactionAsync(dorothyAccount, tx8);
+ const result8 = getGenericResult(events8);
+ expect(result8.success).to.be.true;
+ // <<< Referendum voting <<<
+
+ // >>> Sponsoring random Account >>>
+ const tx9 = api.tx.balances.transfer(randomAccountMoonbeam.address, 11_000_000_000_000_000_000n);
+ const events9 = await submitTransactionAsync(baltatharAccount, tx9);
+ const result9 = getGenericResult(events9);
+ expect(result9.success).to.be.true;
+ // <<< Sponsoring random Account <<<
+
+ [balanceGlmrTokenBefore] = await getBalance(api, [randomAccountMoonbeam.address]);
+ },
+ moonbeamApiOptions,
+ );
+
+ await usingApi(async (api) => {
+ const tx0 = api.tx.balances.transfer(randomAccountUnique.address, 10n * TRANSFER_AMOUNT);
+ const events0 = await submitTransactionAsync(uniqueAlice, tx0);
+ const result0 = getGenericResult(events0);
+ expect(result0.success).to.be.true;
+
+ [balanceUniqueTokenBefore] = await getBalance(api, [randomAccountUnique.address]);
+ });
+ });
+
+ it('Should connect and send UNQ to Moonbeam', async () => {
+ await usingApi(async (api) => {
+ const currencyId = {
+ NativeAssetId: 'Here',
+ };
+ const dest = {
+ V1: {
+ parents: 1,
+ interior: {
+ X2: [
+ {Parachain: MOONBEAM_CHAIN},
+ {AccountKey20: {network: 'Any', key: randomAccountMoonbeam.address}},
+ ],
+ },
+ },
+ };
+ const amount = TRANSFER_AMOUNT;
+ const destWeight = 50000000;
+
+ const tx = api.tx.xTokens.transfer(currencyId, amount, dest, destWeight);
+ const events = await submitTransactionAsync(uniqueAlice, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ [balanceUniqueTokenAfter] = await getBalance(api, [randomAccountUnique.address]);
+ expect(balanceUniqueTokenAfter < balanceUniqueTokenBefore).to.be.true;
+
+ const transactionFees = balanceUniqueTokenBefore - balanceUniqueTokenAfter - TRANSFER_AMOUNT;
+ console.log('Unique to Moonbeam transaction fees on Unique: %s UNQ', transactionFees);
+ expect(transactionFees > 0).to.be.true;
+ });
+
+ await usingApi(
+ async (api) => {
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+
+ [balanceGlmrTokenAfter] = await getBalance(api, [randomAccountMoonbeam.address]);
+
+ const glmrFees = balanceGlmrTokenBefore - balanceGlmrTokenAfter;
+ console.log('Unique to Moonbeam transaction fees on Moonbeam: %s GLMR', glmrFees);
+ expect(glmrFees == 0n).to.be.true;
+ },
+ {provider: new WsProvider('ws://127.0.0.1:' + MOONBEAM_PORT)},
+ );
+ });
+
+ it('Should connect to Moonbeam and send UNQ back', async () => {
+ await usingApi(
+ async (api) => {
+ const amount = TRANSFER_AMOUNT / 2n;
+ const asset = {
+ V1: {
+ id: {
+ Concrete: {
+ parents: 1,
+ interior: {
+ X1: {Parachain: UNIQUE_CHAIN},
+ },
+ },
+ },
+ fun: {
+ Fungible: amount,
+ },
+ },
+ };
+ const destination = {
+ V1: {
+ parents: 1,
+ interior: {
+ X2: [
+ {Parachain: UNIQUE_CHAIN},
+ {AccountId32: {network: 'Any', id: randomAccountUnique.addressRaw}},
+ ],
+ },
+ },
+ };
+ const destWeight = 50000000;
+
+ const tx = api.tx.xTokens.transferMultiasset(asset, destination, destWeight);
+ const events = await submitTransactionAsync(randomAccountMoonbeam, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ [balanceGlmrTokenFinal] = await getBalance(api, [randomAccountMoonbeam.address]);
+
+ const glmrFees = balanceGlmrTokenAfter - balanceGlmrTokenFinal;
+ console.log('Moonbeam to Unique transaction fees on Moonbeam: %s GLMR', glmrFees);
+ expect(glmrFees > 0).to.be.true;
+ },
+ {provider: new WsProvider('ws://127.0.0.1:' + MOONBEAM_PORT)},
+ );
+
+ await usingApi(async (api) => {
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+
+ [balanceUniqueTokenFinal] = await getBalance(api, [randomAccountUnique.address]);
+ const actuallyDelivered = balanceUniqueTokenFinal - balanceUniqueTokenAfter;
+ expect(actuallyDelivered > 0).to.be.true;
+
+ const unqFees = TRANSFER_AMOUNT - actuallyDelivered;
+ console.log('Moonbeam to Unique transaction fees on Unique: %s UNQ', unqFees);
+ expect(unqFees > 0).to.be.true;
+ });
+ });
+});
tests/src/xcm/xcmTransferStatemine.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/xcm/xcmTransferStatemine.test.ts
@@ -0,0 +1,360 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+
+import {WsProvider} from '@polkadot/api';
+import {ApiOptions} from '@polkadot/api/types';
+import {IKeyringPair} from '@polkadot/types/types';
+import usingApi, {submitTransactionAsync} from './substrate/substrate-api';
+import {getGenericResult} from './util/helpers';
+import waitNewBlocks from './substrate/wait-new-blocks';
+import {normalizeAccountId} from './util/helpers';
+import getBalance from './substrate/get-balance';
+
+
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
+// const STATEMINE_CHAIN = 1000;
+// const UNIQUE_CHAIN = 2037;
+
+let UNIQUE_CHAIN = 0;
+let STATEMINE_CHAIN = 0;
+
+// parse parachain id numbers
+process.argv.forEach((val) => {
+
+ const ai = val.indexOf('statemineId=');
+ const ui = val.indexOf('uniqueId=');
+ if (ai != -1)
+ {
+ STATEMINE_CHAIN = Number(val.substring('statemineId='.length));
+ }
+ if (ui != -1)
+ {
+ UNIQUE_CHAIN = Number(val.substring('uniqueId='.length));
+ }
+});
+
+const RELAY_PORT = '9844';
+const UNIQUE_PORT = '9944';
+const STATEMINE_PORT = '9946';
+const STATEMINE_PALLET_INSTANCE = 50;
+const ASSET_ID = 100;
+const ASSET_METADATA_DECIMALS = 18;
+const ASSET_METADATA_NAME = 'USDT';
+const ASSET_METADATA_DESCRIPTION = 'USDT';
+const ASSET_METADATA_MINIMAL_BALANCE = 1;
+
+const TRANSFER_AMOUNT = 1_000_000_000_000_000_000n;
+const TRANSFER_AMOUNT2 = 10_000_000_000_000_000n;
+
+describe('Integration test: Exchanging USDT with Statemine', () => {
+ let alice: IKeyringPair;
+ let bob: IKeyringPair;
+
+ let balanceStmnBefore: bigint;
+ let balanceStmnAfter: bigint;
+ let balanceStmnFinal: bigint;
+
+ before(async () => {
+ await usingApi(async (api, privateKeyWrapper) => {
+ alice = privateKeyWrapper('//Alice');
+ bob = privateKeyWrapper('//Bob'); // funds donor
+ });
+
+ const statemineApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + STATEMINE_PORT),
+ };
+
+ const uniqueApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + UNIQUE_PORT),
+ };
+
+ const relayApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + RELAY_PORT),
+ };
+
+ await usingApi(async (api) => {
+
+ // 10,000.00 (ten thousands) USDT
+ const assetAmount = 1_000_000_000_000_000_000_000n;
+ // 350.00 (three hundred fifty) DOT
+ const fundingAmount = 3_500_000_000_000;
+
+ const tx = api.tx.assets.create(ASSET_ID, alice.addressRaw, ASSET_METADATA_MINIMAL_BALANCE);
+ const events = await submitTransactionAsync(alice, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ // set metadata
+ const tx2 = api.tx.assets.setMetadata(ASSET_ID, ASSET_METADATA_NAME, ASSET_METADATA_DESCRIPTION, ASSET_METADATA_DECIMALS);
+ const events2 = await submitTransactionAsync(alice, tx2);
+ const result2 = getGenericResult(events2);
+ expect(result2.success).to.be.true;
+
+ // mint some amount of asset
+ const tx3 = api.tx.assets.mint(ASSET_ID, alice.addressRaw, assetAmount);
+ const events3 = await submitTransactionAsync(alice, tx3);
+ const result3 = getGenericResult(events3);
+ expect(result3.success).to.be.true;
+
+ // funding parachain sovereing account (Parachain: 2037)
+ //const parachainSovereingAccount = '0x70617261f5070000000000000000000000000000000000000000000000000000';
+ const parachainSovereingAccount = '0x7369626cf5070000000000000000000000000000000000000000000000000000';
+ const tx4 = api.tx.balances.transfer(parachainSovereingAccount, fundingAmount);
+ const events4 = await submitTransactionAsync(bob, tx4);
+ const result4 = getGenericResult(events4);
+ expect(result4.success).to.be.true;
+
+ }, statemineApiOptions);
+
+
+ await usingApi(async (api) => {
+
+ const location = {
+ V1: {
+ parents: 1,
+ interior: {X3: [
+ {
+ Parachain: STATEMINE_CHAIN,
+ },
+ {
+ PalletInstance: STATEMINE_PALLET_INSTANCE,
+ },
+ {
+ GeneralIndex: ASSET_ID,
+ },
+ ]},
+ },
+ };
+
+ const metadata =
+ {
+ name: ASSET_ID,
+ symbol: ASSET_METADATA_NAME,
+ decimals: ASSET_METADATA_DECIMALS,
+ minimalBalance: ASSET_METADATA_MINIMAL_BALANCE,
+ };
+ //registerForeignAsset(owner, location, metadata)
+ const tx = api.tx.foreingAssets.registerForeignAsset(alice.addressRaw, location, metadata);
+ const sudoTx = api.tx.sudo.sudo(tx as any);
+ const events = await submitTransactionAsync(alice, sudoTx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ }, uniqueApiOptions);
+
+
+ // Providing the relay currency to the unique sender account
+ await usingApi(async (api) => {
+ const destination = {
+ V1: {
+ parents: 0,
+ interior: {X1: {
+ Parachain: UNIQUE_CHAIN,
+ },
+ },
+ }};
+
+ const beneficiary = {
+ V1: {
+ parents: 0,
+ interior: {X1: {
+ AccountId32: {
+ network: 'Any',
+ id: alice.addressRaw,
+ },
+ }},
+ },
+ };
+
+ const assets = {
+ V1: [
+ {
+ id: {
+ Concrete: {
+ parents: 0,
+ interior: 'Here',
+ },
+ },
+ fun: {
+ Fungible: 50_000_000_000_000_000n,
+ },
+ },
+ ],
+ };
+
+ const feeAssetItem = 0;
+
+ const weightLimit = {
+ Limited: 5_000_000_000,
+ };
+
+ const tx = api.tx.xcmPallet.limitedReserveTransferAssets(destination, beneficiary, assets, feeAssetItem, weightLimit);
+ const events = await submitTransactionAsync(alice, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+ }, relayApiOptions);
+
+ });
+
+ it('Should connect and send USDT from Statemine to Unique', async () => {
+
+ const statemineApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + STATEMINE_PORT),
+ };
+
+ const uniqueApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + UNIQUE_PORT),
+ };
+
+ await usingApi(async (api) => {
+
+ const dest = {
+ V1: {
+ parents: 1,
+ interior: {X1: {
+ Parachain: UNIQUE_CHAIN,
+ },
+ },
+ }};
+
+ const beneficiary = {
+ V1: {
+ parents: 0,
+ interior: {X1: {
+ AccountId32: {
+ network: 'Any',
+ id: alice.addressRaw,
+ },
+ }},
+ },
+ };
+
+ const assets = {
+ V1: [
+ {
+ id: {
+ Concrete: {
+ parents: 0,
+ interior: {
+ X2: [
+ {
+ PalletInstance: STATEMINE_PALLET_INSTANCE,
+ },
+ {
+ GeneralIndex: ASSET_ID,
+ },
+ ]},
+ },
+ },
+ fun: {
+ Fungible: TRANSFER_AMOUNT,
+ },
+ },
+ ],
+ };
+
+ const feeAssetItem = 0;
+
+ const weightLimit = {
+ Limited: 5000000000,
+ };
+
+ [balanceStmnBefore] = await getBalance(api, [alice.address]);
+
+ const tx = api.tx.polkadotXcm.limitedReserveTransferAssets(dest, beneficiary, assets, feeAssetItem, weightLimit);
+ const events = await submitTransactionAsync(alice, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ [balanceStmnAfter] = await getBalance(api, [alice.address]);
+ expect(balanceStmnBefore > balanceStmnAfter).to.be.true;
+
+ }, statemineApiOptions);
+
+
+ // ensure that asset has been delivered
+ await usingApi(async (api) => {
+ await waitNewBlocks(api, 3);
+ // expext collection id will be with id 1
+ const free = (await api.query.fungible.balance(1, normalizeAccountId(alice.address))).toBigInt();
+ expect(free == TRANSFER_AMOUNT).to.be.true;
+
+ }, uniqueApiOptions);
+ });
+
+ it('Should connect and send USDT from Unique to Statemine back', async () => {
+ let balanceBefore: bigint;
+ const uniqueApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + UNIQUE_PORT),
+ };
+
+ await usingApi(async (api) => {
+ balanceBefore = (await api.query.fungible.balance(1, normalizeAccountId(alice.address))).toBigInt();
+
+ const destination = {
+ V1: {
+ parents: 1,
+ interior: {X2: [
+ {
+ Parachain: STATEMINE_CHAIN,
+ },
+ {
+ AccountId32: {
+ network: 'Any',
+ id: alice.addressRaw,
+ },
+ },
+ ]},
+ },
+ };
+
+ const currencies = [[
+ {
+ ForeignAssetId: 0,
+ },
+ 10_000_000_000_000_000n,
+ ],
+ [
+ {
+ NativeAssetId: 'Parent',
+ },
+ 400_000_000_000_000n,
+ ]];
+
+ const feeItem = 1;
+ const destWeight = 500000000000;
+
+ const tx = api.tx.xTokens.transferMulticurrencies(currencies, feeItem, destination, destWeight);
+ const events = await submitTransactionAsync(alice, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+
+ [balanceStmnFinal] = await getBalance(api, [alice.address]);
+ expect(balanceStmnFinal > balanceStmnBefore).to.be.true;
+
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+ const balanceAfter = (await api.query.fungible.balance(1, normalizeAccountId(alice.address))).toBigInt();
+ expect(balanceAfter < balanceBefore).to.be.true;
+ }, uniqueApiOptions);
+ });
+});
\ No newline at end of file
tests/src/xcm/xcmUnique.test.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/xcm/xcmUnique.test.ts
@@ -0,0 +1,267 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
+
+import {WsProvider} from '@polkadot/api';
+import {ApiOptions} from '@polkadot/api/types';
+import {IKeyringPair} from '@polkadot/types/types';
+import usingApi, {submitTransactionAsync} from '../substrate/substrate-api';
+import {getGenericResult, generateKeyringPair} from '../util/helpers';
+import waitNewBlocks from '../substrate/wait-new-blocks';
+import getBalance from '../substrate/get-balance';
+
+chai.use(chaiAsPromised);
+const expect = chai.expect;
+
+const UNIQUE_CHAIN = 2037;
+const ACALA_CHAIN = 2000;
+
+const ACALA_PORT = '9946';
+
+const TRANSFER_AMOUNT = 2000000000000000000000000n;
+
+describe('Integration test: Exchanging UNQ with Acala', () => {
+ let alice: IKeyringPair;
+ let randomAccount: IKeyringPair;
+
+ let balanceUniqueTokenBefore: bigint;
+ let balanceUniqueTokenAfter: bigint;
+ let balanceUniqueTokenFinal: bigint;
+ let balanceAcalaTokenBefore: bigint;
+ let balanceAcalaTokenAfter: bigint;
+ let balanceAcalaTokenFinal: bigint;
+ let balanceUniqueForeignTokenAfter: bigint;
+ let balanceUniqueForeignTokenBefore: bigint;
+ let balanceUniqueForeignTokenFinal: bigint;
+
+ before(async () => {
+ await usingApi(async (api, privateKeyWrapper) => {
+ alice = privateKeyWrapper('//Alice');
+ randomAccount = generateKeyringPair();
+ });
+
+ const acalaApiOptions: ApiOptions = {
+ provider: new WsProvider('ws://127.0.0.1:' + ACALA_PORT),
+ };
+
+ // Acala side
+ await usingApi(
+ async (api) => {
+ const destination = {
+ V0: {
+ X2: [
+ 'Parent',
+ {
+ Parachain: UNIQUE_CHAIN,
+ },
+ ],
+ },
+ };
+
+ const metadata = {
+ name: 'UNQ',
+ symbol: 'UNQ',
+ decimals: 18,
+ minimalBalance: 1,
+ };
+
+ const tx = api.tx.assetRegistry.registerForeignAsset(destination, metadata);
+ const sudoTx = api.tx.sudo.sudo(tx as any);
+ const events = await submitTransactionAsync(alice, sudoTx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ const tx1 = api.tx.balances.transfer(randomAccount.address, 10000000000000n);
+ const events1 = await submitTransactionAsync(alice, tx1);
+ const result1 = getGenericResult(events1);
+ expect(result1.success).to.be.true;
+
+ [balanceAcalaTokenBefore] = await getBalance(api, [randomAccount.address]);
+ {
+ const {free} = (await api.query.tokens.accounts(randomAccount.addressRaw, {ForeignAsset: 0})).toJSON() as any;
+ balanceUniqueForeignTokenBefore = BigInt(free);
+ }
+ },
+ acalaApiOptions,
+ );
+
+ // Unique side
+ await usingApi(async (api) => {
+ const tx0 = api.tx.balances.transfer(randomAccount.address, 10n * TRANSFER_AMOUNT);
+ const events0 = await submitTransactionAsync(alice, tx0);
+ const result0 = getGenericResult(events0);
+ expect(result0.success).to.be.true;
+
+ [balanceUniqueTokenBefore] = await getBalance(api, [randomAccount.address]);
+ });
+ });
+
+ it('Should connect and send UNQ to Acala', async () => {
+
+ // Unique side
+ await usingApi(async (api) => {
+
+ const destination = {
+ V0: {
+ X2: [
+ 'Parent',
+ {
+ Parachain: ACALA_CHAIN,
+ },
+ ],
+ },
+ };
+
+ const beneficiary = {
+ V0: {
+ X1: {
+ AccountId32: {
+ network: 'Any',
+ id: randomAccount.addressRaw,
+ },
+ },
+ },
+ };
+
+ const assets = {
+ V1: [
+ {
+ id: {
+ Concrete: {
+ parents: 0,
+ interior: 'Here',
+ },
+ },
+ fun: {
+ Fungible: TRANSFER_AMOUNT,
+ },
+ },
+ ],
+ };
+
+ const feeAssetItem = 0;
+
+ const weightLimit = {
+ Limited: 5000000000,
+ };
+
+ const tx = api.tx.polkadotXcm.limitedReserveTransferAssets(destination, beneficiary, assets, feeAssetItem, weightLimit);
+ const events = await submitTransactionAsync(randomAccount, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ [balanceUniqueTokenAfter] = await getBalance(api, [randomAccount.address]);
+
+ const unqFees = balanceUniqueTokenBefore - balanceUniqueTokenAfter;
+ console.log('[Unique -> Acala] transaction fees on Unique: %s UNQ', unqFees);
+ expect(unqFees > 0n).to.be.true;
+ });
+
+ // Acala side
+ await usingApi(
+ async (api) => {
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+ const {free} = (await api.query.tokens.accounts(randomAccount.addressRaw, {ForeignAsset: 0})).toJSON() as any;
+ balanceUniqueForeignTokenAfter = BigInt(free);
+
+ [balanceAcalaTokenAfter] = await getBalance(api, [randomAccount.address]);
+
+ const acaFees = balanceAcalaTokenBefore - balanceAcalaTokenAfter;
+ const unqDiffAfterIncomeTransfer = balanceUniqueForeignTokenAfter - balanceUniqueForeignTokenBefore;
+
+ const unqFees = unqDiffAfterIncomeTransfer - TRANSFER_AMOUNT;
+
+ console.log('[Unique -> Acala] transaction fees on Acala: %s ACA', acaFees);
+ console.log('[Unique -> Acala] transaction fees on Acala: %s UNQ', unqFees);
+ expect(acaFees == 0n).to.be.true;
+ expect(unqFees == 0n).to.be.true;
+ },
+ {provider: new WsProvider('ws://127.0.0.1:' + ACALA_PORT)},
+ );
+ });
+
+ it('Should connect to Acala and send UNQ back', async () => {
+
+ // Acala side
+ await usingApi(
+ async (api) => {
+ const destination = {
+ V1: {
+ parents: 1,
+ interior: {
+ X2: [
+ {Parachain: UNIQUE_CHAIN},
+ {
+ AccountId32: {
+ network: 'Any',
+ id: randomAccount.addressRaw,
+ },
+ },
+ ],
+ },
+ },
+ };
+
+ const id = {
+ ForeignAsset: 0,
+ };
+
+ const amount = TRANSFER_AMOUNT;
+ const destWeight = 50000000;
+
+ const tx = api.tx.xTokens.transfer(id, amount, destination, destWeight);
+ const events = await submitTransactionAsync(randomAccount, tx);
+ const result = getGenericResult(events);
+ expect(result.success).to.be.true;
+
+ [balanceAcalaTokenFinal] = await getBalance(api, [randomAccount.address]);
+ {
+ const {free} = (await api.query.tokens.accounts(randomAccount.addressRaw, {ForeignAsset: 0})).toJSON() as any;
+ balanceUniqueForeignTokenFinal = BigInt(free);
+ }
+
+ const acaFees = balanceAcalaTokenAfter - balanceAcalaTokenFinal;
+ const unqDiffAfterOutcomeTransfer = balanceUniqueForeignTokenAfter - TRANSFER_AMOUNT;
+
+ const unqFees = unqDiffAfterOutcomeTransfer - balanceUniqueForeignTokenFinal;
+
+ console.log('[Acala -> Unique] transaction fees on Acala: %s ACA', acaFees);
+ console.log('[Acala -> Unique] transaction fees on Acala: %s UNQ', unqFees);
+
+ expect(acaFees > 0).to.be.true;
+ expect(unqFees == 0n).to.be.true;
+ },
+ {provider: new WsProvider('ws://127.0.0.1:' + ACALA_PORT)},
+ );
+
+ // Unique side
+ await usingApi(async (api) => {
+ // todo do something about instant sealing, where there might not be any new blocks
+ await waitNewBlocks(api, 3);
+
+ [balanceUniqueTokenFinal] = await getBalance(api, [randomAccount.address]);
+ const actuallyDelivered = balanceUniqueTokenFinal - balanceUniqueTokenAfter;
+ expect(actuallyDelivered > 0).to.be.true;
+
+ const unqFees = TRANSFER_AMOUNT - actuallyDelivered;
+ console.log('[Acala -> Unique] transaction fees on Unique: %s UNQ', unqFees);
+ expect(unqFees == 0n).to.be.true;
+ });
+ });
+});
tests/src/xcmTransfer.test.tsdiffbeforeafterboth--- a/tests/src/xcmTransfer.test.ts
+++ /dev/null
@@ -1,186 +0,0 @@
-// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
-// This file is part of Unique Network.
-
-// Unique Network is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Unique Network is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-
-import {WsProvider} from '@polkadot/api';
-import {ApiOptions} from '@polkadot/api/types';
-import {IKeyringPair} from '@polkadot/types/types';
-import usingApi, {submitTransactionAsync} from './substrate/substrate-api';
-import {getGenericResult} from './util/helpers';
-import waitNewBlocks from './substrate/wait-new-blocks';
-import getBalance from './substrate/get-balance';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
-
-const UNIQUE_CHAIN = 1000;
-const KARURA_CHAIN = 2000;
-const KARURA_PORT = '9946';
-const TRANSFER_AMOUNT = 2000000000000000000000000n;
-
-describe.skip('Integration test: Exchanging QTZ with Karura', () => {
- let alice: IKeyringPair;
-
- before(async () => {
- await usingApi(async (api, privateKeyWrapper) => {
- alice = privateKeyWrapper('//Alice');
- });
-
- const karuraApiOptions: ApiOptions = {
- provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT),
- };
-
- await usingApi(async (api) => {
- const destination = {
- V0: {
- X2: [
- 'Parent',
- {
- Parachain: UNIQUE_CHAIN,
- },
- ],
- },
- };
-
- const metadata =
- {
- name: 'QTZ',
- symbol: 'QTZ',
- decimals: 18,
- minimalBalance: 1,
- };
-
- const tx = api.tx.assetRegistry.registerForeignAsset(destination, metadata);
- const sudoTx = api.tx.sudo.sudo(tx as any);
- const events = await submitTransactionAsync(alice, sudoTx);
- const result = getGenericResult(events);
- expect(result.success).to.be.true;
- }, karuraApiOptions);
- });
-
- it('Should connect and send QTZ to Karura', async () => {
- let balanceOnKaruraBefore: bigint;
-
- await usingApi(async (api) => {
- const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAsset: 0})).toJSON() as any;
- balanceOnKaruraBefore = free;
- }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});
-
- await usingApi(async (api) => {
- const destination = {
- V0: {
- X2: [
- 'Parent',
- {
- Parachain: KARURA_CHAIN,
- },
- ],
- },
- };
-
- const beneficiary = {
- V0: {
- X1: {
- AccountId32: {
- network: 'Any',
- id: alice.addressRaw,
- },
- },
- },
- };
-
- const assets = {
- V1: [
- {
- id: {
- Concrete: {
- parents: 0,
- interior: 'Here',
- },
- },
- fun: {
- Fungible: TRANSFER_AMOUNT,
- },
- },
- ],
- };
-
- const feeAssetItem = 0;
-
- const weightLimit = {
- Limited: 5000000000,
- };
-
- const tx = api.tx.polkadotXcm.limitedReserveTransferAssets(destination, beneficiary, assets, feeAssetItem, weightLimit);
- const events = await submitTransactionAsync(alice, tx);
- const result = getGenericResult(events);
- expect(result.success).to.be.true;
- });
-
- await usingApi(async (api) => {
- // todo do something about instant sealing, where there might not be any new blocks
- await waitNewBlocks(api, 3);
- const {free} = (await api.query.tokens.accounts(alice.addressRaw, {ForeignAsset: 0})).toJSON() as any;
- expect(free > balanceOnKaruraBefore).to.be.true;
- }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});
- });
-
- it('Should connect to Karura and send QTZ back', async () => {
- let balanceBefore: bigint;
-
- await usingApi(async (api) => {
- [balanceBefore] = await getBalance(api, [alice.address]);
- });
-
- await usingApi(async (api) => {
- const destination = {
- V1: {
- parents: 1,
- interior: {
- X2: [
- {Parachain: UNIQUE_CHAIN},
- {AccountId32: {
- network: 'Any',
- id: alice.addressRaw,
- }},
- ],
- },
- },
- };
-
- const id = {
- ForeignAsset: 0,
- };
-
- const amount = TRANSFER_AMOUNT;
- const destWeight = 50000000;
-
- const tx = api.tx.xTokens.transfer(id, amount, destination, destWeight);
- const events = await submitTransactionAsync(alice, tx);
- const result = getGenericResult(events);
- expect(result.success).to.be.true;
- }, {provider: new WsProvider('ws://127.0.0.1:' + KARURA_PORT)});
-
- await usingApi(async (api) => {
- // todo do something about instant sealing, where there might not be any new blocks
- await waitNewBlocks(api, 3);
- const [balanceAfter] = await getBalance(api, [alice.address]);
- expect(balanceAfter > balanceBefore).to.be.true;
- });
- });
-});