--- /dev/null +++ b/.docker/docker-compose.gov.j2 @@ -0,0 +1,24 @@ +version: "3.5" + +services: + node-dev: + build: + args: + - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" + - "NETWORK={{ NETWORK }}" + - "WASM_NAME={{ WASM_NAME }}" + context: ../ + dockerfile: .docker/Dockerfile-chain-dev + image: node-dev + container_name: node-dev + expose: + - 9944 + - 9933 + ports: + - 127.0.0.1:9944:9944 + - 127.0.0.1:9933:9933 + logging: + options: + max-size: "1m" + max-file: "3" + command: cargo run --release --features={{ NETWORK }}-runtime,{{ WASM_NAME }}-runtime/test-env -- --dev -linfo --rpc-cors=all --unsafe-rpc-external --- a/.github/workflows/ci-develop.yml +++ b/.github/workflows/ci-develop.yml @@ -61,7 +61,12 @@ uses: ./.github/workflows/node-only-update.yml secrets: inherit + gov: + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-gov')) }} # Conditional check for draft & labels per job. + uses: ./.github/workflows/gov.yml + secrets: inherit # pass all secrets from initial workflow to nested + codestyle: if: github.event.pull_request.draft == false # Conditional check for draft per job. uses: ./.github/workflows/codestyle.yml - secrets: inherit \ No newline at end of file + secrets: inherit --- /dev/null +++ b/.github/workflows/gov.yml @@ -0,0 +1,118 @@ +# Governance tests in --dev mode with test-env feature enabled to reduce gov timings +name: governance tests + +# Triger: only call from main workflow(re-usable workflows) +on: + workflow_call: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + prepare-execution-marix: + name: Prepare execution matrix + + runs-on: self-hosted-ci + outputs: + matrix: ${{ steps.create_matrix.outputs.matrix }} + + steps: + - name: Clean Workspace + uses: AutoModality/action-clean@v1.1.0 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3.1.0 + with: + ref: ${{ github.head_ref }} #Checking out head commit + + - name: Read .env file + uses: xom9ikk/dotenv@v2 + + - name: Create Execution matrix + uses: CertainLach/create-matrix-action@v4 + id: create_matrix + with: + matrix: | + network {quartz}, wasm_name {quartz} + network {opal}, wasm_name {opal} + network {sapphire}, wasm_name {quartz} + + dev_build_int_tests: + needs: prepare-execution-marix + # The type of runner that the job will run on + runs-on: [self-hosted-ci, medium] + timeout-minutes: 1380 + + name: ${{ matrix.network }} + strategy: + matrix: + include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} + + 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. + + steps: + - name: Clean Workspace + uses: AutoModality/action-clean@v1.1.0 + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3.1.0 + with: + ref: ${{ github.head_ref }} #Checking out head commit + + - name: Read .env file + uses: xom9ikk/dotenv@v2 + + - name: Generate ENV related extend file for docker-compose + uses: cuchi/jinja2-action@v1.2.0 + with: + template: .docker/docker-compose.gov.j2 + output_file: .docker/docker-compose.${{ matrix.network }}.yml + variables: | + RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + NETWORK=${{ matrix.network }} + WASM_NAME=${{ matrix.wasm_name }} + + - name: Show build configuration + run: cat .docker/docker-compose.${{ matrix.network }}.yml + + - name: Build the stack + run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans + + - uses: actions/setup-node@v3.5.1 + with: + node-version: 16 + + - name: Run tests + working-directory: tests + run: | + yarn install + yarn add mochawesome + ./scripts/wait_for_first_block.sh + echo "Ready to start tests" + yarn polkadot-types + NOW=$(date +%s) && yarn testGovernance --reporter mochawesome --reporter-options reportFilename=test-${NOW} + env: + RPC_URL: http://127.0.0.1:9944/ + + - name: Test Report + uses: phoenix-actions/test-reporting@v10 + id: test-report + if: success() || failure() # run this step even if previous step failed + with: + name: int test results - ${{ matrix.network }} # Name of the check run which will be created + path: tests/mochawesome-report/test-*.json # Path to test results + reporter: mochawesome-json + fail-on-error: 'false' + + - name: Read output variables + run: | + echo "url is ${{ steps.test-report.outputs.runHtmlUrl }}" + + - name: Stop running containers + if: always() # run this step always + run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down + + - name: Remove builder cache + if: always() # run this step always + run: | + docker builder prune -f -a + docker system prune -f + docker image prune -f -a --- a/Cargo.lock +++ b/Cargo.lock @@ -172,9 +172,9 @@ [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] @@ -250,9 +250,9 @@ [[package]] name = "anstyle-wincon" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" dependencies = [ "anstyle", "windows-sys 0.48.0", @@ -260,9 +260,9 @@ [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "8c6f84b74db2535ebae81eede2f39b947dcbf01d093ae5f791e5dd414a1bf289" [[package]] name = "app-promotion-rpc" @@ -333,7 +333,7 @@ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.23", + "time 0.3.25", ] [[package]] @@ -349,7 +349,7 @@ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.23", + "time 0.3.25", ] [[package]] @@ -426,9 +426,9 @@ [[package]] name = "async-lock" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ "event-listener", ] @@ -441,18 +441,18 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -465,7 +465,7 @@ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", ] [[package]] @@ -599,7 +599,7 @@ "regex", "rustc-hash", "shlex", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -610,9 +610,9 @@ [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bitvec" @@ -873,11 +873,12 @@ [[package]] name = "cc" -version = "1.0.79" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -902,9 +903,9 @@ [[package]] name = "cfg-expr" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c" +checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9" dependencies = [ "smallvec", ] @@ -1024,9 +1025,9 @@ [[package]] name = "clap" -version = "4.3.17" +version = "4.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0827b011f6f8ab38590295339817b0d26f344aa4932c3ced71b45b0c54b4a9" +checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd" dependencies = [ "clap_builder", "clap_derive", @@ -1035,9 +1036,9 @@ [[package]] name = "clap_builder" -version = "4.3.17" +version = "4.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9441b403be87be858db6a23edb493e7f694761acdc3343d5a0fcaafd304cbc9e" +checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa" dependencies = [ "anstream", "anstyle", @@ -1054,7 +1055,7 @@ "heck", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -1126,9 +1127,9 @@ [[package]] name = "const-oid" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] name = "constant_time_eq" @@ -1724,7 +1725,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -2000,9 +2001,9 @@ [[package]] name = "cxx" -version = "1.0.102" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f68e12e817cb19eaab81aaec582b4052d07debd3c3c6b083b9d361db47c7dc9d" +checksum = "666a3ec767f4bbaf0dcfcc3b4ea048b90520b254fdf88813e763f4c762636c14" dependencies = [ "cc", "cxxbridge-flags", @@ -2012,9 +2013,9 @@ [[package]] name = "cxx-build" -version = "1.0.102" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e789217e4ab7cf8cc9ce82253180a9fe331f35f5d339f0ccfe0270b39433f397" +checksum = "162bec16c4cc28b19e26db0197b60ba5480fdb9a4cbf0f4c6c104a937741b78e" dependencies = [ "cc", "codespan-reporting", @@ -2022,24 +2023,24 @@ "proc-macro2", "quote", "scratch", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] name = "cxxbridge-flags" -version = "1.0.102" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a19f4c80fd9ab6c882286fa865e92e07688f4387370a209508014ead8751d0" +checksum = "d6e8c238aadc4b9f2c00269d04c87abb23f96dd240803872536eed1a304bb40e" [[package]] name = "cxxbridge-macro" -version = "1.0.102" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fcfa71f66c8563c4fa9dd2bb68368d50267856f831ac5d85367e0805f9606c" +checksum = "59d9ffb4193dd22180b8d5747b1e095c3d9c9c665ce39b0483a488948f437e06" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -2116,9 +2117,9 @@ [[package]] name = "der" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ "const-oid", "zeroize", @@ -2153,6 +2154,12 @@ ] [[package]] +name = "deranged" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" + +[[package]] name = "derivative" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2303,7 +2310,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -2369,7 +2376,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" dependencies = [ - "der 0.7.7", + "der 0.7.8", "digest 0.10.7", "elliptic-curve 0.13.5", "rfc6979 0.4.0", @@ -2416,9 +2423,9 @@ [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" @@ -2496,7 +2503,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -2507,7 +2514,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -2550,9 +2557,9 @@ [[package]] name = "errno" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", @@ -2768,7 +2775,7 @@ "fs-err", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -3008,13 +3015,13 @@ [[package]] name = "filetime" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall 0.3.5", "windows-sys 0.48.0", ] @@ -3054,9 +3061,9 @@ [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "libz-sys", @@ -3280,7 +3287,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -3397,7 +3404,7 @@ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -3409,7 +3416,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -3419,7 +3426,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -3499,7 +3506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" dependencies = [ - "rustix 0.38.4", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -3569,7 +3576,7 @@ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "waker-fn", ] @@ -3581,7 +3588,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -3626,7 +3633,7 @@ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "pin-utils", "slab", ] @@ -3731,9 +3738,9 @@ [[package]] name = "globset" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1391ab1f92ffcc08911957149833e682aa3fe252b9f45f966d2ef972274c97df" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ "aho-corasick", "bstr", @@ -3954,7 +3961,7 @@ dependencies = [ "bytes", "http", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", ] [[package]] @@ -3971,9 +3978,9 @@ [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -3997,7 +4004,7 @@ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "socket2 0.4.9", "tokio", "tower-service", @@ -4161,9 +4168,9 @@ [[package]] name = "indicatif" -version = "0.17.5" +version = "0.17.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057" +checksum = "0b297dc40733f23a0e52728a58fa9489a5b7638a324932de16b41adc3ef80730" dependencies = [ "console", "instant", @@ -4266,7 +4273,7 @@ checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi 0.3.2", - "rustix 0.38.4", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -5145,9 +5152,9 @@ [[package]] name = "libz-sys" -version = "1.1.9" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "pkg-config", @@ -5201,9 +5208,9 @@ [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" [[package]] name = "lock_api" @@ -5217,9 +5224,9 @@ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lru" @@ -5758,9 +5765,9 @@ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -5854,7 +5861,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -5949,8 +5956,10 @@ "pallet-balances-adapter", "pallet-base-fee", "pallet-collator-selection", + "pallet-collective", "pallet-common", "pallet-configuration", + "pallet-democracy", "pallet-ethereum", "pallet-evm", "pallet-evm-coder-substrate", @@ -5960,12 +5969,17 @@ "pallet-evm-transaction-payment", "pallet-foreign-assets", "pallet-fungible", + "pallet-gov-origins", "pallet-identity 4.0.0-dev", "pallet-inflation", "pallet-maintenance", + "pallet-membership", "pallet-nonfungible", "pallet-preimage", + "pallet-ranked-collective", + "pallet-referenda", "pallet-refungible", + "pallet-scheduler", "pallet-session", "pallet-state-trie-migration", "pallet-structure", @@ -6522,6 +6536,7 @@ "sp-core", "sp-io", "sp-std", + "up-common", "xcm", ] @@ -6804,6 +6819,16 @@ ] [[package]] +name = "pallet-gov-origins" +version = "0.2.1" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", +] + +[[package]] name = "pallet-grandpa" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" @@ -7323,7 +7348,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -7773,7 +7798,7 @@ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets 0.48.1", + "windows-targets 0.48.2", ] [[package]] @@ -7838,9 +7863,9 @@ [[package]] name = "pest" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d2d1d55045829d65aad9d389139882ad623b33b904e7c9f1b10c5b8927298e5" +checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" dependencies = [ "thiserror", "ucd-trie", @@ -7848,9 +7873,9 @@ [[package]] name = "pest_derive" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f94bca7e7a599d89dea5dfa309e217e7906c3c007fb9c3299c40b10d6a315d3" +checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" dependencies = [ "pest", "pest_generator", @@ -7858,22 +7883,22 @@ [[package]] name = "pest_generator" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d490fe7e8556575ff6911e45567ab95e71617f43781e5c05490dc8d75c965c" +checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] name = "pest_meta" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674c66ebb4b4d9036012091b537aae5878970d6999f81a265034d85b136b341" +checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" dependencies = [ "once_cell", "pest", @@ -7892,22 +7917,22 @@ [[package]] name = "pin-project" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -7918,9 +7943,9 @@ [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" [[package]] name = "pin-utils" @@ -7944,7 +7969,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.7.7", + "der 0.7.8", "spki 0.7.2", ] @@ -9150,7 +9175,7 @@ "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "windows-sys 0.48.0", ] @@ -9191,9 +9216,9 @@ [[package]] name = "portable-atomic" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc55135a600d700580e406b4de0d59cb9ad25e344a3a091a97ded2622ec4ec6" +checksum = "f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e" [[package]] name = "ppv-lite86" @@ -9259,7 +9284,7 @@ checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" dependencies = [ "proc-macro2", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -9334,7 +9359,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -9374,13 +9399,13 @@ [[package]] name = "prometheus-client-derive-encode" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b6a5217beb0ad503ee7fa752d451c905113d70721b937126158f3106a48cc1" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.28", ] [[package]] @@ -9487,8 +9512,10 @@ "pallet-balances-adapter", "pallet-base-fee", "pallet-collator-selection", + "pallet-collective", "pallet-common", "pallet-configuration", + "pallet-democracy", "pallet-ethereum", "pallet-evm", "pallet-evm-coder-substrate", @@ -9498,12 +9525,17 @@ "pallet-evm-transaction-payment", "pallet-foreign-assets", "pallet-fungible", + "pallet-gov-origins", "pallet-identity 4.0.0-dev", "pallet-inflation", "pallet-maintenance", + "pallet-membership", "pallet-nonfungible", "pallet-preimage", + "pallet-ranked-collective", + "pallet-referenda", "pallet-refungible", + "pallet-scheduler", "pallet-session", "pallet-state-trie-migration", "pallet-structure", @@ -9588,9 +9620,9 @@ [[package]] name = "quinn-proto" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c10f662eee9c94ddd7135043e544f3c82fa839a1e7b865911331961b53186c" +checksum = "f31999cfc7927c4e212e60fd50934ab40e8e8bfd2d493d6095d2d306bc0764d9" dependencies = [ "bytes", "rand 0.8.5", @@ -9606,9 +9638,9 @@ [[package]] name = "quote" -version = "1.0.31" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" +checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" dependencies = [ "proc-macro2", ] @@ -9735,7 +9767,7 @@ dependencies = [ "pem", "ring", - "time 0.3.23", + "time 0.3.25", "x509-parser 0.13.2", "yasna", ] @@ -9748,7 +9780,7 @@ dependencies = [ "pem", "ring", - "time 0.3.23", + "time 0.3.25", "yasna", ] @@ -9811,7 +9843,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -9828,13 +9860,13 @@ [[package]] name = "regex" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.3", + "regex-automata 0.3.6", "regex-syntax 0.7.4", ] @@ -9849,9 +9881,9 @@ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" dependencies = [ "aho-corasick", "memchr", @@ -10185,14 +10217,14 @@ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "errno", "libc", - "linux-raw-sys 0.4.3", + "linux-raw-sys 0.4.5", "windows-sys 0.48.0", ] @@ -10388,7 +10420,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -11391,7 +11423,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -11579,7 +11611,7 @@ checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct 0.2.0", - "der 0.7.7", + "der 0.7.8", "generic-array 0.14.7", "pkcs8 0.10.2", "subtle", @@ -11615,9 +11647,9 @@ [[package]] name = "security-framework" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -11628,9 +11660,9 @@ [[package]] name = "security-framework-sys" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", @@ -11662,29 +11694,29 @@ [[package]] name = "serde" -version = "1.0.174" +version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b88756493a5bd5e5395d53baa70b194b05764ab85b59e43e4b8f4e1192fa9b1" +checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.174" +version = "1.0.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5c3a298c7f978e53536f95a63bdc4c4a64550582f31a0359a9afda6aede62e" +checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" dependencies = [ "itoa", "ryu", @@ -11985,7 +12017,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -12227,7 +12259,7 @@ "proc-macro2", "quote", "sp-core-hashing", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -12246,7 +12278,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -12457,7 +12489,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -12643,7 +12675,7 @@ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -12683,7 +12715,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -12720,14 +12752,14 @@ checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ "base64ct", - "der 0.7.7", + "der 0.7.8", ] [[package]] name = "ss58-registry" -version = "1.41.0" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfc443bad666016e012538782d9e3006213a7db43e9fb1dda91657dc06a6fa08" +checksum = "14782ef66f16396bc977f43c89b36f2c7b58357a2cc0bf58a09627542c13c379" dependencies = [ "Inflector", "num-format", @@ -12960,7 +12992,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -13008,9 +13040,9 @@ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ "proc-macro2", "quote", @@ -13058,20 +13090,20 @@ [[package]] name = "target-lexicon" -version = "0.12.10" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2faeef5759ab89935255b1a4cd98e0baf99d1085e37d36599c625dac49ae8e" +checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651" dependencies = [ "cfg-if", "fastrand 2.0.0", "redox_syscall 0.3.5", - "rustix 0.38.4", + "rustix 0.38.8", "windows-sys 0.48.0", ] @@ -13124,22 +13156,22 @@ [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "d9207952ae1a003f42d3d5e892dac3c6ba42aa6ac0c79a6a91a2b5cb4253e75c" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "f1728216d3244de4f14f14f8c15c79be1a7c67867d28d69b719690e2a19fb445" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -13182,9 +13214,9 @@ [[package]] name = "tikv-jemalloc-ctl" -version = "0.5.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37706572f4b151dff7a0146e040804e9c26fe3a3118591112f05cf12a4216c1" +checksum = "619bfed27d807b54f7f776b9430d4f8060e66ee138a28632ca898584d462c31c" dependencies = [ "libc", "paste", @@ -13193,9 +13225,9 @@ [[package]] name = "tikv-jemalloc-sys" -version = "0.5.3+5.3.0-patched" +version = "0.5.4+5.3.0-patched" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a678df20055b43e57ef8cddde41cdfda9a3c1a060b67f4c5836dfb1d78543ba8" +checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1" dependencies = [ "cc", "libc", @@ -13214,10 +13246,11 @@ [[package]] name = "time" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" +checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" dependencies = [ + "deranged", "itoa", "serde", "time-core", @@ -13232,9 +13265,9 @@ [[package]] name = "time-macros" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" +checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" dependencies = [ "time-core", ] @@ -13294,20 +13327,19 @@ [[package]] name = "tokio" -version = "1.29.1" +version = "1.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "40de3a2ba249dcb097e01be5e67a5ff53cf250397715a071a81543e8a832a920" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", "mio", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "signal-hook-registry", - "socket2 0.4.9", + "socket2 0.5.3", "tokio-macros", "windows-sys 0.48.0", ] @@ -13320,7 +13352,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -13352,7 +13384,7 @@ checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "tokio", "tokio-util", ] @@ -13367,7 +13399,7 @@ "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "tokio", "tracing", ] @@ -13432,14 +13464,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55ae70283aba8d2a8b411c695c437fe25b8b5e44e23e780662002fc72fb47a82" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "bytes", "futures-core", "futures-util", "http", "http-body", "http-range-header", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "tower-layer", "tower-service", ] @@ -13464,7 +13496,7 @@ dependencies = [ "cfg-if", "log", - "pin-project-lite 0.2.10", + "pin-project-lite 0.2.12", "tracing-attributes", "tracing-core", ] @@ -13477,7 +13509,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -13520,7 +13552,7 @@ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -13981,8 +14013,10 @@ "pallet-balances-adapter", "pallet-base-fee", "pallet-collator-selection", + "pallet-collective", "pallet-common", "pallet-configuration", + "pallet-democracy", "pallet-ethereum", "pallet-evm", "pallet-evm-coder-substrate", @@ -13992,12 +14026,17 @@ "pallet-evm-transaction-payment", "pallet-foreign-assets", "pallet-fungible", + "pallet-gov-origins", "pallet-identity 4.0.0-dev", "pallet-inflation", "pallet-maintenance", + "pallet-membership", "pallet-nonfungible", "pallet-preimage", + "pallet-ranked-collective", + "pallet-referenda", "pallet-refungible", + "pallet-scheduler", "pallet-session", "pallet-state-trie-migration", "pallet-structure", @@ -14269,7 +14308,7 @@ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", "wasm-bindgen-shared", ] @@ -14303,7 +14342,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -14681,7 +14720,7 @@ "sha2 0.10.7", "stun", "thiserror", - "time 0.3.23", + "time 0.3.25", "tokio", "turn", "url", @@ -15048,7 +15087,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.2", ] [[package]] @@ -15066,7 +15105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.2", ] [[package]] @@ -15086,17 +15125,17 @@ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "d1eeca1c172a285ee6c2c84c341ccea837e7c01b12fbb2d0fe3c9e550ce49ec8" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.2", + "windows_aarch64_msvc 0.48.2", + "windows_i686_gnu 0.48.2", + "windows_i686_msvc 0.48.2", + "windows_x86_64_gnu 0.48.2", + "windows_x86_64_gnullvm 0.48.2", + "windows_x86_64_msvc 0.48.2", ] [[package]] @@ -15107,9 +15146,9 @@ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "b10d0c968ba7f6166195e13d593af609ec2e3d24f916f081690695cf5eaffb2f" [[package]] name = "windows_aarch64_msvc" @@ -15125,9 +15164,9 @@ [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "571d8d4e62f26d4932099a9efe89660e8bd5087775a2ab5cdd8b747b811f1058" [[package]] name = "windows_i686_gnu" @@ -15143,9 +15182,9 @@ [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "2229ad223e178db5fbbc8bd8d3835e51e566b8474bfca58d2e6150c48bb723cd" [[package]] name = "windows_i686_msvc" @@ -15161,9 +15200,9 @@ [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "600956e2d840c194eedfc5d18f8242bc2e17c7775b6684488af3a9fff6fe3287" [[package]] name = "windows_x86_64_gnu" @@ -15179,9 +15218,9 @@ [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "ea99ff3f8b49fb7a8e0d305e5aec485bd068c2ba691b6e277d29eaeac945868a" [[package]] name = "windows_x86_64_gnullvm" @@ -15191,9 +15230,9 @@ [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "8f1a05a1ece9a7a0d5a7ccf30ba2c33e3a61a30e042ffd247567d1de1d94120d" [[package]] name = "windows_x86_64_msvc" @@ -15209,15 +15248,15 @@ [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "d419259aba16b663966e29e6d7c6ecfa0bb8425818bb96f6f1f3c3eb71a6e7b9" [[package]] name = "winnow" -version = "0.5.0" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7" +checksum = "1e461589e194280efaa97236b73623445efa195aa633fd7004f39805707a9d53" dependencies = [ "memchr", ] @@ -15279,7 +15318,7 @@ "ring", "rusticata-macros", "thiserror", - "time 0.3.23", + "time 0.3.25", ] [[package]] @@ -15297,7 +15336,7 @@ "oid-registry 0.6.1", "rusticata-macros", "thiserror", - "time 0.3.23", + "time 0.3.25", ] [[package]] @@ -15366,7 +15405,7 @@ "Inflector", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -15389,7 +15428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.23", + "time 0.3.25", ] [[package]] @@ -15409,7 +15448,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,9 @@ [workspace.dependencies] # Unique app-promotion-rpc = { path = "primitives/app_promotion_rpc", default-features = false } -evm-coder = { git = "https://github.com/uniquenetwork/evm-coder", tag = "v0.3.6", default-features = false, features = ['bondrewd'] } +evm-coder = { git = "https://github.com/uniquenetwork/evm-coder", tag = "v0.3.6", default-features = false, features = [ + 'bondrewd', +] } pallet-app-promotion = { path = "pallets/app-promotion", default-features = false } pallet-balances-adapter = { default-features = false, path = "pallets/balances-adapter" } pallet-charge-transaction = { package = "pallet-template-transaction-payment", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.43" } @@ -40,6 +42,7 @@ pallet-evm-transaction-payment = { path = "pallets/evm-transaction-payment", default-features = false } pallet-foreign-assets = { default-features = false, path = "pallets/foreign-assets" } pallet-fungible = { default-features = false, path = "pallets/fungible" } +pallet-gov-origins = { default-features = false, path = "pallets/gov-origins" } pallet-identity = { default-features = false, path = "pallets/identity" } pallet-inflation = { path = "pallets/inflation", default-features = false } pallet-maintenance = { default-features = false, path = "pallets/maintenance" } @@ -105,7 +108,13 @@ pallet-aura = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } pallet-authorship = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +pallet-collective = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +pallet-democracy = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +pallet-membership = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } pallet-preimage = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +pallet-ranked-collective = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +pallet-referenda = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +pallet-scheduler = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } pallet-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } pallet-state-trie-migration = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } pallet-sudo = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } @@ -116,6 +125,7 @@ pallet-treasury = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } pallet-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } parachain-info = { default-features = false, git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +parity-scale-codec = { version = "3.2.2", features = ["derive"], default-features = false } polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" } polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" } --- a/launch-config.json +++ b/launch-config.json @@ -151,4 +151,4 @@ "simpleParachains": [], "hrmpChannels": [], "finalization": false -} +} \ No newline at end of file --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -175,6 +175,7 @@ sudo: SudoConfig { key: Some($root_key), }, + vesting: VestingConfig { vesting: vec![] }, parachain_info: ParachainInfoConfig { parachain_id: $id.into(), @@ -207,6 +208,7 @@ ethereum: EthereumConfig {}, polkadot_xcm: Default::default(), transaction_payment: Default::default(), + ..Default::default() } }}; } --- a/pallets/configuration/Cargo.toml +++ b/pallets/configuration/Cargo.toml @@ -15,8 +15,9 @@ smallvec = { workspace = true } sp-arithmetic = { workspace = true } sp-core = { workspace = true } +sp-io = { workspace = true } sp-std = { workspace = true } -sp-io = { workspace = true } +up-common = { workspace = true } xcm = { workspace = true } hex-literal = { workspace = true } --- a/pallets/configuration/src/lib.rs +++ b/pallets/configuration/src/lib.rs @@ -60,6 +60,7 @@ type Balance: Parameter + Member + AtLeast32BitUnsigned + + From + Codec + Default + Copy --- /dev/null +++ b/pallets/gov-origins/Cargo.toml @@ -0,0 +1,32 @@ +################################################################################ +# Package + +[package] +authors = ['Unique Network '] +description = 'Unique App Governance Origins Pallet' +edition = '2021' +homepage = 'https://unique.network' +license = 'GPLv3' +name = 'pallet-gov-origins' +repository = 'https://github.com/UniqueNetwork/unique-chain' +version = '0.2.1' + +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] + +[features] +default = ['std'] +std = ['frame-support/std', 'frame-system/std', 'parity-scale-codec/std'] +try-runtime = ["frame-support/try-runtime"] + +[dependencies] +################################################################################ +# Substrate Dependencies + +# Note: `package = "parity-scale-codec"` must be supplied since the `Encode` macro searches for it. +parity-scale-codec = { workspace = true } + +scale-info = { workspace = true } + +frame-support = { workspace = true } +frame-system = { workspace = true } --- /dev/null +++ b/pallets/gov-origins/src/lib.rs @@ -0,0 +1,38 @@ +// Copyright 2019-2023 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 . + +#![cfg_attr(not(feature = "std"), no_std)] + +use frame_support::pallet_prelude::*; + +pub use pallet::*; + +#[frame_support::pallet] +pub mod pallet { + use super::*; + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[derive(PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug)] + #[pallet::origin] + pub enum Origin { + /// Origin able to send proposal from fellowship collective to democracy pallet. + FellowshipProposition, + } +} --- a/pallets/maintenance/src/lib.rs +++ b/pallets/maintenance/src/lib.rs @@ -25,10 +25,9 @@ #[frame_support::pallet] pub mod pallet { + use frame_support::{dispatch::*, pallet_prelude::*}; - use frame_support::{ - traits::{QueryPreimage, StorePreimage}, - }; + use frame_support::traits::{QueryPreimage, StorePreimage, EnsureOrigin}; use frame_system::pallet_prelude::*; use sp_core::H256; @@ -39,21 +38,21 @@ /// The overarching event type. type RuntimeEvent: From> + IsType<::RuntimeEvent>; - /// The runtime origin type. - type RuntimeOrigin: From> - + IsType<::RuntimeOrigin>; - /// The aggregated call type. type RuntimeCall: Parameter - + Dispatchable< - RuntimeOrigin = ::RuntimeOrigin, - PostInfo = PostDispatchInfo, - > + GetDispatchInfo + + Dispatchable + + GetDispatchInfo + From>; /// The preimage provider with which we look up call hashes to get the call. type Preimages: QueryPreimage + StorePreimage; + /// The Origin that has the right to enable or disable the maintenance mode. + type ManagerOrigin: EnsureOrigin<::RuntimeOrigin>; + + /// The Origin that has the right to execute preimage. + type PreimageOrigin: EnsureOrigin<::RuntimeOrigin>; + /// Weight information for extrinsics in this pallet. type WeightInfo: WeightInfo; } @@ -80,7 +79,7 @@ #[pallet::call_index(0)] #[pallet::weight(::WeightInfo::enable())] pub fn enable(origin: OriginFor) -> DispatchResult { - ensure_root(origin)?; + T::ManagerOrigin::ensure_origin(origin)?; >::set(true); @@ -92,7 +91,7 @@ #[pallet::call_index(1)] #[pallet::weight(::WeightInfo::disable())] pub fn disable(origin: OriginFor) -> DispatchResult { - ensure_root(origin)?; + T::ManagerOrigin::ensure_origin(origin)?; >::set(false); @@ -114,7 +113,7 @@ ) -> DispatchResultWithPostInfo { use codec::Decode; - ensure_root(origin)?; + T::PreimageOrigin::ensure_origin(origin.clone())?; let data = T::Preimages::fetch(&hash, None)?; weight_bound.set_proof_size( @@ -136,7 +135,7 @@ DispatchError::Exhausted ); - match call.dispatch(frame_system::RawOrigin::Root.into()) { + match call.dispatch(origin) { Ok(_) => Ok(Pays::No.into()), Err(error_and_info) => Err(DispatchErrorWithPostInfo { post_info: Pays::No.into(), --- a/pallets/unique/src/eth/mod.rs +++ b/pallets/unique/src/eth/mod.rs @@ -139,116 +139,116 @@ T: Config + pallet_common::Config + pallet_nonfungible::Config + pallet_refungible::Config, T::AccountId: From<[u8; 32]>, { -/* - /// Create a collection - /// @return address Address of the newly created collection - #[weight(>::create_collection())] - #[solidity(rename_selector = "createCollection")] - fn create_collection( - &mut self, - caller: Caller, - value: Value, - data: eth::CreateCollectionData, - ) -> Result
{ - let (caller, name, description, token_prefix) = - convert_data::(caller, data.name, data.description, data.token_prefix)?; - if data.mode != eth::CollectionMode::Fungible && data.decimals != 0 { - return Err("decimals are only supported for NFT and RFT collections".into()); - } - let mode = match data.mode { - eth::CollectionMode::Fungible => CollectionMode::Fungible(data.decimals), - eth::CollectionMode::Nonfungible => CollectionMode::NFT, - eth::CollectionMode::Refungible => CollectionMode::ReFungible, - }; + /* + /// Create a collection + /// @return address Address of the newly created collection + #[weight(>::create_collection())] + #[solidity(rename_selector = "createCollection")] + fn create_collection( + &mut self, + caller: Caller, + value: Value, + data: eth::CreateCollectionData, + ) -> Result
{ + let (caller, name, description, token_prefix) = + convert_data::(caller, data.name, data.description, data.token_prefix)?; + if data.mode != eth::CollectionMode::Fungible && data.decimals != 0 { + return Err("decimals are only supported for NFT and RFT collections".into()); + } + let mode = match data.mode { + eth::CollectionMode::Fungible => CollectionMode::Fungible(data.decimals), + eth::CollectionMode::Nonfungible => CollectionMode::NFT, + eth::CollectionMode::Refungible => CollectionMode::ReFungible, + }; - let properties: BoundedVec<_, _> = data - .properties - .into_iter() - .map(eth::Property::try_into) - .collect::>>()? - .try_into() - .map_err(|_| "too many properties")?; + let properties: BoundedVec<_, _> = data + .properties + .into_iter() + .map(eth::Property::try_into) + .collect::>>()? + .try_into() + .map_err(|_| "too many properties")?; - let token_property_permissions = - eth::TokenPropertyPermission::into_property_key_permissions( - data.token_property_permissions, - )? - .try_into() - .map_err(|_| "too many property permissions")?; + let token_property_permissions = + eth::TokenPropertyPermission::into_property_key_permissions( + data.token_property_permissions, + )? + .try_into() + .map_err(|_| "too many property permissions")?; - let limits = if !data.limits.is_empty() { - Some( - data.limits - .into_iter() - .collect::>()?, - ) - } else { - None - }; + let limits = if !data.limits.is_empty() { + Some( + data.limits + .into_iter() + .collect::>()?, + ) + } else { + None + }; - let pending_sponsor = data.pending_sponsor.into_option_sub_cross_account::()?; + let pending_sponsor = data.pending_sponsor.into_option_sub_cross_account::()?; - let restricted = if !data.nesting_settings.restricted.is_empty() { - Some( - data.nesting_settings - .restricted - .iter() - .map(map_eth_to_id) - .collect::>>() - .ok_or("can't convert address into collection id")? - .try_into() - .map_err(|_| "too many collections")?, - ) - } else { - None - }; + let restricted = if !data.nesting_settings.restricted.is_empty() { + Some( + data.nesting_settings + .restricted + .iter() + .map(map_eth_to_id) + .collect::>>() + .ok_or("can't convert address into collection id")? + .try_into() + .map_err(|_| "too many collections")?, + ) + } else { + None + }; - let admin_list = data - .admin_list - .into_iter() - .map(|admin| admin.into_sub_cross_account::()) - .collect::>>()?; + let admin_list = data + .admin_list + .into_iter() + .map(|admin| admin.into_sub_cross_account::()) + .collect::>>()?; - let flags = data.flags; - if !flags.is_allowed_for_user() { - return Err("internal flags were used".into()); - } + let flags = data.flags; + if !flags.is_allowed_for_user() { + return Err("internal flags were used".into()); + } - let data = CreateCollectionData { - name, - mode, - description, - token_prefix, - properties, - token_property_permissions, - limits, - pending_sponsor, - access: None, - permissions: Some(CollectionPermissions { + let data = CreateCollectionData { + name, + mode, + description, + token_prefix, + properties, + token_property_permissions, + limits, + pending_sponsor, access: None, - mint_mode: None, - nesting: Some(NestingPermissions { - token_owner: data.nesting_settings.token_owner, - collection_admin: data.nesting_settings.collection_admin, - restricted, - #[cfg(feature = "runtime-benchmarks")] - permissive: true, + permissions: Some(CollectionPermissions { + access: None, + mint_mode: None, + nesting: Some(NestingPermissions { + token_owner: data.nesting_settings.token_owner, + collection_admin: data.nesting_settings.collection_admin, + restricted, + #[cfg(feature = "runtime-benchmarks")] + permissive: true, + }), }), - }), - admin_list, - flags, - }; - check_sent_amount_equals_collection_creation_price::(value)?; - let collection_helpers_address = - T::CrossAccountId::from_eth(::ContractAddress::get()); + admin_list, + flags, + }; + check_sent_amount_equals_collection_creation_price::(value)?; + let collection_helpers_address = + T::CrossAccountId::from_eth(::ContractAddress::get()); - let collection_id = T::CollectionDispatch::create(caller, collection_helpers_address, data) - .map_err(dispatch_to_evm::)?; + let collection_id = T::CollectionDispatch::create(caller, collection_helpers_address, data) + .map_err(dispatch_to_evm::)?; - let address = pallet_common::eth::collection_id_to_address(collection_id); - Ok(address) - } -*/ + let address = pallet_common::eth::collection_id_to_address(collection_id); + Ok(address) + } + */ /// Create an NFT collection /// @param name Name of the collection --- a/runtime/common/config/mod.rs +++ b/runtime/common/config/mod.rs @@ -22,5 +22,5 @@ pub mod substrate; pub mod xcm; -#[cfg(feature = "pallet-test-utils")] +#[cfg(feature = "test-env")] pub mod test_pallets; --- a/runtime/common/config/pallets/collator_selection.rs +++ b/runtime/common/config/pallets/collator_selection.rs @@ -15,12 +15,18 @@ // along with Unique Network. If not, see . use frame_support::{parameter_types, PalletId}; -use frame_system::EnsureRoot; use crate::{ - AccountId, Balance, Balances, BlockNumber, Runtime, RuntimeEvent, Aura, Session, SessionKeys, + Balance, Balances, BlockNumber, Runtime, RuntimeEvent, Aura, Session, SessionKeys, CollatorSelection, Treasury, config::pallets::{MaxCollators, SessionPeriod, TreasuryAccountId}, }; + +#[cfg(feature = "governance")] +use crate::config::pallets::governance; + +#[cfg(not(feature = "governance"))] +use frame_system::EnsureRoot; + use sp_runtime::Perbill; use up_common::constants::{UNIQUE, MILLIUNIQUE}; use pallet_configuration::{ @@ -77,8 +83,19 @@ type MaxRegistrars = MaxRegistrars; type MaxSubAccounts = MaxSubAccounts; type SubAccountDeposit = SubAccountDeposit; + + #[cfg(feature = "governance")] + type RegistrarOrigin = governance::RootOrAllTechnicalCommittee; + + #[cfg(feature = "governance")] + type ForceOrigin = governance::RootOrAllTechnicalCommittee; + + #[cfg(not(feature = "governance"))] type RegistrarOrigin = EnsureRoot<::AccountId>; + + #[cfg(not(feature = "governance"))] type ForceOrigin = EnsureRoot<::AccountId>; + type Slashed = Treasury; type WeightInfo = pallet_identity::weights::SubstrateWeight; } @@ -92,7 +109,17 @@ type RuntimeEvent = RuntimeEvent; type Currency = Balances; // We allow root only to execute privileged collator selection operations. - type UpdateOrigin = EnsureRoot; + + // We allow root or the unanimous technical committee + // to execute privileged collator selection operations. + #[cfg(feature = "governance")] + type UpdateOrigin = governance::RootOrAllTechnicalCommittee; + + // If there is no governance, + // we allow root only to execute privileged collator selection operations. + #[cfg(not(feature = "governance"))] + type UpdateOrigin = EnsureRoot<::AccountId>; + type TreasuryAccountId = TreasuryAccountId; type PotId = PotId; type MaxCollators = MaxCollators; --- /dev/null +++ b/runtime/common/config/pallets/governance/council.rs @@ -0,0 +1,71 @@ +use super::*; + +parameter_types! { + pub CouncilMaxProposals: u32 = 100; + pub CouncilMaxMembers: u32 = 100; +} + +#[cfg(not(feature = "test-env"))] +use crate::governance_timings::council as council_timings; + +#[cfg(feature = "test-env")] +pub mod council_timings { + use super::*; + + parameter_types! { + pub CouncilMotionDuration: BlockNumber = 35; + } +} + +pub type CouncilCollective = pallet_collective::Instance1; +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = council_timings::CouncilMotionDuration; + type MaxProposals = CouncilMaxProposals; + type MaxMembers = CouncilMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type WeightInfo = pallet_collective::weights::SubstrateWeight; + type SetMembersOrigin = EnsureRoot; + type MaxProposalWeight = MaxCollectivesProposalWeight; +} + +pub type CouncilCollectiveMembership = pallet_membership::Instance1; +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = EnsureRoot; + type RemoveOrigin = EnsureRoot; + type SwapOrigin = EnsureRoot; + type ResetOrigin = EnsureRoot; + type PrimeOrigin = EnsureRoot; + type MembershipInitialized = Council; + type MembershipChanged = Council; + type MaxMembers = CouncilMaxMembers; + type WeightInfo = pallet_membership::weights::SubstrateWeight; +} + +pub type CouncilMember = pallet_collective::EnsureMember; + +pub type OneThirdsCouncil = + pallet_collective::EnsureProportionAtLeast; + +pub type HalfCouncil = + pallet_collective::EnsureProportionAtLeast; + +pub type MoreThanHalfCouncil = + pallet_collective::EnsureProportionMoreThan; + +pub type ThreeFourthsCouncil = EnsureProportionAtLeast; + +pub type AllCouncil = EnsureProportionAtLeast; + +pub type RootOrOneThirdsCouncil = EitherOfDiverse, OneThirdsCouncil>; + +pub type RootOrHalfCouncil = EitherOfDiverse, HalfCouncil>; + +pub type RootOrMoreThanHalfCouncil = EitherOfDiverse, MoreThanHalfCouncil>; + +pub type RootOrThreeFourthsCouncil = EitherOfDiverse, ThreeFourthsCouncil>; + +pub type RootOrAllCouncil = EitherOfDiverse, AllCouncil>; --- /dev/null +++ b/runtime/common/config/pallets/governance/democracy.rs @@ -0,0 +1,101 @@ +use super::*; + +parameter_types! { + pub MinimumDeposit: Balance = 0; + pub InstantAllowed: bool = false; + pub MaxVotes: u32 = 100; + pub MaxProposals: u32 = 100; +} + +#[cfg(not(feature = "test-env"))] +use crate::governance_timings::democracy as democracy_timings; + +#[cfg(feature = "test-env")] +pub mod democracy_timings { + use super::*; + + parameter_types! { + pub LaunchPeriod: BlockNumber = 35; + pub VotingPeriod: BlockNumber = 35; + pub FastTrackVotingPeriod: BlockNumber = 5; + pub EnactmentPeriod: BlockNumber = 40; + pub CooloffPeriod: BlockNumber = 35; + } +} + +impl pallet_democracy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type Slash = Treasury; + type Scheduler = Scheduler; + type PalletsOrigin = OriginCaller; + type Preimages = Preimage; + type WeightInfo = pallet_democracy::weights::SubstrateWeight; + + /// The period between a proposal being approved and enacted. + type EnactmentPeriod = democracy_timings::EnactmentPeriod; + + /// The minimum period of vote locking. + type VoteLockingPeriod = democracy_timings::EnactmentPeriod; + + /// How often new public referenda are launched. + type LaunchPeriod = democracy_timings::LaunchPeriod; + + /// How long the referendum will last. + type VotingPeriod = democracy_timings::VotingPeriod; + + /// The minimum amount to be used as a deposit for the Fellowship referendum proposal. + type MinimumDeposit = MinimumDeposit; + + type SubmitOrigin = EitherOf< + MapSuccess, Replace>, + EnsureFellowshipProposition, + >; + + type ExternalOrigin = EnsureNever; + type ExternalMajorityOrigin = EnsureNever; + + /// Root (for the initial referendums) + /// or >50% of council can have the next scheduled referendum be a straight default-carries + /// (NTB) vote (SuperMajorityAgainst). + type ExternalDefaultOrigin = RootOrMoreThanHalfCouncil; + + /// A unanimous technical committee can have an ExternalMajority/ExternalDefault vote + /// be tabled immediately and with a shorter voting/enactment period. + type FastTrackOrigin = RootOrAllTechnicalCommittee; + + /// Origin from which the next referendum may be tabled to vote immediately and asynchronously. + /// Can set a faster voting period. + type InstantOrigin = EnsureNever; + type InstantAllowed = InstantAllowed; + + /// Minimum voting period allowed for a fast-track referendum. + type FastTrackVotingPeriod = democracy_timings::FastTrackVotingPeriod; + + /// A single technical committee member can cancel a proposal which has been passed. + type CancellationOrigin = RootOrAllTechnicalCommittee; + + /// To cancel a proposal before it has been passed, the technical committee must be unanimous or + /// Root must agree. + type CancelProposalOrigin = RootOrAllTechnicalCommittee; + + /// A unanimous council or Root can blacklist a proposal permanently. + type BlacklistOrigin = RootOrAllCouncil; + + // Any single technical committee member may veto a coming council proposal, however they can + // only do it once and it lasts only for the cooloff period. + type VetoOrigin = TechnicalCommitteeMember; + type CooloffPeriod = democracy_timings::CooloffPeriod; + + /// The maximum number of votes for an account + type MaxVotes = MaxVotes; + + /// The maximum number of public proposals that can exist at any time. + type MaxProposals = MaxProposals; + + /// The maximum number of deposits a public proposal may have at any time. + type MaxDeposits = ConstU32<100>; + + /// The maximum number of items that can be blacklisted. + type MaxBlacklisted = ConstU32<100>; +} --- /dev/null +++ b/runtime/common/config/pallets/governance/fellowship.rs @@ -0,0 +1,167 @@ +use crate::{Preimage, Treasury, RuntimeCall, RuntimeEvent, Scheduler, FellowshipReferenda, Runtime}; +use super::*; +use pallet_gov_origins::Origin as GovOrigins; +use pallet_ranked_collective::{Config as RankedConfig, Rank, TallyOf}; + +pub const FELLOWSHIP_MODULE_ID: PalletId = PalletId(*b"flowship"); +pub const DEMOCRACY_TRACK_ID: u16 = 10; + +parameter_types! { + pub FellowshipAccountId: ::AccountId = FELLOWSHIP_MODULE_ID.into_account_truncating(); + pub AlarmInterval: BlockNumber = 1; + pub SubmissionDeposit: Balance = 1000; +} + +#[cfg(not(feature = "test-env"))] +use crate::governance_timings::fellowship as fellowship_timings; + +#[cfg(feature = "test-env")] +pub mod fellowship_timings { + use super::*; + + parameter_types! { + pub UndecidingTimeout: BlockNumber = 35; + } + + pub mod track { + use super::*; + + pub mod democracy_proposals { + use super::*; + + pub const PREPARE_PERIOD: BlockNumber = 3; + pub const DECISION_PERIOD: BlockNumber = 35; + pub const CONFIRM_PERIOD: BlockNumber = 3; + pub const MIN_ENACTMENT_PERIOD: BlockNumber = 1; + } + } +} + +impl pallet_referenda::Config for Runtime { + type WeightInfo = pallet_referenda::weights::SubstrateWeight; + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + type SubmitOrigin = pallet_ranked_collective::EnsureMember; + type CancelOrigin = RootOrAllTechnicalCommittee; + type KillOrigin = RootOrAllTechnicalCommittee; + type Slash = Treasury; + type Votes = pallet_ranked_collective::Votes; + type Tally = pallet_ranked_collective::TallyOf; + type SubmissionDeposit = SubmissionDeposit; + type MaxQueued = ConstU32<100>; + type UndecidingTimeout = fellowship_timings::UndecidingTimeout; + type AlarmInterval = AlarmInterval; + type Tracks = TracksInfo; + type Preimages = Preimage; +} + +impl RankedConfig for Runtime { + type WeightInfo = pallet_ranked_collective::weights::SubstrateWeight; + type RuntimeEvent = RuntimeEvent; + // Promotion is by any of: + // - Council member. + // - Technical committee member. + type PromoteOrigin = FellowshipPromoteDemoteOrigin; + // Demotion is by any of: + // - Council member. + // - Technical committee member. + type DemoteOrigin = FellowshipPromoteDemoteOrigin; + type Polls = FellowshipReferenda; + type MinRankOfClass = ClassToRankMapper; + type VoteWeight = pallet_ranked_collective::Geometric; +} + +pub struct EnsureFellowshipProposition; +impl EnsureOrigin for EnsureFellowshipProposition +where + O: Into> + From, +{ + type Success = AccountId; + + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + GovOrigins::FellowshipProposition => Ok(FellowshipAccountId::get()), + o => Err(O::from(o)), + }) + } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(GovOrigins::FellowshipProposition)) + } +} + +pub type FellowshipPromoteDemoteOrigin = EitherOf< + MapSuccess, Replace>>, + MapSuccess>>, +>; + +pub struct TracksInfo; +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = u16; + type RuntimeOrigin = ::PalletsOrigin; + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + static DATA: [(u16, pallet_referenda::TrackInfo); 1] = [( + DEMOCRACY_TRACK_ID, + pallet_referenda::TrackInfo { + name: "democracy_proposals", + max_deciding: 10, + decision_deposit: 10 * UNIQUE, + prepare_period: fellowship_timings::track::democracy_proposals::PREPARE_PERIOD, + decision_period: fellowship_timings::track::democracy_proposals::DECISION_PERIOD, + confirm_period: fellowship_timings::track::democracy_proposals::CONFIRM_PERIOD, + min_enactment_period: + fellowship_timings::track::democracy_proposals::MIN_ENACTMENT_PERIOD, + min_approval: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(50), + ceil: Perbill::from_percent(100), + }, + min_support: pallet_referenda::Curve::LinearDecreasing { + length: Perbill::from_percent(100), + floor: Perbill::from_percent(0), + ceil: Perbill::from_percent(50), + }, + }, + )]; + &DATA[..] + } + fn track_for(id: &Self::RuntimeOrigin) -> Result { + #[cfg(feature = "runtime-benchmarks")] + { + // For benchmarks, we enable a root origin. + // It is important that this is not available in production! + let root: Self::RuntimeOrigin = frame_system::RawOrigin::Root.into(); + if &root == id { + return Ok(9); + } + } + + match GovOrigins::try_from(id.clone()) { + Ok(_) => Ok(DEMOCRACY_TRACK_ID), + _ => Err(()), + } + } +} + +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); + +pub struct ClassToRankMapper(PhantomData<(T, I)>); + +//TODO: Remove the type when it appears in the release. +pub type ClassOf = <>::Polls as Polling>>::Class; + +impl Convert, Rank> for ClassToRankMapper +where + T: RankedConfig, + ClassOf: Into, +{ + fn convert(track_id: ClassOf) -> Rank { + match track_id.into() { + DEMOCRACY_TRACK_ID => 3, + other => other, + } + } +} --- /dev/null +++ b/runtime/common/config/pallets/governance/mod.rs @@ -0,0 +1,68 @@ +// 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 . + +use frame_support::{ + PalletId, parameter_types, + traits::{ + EnsureOrigin, EqualPrivilegeOnly, EitherOfDiverse, EitherOf, MapSuccess, ConstU16, Polling, + }, + weights::Weight, + pallet_prelude::*, +}; +use frame_system::{EnsureRoot, EnsureNever}; +use sp_runtime::{ + Perbill, + traits::{AccountIdConversion, ConstU32, Replace, CheckedSub, Convert}, + morph_types, +}; +use crate::{ + Runtime, RuntimeOrigin, RuntimeEvent, RuntimeCall, OriginCaller, Preimage, Balances, Treasury, + Scheduler, Council, TechnicalCommittee, +}; +pub use up_common::{ + constants::{UNIQUE, DAYS, HOURS, MINUTES, CENTIUNIQUE}, + types::{AccountId, Balance, BlockNumber}, +}; +use pallet_collective::EnsureProportionAtLeast; + +pub mod council; +pub use council::*; + +pub mod democracy; +pub use democracy::*; + +pub mod technical_committee; +pub use technical_committee::*; + +pub mod fellowship; +pub use fellowship::*; + +pub mod scheduler; +pub use scheduler::*; + +impl pallet_gov_origins::Config for Runtime {} + +morph_types! { + /// A `TryMorph` implementation to reduce a scalar by a particular amount, checking for + /// underflow. + pub type CheckedReduceBy: TryMorph = |r: N::Type| -> Result { + r.checked_sub(&N::get()).ok_or(()) + } where N::Type: CheckedSub; +} + +parameter_types! { + pub MaxCollectivesProposalWeight: Weight = Perbill::from_percent(80) * ::BlockWeights::get().max_block; +} --- /dev/null +++ b/runtime/common/config/pallets/governance/scheduler.rs @@ -0,0 +1,24 @@ +use up_common::constants::{MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO}; + +use super::*; + +parameter_types! { + pub MaximumSchedulerWeight: Weight = Perbill::from_percent(80) * + ::BlockWeights::get() + .per_class.get(frame_support::pallet_prelude::DispatchClass::Normal).max_total + .unwrap_or(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + pub MaxScheduledPerBlock: u32 = 50; +} + +impl pallet_scheduler::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type PalletsOrigin = OriginCaller; + type RuntimeCall = RuntimeCall; + type MaximumWeight = MaximumSchedulerWeight; + type ScheduleOrigin = EnsureRoot; + type MaxScheduledPerBlock = MaxScheduledPerBlock; + type WeightInfo = pallet_scheduler::weights::SubstrateWeight; + type OriginPrivilegeCmp = EqualPrivilegeOnly; + type Preimages = Preimage; +} --- /dev/null +++ b/runtime/common/config/pallets/governance/technical_committee.rs @@ -0,0 +1,57 @@ +use super::*; + +parameter_types! { + pub TechnicalMaxProposals: u32 = 100; + pub TechnicalMaxMembers: u32 = 100; +} + +#[cfg(not(feature = "test-env"))] +use crate::governance_timings::technical_committee as technical_committee_timings; + +#[cfg(feature = "test-env")] +pub mod technical_committee_timings { + use super::*; + + parameter_types! { + pub TechnicalMotionDuration: BlockNumber = 35; + } +} + +pub type TechnicalCollective = pallet_collective::Instance2; +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = technical_committee_timings::TechnicalMotionDuration; + type MaxProposals = TechnicalMaxProposals; + type MaxMembers = TechnicalMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type WeightInfo = pallet_collective::weights::SubstrateWeight; + type SetMembersOrigin = EnsureRoot; + type MaxProposalWeight = MaxCollectivesProposalWeight; +} + +pub type TechnicalCollectiveMembership = pallet_membership::Instance2; +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = RootOrMoreThanHalfCouncil; + type RemoveOrigin = RootOrMoreThanHalfCouncil; + type SwapOrigin = RootOrMoreThanHalfCouncil; + type ResetOrigin = EnsureRoot; + type PrimeOrigin = EnsureRoot; + type MembershipInitialized = TechnicalCommittee; + type MembershipChanged = TechnicalCommittee; + type MaxMembers = TechnicalMaxMembers; + type WeightInfo = pallet_membership::weights::SubstrateWeight; +} + +pub type TechnicalCommitteeMember = pallet_collective::EnsureMember; + +pub type RootOrTechnicalCommitteeMember = + EitherOfDiverse, TechnicalCommitteeMember>; + +pub type AllTechnicalCommittee = + pallet_collective::EnsureProportionAtLeast; + +pub type RootOrAllTechnicalCommittee = + EitherOfDiverse, AllTechnicalCommittee>; --- a/runtime/common/config/pallets/mod.rs +++ b/runtime/common/config/pallets/mod.rs @@ -37,7 +37,7 @@ }; use sp_arithmetic::Perbill; -#[cfg(feature = "scheduler")] +#[cfg(feature = "unique-scheduler")] pub mod scheduler; #[cfg(feature = "foreign-assets")] @@ -52,6 +52,9 @@ #[cfg(feature = "preimage")] pub mod preimage; +#[cfg(feature = "governance")] +pub mod governance; + parameter_types! { pub const CollectionCreationPrice: Balance = 2 * UNIQUE; pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account_truncating(); @@ -143,8 +146,17 @@ impl pallet_maintenance::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + + #[cfg(feature = "governance")] + type ManagerOrigin = governance::RootOrTechnicalCommitteeMember; + + #[cfg(not(feature = "governance"))] + type ManagerOrigin = frame_system::EnsureRoot; + + type PreimageOrigin = frame_system::EnsureRoot; + #[cfg(feature = "preimage")] type Preimages = crate::Preimage; #[cfg(not(feature = "preimage"))] --- a/runtime/common/config/xcm/mod.rs +++ b/runtime/common/config/xcm/mod.rs @@ -49,6 +49,9 @@ #[cfg(not(feature = "foreign-assets"))] pub use nativeassets as xcm_assets; +#[cfg(feature = "governance")] +use crate::runtime_common::config::pallets::governance; + use xcm_assets::{AssetTransactor, IsReserve, Trader}; parameter_types! { @@ -238,7 +241,13 @@ type ChannelInfo = ParachainSystem; type VersionWrapper = PolkadotXcm; type ExecuteOverweightOrigin = frame_system::EnsureRoot; - type ControllerOrigin = EnsureRoot; + + #[cfg(feature = "governance")] + type ControllerOrigin = governance::RootOrTechnicalCommitteeMember; + + #[cfg(not(feature = "governance"))] + type ControllerOrigin = frame_system::EnsureRoot; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type PriceForSiblingDelivery = (); } --- a/runtime/common/construct_runtime.rs +++ b/runtime/common/construct_runtime.rs @@ -60,6 +60,33 @@ #[cfg(feature = "preimage")] Preimage: pallet_preimage = 41, + #[cfg(feature = "governance")] + Democracy: pallet_democracy = 42, + + #[cfg(feature = "governance")] + Council: pallet_collective:: = 43, + + #[cfg(feature = "governance")] + TechnicalCommittee: pallet_collective:: = 44, + + #[cfg(feature = "governance")] + CouncilMembership: pallet_membership:: = 45, + + #[cfg(feature = "governance")] + TechnicalCommitteeMembership: pallet_membership:: = 46, + + #[cfg(feature = "governance")] + FellowshipCollective: pallet_ranked_collective = 47, + + #[cfg(feature = "governance")] + FellowshipReferenda: pallet_referenda = 48, + + #[cfg(feature = "governance")] + Scheduler: pallet_scheduler = 49, + + #[cfg(feature = "governance")] + Origins: pallet_gov_origins = 99, + // XCM helpers. XcmpQueue: cumulus_pallet_xcmp_queue = 50, PolkadotXcm: pallet_xcm = 51, @@ -71,7 +98,7 @@ Unique: pallet_unique::{Pallet, Call, Storage} = 61, // #[cfg(feature = "scheduler")] - // Scheduler: pallet_unique_scheduler_v2 = 62, + // UniqueScheduler: pallet_unique_scheduler_v2 = 62, Configuration: pallet_configuration = 63, @@ -109,7 +136,7 @@ BalancesAdapter: pallet_balances_adapter = 155, - #[cfg(feature = "pallet-test-utils")] + #[cfg(feature = "test-env")] TestUtils: pallet_test_utils = 255, } } --- a/runtime/common/maintenance.rs +++ b/runtime/common/maintenance.rs @@ -67,7 +67,7 @@ | RuntimeCall::Structure(_) | RuntimeCall::Unique(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)), - #[cfg(feature = "scheduler")] + #[cfg(feature = "unique-scheduler")] RuntimeCall::Scheduler(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)), #[cfg(feature = "app-promotion")] @@ -85,7 +85,7 @@ | RuntimeCall::Session(_) | RuntimeCall::Identity(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)), - #[cfg(feature = "pallet-test-utils")] + #[cfg(feature = "test-env")] RuntimeCall::TestUtils(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)), _ => Ok(ValidTransaction::default()), --- a/runtime/common/mod.rs +++ b/runtime/common/mod.rs @@ -23,7 +23,7 @@ pub mod maintenance; pub mod runtime_apis; -#[cfg(feature = "scheduler")] +#[cfg(feature = "unique-scheduler")] pub mod scheduler; pub mod sponsoring; --- a/runtime/common/runtime_apis.rs +++ b/runtime/common/runtime_apis.rs @@ -598,7 +598,7 @@ #[cfg(feature = "refungible")] list_benchmark!(list, extra, pallet_refungible, Refungible); - #[cfg(feature = "scheduler")] + #[cfg(feature = "unique-scheduler")] list_benchmark!(list, extra, pallet_unique_scheduler_v2, Scheduler); #[cfg(feature = "collator-selection")] @@ -664,7 +664,7 @@ #[cfg(feature = "refungible")] add_benchmark!(params, batches, pallet_refungible, Refungible); - #[cfg(feature = "scheduler")] + #[cfg(feature = "unique-scheduler")] add_benchmark!(params, batches, pallet_unique_scheduler_v2, Scheduler); #[cfg(feature = "collator-selection")] --- a/runtime/opal/Cargo.toml +++ b/runtime/opal/Cargo.toml @@ -17,9 +17,16 @@ [features] default = ['opal-runtime', 'std'] -state-version-0 = [] limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing'] -opal-runtime = ['app-promotion', 'collator-selection', 'foreign-assets', 'pallet-test-utils', 'preimage', 'refungible'] +opal-runtime = [ + 'app-promotion', + 'collator-selection', + 'foreign-assets', + 'governance', + 'test-env', + 'preimage', + 'refungible', +] pov-estimate = [] runtime-benchmarks = [ "pallet-preimage/runtime-benchmarks", @@ -42,6 +49,12 @@ 'pallet-inflation/runtime-benchmarks', 'pallet-maintenance/runtime-benchmarks', 'pallet-nonfungible/runtime-benchmarks', + 'pallet-democracy/runtime-benchmarks', + 'pallet-collective/runtime-benchmarks', + 'pallet-ranked-collective/runtime-benchmarks', + 'pallet-membership/runtime-benchmarks', + 'pallet-referenda/runtime-benchmarks', + 'pallet-scheduler/runtime-benchmarks', 'pallet-refungible/runtime-benchmarks', 'pallet-structure/runtime-benchmarks', 'pallet-timestamp/runtime-benchmarks', @@ -51,6 +64,7 @@ 'sp-runtime/runtime-benchmarks', 'xcm-builder/runtime-benchmarks', ] +state-version-0 = [] std = [ 'codec/std', 'cumulus-pallet-aura-ext/std', @@ -66,6 +80,13 @@ 'frame-try-runtime/std', 'pallet-aura/std', 'pallet-balances/std', + 'pallet-democracy/std', + 'pallet-collective/std', + 'pallet-ranked-collective/std', + 'pallet-membership/std', + 'pallet-referenda/std', + 'pallet-gov-origins/std', + 'pallet-scheduler/std', # 'pallet-contracts/std', # 'pallet-contracts-primitives/std', # 'pallet-contracts-rpc-runtime-api/std', @@ -160,12 +181,14 @@ 'orml-xtokens/try-runtime', 'pallet-app-promotion/try-runtime', 'pallet-aura/try-runtime', + 'pallet-balances-adapter/try-runtime', 'pallet-balances/try-runtime', - 'pallet-balances-adapter/try-runtime', 'pallet-base-fee/try-runtime', 'pallet-charge-transaction/try-runtime', + 'pallet-collective/try-runtime', 'pallet-common/try-runtime', 'pallet-configuration/try-runtime', + 'pallet-democracy/try-runtime', 'pallet-ethereum/try-runtime', 'pallet-evm-coder-substrate/try-runtime', 'pallet-evm-contract-helpers/try-runtime', @@ -176,8 +199,17 @@ 'pallet-fungible/try-runtime', 'pallet-inflation/try-runtime', 'pallet-maintenance/try-runtime', + 'pallet-membership/try-runtime', 'pallet-nonfungible/try-runtime', + 'pallet-democracy/try-runtime', + 'pallet-collective/try-runtime', + 'pallet-ranked-collective/try-runtime', + 'pallet-membership/try-runtime', + 'pallet-referenda/try-runtime', + 'pallet-gov-origins/try-runtime', + 'pallet-scheduler/try-runtime', 'pallet-refungible/try-runtime', + 'pallet-scheduler/try-runtime', 'pallet-structure/try-runtime', 'pallet-sudo/try-runtime', 'pallet-test-utils/try-runtime', @@ -193,10 +225,11 @@ app-promotion = [] collator-selection = [] foreign-assets = [] -pallet-test-utils = [] +governance = [] +test-env = [] preimage = [] refungible = [] -scheduler = [] +unique-scheduler = [] ################################################################################ # local dependencies @@ -282,6 +315,13 @@ pallet-inflation = { workspace = true } pallet-maintenance = { workspace = true } pallet-nonfungible = { workspace = true } +pallet-democracy = { workspace = true } +pallet-collective = { workspace = true } +pallet-ranked-collective = { workspace = true } +pallet-membership = { workspace = true } +pallet-referenda = { workspace = true } +pallet-gov-origins = { workspace = true } +pallet-scheduler = { workspace = true } pallet-refungible = { workspace = true } pallet-structure = { workspace = true } pallet-unique = { workspace = true } @@ -310,8 +350,8 @@ ################################################################################ # Other Dependencies -impl-trait-for-tuples = { workspace = true } hex-literal = { workspace = true } +impl-trait-for-tuples = { workspace = true } [build-dependencies] substrate-wasm-builder = { workspace = true } --- a/runtime/quartz/Cargo.toml +++ b/runtime/quartz/Cargo.toml @@ -18,10 +18,9 @@ [features] become-sapphire = [] default = ['quartz-runtime', 'std'] -state-version-0 = [] limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing'] pov-estimate = [] -quartz-runtime = ['app-promotion', 'collator-selection', 'foreign-assets', 'preimage', 'refungible'] +quartz-runtime = ['app-promotion', 'collator-selection', 'foreign-assets', 'governance', 'preimage', 'refungible'] runtime-benchmarks = [ "pallet-preimage/runtime-benchmarks", 'cumulus-pallet-parachain-system/runtime-benchmarks', @@ -32,8 +31,10 @@ 'pallet-app-promotion/runtime-benchmarks', 'pallet-balances/runtime-benchmarks', 'pallet-collator-selection/runtime-benchmarks', + 'pallet-collective/runtime-benchmarks', 'pallet-common/runtime-benchmarks', 'pallet-configuration/runtime-benchmarks', + 'pallet-democracy/runtime-benchmarks', 'pallet-ethereum/runtime-benchmarks', 'pallet-evm-coder-substrate/runtime-benchmarks', 'pallet-evm-migration/runtime-benchmarks', @@ -42,8 +43,16 @@ 'pallet-identity/runtime-benchmarks', 'pallet-inflation/runtime-benchmarks', 'pallet-maintenance/runtime-benchmarks', + 'pallet-membership/runtime-benchmarks', 'pallet-nonfungible/runtime-benchmarks', + 'pallet-democracy/runtime-benchmarks', + 'pallet-collective/runtime-benchmarks', + 'pallet-ranked-collective/runtime-benchmarks', + 'pallet-membership/runtime-benchmarks', + 'pallet-referenda/runtime-benchmarks', + 'pallet-scheduler/runtime-benchmarks', 'pallet-refungible/runtime-benchmarks', + 'pallet-scheduler/runtime-benchmarks', 'pallet-structure/runtime-benchmarks', 'pallet-timestamp/runtime-benchmarks', 'pallet-unique/runtime-benchmarks', @@ -51,6 +60,7 @@ 'sp-runtime/runtime-benchmarks', 'xcm-builder/runtime-benchmarks', ] +state-version-0 = [] std = [ 'codec/std', 'cumulus-pallet-aura-ext/std', @@ -65,8 +75,12 @@ 'frame-system/std', 'frame-try-runtime/std', 'pallet-aura/std', + 'pallet-balances-adapter/std', 'pallet-balances/std', - 'pallet-balances-adapter/std', + 'pallet-collective/std', + 'pallet-democracy/std', + 'pallet-membership/std', + 'pallet-scheduler/std', # 'pallet-contracts/std', # 'pallet-contracts-primitives/std', # 'pallet-contracts-rpc-runtime-api/std', @@ -96,6 +110,13 @@ 'pallet-fungible/std', 'pallet-inflation/std', 'pallet-nonfungible/std', + 'pallet-democracy/std', + 'pallet-collective/std', + 'pallet-ranked-collective/std', + 'pallet-membership/std', + 'pallet-referenda/std', + 'pallet-gov-origins/std', + 'pallet-scheduler/std', 'pallet-refungible/std', 'pallet-structure/std', 'pallet-sudo/std', @@ -156,8 +177,8 @@ 'orml-xtokens/try-runtime', 'pallet-app-promotion/try-runtime', 'pallet-aura/try-runtime', + 'pallet-balances-adapter/try-runtime', 'pallet-balances/try-runtime', - 'pallet-balances-adapter/try-runtime', 'pallet-charge-transaction/try-runtime', 'pallet-common/try-runtime', 'pallet-configuration/try-runtime', @@ -172,6 +193,13 @@ 'pallet-inflation/try-runtime', 'pallet-maintenance/try-runtime', 'pallet-nonfungible/try-runtime', + 'pallet-democracy/try-runtime', + 'pallet-collective/try-runtime', + 'pallet-ranked-collective/try-runtime', + 'pallet-membership/try-runtime', + 'pallet-referenda/try-runtime', + 'pallet-gov-origins/try-runtime', + 'pallet-scheduler/try-runtime', 'pallet-refungible/try-runtime', 'pallet-structure/try-runtime', 'pallet-sudo/try-runtime', @@ -186,9 +214,11 @@ app-promotion = [] collator-selection = [] foreign-assets = [] +governance = [] preimage = [] refungible = [] -scheduler = [] +unique-scheduler = [] +test-env = [] ################################################################################ # local dependencies @@ -259,6 +289,13 @@ pallet-identity = { workspace = true } pallet-inflation = { workspace = true } pallet-nonfungible = { workspace = true } +pallet-democracy = { workspace = true } +pallet-collective = { workspace = true } +pallet-ranked-collective = { workspace = true } +pallet-membership = { workspace = true } +pallet-referenda = { workspace = true } +pallet-gov-origins = { workspace = true } +pallet-scheduler = { workspace = true } pallet-refungible = { workspace = true } pallet-structure = { workspace = true } pallet-unique = { workspace = true } @@ -303,8 +340,8 @@ ################################################################################ # Other Dependencies -impl-trait-for-tuples = { workspace = true } hex-literal = { workspace = true } +impl-trait-for-tuples = { workspace = true } [build-dependencies] substrate-wasm-builder = { workspace = true } --- /dev/null +++ b/runtime/quartz/src/governance_timings.rs @@ -0,0 +1,54 @@ +use frame_support::parameter_types; +pub use up_common::{ + constants::{DAYS, HOURS, MINUTES}, + types::BlockNumber, +}; + +pub mod council { + use super::*; + + parameter_types! { + pub CouncilMotionDuration: BlockNumber = 7 * DAYS; + } +} + +pub mod democracy { + use super::*; + + parameter_types! { + pub LaunchPeriod: BlockNumber = 7 * DAYS; + pub VotingPeriod: BlockNumber = 7 * DAYS; + pub FastTrackVotingPeriod: BlockNumber = 1 * DAYS; + pub EnactmentPeriod: BlockNumber = 8 * DAYS; + pub CooloffPeriod: BlockNumber = 7 * DAYS; + } +} + +pub mod fellowship { + use super::*; + + parameter_types! { + pub UndecidingTimeout: BlockNumber = 7 * DAYS; + } + + pub mod track { + use super::*; + + pub mod democracy_proposals { + use super::*; + + pub const PREPARE_PERIOD: BlockNumber = 30 * MINUTES; + pub const DECISION_PERIOD: BlockNumber = 7 * DAYS; + pub const CONFIRM_PERIOD: BlockNumber = 2 * DAYS; + pub const MIN_ENACTMENT_PERIOD: BlockNumber = 1 * MINUTES; + } + } +} + +pub mod technical_committee { + use super::*; + + parameter_types! { + pub TechnicalMotionDuration: BlockNumber = 3 * DAYS; + } +} --- a/runtime/quartz/src/lib.rs +++ b/runtime/quartz/src/lib.rs @@ -38,6 +38,7 @@ mod runtime_common; +pub mod governance_timings; pub mod xcm_barrier; pub use runtime_common::*; --- a/runtime/unique/Cargo.toml +++ b/runtime/unique/Cargo.toml @@ -17,7 +17,6 @@ [features] default = ['std', 'unique-runtime'] -state-version-0 = [] limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing'] pov-estimate = [] runtime-benchmarks = [ @@ -29,8 +28,10 @@ 'pallet-app-promotion/runtime-benchmarks', 'pallet-balances/runtime-benchmarks', 'pallet-collator-selection/runtime-benchmarks', + 'pallet-collective/runtime-benchmarks', 'pallet-common/runtime-benchmarks', 'pallet-configuration/runtime-benchmarks', + 'pallet-democracy/runtime-benchmarks', 'pallet-ethereum/runtime-benchmarks', 'pallet-evm-coder-substrate/runtime-benchmarks', 'pallet-evm-migration/runtime-benchmarks', @@ -39,8 +40,16 @@ 'pallet-identity/runtime-benchmarks', 'pallet-inflation/runtime-benchmarks', 'pallet-maintenance/runtime-benchmarks', + 'pallet-membership/runtime-benchmarks', 'pallet-nonfungible/runtime-benchmarks', + 'pallet-democracy/runtime-benchmarks', + 'pallet-collective/runtime-benchmarks', + 'pallet-ranked-collective/runtime-benchmarks', + 'pallet-membership/runtime-benchmarks', + 'pallet-referenda/runtime-benchmarks', + 'pallet-scheduler/runtime-benchmarks', 'pallet-refungible/runtime-benchmarks', + 'pallet-scheduler/runtime-benchmarks', 'pallet-structure/runtime-benchmarks', 'pallet-timestamp/runtime-benchmarks', 'pallet-unique/runtime-benchmarks', @@ -49,6 +58,7 @@ 'up-data-structs/runtime-benchmarks', 'xcm-builder/runtime-benchmarks', ] +state-version-0 = [] std = [ 'codec/std', 'cumulus-pallet-aura-ext/std', @@ -64,6 +74,10 @@ 'frame-try-runtime/std', 'pallet-aura/std', 'pallet-balances/std', + 'pallet-collective/std', + 'pallet-democracy/std', + 'pallet-membership/std', + 'pallet-scheduler/std', # 'pallet-contracts/std', # 'pallet-contracts-primitives/std', # 'pallet-contracts-rpc-runtime-api/std', @@ -94,6 +108,13 @@ 'pallet-fungible/std', 'pallet-inflation/std', 'pallet-nonfungible/std', + 'pallet-democracy/std', + 'pallet-collective/std', + 'pallet-ranked-collective/std', + 'pallet-membership/std', + 'pallet-referenda/std', + 'pallet-gov-origins/std', + 'pallet-scheduler/std', 'pallet-refungible/std', 'pallet-structure/std', 'pallet-sudo/std', @@ -154,11 +175,13 @@ 'orml-xtokens/try-runtime', 'pallet-app-promotion/try-runtime', 'pallet-aura/try-runtime', - 'pallet-balances/try-runtime', 'pallet-balances-adapter/try-runtime', + 'pallet-balances/try-runtime', 'pallet-charge-transaction/try-runtime', + 'pallet-collective/try-runtime', 'pallet-common/try-runtime', 'pallet-configuration/try-runtime', + 'pallet-democracy/try-runtime', 'pallet-ethereum/try-runtime', 'pallet-evm-coder-substrate/try-runtime', 'pallet-evm-contract-helpers/try-runtime', @@ -169,8 +192,17 @@ 'pallet-fungible/try-runtime', 'pallet-inflation/try-runtime', 'pallet-maintenance/try-runtime', + 'pallet-membership/try-runtime', 'pallet-nonfungible/try-runtime', + 'pallet-democracy/try-runtime', + 'pallet-collective/try-runtime', + 'pallet-ranked-collective/try-runtime', + 'pallet-membership/try-runtime', + 'pallet-referenda/try-runtime', + 'pallet-gov-origins/try-runtime', + 'pallet-scheduler/try-runtime', 'pallet-refungible/try-runtime', + 'pallet-scheduler/try-runtime', 'pallet-structure/try-runtime', 'pallet-sudo/try-runtime', 'pallet-timestamp/try-runtime', @@ -185,9 +217,11 @@ app-promotion = [] collator-selection = [] foreign-assets = [] +governance = [] preimage = [] refungible = [] -scheduler = [] +unique-scheduler = [] +test-env = [] ################################################################################ # local dependencies @@ -257,6 +291,13 @@ pallet-identity = { workspace = true } pallet-inflation = { workspace = true } pallet-nonfungible = { workspace = true } +pallet-democracy = { workspace = true } +pallet-collective = { workspace = true } +pallet-ranked-collective = { workspace = true } +pallet-membership = { workspace = true } +pallet-referenda = { workspace = true } +pallet-gov-origins = { workspace = true } +pallet-scheduler = { workspace = true } pallet-refungible = { workspace = true } pallet-structure = { workspace = true } pallet-unique = { workspace = true } @@ -301,8 +342,8 @@ ################################################################################ # Other Dependencies -impl-trait-for-tuples = { workspace = true } hex-literal = { workspace = true } +impl-trait-for-tuples = { workspace = true } [build-dependencies] substrate-wasm-builder = { workspace = true } --- /dev/null +++ b/runtime/unique/src/governance_timings.rs @@ -0,0 +1,54 @@ +use frame_support::parameter_types; +pub use up_common::{ + constants::{DAYS, HOURS, MINUTES}, + types::BlockNumber, +}; + +pub mod council { + use super::*; + + parameter_types! { + pub CouncilMotionDuration: BlockNumber = 7 * DAYS; + } +} + +pub mod democracy { + use super::*; + + parameter_types! { + pub LaunchPeriod: BlockNumber = 7 * DAYS; + pub VotingPeriod: BlockNumber = 7 * DAYS; + pub FastTrackVotingPeriod: BlockNumber = 1 * DAYS; + pub EnactmentPeriod: BlockNumber = 8 * DAYS; + pub CooloffPeriod: BlockNumber = 7 * DAYS; + } +} + +pub mod fellowship { + use super::*; + + parameter_types! { + pub UndecidingTimeout: BlockNumber = 7 * DAYS; + } + + pub mod track { + use super::*; + + pub mod democracy_proposals { + use super::*; + + pub const PREPARE_PERIOD: BlockNumber = 30 * MINUTES; + pub const DECISION_PERIOD: BlockNumber = 7 * DAYS; + pub const CONFIRM_PERIOD: BlockNumber = 2 * DAYS; + pub const MIN_ENACTMENT_PERIOD: BlockNumber = 1 * MINUTES; + } + } +} + +pub mod technical_committee { + use super::*; + + parameter_types! { + pub TechnicalMotionDuration: BlockNumber = 3 * DAYS; + } +} --- a/runtime/unique/src/lib.rs +++ b/runtime/unique/src/lib.rs @@ -38,6 +38,7 @@ mod runtime_common; +pub mod governance_timings; pub mod xcm_barrier; pub use runtime_common::*; --- a/tests/package.json +++ b/tests/package.json @@ -43,6 +43,7 @@ "testParallel": "yarn _testParallel './src/**/*.test.ts'", "testSequential": "yarn _test './src/**/*.seqtest.ts'", "testStructure": "yarn _test ./**/nesting/*.*test.ts", + "testGovernance": "RUN_GOV_TESTS=1 yarn _test ./**/governance/*.*test.ts", "testEth": "yarn _test './**/eth/**/*.*test.ts'", "testEthNesting": "yarn _test './**/eth/nesting/**/*.*test.ts'", "testEthFractionalizer": "yarn _test './**/eth/fractionalizer/**/*.*test.ts'", @@ -107,6 +108,8 @@ "testRPC": "yarn _test ./**/rpc.test.ts", "testPromotion": "yarn _test ./**/appPromotion/*test.ts", "testApiConsts": "yarn _test ./**/apiConsts.test.ts", + "testCouncil": "yarn _test ./**/council.*test.ts", + "testDemocracy": "yarn _test ./**/democracy.*test.ts", "testCollators": "RUN_COLLATOR_TESTS=1 yarn _test ./**/collator-selection/**.*test.ts --timeout 49999999", "testCollatorSelection": "RUN_COLLATOR_TESTS=1 yarn _test ./**/collatorSelection.*test.ts --timeout 49999999", "testIdentity": "RUN_COLLATOR_TESTS=1 yarn _test ./**/identity.*test.ts --timeout 49999999", @@ -151,4 +154,4 @@ "decode-uri-component": "^0.2.1" }, "type": "module" -} +} \ No newline at end of file --- a/tests/src/eth/scheduling.test.ts +++ b/tests/src/eth/scheduling.test.ts @@ -26,7 +26,7 @@ }); }); - itSchedEth.ifWithPallets('Successfully schedules and periodically executes an EVM contract', [Pallets.Scheduler], async (scheduleKind, {helper, privateKey}) => { + itSchedEth.ifWithPallets('Successfully schedules and periodically executes an EVM contract', [Pallets.UniqueScheduler], async (scheduleKind, {helper, privateKey}) => { const donor = await privateKey({url: import.meta.url}); const [alice] = await helper.arrange.createAccounts([1000n], donor); --- /dev/null +++ b/tests/src/governance/council.test.ts @@ -0,0 +1,446 @@ + +import {IKeyringPair} from '@polkadot/types/types'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../util'; +import {Event} from '../util/playgrounds/unique.dev'; +import {ICounselors, initCouncil, democracyLaunchPeriod, democracyVotingPeriod, democracyEnactmentPeriod, councilMotionDuration, democracyFastTrackVotingPeriod, fellowshipRankLimit, clearCouncil, clearTechComm, initTechComm, clearFellowship, dummyProposal, dummyProposalCall, initFellowship, defaultEnactmentMoment, fellowshipPropositionOrigin} from './util'; + +describeGov('Governance: Council tests', () => { + let donor: IKeyringPair; + let counselors: ICounselors; + let sudoer: IKeyringPair; + + const moreThanHalfCouncilThreshold = 3; + + before(async function() { + await usingPlaygrounds(async (helper, privateKey) => { + requirePalletsOrSkip(this, helper, [Pallets.Council]); + + donor = await privateKey({url: import.meta.url}); + sudoer = await privateKey('//Alice'); + }); + }); + + beforeEach(async () => { + counselors = await initCouncil(donor, sudoer); + }); + + afterEach(async () => { + await clearCouncil(sudoer); + await clearTechComm(sudoer); + }); + + async function proposalFromMoreThanHalfCouncil(proposal: any) { + return await usingPlaygrounds(async (helper) => { + expect((await helper.callRpc('api.query.councilMembership.members')).toJSON().length).to.be.equal(5); + const proposeResult = await helper.council.collective.propose( + counselors.filip, + proposal, + moreThanHalfCouncilThreshold, + ); + + const councilProposedEvent = Event.Council.Proposed.expect(proposeResult); + const proposalIndex = councilProposedEvent.proposalIndex; + const proposalHash = councilProposedEvent.proposalHash; + + + await helper.council.collective.vote(counselors.alex, proposalHash, proposalIndex, true); + await helper.council.collective.vote(counselors.charu, proposalHash, proposalIndex, true); + await helper.council.collective.vote(counselors.filip, proposalHash, proposalIndex, true); + + return await helper.council.collective.close(counselors.filip, proposalHash, proposalIndex); + }); + } + + async function proposalFromAllCouncil(proposal: any) { + return await usingPlaygrounds(async (helper) => { + expect((await helper.callRpc('api.query.councilMembership.members')).toJSON().length).to.be.equal(5); + const proposeResult = await helper.council.collective.propose( + counselors.filip, + proposal, + moreThanHalfCouncilThreshold, + ); + + const councilProposedEvent = Event.Council.Proposed.expect(proposeResult); + const proposalIndex = councilProposedEvent.proposalIndex; + const proposalHash = councilProposedEvent.proposalHash; + + + await helper.council.collective.vote(counselors.alex, proposalHash, proposalIndex, true); + await helper.council.collective.vote(counselors.charu, proposalHash, proposalIndex, true); + await helper.council.collective.vote(counselors.ildar, proposalHash, proposalIndex, true); + await helper.council.collective.vote(counselors.irina, proposalHash, proposalIndex, true); + await helper.council.collective.vote(counselors.filip, proposalHash, proposalIndex, true); + + return await helper.council.collective.close(counselors.filip, proposalHash, proposalIndex); + }); + } + + itSub('>50% of Council can externally propose SuperMajorityAgainst', async ({helper}) => { + const forceSetBalanceReceiver = helper.arrange.createEmptyAccount(); + const forceSetBalanceTestValue = 20n * 10n ** 25n; + + const democracyProposal = await helper.constructApiCall('api.tx.balances.forceSetBalance', [ + forceSetBalanceReceiver.address, forceSetBalanceTestValue, + ]); + + const councilProposal = await helper.democracy.externalProposeDefaultCall(democracyProposal); + + const proposeResult = await helper.council.collective.propose( + counselors.filip, + councilProposal, + moreThanHalfCouncilThreshold, + ); + + const councilProposedEvent = Event.Council.Proposed.expect(proposeResult); + const proposalIndex = councilProposedEvent.proposalIndex; + const proposalHash = councilProposedEvent.proposalHash; + + await helper.council.collective.vote(counselors.alex, proposalHash, proposalIndex, true); + await helper.council.collective.vote(counselors.charu, proposalHash, proposalIndex, true); + await helper.council.collective.vote(counselors.filip, proposalHash, proposalIndex, true); + + await helper.council.collective.close(counselors.filip, proposalHash, proposalIndex); + + const democracyStartedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const democracyReferendumIndex = democracyStartedEvent.referendumIndex; + const democracyThreshold = democracyStartedEvent.threshold; + + expect(democracyThreshold).to.be.equal('SuperMajorityAgainst'); + + await helper.democracy.vote(counselors.filip, democracyReferendumIndex, { + Standard: { + vote: { + aye: true, + conviction: 1, + }, + balance: 10_000n, + }, + }); + + const passedReferendumEvent = await helper.wait.expectEvent(democracyVotingPeriod, Event.Democracy.Passed); + expect(passedReferendumEvent.referendumIndex).to.be.equal(democracyReferendumIndex); + + await helper.wait.expectEvent(democracyEnactmentPeriod, Event.Scheduler.Dispatched); + const receiverBalance = await helper.balance.getSubstrate(forceSetBalanceReceiver.address); + expect(receiverBalance).to.be.equal(forceSetBalanceTestValue); + }); + + itSub('Council prime member vote is the default', async ({helper}) => { + const newTechCommMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.technicalCommittee.membership.addMemberCall(newTechCommMember.address); + const proposeResult = await helper.council.collective.propose( + counselors.filip, + addMemberProposal, + moreThanHalfCouncilThreshold, + ); + + const councilProposedEvent = Event.Council.Proposed.expect(proposeResult); + const proposalIndex = councilProposedEvent.proposalIndex; + const proposalHash = councilProposedEvent.proposalHash; + + await helper.council.collective.vote(counselors.alex, proposalHash, proposalIndex, true); + + await helper.wait.newBlocks(councilMotionDuration); + const closeResult = await helper.council.collective.close(counselors.filip, proposalHash, proposalIndex); + const closeEvent = Event.Council.Closed.expect(closeResult); + const members = (await helper.callRpc('api.query.councilMembership.members')).toJSON() as string[]; + expect(closeEvent.yes).to.be.equal(members.length); + }); + + itSub('Superuser can add a member', async ({helper}) => { + const newMember = helper.arrange.createEmptyAccount(); + await expect(helper.getSudo().council.membership.addMember(sudoer, newMember.address)).to.be.fulfilled; + + const members = (await helper.callRpc('api.query.councilMembership.members')).toJSON(); + expect(members).to.contains(newMember.address); + }); + + itSub('Superuser can remove a member', async ({helper}) => { + await expect(helper.getSudo().council.membership.removeMember(sudoer, counselors.alex.address)).to.be.fulfilled; + + const members = (await helper.callRpc('api.query.councilMembership.members')).toJSON(); + expect(members).to.not.contains(counselors.alex.address); + }); + + itSub('>50% Council can add TechComm member', async ({helper}) => { + const newTechCommMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.technicalCommittee.membership.addMemberCall(newTechCommMember.address); + + await proposalFromMoreThanHalfCouncil(addMemberProposal); + + const techCommMembers = (await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON(); + expect(techCommMembers).to.contains(newTechCommMember.address); + }); + + itSub('Council can remove TechComm member', async ({helper}) => { + const techComm = await initTechComm(donor, sudoer); + const removeMemberPrpoposal = helper.technicalCommittee.membership.removeMemberCall(techComm.andy.address); + await proposalFromMoreThanHalfCouncil(removeMemberPrpoposal); + + const techCommMembers = (await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON(); + expect(techCommMembers).to.not.contains(techComm.andy.address); + }); + + itSub.skip('Council member can add Fellowship member', async ({helper}) => { + const newFellowshipMember = helper.arrange.createEmptyAccount(); + await expect(helper.council.collective.execute( + counselors.alex, + helper.fellowship.collective.addMemberCall(newFellowshipMember.address), + )).to.be.fulfilled; + const fellowshipMembers = (await helper.callRpc('api.query.fellowshipCollective.members')).toJSON(); + expect(fellowshipMembers).to.contains(newFellowshipMember.address); + }); + + itSub('>50% Council can promote Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const memberWithZeroRank = fellowship[0][0]; + + const proposal = helper.fellowship.collective.promoteCall(memberWithZeroRank.address); + await proposalFromMoreThanHalfCouncil(proposal); + const record = (await helper.callRpc('api.query.fellowshipCollective.members', [memberWithZeroRank.address])).toJSON(); + expect(record).to.be.deep.equal({rank: 1}); + + await clearFellowship(sudoer); + }); + + itSub('>50% Council can demote Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const memberWithRankOne = fellowship[1][0]; + + const proposal = helper.fellowship.collective.demoteCall(memberWithRankOne.address); + await proposalFromMoreThanHalfCouncil(proposal); + + const record = (await helper.callRpc('api.query.fellowshipCollective.members', [memberWithRankOne.address])).toJSON(); + expect(record).to.be.deep.equal({rank: 0}); + + await clearFellowship(sudoer); + }); + + itSub('>50% Council can add\remove Fellowship member', async ({helper}) => { + try { + const newMember = helper.arrange.createEmptyAccount(); + + const proposalAdd = helper.fellowship.collective.addMemberCall(newMember.address); + const proposalRemove = helper.fellowship.collective.removeMemberCall(newMember.address, fellowshipRankLimit); + await expect(proposalFromMoreThanHalfCouncil(proposalAdd)).to.be.fulfilled; + expect(await helper.fellowship.collective.getMembers()).to.be.deep.contain(newMember.address); + await expect(proposalFromMoreThanHalfCouncil(proposalRemove)).to.be.fulfilled; + expect(await helper.fellowship.collective.getMembers()).to.be.not.deep.contain(newMember.address); + } + finally { + await clearFellowship(sudoer); + } + }); + + itSub('Council can blacklist Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await expect(proposalFromAllCouncil(helper.democracy.blacklistCall(preimageHash, null))).to.be.fulfilled; + }); + + itSub('Sudo can blacklist Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await expect(helper.getSudo().democracy.blacklist(sudoer, preimageHash)).to.be.fulfilled; + }); + + itSub('[Negative] Council cannot add Council member', async ({helper}) => { + const newCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address); + + await expect(proposalFromAllCouncil(addMemberProposal)).to.be.rejected; + }); + + itSub('[Negative] Council cannot remove Council member', async ({helper}) => { + const removeMemberProposal = helper.council.membership.removeMemberCall(counselors.alex.address); + + await expect(proposalFromAllCouncil(removeMemberProposal)).to.be.rejected; + }); + + itSub('[Negative] Council cannot submit regular democracy proposal', async ({helper}) => { + const councilProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n); + + await expect(proposalFromAllCouncil(councilProposal)).to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Council cannot externally propose SimpleMajority', async ({helper}) => { + const councilProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper)); + + await expect(proposalFromAllCouncil(councilProposal)).to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Council cannot externally propose SuperMajorityApprove', async ({helper}) => { + const councilProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper)); + + await expect(proposalFromAllCouncil(councilProposal)).to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Council member cannot add/remove a Council member', async ({helper}) => { + const newCouncilMember = helper.arrange.createEmptyAccount(); + await expect(helper.council.collective.execute( + counselors.alex, + helper.council.membership.addMemberCall(newCouncilMember.address), + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.council.collective.execute( + counselors.alex, + helper.council.membership.removeMemberCall(counselors.charu.address), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council cannot set/clear Council prime member', async ({helper}) => { + const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address); + const proposalForClear = await helper.council.membership.clearPrimeCall(); + + await expect(proposalFromAllCouncil(proposalForSet)).to.be.rejectedWith(/BadOrigin/); + await expect(proposalFromAllCouncil(proposalForClear)).to.be.rejectedWith(/BadOrigin/); + + }); + + itSub('[Negative] Council member cannot set/clear Council prime member', async ({helper}) => { + await expect(helper.council.collective.execute( + counselors.alex, + helper.council.membership.setPrimeCall(counselors.charu.address), + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.council.collective.execute( + counselors.alex, + helper.council.membership.clearPrimeCall(), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council member cannot add/remove a TechComm member', async ({helper}) => { + const newTechCommMember = helper.arrange.createEmptyAccount(); + await expect(helper.council.collective.execute( + counselors.alex, + helper.technicalCommittee.membership.addMemberCall(newTechCommMember.address), + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.council.collective.execute( + counselors.alex, + helper.technicalCommittee.membership.removeMemberCall(newTechCommMember.address), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council member cannot promote/demote a Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const memberWithRankOne = fellowship[1][0]; + + await expect(helper.council.collective.execute( + counselors.alex, + helper.fellowship.collective.promoteCall(memberWithRankOne.address), + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.council.collective.execute( + counselors.alex, + helper.fellowship.collective.demoteCall(memberWithRankOne.address), + )).to.be.rejectedWith('BadOrigin'); + await clearFellowship(sudoer); + }); + + itSub('[Negative] Council cannot fast-track Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(proposalFromAllCouncil(helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0))) + .to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Council member cannot fast-track Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(helper.council.collective.execute( + counselors.alex, + helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council cannot cancel Democracy proposals', async ({helper}) => { + const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n); + const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex; + + await expect(proposalFromAllCouncil(helper.democracy.cancelProposalCall(proposalIndex))) + .to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Council member cannot cancel Democracy proposals', async ({helper}) => { + + const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n); + const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex; + + await expect(helper.council.collective.execute( + counselors.alex, + helper.democracy.cancelProposalCall(proposalIndex), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council cannot cancel ongoing Democracy referendums', async ({helper}) => { + await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper)); + const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const referendumIndex = startedEvent.referendumIndex; + + await expect(proposalFromAllCouncil(helper.democracy.emergencyCancelCall(referendumIndex))) + .to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Council member cannot cancel ongoing Democracy referendums', async ({helper}) => { + await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper)); + const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const referendumIndex = startedEvent.referendumIndex; + + await expect(helper.council.collective.execute( + counselors.alex, + helper.democracy.emergencyCancelCall(referendumIndex), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council cannot cancel Fellowship referendums', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const fellowshipProposer = fellowship[5][0]; + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + fellowshipProposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + + await expect(proposalFromAllCouncil(helper.fellowship.referenda.cancelCall(referendumIndex))) + .to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Council member cannot cancel Fellowship referendums', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const fellowshipProposer = fellowship[5][0]; + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + fellowshipProposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + await expect(helper.council.collective.execute( + counselors.alex, + helper.fellowship.referenda.cancelCall(referendumIndex), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council referendum cannot be closed until the voting threshold is met', async ({helper}) => { + const councilSize = (await helper.callRpc('api.query.councilMembership.members')).toJSON().length as any as number; + expect(councilSize).is.greaterThan(1); + const proposeResult = await helper.council.collective.propose( + counselors.filip, + dummyProposalCall(helper), + councilSize, + ); + + const councilProposedEvent = Event.Council.Proposed.expect(proposeResult); + const proposalIndex = councilProposedEvent.proposalIndex; + const proposalHash = councilProposedEvent.proposalHash; + + + await helper.council.collective.vote(counselors.alex, proposalHash, proposalIndex, true); + await expect(helper.council.collective.close(counselors.filip, proposalHash, proposalIndex)).to.be.rejectedWith('TooEarly'); + }); + +}); --- /dev/null +++ b/tests/src/governance/democracy.test.ts @@ -0,0 +1,89 @@ +import {IKeyringPair} from '@polkadot/types/types'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../util'; +import {clearFellowship, democracyLaunchPeriod, democracyTrackMinRank, dummyProposalCall, fellowshipConfirmPeriod, fellowshipMinEnactPeriod, fellowshipPreparePeriod, fellowshipPropositionOrigin, initFellowship, voteUnanimouslyInFellowship} from './util'; +import {Event} from '../util/playgrounds/unique.dev'; + +describeGov('Governance: Democracy tests', () => { + let regularUser: IKeyringPair; + let donor: IKeyringPair; + let sudoer: IKeyringPair; + + before(async function() { + await usingPlaygrounds(async (helper, privateKey) => { + requirePalletsOrSkip(this, helper, [Pallets.Democracy]); + + donor = await privateKey({url: import.meta.url}); + sudoer = await privateKey('//Alice'); + + [regularUser] = await helper.arrange.createAccounts([1000n], donor); + }); + }); + + itSub('Regular user can vote', async ({helper}) => { + const fellows = await initFellowship(donor, sudoer); + const rank1Proposer = fellows[1][0]; + + const democracyProposalCall = dummyProposalCall(helper); + const fellowshipProposal = { + Inline: helper.democracy.proposeCall(democracyProposalCall, 0n).method.toHex(), + }; + + const submitResult = await helper.fellowship.referenda.submit( + rank1Proposer, + fellowshipPropositionOrigin, + fellowshipProposal, + {After: 0}, + ); + + const fellowshipReferendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + await voteUnanimouslyInFellowship(helper, fellows, democracyTrackMinRank, fellowshipReferendumIndex); + await helper.fellowship.referenda.placeDecisionDeposit(donor, fellowshipReferendumIndex); + + await helper.wait.expectEvent( + fellowshipPreparePeriod + fellowshipConfirmPeriod + fellowshipMinEnactPeriod, + Event.Democracy.Proposed, + ); + + const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const referendumIndex = startedEvent.referendumIndex; + + const ayeBalance = 10_000n; + + await helper.democracy.vote(regularUser, referendumIndex, { + Standard: { + vote: { + aye: true, + conviction: 1, + }, + balance: ayeBalance, + }, + }); + + const referendumInfo = await helper.democracy.referendumInfo(referendumIndex); + const tally = referendumInfo.ongoing.tally; + + expect(BigInt(tally.ayes)).to.be.equal(ayeBalance); + + await clearFellowship(sudoer); + }); + + itSub('[Negative] Regular user cannot submit a regular proposal', async ({helper}) => { + const submitResult = helper.democracy.propose(regularUser, dummyProposalCall(helper), 0n); + await expect(submitResult).to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Regular user cannot externally propose SuperMajorityAgainst', async ({helper}) => { + const submitResult = helper.democracy.externalProposeDefault(regularUser, dummyProposalCall(helper)); + await expect(submitResult).to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Regular user cannot externally propose SimpleMajority', async ({helper}) => { + const submitResult = helper.democracy.externalProposeMajority(regularUser, dummyProposalCall(helper)); + await expect(submitResult).to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Regular user cannot externally propose SuperMajorityApprove', async ({helper}) => { + const submitResult = helper.democracy.externalPropose(regularUser, dummyProposalCall(helper)); + await expect(submitResult).to.be.rejectedWith(/BadOrigin/); + }); +}); --- /dev/null +++ b/tests/src/governance/fellowship.test.ts @@ -0,0 +1,334 @@ +import {IKeyringPair} from '@polkadot/types/types'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../util'; +import {DevUniqueHelper, Event} from '../util/playgrounds/unique.dev'; +import {ICounselors, initCouncil, democracyLaunchPeriod, democracyVotingPeriod, democracyFastTrackVotingPeriod, fellowshipRankLimit, clearCouncil, clearTechComm, ITechComms, clearFellowship, defaultEnactmentMoment, dummyProposal, dummyProposalCall, fellowshipPropositionOrigin, initFellowship, initTechComm, voteUnanimouslyInFellowship, democracyTrackMinRank, fellowshipPreparePeriod, fellowshipConfirmPeriod, fellowshipMinEnactPeriod, democracyTrackId, hardResetFellowshipReferenda, hardResetDemocracy, hardResetGovScheduler} from './util'; + +describeGov('Governance: Fellowship tests', () => { + let members: IKeyringPair[][]; + + let rank1Proposer: IKeyringPair; + + let sudoer: any; + let donor: any; + let counselors: ICounselors; + let techcomms: ITechComms; + + const submissionDeposit = 1000n; + + async function testBadFellowshipProposal( + helper: DevUniqueHelper, + proposalCall: any, + ) { + const badProposal = { + Inline: proposalCall.method.toHex(), + }; + const submitResult = await helper.fellowship.referenda.submit( + rank1Proposer, + fellowshipPropositionOrigin, + badProposal, + defaultEnactmentMoment, + ); + + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + await voteUnanimouslyInFellowship(helper, members, democracyTrackMinRank, referendumIndex); + await helper.fellowship.referenda.placeDecisionDeposit(donor, referendumIndex); + + const enactmentId = await helper.fellowship.referenda.enactmentEventId(referendumIndex); + const dispatchedEvent = await helper.wait.expectEvent( + fellowshipPreparePeriod + fellowshipConfirmPeriod + defaultEnactmentMoment.After, + Event.Scheduler.Dispatched, + (event: any) => event.id == enactmentId, + ); + + expect(dispatchedEvent.result.isErr, 'Bad Fellowship must fail') + .to.be.true; + + expect(dispatchedEvent.result.asErr.isBadOrigin, 'Bad Fellowship must fail with BadOrigin') + .to.be.true; + } + + before(async function() { + await usingPlaygrounds(async (helper, privateKey) => { + requirePalletsOrSkip(this, helper, [Pallets.Democracy, Pallets.Fellowship, Pallets.TechnicalCommittee, Pallets.Council]); + + sudoer = await privateKey('//Alice'); + donor = await privateKey({url: import.meta.url}); + }); + + counselors = await initCouncil(donor, sudoer); + techcomms = await initTechComm(donor, sudoer); + members = await initFellowship(donor, sudoer); + + rank1Proposer = members[1][0]; + }); + + after(async () => { + await clearFellowship(sudoer); + await clearTechComm(sudoer); + await clearCouncil(sudoer); + await hardResetFellowshipReferenda(sudoer); + await hardResetDemocracy(sudoer); + await hardResetGovScheduler(sudoer); + }); + + itSub('FellowshipProposition can submit regular Democracy proposals', async ({helper}) => { + const democracyProposalCall = dummyProposalCall(helper); + const fellowshipProposal = { + Inline: helper.democracy.proposeCall(democracyProposalCall, 0n).method.toHex(), + }; + + const submitResult = await helper.fellowship.referenda.submit( + rank1Proposer, + fellowshipPropositionOrigin, + fellowshipProposal, + defaultEnactmentMoment, + ); + + const fellowshipReferendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + await voteUnanimouslyInFellowship(helper, members, democracyTrackMinRank, fellowshipReferendumIndex); + await helper.fellowship.referenda.placeDecisionDeposit(donor, fellowshipReferendumIndex); + + const democracyProposed = await helper.wait.expectEvent( + fellowshipPreparePeriod + fellowshipConfirmPeriod + fellowshipMinEnactPeriod, + Event.Democracy.Proposed, + ); + + const democracyEnqueuedProposal = await helper.democracy.expectPublicProposal(democracyProposed.proposalIndex); + expect(democracyEnqueuedProposal.inline, 'Fellowship proposal expected to be in the Democracy') + .to.be.equal(democracyProposalCall.method.toHex()); + + await helper.wait.newBlocks(democracyVotingPeriod); + }); + + itSub('Fellowship (rank-1 or greater) member can submit Fellowship proposals on the Democracy track', async ({helper}) => { + for(let rank = 1; rank < fellowshipRankLimit; rank++) { + const rankMembers = members[rank]; + + for(let memberIdx = 0; memberIdx < rankMembers.length; memberIdx++) { + const member = rankMembers[memberIdx]; + const newDummyProposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + member, + fellowshipPropositionOrigin, + newDummyProposal, + defaultEnactmentMoment, + ); + + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + const referendumInfo = await helper.fellowship.referenda.referendumInfo(referendumIndex); + expect(referendumInfo.ongoing.track, `${memberIdx}-th member of rank #${rank}: proposal #${referendumIndex} is on invalid track`) + .to.be.equal(democracyTrackId); + } + } + }); + + itSub(`Fellowship (rank-${democracyTrackMinRank} or greater) members can vote on the Democracy track`, async ({helper}) => { + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + rank1Proposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + + let expectedAyes = 0; + for(let rank = democracyTrackMinRank; rank < fellowshipRankLimit; rank++) { + const rankMembers = members[rank]; + + for(let memberIdx = 0; memberIdx < rankMembers.length; memberIdx++) { + const member = rankMembers[memberIdx]; + await helper.fellowship.collective.vote(member, referendumIndex, true); + expectedAyes += 1; + + const referendumInfo = await helper.fellowship.referenda.referendumInfo(referendumIndex); + expect(referendumInfo.ongoing.tally.bareAyes, `Vote from ${memberIdx}-th member of rank #${rank} isn't accounted`) + .to.be.equal(expectedAyes); + } + } + }); + + itSub('Fellowship rank vote strength is correct', async ({helper}) => { + const excessRankWeightTable = [ + 1, + 3, + 6, + 10, + 15, + 21, + ]; + + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + rank1Proposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + + for(let rank = democracyTrackMinRank; rank < fellowshipRankLimit; rank++) { + const rankMembers = members[rank]; + + for(let memberIdx = 0; memberIdx < rankMembers.length; memberIdx++) { + const member = rankMembers[memberIdx]; + + const referendumInfoBefore = await helper.fellowship.referenda.referendumInfo(referendumIndex); + const ayesBefore = referendumInfoBefore.ongoing.tally.ayes; + + await helper.fellowship.collective.vote(member, referendumIndex, true); + + const referendumInfoAfter = await helper.fellowship.referenda.referendumInfo(referendumIndex); + const ayesAfter = referendumInfoAfter.ongoing.tally.ayes; + + const expectedVoteWeight = excessRankWeightTable[rank - democracyTrackMinRank]; + const voteWeight = ayesAfter - ayesBefore; + + expect(voteWeight, `Vote weight of ${memberIdx}-th member of rank #${rank} is invalid`) + .to.be.equal(expectedVoteWeight); + } + } + }); + + itSub('[Negative] FellowshipProposition cannot externally propose SuperMajorityAgainst', async ({helper}) => { + await testBadFellowshipProposal(helper, helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper))); + }); + + itSub('[Negative] FellowshipProposition cannot externally propose SimpleMajority', async ({helper}) => { + await testBadFellowshipProposal(helper, helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper))); + }); + + itSub('[Negative] FellowshipProposition cannot externally propose SuperMajorityApprove', async ({helper}) => { + await testBadFellowshipProposal(helper, helper.democracy.externalProposeCall(dummyProposalCall(helper))); + }); + + itSub('[Negative] Fellowship (rank-0) member cannot submit Fellowship proposals on the Democracy track', async ({helper}) => { + const rank0Proposer = members[0][0]; + + const proposal = dummyProposal(helper); + + const submitResult = helper.fellowship.referenda.submit( + rank0Proposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + + await expect(submitResult).to.be.rejectedWith(/BadOrigin/); + }); + + itSub('[Negative] Fellowship (rank-1 or greater) member cannot submit if no deposit can be provided', async ({helper}) => { + const poorMember = rank1Proposer; + + const balanceBefore = await helper.balance.getSubstrate(poorMember.address); + await helper.getSudo().balance.setBalanceSubstrate(sudoer, poorMember.address, submissionDeposit - 1n); + + const proposal = dummyProposal(helper); + + const submitResult = helper.fellowship.referenda.submit( + poorMember, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + + await expect(submitResult).to.be.rejectedWith(/account balance too low/); + + await helper.getSudo().balance.setBalanceSubstrate(sudoer, poorMember.address, balanceBefore); + }); + + itSub(`[Negative] Fellowship (rank-${democracyTrackMinRank - 1} or less) members cannot vote on the Democracy track`, async ({helper}) => { + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + rank1Proposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + + for(let rank = 0; rank < democracyTrackMinRank; rank++) { + for(const member of members[rank]) { + const voteResult = helper.fellowship.collective.vote(member, referendumIndex, true); + await expect(voteResult).to.be.rejectedWith(/RankTooLow/); + } + } + }); + + itSub('[Negative] FellowshipProposition cannot add/remove a Council member', async ({helper}) => { + const [councilNonMember] = await helper.arrange.createAccounts([10n], donor); + + await testBadFellowshipProposal(helper, helper.council.membership.addMemberCall(councilNonMember.address)); + await testBadFellowshipProposal(helper, helper.council.membership.removeMemberCall(counselors.ildar.address)); + }); + + itSub('[Negative] FellowshipProposition cannot set/clear Council prime member', async ({helper}) => { + await testBadFellowshipProposal(helper, helper.council.membership.setPrimeCall(counselors.ildar.address)); + await testBadFellowshipProposal(helper, helper.council.membership.clearPrimeCall()); + }); + + itSub('[Negative] FellowshipProposition cannot add/remove a TechComm member', async ({helper}) => { + const [techCommNonMember] = await helper.arrange.createAccounts([10n], donor); + + await testBadFellowshipProposal(helper, helper.technicalCommittee.membership.addMemberCall(techCommNonMember.address)); + await testBadFellowshipProposal(helper, helper.technicalCommittee.membership.removeMemberCall(techcomms.constantine.address)); + }); + + itSub('[Negative] FellowshipProposition cannot add/remove a Fellowship member', async ({helper}) => { + const [fellowshipNonMember] = await helper.arrange.createAccounts([10n], donor); + + await testBadFellowshipProposal(helper, helper.fellowship.collective.addMemberCall(fellowshipNonMember.address)); + await testBadFellowshipProposal(helper, helper.fellowship.collective.removeMemberCall(rank1Proposer.address, 1)); + }); + + itSub('[Negative] FellowshipProposition cannot promote/demote a Fellowship member', async ({helper}) => { + await testBadFellowshipProposal(helper, helper.fellowship.collective.promoteCall(rank1Proposer.address)); + await testBadFellowshipProposal(helper, helper.fellowship.collective.demoteCall(rank1Proposer.address)); + }); + + itSub('[Negative] FellowshipProposition cannot fast-track Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await testBadFellowshipProposal(helper, helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0)); + }); + + itSub('[Negative] FellowshipProposition cannot cancel Democracy proposals', async ({helper}) => { + const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n); + const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex; + + await testBadFellowshipProposal(helper, helper.democracy.cancelProposalCall(proposalIndex)); + }); + + itSub('[Negative] FellowshipProposition cannot cancel ongoing Democracy referendums', async ({helper}) => { + await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper)); + const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const referendumIndex = startedEvent.referendumIndex; + + await testBadFellowshipProposal(helper, helper.democracy.emergencyCancelCall(referendumIndex)); + }); + + itSub('[Negative] FellowshipProposition cannot blacklist Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await testBadFellowshipProposal(helper, helper.democracy.blacklistCall(preimageHash, null)); + }); + + itSub('[Negative] FellowshipProposition cannot veto external proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await testBadFellowshipProposal(helper, helper.democracy.vetoExternalCall(preimageHash)); + }); +}); --- /dev/null +++ b/tests/src/governance/technicalCommittee.test.ts @@ -0,0 +1,375 @@ +import {IKeyringPair} from '@polkadot/types/types'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../util'; +import {Event} from '../util/playgrounds/unique.dev'; +import {initCouncil, democracyLaunchPeriod, democracyFastTrackVotingPeriod, clearCouncil, clearTechComm, ITechComms, clearFellowship, defaultEnactmentMoment, dummyProposal, dummyProposalCall, fellowshipPropositionOrigin, initFellowship, initTechComm, hardResetFellowshipReferenda, hardResetDemocracy, hardResetGovScheduler} from './util'; + +describeGov('Governance: Technical Committee tests', () => { + let sudoer: IKeyringPair; + let techcomms: ITechComms; + let donor: IKeyringPair; + let preImageHash: string; + + + const allTechCommitteeThreshold = 3; + + before(async function() { + await usingPlaygrounds(async (helper, privateKey) => { + requirePalletsOrSkip(this, helper, [Pallets.TechnicalCommittee]); + sudoer = await privateKey('//Alice'); + donor = await privateKey({url: import.meta.url}); + + techcomms = await initTechComm(donor, sudoer); + + const proposalCall = await helper.constructApiCall('api.tx.balances.forceSetBalance', [donor.address, 20n * 10n ** 25n]); + preImageHash = await helper.preimage.notePreimageFromCall(sudoer, proposalCall, true); + }); + }); + + after(async () => { + await usingPlaygrounds(async (helper) => { + await clearTechComm(sudoer); + + await helper.preimage.unnotePreimage(sudoer, preImageHash); + await hardResetFellowshipReferenda(sudoer); + await hardResetDemocracy(sudoer); + await hardResetGovScheduler(sudoer); + }); + }); + + async function proposalFromAllCommittee(proposal: any) { + return await usingPlaygrounds(async (helper) => { + expect((await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON().length).to.be.equal(allTechCommitteeThreshold); + const proposeResult = await helper.technicalCommittee.collective.propose( + techcomms.andy, + proposal, + allTechCommitteeThreshold, + ); + + const commiteeProposedEvent = Event.TechnicalCommittee.Proposed.expect(proposeResult); + const proposalIndex = commiteeProposedEvent.proposalIndex; + const proposalHash = commiteeProposedEvent.proposalHash; + + + await helper.technicalCommittee.collective.vote(techcomms.andy, proposalHash, proposalIndex, true); + await helper.technicalCommittee.collective.vote(techcomms.constantine, proposalHash, proposalIndex, true); + await helper.technicalCommittee.collective.vote(techcomms.greg, proposalHash, proposalIndex, true); + + return await helper.technicalCommittee.collective.close(techcomms.andy, proposalHash, proposalIndex); + }); + } + + itSub('TechComm can fast-track Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.wait.parachainBlockMultiplesOf(35n); + + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(proposalFromAllCommittee(helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0))) + .to.be.fulfilled; + }); + + itSub('TechComm can cancel Democracy proposals', async ({helper}) => { + const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n); + const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex; + + await expect(proposalFromAllCommittee(helper.democracy.cancelProposalCall(proposalIndex))) + .to.be.fulfilled; + }); + + itSub('TechComm can cancel ongoing Democracy referendums', async ({helper}) => { + await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper)); + const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const referendumIndex = startedEvent.referendumIndex; + + await expect(proposalFromAllCommittee(helper.democracy.emergencyCancelCall(referendumIndex))) + .to.be.fulfilled; + }); + + + itSub('TechComm member can veto Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + helper.democracy.vetoExternalCall(preimageHash), + )).to.be.fulfilled; + }); + + itSub('TechComm can cancel Fellowship referendums', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const fellowshipProposer = fellowship[5][0]; + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + fellowshipProposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + await expect(proposalFromAllCommittee(helper.fellowship.referenda.cancelCall(referendumIndex))).to.be.fulfilled; + }); + + itSub.skip('TechComm member can add a Fellowship member', async ({helper}) => { + const newFellowshipMember = helper.arrange.createEmptyAccount(); + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + helper.fellowship.collective.addMemberCall(newFellowshipMember.address), + )).to.be.fulfilled; + const fellowshipMembers = (await helper.callRpc('api.query.fellowshipCollective.members')).toJSON(); + expect(fellowshipMembers).to.contains(newFellowshipMember.address); + await clearFellowship(sudoer); + }); + + itSub('[Negative] TechComm cannot submit regular democracy proposal', async ({helper}) => { + const councilProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n); + + await expect(proposalFromAllCommittee(councilProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm cannot externally propose SuperMajorityAgainst', async ({helper}) => { + const commiteeProposal = await helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper)); + + await expect(proposalFromAllCommittee(commiteeProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm cannot externally propose SimpleMajority', async ({helper}) => { + const commiteeProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper)); + + await expect(proposalFromAllCommittee(commiteeProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm cannot externally propose SuperMajorityApprove', async ({helper}) => { + const commiteeProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper)); + + await expect(proposalFromAllCommittee(commiteeProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot submit regular democracy proposal', async ({helper}) => { + const memberProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + memberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot externally propose SuperMajorityAgainst', async ({helper}) => { + const memberProposal = await helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper)); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + memberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot externally propose SimpleMajority', async ({helper}) => { + const memberProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper)); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + memberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot externally propose SuperMajorityApprove', async ({helper}) => { + const memberProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper)); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + memberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + + itSub.skip('[Negative] TechComm cannot promote/demote Fellowship member', async ({helper}) => { + + }); + + itSub.skip('[Negative] TechComm member cannot promote/demote Fellowship member', async ({helper}) => { + + }); + + itSub('[Negative] TechComm cannot add/remove a Council member', async ({helper}) => { + const newCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address); + const removeMemberProposal = helper.council.membership.removeMemberCall(newCouncilMember.address); + + await expect(proposalFromAllCommittee(addMemberProposal)).to.be.rejectedWith('BadOrigin'); + await expect(proposalFromAllCommittee(removeMemberProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot add/remove a Council member', async ({helper}) => { + const newCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address); + const removeMemberProposal = helper.council.membership.removeMemberCall(newCouncilMember.address); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + addMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + removeMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm cannot set/clear Council prime member', async ({helper}) => { + const counselors = await initCouncil(donor, sudoer); + const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address); + const proposalForClear = await helper.council.membership.clearPrimeCall(); + + await expect(proposalFromAllCommittee(proposalForSet)).to.be.rejectedWith('BadOrigin'); + await expect(proposalFromAllCommittee(proposalForClear)).to.be.rejectedWith('BadOrigin'); + await clearCouncil(sudoer); + }); + + itSub('[Negative] TechComm member cannot set/clear Council prime member', async ({helper}) => { + const counselors = await initCouncil(donor, sudoer); + const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address); + const proposalForClear = await helper.council.membership.clearPrimeCall(); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + proposalForSet, + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + proposalForClear, + )).to.be.rejectedWith('BadOrigin'); + await clearCouncil(sudoer); + }); + + itSub('[Negative] TechComm cannot add/remove a TechComm member', async ({helper}) => { + const newCommMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.council.membership.addMemberCall(newCommMember.address); + const removeMemberProposal = helper.council.membership.removeMemberCall(newCommMember.address); + + await expect(proposalFromAllCommittee(addMemberProposal)).to.be.rejectedWith('BadOrigin'); + await expect(proposalFromAllCommittee(removeMemberProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot add/remove a TechComm member', async ({helper}) => { + const newCommMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.council.membership.addMemberCall(newCommMember.address); + const removeMemberProposal = helper.council.membership.removeMemberCall(newCommMember.address); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + addMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + removeMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm cannot remove a Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + + await expect(proposalFromAllCommittee(helper.fellowship.collective.removeMemberCall(fellowship[5][0].address, 5))).to.be.rejectedWith('BadOrigin'); + await clearFellowship(sudoer); + }); + + itSub('[Negative] TechComm member cannot remove a Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + helper.fellowship.collective.removeMemberCall(fellowship[5][0].address, 5), + )).to.be.rejectedWith('BadOrigin'); + await clearFellowship(sudoer); + }); + + itSub('[Negative] TechComm member cannot fast-track Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot cancel Democracy proposals', async ({helper}) => { + const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n); + const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex; + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + helper.democracy.cancelProposalCall(proposalIndex), + )) + .to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot cancel ongoing Democracy referendums', async ({helper}) => { + await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper)); + const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const referendumIndex = startedEvent.referendumIndex; + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + helper.democracy.emergencyCancelCall(referendumIndex), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm cannot blacklist Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(proposalFromAllCommittee(helper.democracy.blacklistCall(preimageHash))).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot blacklist Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + helper.democracy.blacklistCall(preimageHash), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub.skip('[Negative] TechComm member cannot veto external Democracy proposals until the cool-off period pass', async ({helper}) => { + + }); + + itSub('[Negative] TechComm member cannot cancel Fellowship referendums', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const fellowshipProposer = fellowship[5][0]; + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + fellowshipProposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + helper.fellowship.referenda.cancelCall(referendumIndex), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm referendum cannot be closed until the voting threshold is met', async ({helper}) => { + const committeeSize = (await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON().length as any as number; + expect(committeeSize).is.greaterThan(1); + const proposeResult = await helper.technicalCommittee.collective.propose( + techcomms.andy, + dummyProposalCall(helper), + committeeSize, + ); + + const committeeProposedEvent = Event.TechnicalCommittee.Proposed.expect(proposeResult); + const proposalIndex = committeeProposedEvent.proposalIndex; + const proposalHash = committeeProposedEvent.proposalHash; + + await helper.technicalCommittee.collective.vote(techcomms.constantine, proposalHash, proposalIndex, true); + + await expect(helper.technicalCommittee.collective.close(techcomms.andy, proposalHash, proposalIndex)).to.be.rejectedWith('TooEarly'); + }); +}); --- /dev/null +++ b/tests/src/governance/util.ts @@ -0,0 +1,222 @@ +import {IKeyringPair} from '@polkadot/types/types'; +import {xxhashAsHex} from '@polkadot/util-crypto'; +import {usingPlaygrounds, expect} from '../util'; +import {UniqueHelper} from '../util/playgrounds/unique'; + +export const democracyLaunchPeriod = 35; +export const democracyVotingPeriod = 35; +export const councilMotionDuration = 35; +export const democracyEnactmentPeriod = 40; +export const democracyFastTrackVotingPeriod = 5; + +export const fellowshipRankLimit = 7; +export const fellowshipPropositionOrigin = 'FellowshipProposition'; +export const fellowshipPreparePeriod = 3; +export const fellowshipConfirmPeriod = 3; +export const fellowshipMinEnactPeriod = 1; + +export const defaultEnactmentMoment = {After: 0}; + +export const democracyTrackId = 10; +export const democracyTrackMinRank = 3; +const twox128 = (data: any) => xxhashAsHex(data, 128); +export interface ICounselors { + alex: IKeyringPair; + ildar: IKeyringPair; + charu: IKeyringPair; + filip: IKeyringPair; + irina: IKeyringPair; +} +export interface ITechComms { + greg: IKeyringPair; + andy: IKeyringPair; + constantine: IKeyringPair; +} + +export async function initCouncil(donor: IKeyringPair, superuser: IKeyringPair) { + let counselors: IKeyringPair[] = []; + + await usingPlaygrounds(async (helper) => { + const [alex, ildar, charu, filip, irina] = await helper.arrange.createAccounts([10_000n, 10_000n, 10_000n, 10_000n, 10_000n], donor); + const sudo = helper.getSudo(); + { + const members = (await helper.callRpc('api.query.councilMembership.members')).toJSON() as []; + if(members.length != 0) { + await clearCouncil(superuser); + } + } + const expectedMembers = [alex, ildar, charu, filip, irina]; + for(const member of expectedMembers) { + await sudo.executeExtrinsic(superuser, 'api.tx.councilMembership.addMember', [member.address]); + } + await sudo.executeExtrinsic(superuser, 'api.tx.councilMembership.setPrime', [alex.address]); + { + const members = (await helper.callRpc('api.query.councilMembership.members')).toJSON(); + expect(members).to.containSubset(expectedMembers.map((x: IKeyringPair) => x.address)); + expect(members.length).to.be.equal(expectedMembers.length); + } + + counselors = [alex, ildar, charu, filip, irina]; + }); + return { + alex: counselors[0], + ildar: counselors[1], + charu: counselors[2], + filip: counselors[3], + irina: counselors[4], + }; +} + +export async function clearCouncil(superuser: IKeyringPair) { + await usingPlaygrounds(async (helper) => { + let members = (await helper.callRpc('api.query.councilMembership.members')).toJSON(); + if(members.length) { + const sudo = helper.getSudo(); + for(const address of members) { + await sudo.executeExtrinsic(superuser, 'api.tx.councilMembership.removeMember', [address]); + } + members = (await helper.callRpc('api.query.councilMembership.members')).toJSON(); + } + expect(members).to.be.deep.equal([]); + }); +} + + +export async function initTechComm(donor: IKeyringPair, superuser: IKeyringPair) { + let techcomms: IKeyringPair[] = []; + + await usingPlaygrounds(async (helper) => { + const [greg, andy, constantine] = await helper.arrange.createAccounts([10_000n, 10_000n, 10_000n], donor); + const sudo = helper.getSudo(); + { + const members = (await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON() as []; + if(members.length != 0) { + await clearTechComm(superuser); + } + } + await sudo.executeExtrinsic(superuser, 'api.tx.technicalCommitteeMembership.addMember', [greg.address]); + await sudo.executeExtrinsic(superuser, 'api.tx.technicalCommitteeMembership.addMember', [andy.address]); + await sudo.executeExtrinsic(superuser, 'api.tx.technicalCommitteeMembership.addMember', [constantine.address]); + await sudo.executeExtrinsic(superuser, 'api.tx.technicalCommitteeMembership.setPrime', [greg.address]); + { + const members = (await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON(); + expect(members).to.containSubset([greg.address, andy.address, constantine.address]); + expect(members.length).to.be.equal(3); + } + + techcomms = [greg, andy, constantine]; + }); + + return { + greg: techcomms[0], + andy: techcomms[1], + constantine: techcomms[2], + }; +} + +export async function clearTechComm(superuser: IKeyringPair) { + await usingPlaygrounds(async (helper) => { + let members = (await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON(); + if(members.length) { + const sudo = helper.getSudo(); + for(const address of members) { + await sudo.executeExtrinsic(superuser, 'api.tx.technicalCommitteeMembership.removeMember', [address]); + } + members = (await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON(); + } + expect(members).to.be.deep.equal([]); + }); +} + +export async function initFellowship(donor: IKeyringPair, sudoer: IKeyringPair) { + const numMembersInRank = 3; + const memberBalance = 5000n; + const members: IKeyringPair[][] = []; + + await usingPlaygrounds(async (helper) => { + const currentFellows = await helper.getApi().query.fellowshipCollective.members.keys(); + + if(currentFellows.length != 0) { + await clearFellowship(sudoer); + } + for(let i = 0; i < fellowshipRankLimit; i++) { + const rankMembers = await helper.arrange.createAccounts( + Array(numMembersInRank).fill(memberBalance), + donor, + ); + + for(const member of rankMembers) { + await helper.getSudo().fellowship.collective.addMember(sudoer, member.address); + + for(let rank = 0; rank < i; rank++) { + await helper.getSudo().fellowship.collective.promote(sudoer, member.address); + } + } + + members.push(rankMembers); + } + }); + + return members; +} + +export async function clearFellowship(sudoer: IKeyringPair) { + await usingPlaygrounds(async (helper) => { + const fellowship = (await helper.getApi().query.fellowshipCollective.members.keys()) + .map((key) => key.args[0].toString()); + for(const member of fellowship) { + await helper.getSudo().fellowship.collective.removeMember(sudoer, member, fellowshipRankLimit); + } + }); +} + +export async function clearFellowshipReferenda(sudoer: IKeyringPair) { + await usingPlaygrounds(async (helper) => { + const proposalsCount = (await helper.getApi().query.fellowshipReferenda.referendumCount()); + for(let i = 0; i < proposalsCount.toNumber(); i++) { + await helper.getSudo().fellowship.referenda.cancel(sudoer, i); + } + }); +} + +export async function hardResetFellowshipReferenda(sudoer: IKeyringPair) { + await usingPlaygrounds(async (helper) => { + const api = helper.getApi(); + const prefix = twox128('FellowshipReferenda'); + await helper.signTransaction(sudoer, api.tx.sudo.sudo(api.tx.system.killPrefix(prefix, 100))); + }); +} + +export async function hardResetDemocracy(sudoer: IKeyringPair) { + await usingPlaygrounds(async (helper) => { + const api = helper.getApi(); + const prefix = twox128('Democracy'); + await helper.signTransaction(sudoer, api.tx.sudo.sudo(api.tx.system.killPrefix(prefix, 100))); + }); +} + +export async function hardResetGovScheduler(sudoer: IKeyringPair) { + await usingPlaygrounds(async (helper) => { + const api = helper.getApi(); + const prefix = twox128('GovScheduler'); + await helper.signTransaction(sudoer, api.tx.sudo.sudo(api.tx.system.killPrefix(prefix, 500))); + }); +} + +export async function voteUnanimouslyInFellowship(helper: UniqueHelper, fellows: IKeyringPair[][], minRank: number, referendumIndex: number) { + for(let rank = minRank; rank < fellowshipRankLimit; rank++) { + for(const member of fellows[rank]) { + await helper.fellowship.collective.vote(member, referendumIndex, true); + } + } +} + +export function dummyProposalCall(helper: UniqueHelper) { + return helper.constructApiCall('api.tx.system.remark', ['dummy proposal' + (new Date()).getTime()]); +} + +export function dummyProposal(helper: UniqueHelper) { + return { + Inline: dummyProposalCall(helper).method.toHex(), + }; +} --- a/tests/src/interfaces/augment-api-consts.ts +++ b/tests/src/interfaces/augment-api-consts.ts @@ -6,10 +6,10 @@ import '@polkadot/api-base/types/consts'; import type { ApiTypes, AugmentedConst } from '@polkadot/api-base/types'; -import type { Option, U8aFixed, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; -import type { Codec } from '@polkadot/types-codec/types'; +import type { Option, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; +import type { Codec, ITuple } from '@polkadot/types-codec/types'; import type { H160, Perbill, Permill } from '@polkadot/types/interfaces/runtime'; -import type { FrameSupportPalletId, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, UpDataStructsCollectionLimits, XcmV3MultiLocation } from '@polkadot/types/lookup'; +import type { FrameSupportPalletId, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, PalletReferendaTrackInfo, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, UpDataStructsCollectionLimits, XcmV3MultiLocation } from '@polkadot/types/lookup'; export type __AugmentedConst = AugmentedConst; @@ -118,6 +118,82 @@ **/ [key: string]: Codec; }; + council: { + /** + * The maximum weight of a dispatch call that can be proposed and executed. + **/ + maxProposalWeight: SpWeightsWeightV2Weight & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + democracy: { + /** + * Period in blocks where an external proposal may not be re-submitted after being vetoed. + **/ + cooloffPeriod: u32 & AugmentedConst; + /** + * The period between a proposal being approved and enacted. + * + * It should generally be a little more than the unstake period to ensure that + * voting stakers have an opportunity to remove themselves from the system in the case + * where they are on the losing side of a vote. + **/ + enactmentPeriod: u32 & AugmentedConst; + /** + * Minimum voting period allowed for a fast-track referendum. + **/ + fastTrackVotingPeriod: u32 & AugmentedConst; + /** + * Indicator for whether an emergency origin is even allowed to happen. Some chains may + * want to set this permanently to `false`, others may want to condition it on things such + * as an upgrade having happened recently. + **/ + instantAllowed: bool & AugmentedConst; + /** + * How often (in blocks) new public referenda are launched. + **/ + launchPeriod: u32 & AugmentedConst; + /** + * The maximum number of items which can be blacklisted. + **/ + maxBlacklisted: u32 & AugmentedConst; + /** + * The maximum number of deposits a public proposal may have at any time. + **/ + maxDeposits: u32 & AugmentedConst; + /** + * The maximum number of public proposals that can exist at any time. + **/ + maxProposals: u32 & AugmentedConst; + /** + * The maximum number of votes for an account. + * + * Also used to compute weight, an overly big value can + * lead to extrinsic with very big weight: see `delegate` for instance. + **/ + maxVotes: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + minimumDeposit: u128 & AugmentedConst; + /** + * The minimum period of vote locking. + * + * It should be no shorter than enactment period to ensure that in the case of an approval, + * those successful voters are locked into the consequences that their votes entail. + **/ + voteLockingPeriod: u32 & AugmentedConst; + /** + * How often (in blocks) to check for new votes. + **/ + votingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; evmContractHelpers: { /** * Address, under which magic contract will be available @@ -128,6 +204,53 @@ **/ [key: string]: Codec; }; + fellowshipReferenda: { + /** + * Quantization level for the referendum wakeup scheduler. A higher number will result in + * fewer storage reads/writes needed for smaller voters, but also result in delays to the + * automatic referendum status changes. Explicit servicing instructions are unaffected. + **/ + alarmInterval: u32 & AugmentedConst; + /** + * Maximum size of the referendum queue for a single track. + **/ + maxQueued: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + submissionDeposit: u128 & AugmentedConst; + /** + * Information concerning the different referendum tracks. + **/ + tracks: Vec> & AugmentedConst; + /** + * The number of blocks after submission that a referendum must begin being decided by. + * Once this passes, then anyone may cancel the referendum. + **/ + undecidingTimeout: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + govScheduler: { + /** + * The maximum weight that may be scheduled per block for any dispatchables. + **/ + maximumWeight: SpWeightsWeightV2Weight & AugmentedConst; + /** + * The maximum number of scheduled calls in the queue for a single block. + * + * NOTE: + * + Dependent pallets' benchmarks might require a higher limit for the setting. Set a + * higher limit under `runtime-benchmarks` feature. + **/ + maxScheduledPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; identity: { /** * The amount held on deposit for a registered identity @@ -236,6 +359,16 @@ **/ [key: string]: Codec; }; + technicalCommittee: { + /** + * The maximum weight of a dispatch call that can be proposed and executed. + **/ + maxProposalWeight: SpWeightsWeightV2Weight & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; timestamp: { /** * The minimum period between blocks. Beware that this is different to the *expected* --- a/tests/src/interfaces/augment-api-errors.ts +++ b/tests/src/interfaces/augment-api-errors.ts @@ -310,12 +310,179 @@ **/ [key: string]: AugmentedError; }; + council: { + /** + * Members are already initialized! + **/ + AlreadyInitialized: AugmentedError; + /** + * Duplicate proposals not allowed + **/ + DuplicateProposal: AugmentedError; + /** + * Duplicate vote ignored + **/ + DuplicateVote: AugmentedError; + /** + * Account is not a member + **/ + NotMember: AugmentedError; + /** + * Proposal must exist + **/ + ProposalMissing: AugmentedError; + /** + * The close call was made too early, before the end of the voting. + **/ + TooEarly: AugmentedError; + /** + * There can only be a maximum of `MaxProposals` active proposals. + **/ + TooManyProposals: AugmentedError; + /** + * Mismatched index + **/ + WrongIndex: AugmentedError; + /** + * The given length bound for the proposal was too low. + **/ + WrongProposalLength: AugmentedError; + /** + * The given weight bound for the proposal was too low. + **/ + WrongProposalWeight: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + councilMembership: { + /** + * Already a member. + **/ + AlreadyMember: AugmentedError; + /** + * Not a member. + **/ + NotMember: AugmentedError; + /** + * Too many members. + **/ + TooManyMembers: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; cumulusXcm: { /** * Generic error **/ [key: string]: AugmentedError; }; + democracy: { + /** + * Cannot cancel the same proposal twice + **/ + AlreadyCanceled: AugmentedError; + /** + * The account is already delegating. + **/ + AlreadyDelegating: AugmentedError; + /** + * Identity may not veto a proposal twice + **/ + AlreadyVetoed: AugmentedError; + /** + * Proposal already made + **/ + DuplicateProposal: AugmentedError; + /** + * The instant referendum origin is currently disallowed. + **/ + InstantNotAllowed: AugmentedError; + /** + * Too high a balance was provided that the account cannot afford. + **/ + InsufficientFunds: AugmentedError; + /** + * Invalid hash + **/ + InvalidHash: AugmentedError; + /** + * Maximum number of votes reached. + **/ + MaxVotesReached: AugmentedError; + /** + * No proposals waiting + **/ + NoneWaiting: AugmentedError; + /** + * Delegation to oneself makes no sense. + **/ + Nonsense: AugmentedError; + /** + * The actor has no permission to conduct the action. + **/ + NoPermission: AugmentedError; + /** + * No external proposal + **/ + NoProposal: AugmentedError; + /** + * The account is not currently delegating. + **/ + NotDelegating: AugmentedError; + /** + * Next external proposal not simple majority + **/ + NotSimpleMajority: AugmentedError; + /** + * The given account did not vote on the referendum. + **/ + NotVoter: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * Proposal still blacklisted + **/ + ProposalBlacklisted: AugmentedError; + /** + * Proposal does not exist + **/ + ProposalMissing: AugmentedError; + /** + * Vote given for invalid referendum + **/ + ReferendumInvalid: AugmentedError; + /** + * Maximum number of items reached. + **/ + TooMany: AugmentedError; + /** + * Value too low + **/ + ValueLow: AugmentedError; + /** + * The account currently has votes attached to it and the operation cannot succeed until + * these are removed, either through `unvote` or `reap_vote`. + **/ + VotesExist: AugmentedError; + /** + * Voting period too low + **/ + VotingPeriodLow: AugmentedError; + /** + * Invalid upper bound. + **/ + WrongUpperBound: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; dmpQueue: { /** * The amount of weight given is possibly not enough for executing the message. @@ -438,6 +605,106 @@ **/ [key: string]: AugmentedError; }; + fellowshipCollective: { + /** + * Account is already a member. + **/ + AlreadyMember: AugmentedError; + /** + * Unexpected error in state. + **/ + Corruption: AugmentedError; + /** + * The information provided is incorrect. + **/ + InvalidWitness: AugmentedError; + /** + * There are no further records to be removed. + **/ + NoneRemaining: AugmentedError; + /** + * The origin is not sufficiently privileged to do the operation. + **/ + NoPermission: AugmentedError; + /** + * Account is not a member. + **/ + NotMember: AugmentedError; + /** + * The given poll index is unknown or has closed. + **/ + NotPolling: AugmentedError; + /** + * The given poll is still ongoing. + **/ + Ongoing: AugmentedError; + /** + * The member's rank is too low to vote. + **/ + RankTooLow: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fellowshipReferenda: { + /** + * The referendum index provided is invalid in this context. + **/ + BadReferendum: AugmentedError; + /** + * The referendum status is invalid for this operation. + **/ + BadStatus: AugmentedError; + /** + * The track identifier given was invalid. + **/ + BadTrack: AugmentedError; + /** + * There are already a full complement of referenda in progress for this track. + **/ + Full: AugmentedError; + /** + * Referendum's decision deposit is already paid. + **/ + HasDeposit: AugmentedError; + /** + * The deposit cannot be refunded since none was made. + **/ + NoDeposit: AugmentedError; + /** + * The deposit refunder is not the depositor. + **/ + NoPermission: AugmentedError; + /** + * There was nothing to do in the advancement. + **/ + NothingToDo: AugmentedError; + /** + * Referendum is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * No track exists for the proposal origin. + **/ + NoTrack: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * The queue of the track is empty. + **/ + QueueEmpty: AugmentedError; + /** + * Any deposit cannot be refunded until after the decision is over. + **/ + Unfinished: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; foreignAssets: { /** * AssetId exists @@ -495,6 +762,32 @@ **/ [key: string]: AugmentedError; }; + govScheduler: { + /** + * Failed to schedule a call + **/ + FailedToSchedule: AugmentedError; + /** + * Attempt to use a non-named function on a named task. + **/ + Named: AugmentedError; + /** + * Cannot find the scheduled call. + **/ + NotFound: AugmentedError; + /** + * Reschedule failed because it does not change scheduled time. + **/ + RescheduleNoChange: AugmentedError; + /** + * Given target block number is in the past. + **/ + TargetBlockNumberInPast: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; identity: { /** * Account ID is already named. @@ -913,6 +1206,70 @@ **/ [key: string]: AugmentedError; }; + technicalCommittee: { + /** + * Members are already initialized! + **/ + AlreadyInitialized: AugmentedError; + /** + * Duplicate proposals not allowed + **/ + DuplicateProposal: AugmentedError; + /** + * Duplicate vote ignored + **/ + DuplicateVote: AugmentedError; + /** + * Account is not a member + **/ + NotMember: AugmentedError; + /** + * Proposal must exist + **/ + ProposalMissing: AugmentedError; + /** + * The close call was made too early, before the end of the voting. + **/ + TooEarly: AugmentedError; + /** + * There can only be a maximum of `MaxProposals` active proposals. + **/ + TooManyProposals: AugmentedError; + /** + * Mismatched index + **/ + WrongIndex: AugmentedError; + /** + * The given length bound for the proposal was too low. + **/ + WrongProposalLength: AugmentedError; + /** + * The given weight bound for the proposal was too low. + **/ + WrongProposalWeight: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + technicalCommitteeMembership: { + /** + * Already a member. + **/ + AlreadyMember: AugmentedError; + /** + * Not a member. + **/ + NotMember: AugmentedError; + /** + * Too many members. + **/ + TooManyMembers: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; testUtils: { TestPalletDisabled: AugmentedError; TriggerRollback: AugmentedError; --- a/tests/src/interfaces/augment-api-events.ts +++ b/tests/src/interfaces/augment-api-events.ts @@ -6,9 +6,10 @@ import '@polkadot/api-base/types/events'; import type { ApiTypes, AugmentedEvent } from '@polkadot/api-base/types'; -import type { Bytes, Null, Option, Result, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec'; +import type { Bytes, Null, Option, Result, U8aFixed, bool, u128, u16, 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, FrameSupportDispatchDispatchInfo, FrameSupportTokensMiscBalanceStatus, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletStateTrieMigrationError, PalletStateTrieMigrationMigrationCompute, SpRuntimeDispatchError, SpWeightsWeightV2Weight, XcmV3MultiAsset, XcmV3MultiLocation, XcmV3MultiassetMultiAssets, XcmV3Response, XcmV3TraitsError, XcmV3TraitsOutcome, XcmV3Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup'; +import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportDispatchDispatchInfo, FrameSupportPreimagesBounded, FrameSupportTokensMiscBalanceStatus, OrmlVestingVestingSchedule, PalletDemocracyMetadataOwner, PalletDemocracyVoteAccountVote, PalletDemocracyVoteThreshold, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletRankedCollectiveTally, PalletRankedCollectiveVoteRecord, PalletStateTrieMigrationError, PalletStateTrieMigrationMigrationCompute, SpRuntimeDispatchError, SpWeightsWeightV2Weight, XcmV3MultiAsset, XcmV3MultiLocation, XcmV3MultiassetMultiAssets, XcmV3Response, XcmV3TraitsError, XcmV3TraitsOutcome, XcmV3Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup'; export type __AugmentedEvent = AugmentedEvent; @@ -259,6 +260,72 @@ **/ [key: string]: AugmentedEvent; }; + council: { + /** + * A motion was approved by the required threshold. + **/ + Approved: AugmentedEvent; + /** + * A proposal was closed because its threshold was reached or after its duration was up. + **/ + Closed: AugmentedEvent; + /** + * A motion was not approved by the required threshold. + **/ + Disapproved: AugmentedEvent; + /** + * A motion was executed; result will be `Ok` if it returned without error. + **/ + Executed: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * A single member did some action; result will be `Ok` if it returned without error. + **/ + MemberExecuted: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * A motion (given hash) has been proposed (by given account) with a threshold (given + * `MemberCount`). + **/ + Proposed: AugmentedEvent; + /** + * A motion (given hash) has been voted on by given account, leaving + * a tally (yes votes and no votes given respectively as `MemberCount`). + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + councilMembership: { + /** + * Phantom member, never used. + **/ + Dummy: AugmentedEvent; + /** + * One of the members' keys changed. + **/ + KeyChanged: AugmentedEvent; + /** + * The given member was added; see the transaction for who. + **/ + MemberAdded: AugmentedEvent; + /** + * The given member was removed; see the transaction for who. + **/ + MemberRemoved: AugmentedEvent; + /** + * The membership was reset; see the transaction for who the new set is. + **/ + MembersReset: AugmentedEvent; + /** + * Two members were swapped; see the transaction for who. + **/ + MembersSwapped: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; cumulusXcm: { /** * Downward message executed with the given outcome. @@ -280,6 +347,80 @@ **/ [key: string]: AugmentedEvent; }; + democracy: { + /** + * A proposal_hash has been blacklisted permanently. + **/ + Blacklisted: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + /** + * An account has delegated their vote to another account. + **/ + Delegated: AugmentedEvent; + /** + * An external proposal has been tabled. + **/ + ExternalTabled: AugmentedEvent; + /** + * Metadata for a proposal or a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a proposal or a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * Metadata has been transferred to new owner. + **/ + MetadataTransferred: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + NotPassed: AugmentedEvent; + /** + * A proposal has been approved by referendum. + **/ + Passed: AugmentedEvent; + /** + * A proposal got canceled. + **/ + ProposalCanceled: AugmentedEvent; + /** + * A motion has been proposed by a public account. + **/ + Proposed: AugmentedEvent; + /** + * An account has secconded a proposal + **/ + Seconded: AugmentedEvent; + /** + * A referendum has begun. + **/ + Started: AugmentedEvent; + /** + * A public proposal has been tabled for referendum vote. + **/ + Tabled: AugmentedEvent; + /** + * An account has cancelled a previous delegation operation. + **/ + Undelegated: AugmentedEvent; + /** + * An external proposal has been vetoed. + **/ + Vetoed: AugmentedEvent; + /** + * An account has voted in a referendum + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; dmpQueue: { /** * Downward message executed with the given outcome. @@ -378,6 +519,93 @@ **/ [key: string]: AugmentedEvent; }; + fellowshipCollective: { + /** + * A member `who` has been added. + **/ + MemberAdded: AugmentedEvent; + /** + * The member `who` of given `rank` has been removed from the collective. + **/ + MemberRemoved: AugmentedEvent; + /** + * The member `who`se rank has been changed to the given `rank`. + **/ + RankChanged: AugmentedEvent; + /** + * The member `who` has voted for the `poll` with the given `vote` leading to an updated + * `tally`. + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fellowshipReferenda: { + /** + * A referendum has been approved and its proposal has been scheduled. + **/ + Approved: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + ConfirmAborted: AugmentedEvent; + /** + * A referendum has ended its confirmation phase and is ready for approval. + **/ + Confirmed: AugmentedEvent; + ConfirmStarted: AugmentedEvent; + /** + * The decision deposit has been placed. + **/ + DecisionDepositPlaced: AugmentedEvent; + /** + * The decision deposit has been refunded. + **/ + DecisionDepositRefunded: AugmentedEvent; + /** + * A referendum has moved into the deciding phase. + **/ + DecisionStarted: AugmentedEvent; + /** + * A deposit has been slashaed. + **/ + DepositSlashed: AugmentedEvent; + /** + * A referendum has been killed. + **/ + Killed: AugmentedEvent; + /** + * Metadata for a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + Rejected: AugmentedEvent; + /** + * The submission deposit has been refunded. + **/ + SubmissionDepositRefunded: AugmentedEvent; + /** + * A referendum has been submitted. + **/ + Submitted: AugmentedEvent; + /** + * A referendum has been timed out without being decided. + **/ + TimedOut: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; foreignAssets: { /** * The asset registered. @@ -400,6 +628,36 @@ **/ [key: string]: AugmentedEvent; }; + govScheduler: { + /** + * The call for the provided hash was not found so the task has been aborted. + **/ + CallUnavailable: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Canceled some task. + **/ + Canceled: AugmentedEvent; + /** + * Dispatched some task. + **/ + Dispatched: AugmentedEvent, id: Option, result: Result], { task: ITuple<[u32, u32]>, id: Option, result: Result }>; + /** + * The given task was unable to be renewed since the agenda is full at that block. + **/ + PeriodicFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task can never be executed since it is overweight. + **/ + PermanentlyOverweight: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Scheduled some task. + **/ + Scheduled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; identity: { /** * A number of identities and associated info were forcibly inserted. @@ -786,6 +1044,72 @@ **/ [key: string]: AugmentedEvent; }; + technicalCommittee: { + /** + * A motion was approved by the required threshold. + **/ + Approved: AugmentedEvent; + /** + * A proposal was closed because its threshold was reached or after its duration was up. + **/ + Closed: AugmentedEvent; + /** + * A motion was not approved by the required threshold. + **/ + Disapproved: AugmentedEvent; + /** + * A motion was executed; result will be `Ok` if it returned without error. + **/ + Executed: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * A single member did some action; result will be `Ok` if it returned without error. + **/ + MemberExecuted: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * A motion (given hash) has been proposed (by given account) with a threshold (given + * `MemberCount`). + **/ + Proposed: AugmentedEvent; + /** + * A motion (given hash) has been voted on by given account, leaving + * a tally (yes votes and no votes given respectively as `MemberCount`). + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + technicalCommitteeMembership: { + /** + * Phantom member, never used. + **/ + Dummy: AugmentedEvent; + /** + * One of the members' keys changed. + **/ + KeyChanged: AugmentedEvent; + /** + * The given member was added; see the transaction for who. + **/ + MemberAdded: AugmentedEvent; + /** + * The given member was removed; see the transaction for who. + **/ + MemberRemoved: AugmentedEvent; + /** + * The membership was reset; see the transaction for who the new set is. + **/ + MembersReset: AugmentedEvent; + /** + * Two members were swapped; see the transaction for who. + **/ + MembersSwapped: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; testUtils: { BatchCompleted: AugmentedEvent; ShouldRollback: AugmentedEvent; --- a/tests/src/interfaces/augment-api-query.ts +++ b/tests/src/interfaces/augment-api-query.ts @@ -7,10 +7,10 @@ import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@polkadot/api-base/types'; import type { Data } from '@polkadot/types'; -import type { BTreeMap, Bytes, Option, U256, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; +import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } 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, CumulusPalletParachainSystemCodeUpgradeAuthorization, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OpalRuntimeRuntimeCommonSessionKeys, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesIdAmount, PalletBalancesReserveData, PalletConfigurationAppPromotionConfiguration, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCodeMetadata, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletNonfungibleItemData, PalletPreimageRequestStatus, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletXcmQueryStatus, PalletXcmRemoteLockedFungibleRecord, PalletXcmVersionMigrationStage, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV4AbridgedHostConfiguration, PolkadotPrimitivesV4PersistedValidationData, PolkadotPrimitivesV4UpgradeRestriction, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, SpRuntimeDigest, SpTrieStorageProof, SpWeightsWeightV2Weight, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV3MultiLocation, XcmVersionedAssetId, XcmVersionedMultiLocation } from '@polkadot/types/lookup'; +import type { AccountId32, Call, H160, H256 } from '@polkadot/types/interfaces/runtime'; +import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCodeUpgradeAuthorization, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSupportPreimagesBounded, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesIdAmount, PalletBalancesReserveData, PalletCollectiveVotes, PalletConfigurationAppPromotionConfiguration, PalletDemocracyMetadataOwner, PalletDemocracyReferendumInfo, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCodeMetadata, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletNonfungibleItemData, PalletPreimageRequestStatus, PalletRankedCollectiveMemberRecord, PalletRankedCollectiveVoteRecord, PalletReferendaReferendumInfo, PalletSchedulerScheduled, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletXcmQueryStatus, PalletXcmRemoteLockedFungibleRecord, PalletXcmVersionMigrationStage, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV4AbridgedHostConfiguration, PolkadotPrimitivesV4PersistedValidationData, PolkadotPrimitivesV4UpgradeRestriction, QuartzRuntimeRuntimeCommonSessionKeys, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, SpRuntimeDigest, SpTrieStorageProof, SpWeightsWeightV2Weight, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV3MultiLocation, XcmVersionedAssetId, XcmVersionedMultiLocation } from '@polkadot/types/lookup'; import type { Observable } from '@polkadot/types/types'; export type __AugmentedQuery = AugmentedQuery unknown>; @@ -234,6 +234,122 @@ **/ [key: string]: QueryableStorageEntry; }; + council: { + /** + * The current members of the collective. This is stored sorted (just by value). + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The prime member that helps determine the default vote behavior in case of absentations. + **/ + prime: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Proposals so far. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Actual proposal for a given hash, if it's current. + **/ + proposalOf: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The hashes of the active proposals. + **/ + proposals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Votes on a given proposal, if it is ongoing. + **/ + voting: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + councilMembership: { + /** + * The current membership, stored as an ordered Vec. + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current prime member, if one exists. + **/ + prime: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + democracy: { + /** + * A record of who vetoed what. Maps proposal hash to a possible existent block number + * (until when it may not be resubmitted) and who vetoed it. + **/ + blacklist: AugmentedQuery Observable]>>>, [H256]> & QueryableStorageEntry; + /** + * Record of all proposals that have been subject to emergency cancellation. + **/ + cancellations: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; + /** + * Those who have locked a deposit. + * + * TWOX-NOTE: Safe, as increasing integer keys are safe. + **/ + depositOf: AugmentedQuery Observable, u128]>>>, [u32]> & QueryableStorageEntry; + /** + * True if the last referendum tabled was submitted externally. False if it was a public + * proposal. + **/ + lastTabledWasExternal: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The lowest referendum index representing an unbaked referendum. Equal to + * `ReferendumCount` if there isn't a unbaked referendum. + **/ + lowestUnbaked: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * General information concerning any proposal or referendum. + * The `PreimageHash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [PalletDemocracyMetadataOwner]> & QueryableStorageEntry; + /** + * The referendum to be tabled whenever it would be valid to table an external proposal. + * This happens when a referendum needs to be tabled and one of two conditions are met: + * - `LastTabledWasExternal` is `false`; or + * - `PublicProps` is empty. + **/ + nextExternal: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The number of (public) proposals that have been made so far. + **/ + publicPropCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The public proposals. Unsorted. The second item is the proposal. + **/ + publicProps: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + * + * TWOX-NOTE: SAFE as indexes are not under an attacker’s control. + **/ + referendumInfoOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * All votes for a particular voter. We store the balance for the number of votes that we + * have recorded. The second item is the total amount of delegations, that will be added. + * + * TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway. + **/ + votingOf: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; dmpQueue: { /** * The configuration. @@ -379,6 +495,69 @@ **/ [key: string]: QueryableStorageEntry; }; + fellowshipCollective: { + /** + * The index of each ranks's member into the group of members who have at least that rank. + **/ + idToIndex: AugmentedQuery Observable>, [u16, AccountId32]> & QueryableStorageEntry; + /** + * The members in the collective by index. All indices in the range `0..MemberCount` will + * return `Some`, however a member's index is not guaranteed to remain unchanged over time. + **/ + indexToId: AugmentedQuery Observable>, [u16, u32]> & QueryableStorageEntry; + /** + * The number of members in the collective who have at least the rank according to the index + * of the vec. + **/ + memberCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The current members of the collective. + **/ + members: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Votes on a given proposal, if it is ongoing. + **/ + voting: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + votingCleanup: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + fellowshipReferenda: { + /** + * The number of referenda being decided currently. + **/ + decidingCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The metadata is a general information concerning the referendum. + * The `PreimageHash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + **/ + referendumInfoFor: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sorted list of referenda ready to be decided but not yet being decided, ordered by + * conviction-weighted approvals. + * + * This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`. + **/ + trackQueue: AugmentedQuery Observable>>, [u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; foreignAssets: { /** * The storages for assets to fungible collection binding @@ -432,6 +611,24 @@ **/ [key: string]: QueryableStorageEntry; }; + govScheduler: { + /** + * Items to be executed, indexed by the block number that they should be executed on. + **/ + agenda: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + incompleteSince: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Lookup from a name to the block number and index of the task. + * + * For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4 + * identities. + **/ + lookup: AugmentedQuery Observable>>, [U8aFixed]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; identity: { /** * Information that is pertinent to identify the entity behind an account. @@ -834,7 +1031,7 @@ /** * The next session keys for a validator. **/ - nextKeys: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + nextKeys: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; /** * True if the underlying economic identities or weighting behind the validators * has changed in the queued validator set. @@ -844,7 +1041,7 @@ * The queued keys for the next session. When the next session begins, these keys * will be used to determine the validator's session keys. **/ - queuedKeys: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + queuedKeys: AugmentedQuery Observable>>, []> & QueryableStorageEntry; /** * The current set of validators. **/ @@ -975,6 +1172,50 @@ **/ [key: string]: QueryableStorageEntry; }; + technicalCommittee: { + /** + * The current members of the collective. This is stored sorted (just by value). + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The prime member that helps determine the default vote behavior in case of absentations. + **/ + prime: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Proposals so far. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Actual proposal for a given hash, if it's current. + **/ + proposalOf: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The hashes of the active proposals. + **/ + proposals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Votes on a given proposal, if it is ongoing. + **/ + voting: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + technicalCommitteeMembership: { + /** + * The current membership, stored as an ordered Vec. + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current prime member, if one exists. + **/ + prime: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; testUtils: { enabled: AugmentedQuery Observable, []> & QueryableStorageEntry; testValue: AugmentedQuery Observable, []> & QueryableStorageEntry; --- a/tests/src/interfaces/augment-api-tx.ts +++ b/tests/src/interfaces/augment-api-tx.ts @@ -7,10 +7,10 @@ import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@polkadot/api-base/types'; import type { Data } from '@polkadot/types'; -import type { Bytes, Compact, Option, U256, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; +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 } from '@polkadot/types/interfaces/runtime'; -import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumLog, EthereumTransactionTransactionV2, OpalRuntimeRuntimeCommonSessionKeys, OrmlVestingVestingSchedule, PalletConfigurationAppPromotionConfiguration, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletIdentityBitFlags, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletIdentityRegistration, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletStateTrieMigrationProgress, SpWeightsWeightV2Weight, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV3MultiLocation, XcmV3WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup'; +import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumLog, EthereumTransactionTransactionV2, FrameSupportPreimagesBounded, FrameSupportScheduleDispatchTime, OrmlVestingVestingSchedule, PalletConfigurationAppPromotionConfiguration, PalletDemocracyConviction, PalletDemocracyMetadataOwner, PalletDemocracyVoteAccountVote, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletIdentityBitFlags, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletIdentityRegistration, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletStateTrieMigrationProgress, QuartzRuntimeOriginCaller, QuartzRuntimeRuntimeCommonSessionKeys, SpWeightsWeightV2Weight, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV3MultiLocation, XcmV3WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup'; export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; export type __SubmittableExtrinsic = SubmittableExtrinsic; @@ -289,12 +289,455 @@ **/ [key: string]: SubmittableExtrinsicFunction; }; + council: { + /** + * Close a vote that is either approved, disapproved or whose voting period has ended. + * + * May be called by any signed account in order to finish voting and close the proposal. + * + * If called before the end of the voting period it will only close the vote if it is + * has enough votes to be approved or disapproved. + * + * If called after the end of the voting period abstentions are counted as rejections + * unless there is a prime member set and the prime member cast an approval. + * + * If the close operation completes successfully with disapproval, the transaction fee will + * be waived. Otherwise execution of the approved operation will be charged to the caller. + * + * + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed + * proposal. + * + `length_bound`: The upper bound for the length of the proposal in storage. Checked via + * `storage::read` so it is `size_of::() == 4` larger than the pure length. + * + * ## Complexity + * - `O(B + M + P1 + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - `P1` is the complexity of `proposal` preimage. + * - `P2` is proposal-count (code-bounded) + **/ + close: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, proposalWeightBound: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, Compact, SpWeightsWeightV2Weight, Compact]>; + /** + * Disapprove a proposal, close, and remove it from the system, regardless of its current + * state. + * + * Must be called by the Root origin. + * + * Parameters: + * * `proposal_hash`: The hash of the proposal that should be disapproved. + * + * ## Complexity + * O(P) where P is the number of max proposals + **/ + disapproveProposal: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Dispatch a proposal from a member using the `Member` origin. + * + * Origin must be a member of the collective. + * + * ## Complexity: + * - `O(B + M + P)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` members-count (code-bounded) + * - `P` complexity of dispatching `proposal` + **/ + execute: AugmentedSubmittable<(proposal: Call | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Call, Compact]>; + /** + * Add a new proposal to either be voted on or executed directly. + * + * Requires the sender to be member. + * + * `threshold` determines whether `proposal` is executed directly (`threshold < 2`) + * or put up for voting. + * + * ## Complexity + * - `O(B + M + P1)` or `O(B + M + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - branching is influenced by `threshold` where: + * - `P1` is proposal execution complexity (`threshold < 2`) + * - `P2` is proposals-count (code-bounded) (`threshold >= 2`) + **/ + propose: AugmentedSubmittable<(threshold: Compact | AnyNumber | Uint8Array, proposal: Call | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Call, Compact]>; + /** + * Set the collective's membership. + * + * - `new_members`: The new member list. Be nice to the chain and provide it sorted. + * - `prime`: The prime member whose vote sets the default. + * - `old_count`: The upper bound for the previous number of members in storage. Used for + * weight estimation. + * + * The dispatch of this call must be `SetMembersOrigin`. + * + * NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but + * the weight estimations rely on it to estimate dispatchable weight. + * + * # WARNING: + * + * The `pallet-collective` can also be managed by logic outside of the pallet through the + * implementation of the trait [`ChangeMembers`]. + * Any call to `set_members` must be careful that the member set doesn't get out of sync + * with other logic managing the member set. + * + * ## Complexity: + * - `O(MP + N)` where: + * - `M` old-members-count (code- and governance-bounded) + * - `N` new-members-count (code- and governance-bounded) + * - `P` proposals-count (code-bounded) + **/ + setMembers: AugmentedSubmittable<(newMembers: Vec | (AccountId32 | string | Uint8Array)[], prime: Option | null | Uint8Array | AccountId32 | string, oldCount: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, Option, u32]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * Requires the sender to be a member. + * + * Transaction fees will be waived if the member is voting on any particular proposal + * for the first time and the call is successful. Subsequent vote changes will charge a + * fee. + * ## Complexity + * - `O(M)` where `M` is members-count (code- and governance-bounded) + **/ + vote: AugmentedSubmittable<(proposal: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [H256, Compact, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + councilMembership: { + /** + * Add a member `who` to the set. + * + * May only be called from `T::AddOrigin`. + **/ + addMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Swap out the sending member for some other key `new`. + * + * May only be called from `Signed` origin of a current member. + * + * Prime membership is passed from the origin account to `new`, if extant. + **/ + changeKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove the prime member if it exists. + * + * May only be called from `T::PrimeOrigin`. + **/ + clearPrime: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a member `who` from the set. + * + * May only be called from `T::RemoveOrigin`. + **/ + removeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Change the membership to a new set, disregarding the existing membership. Be nice and + * pass `members` pre-sorted. + * + * May only be called from `T::ResetOrigin`. + **/ + resetMembers: AugmentedSubmittable<(members: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Set the prime member. Must be a current member. + * + * May only be called from `T::PrimeOrigin`. + **/ + setPrime: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Swap out one member `remove` for another `add`. + * + * May only be called from `T::SwapOrigin`. + * + * Prime membership is *not* passed from `remove` to `add`, if extant. + **/ + swapMember: AugmentedSubmittable<(remove: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, add: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; cumulusXcm: { /** * Generic tx **/ [key: string]: SubmittableExtrinsicFunction; }; + democracy: { + /** + * Permanently place a proposal into the blacklist. This prevents it from ever being + * proposed again. + * + * If called on a queued public or external proposal, then this will result in it being + * removed. If the `ref_index` supplied is an active referendum with the proposal hash, + * then it will be cancelled. + * + * The dispatch origin of this call must be `BlacklistOrigin`. + * + * - `proposal_hash`: The proposal hash to blacklist permanently. + * - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be + * cancelled. + * + * Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a + * reasonable value). + **/ + blacklist: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, maybeRefIndex: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [H256, Option]>; + /** + * Remove a proposal. + * + * The dispatch origin of this call must be `CancelProposalOrigin`. + * + * - `prop_index`: The index of the proposal to cancel. + * + * Weight: `O(p)` where `p = PublicProps::::decode_len()` + **/ + cancelProposal: AugmentedSubmittable<(propIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Remove a referendum. + * + * The dispatch origin of this call must be _Root_. + * + * - `ref_index`: The index of the referendum to cancel. + * + * # Weight: `O(1)`. + **/ + cancelReferendum: AugmentedSubmittable<(refIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Clears all public proposals. + * + * The dispatch origin of this call must be _Root_. + * + * Weight: `O(1)`. + **/ + clearPublicProposals: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Delegate the voting power (with some given conviction) of the sending account. + * + * The balance delegated is locked for as long as it's delegated, and thereafter for the + * time appropriate for the conviction's lock period. + * + * The dispatch origin of this call must be _Signed_, and the signing account must either: + * - be delegating already; or + * - have no voting activity (if there is, then it will need to be removed/consolidated + * through `reap_vote` or `unvote`). + * + * - `to`: The account whose voting the `target` account's voting power will follow. + * - `conviction`: The conviction that will be attached to the delegated votes. When the + * account is undelegated, the funds will be locked for the corresponding period. + * - `balance`: The amount of the account's balance to be used in delegating. This must not + * be more than the account's current balance. + * + * Emits `Delegated`. + * + * Weight: `O(R)` where R is the number of referendums the voter delegating to has + * voted on. Weight is charged as if maximum votes. + **/ + delegate: AugmentedSubmittable<(to: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, conviction: PalletDemocracyConviction | 'None' | 'Locked1x' | 'Locked2x' | 'Locked3x' | 'Locked4x' | 'Locked5x' | 'Locked6x' | number | Uint8Array, balance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, PalletDemocracyConviction, u128]>; + /** + * Schedule an emergency cancellation of a referendum. Cannot happen twice to the same + * referendum. + * + * The dispatch origin of this call must be `CancellationOrigin`. + * + * -`ref_index`: The index of the referendum to cancel. + * + * Weight: `O(1)`. + **/ + emergencyCancel: AugmentedSubmittable<(refIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Schedule a referendum to be tabled once it is legal to schedule an external + * referendum. + * + * The dispatch origin of this call must be `ExternalOrigin`. + * + * - `proposal_hash`: The preimage hash of the proposal. + **/ + externalPropose: AugmentedSubmittable<(proposal: FrameSupportPreimagesBounded | { Legacy: any } | { Inline: any } | { Lookup: any } | string | Uint8Array) => SubmittableExtrinsic, [FrameSupportPreimagesBounded]>; + /** + * Schedule a negative-turnout-bias referendum to be tabled next once it is legal to + * schedule an external referendum. + * + * The dispatch of this call must be `ExternalDefaultOrigin`. + * + * - `proposal_hash`: The preimage hash of the proposal. + * + * Unlike `external_propose`, blacklisting has no effect on this and it may replace a + * pre-scheduled `external_propose` call. + * + * Weight: `O(1)` + **/ + externalProposeDefault: AugmentedSubmittable<(proposal: FrameSupportPreimagesBounded | { Legacy: any } | { Inline: any } | { Lookup: any } | string | Uint8Array) => SubmittableExtrinsic, [FrameSupportPreimagesBounded]>; + /** + * Schedule a majority-carries referendum to be tabled next once it is legal to schedule + * an external referendum. + * + * The dispatch of this call must be `ExternalMajorityOrigin`. + * + * - `proposal_hash`: The preimage hash of the proposal. + * + * Unlike `external_propose`, blacklisting has no effect on this and it may replace a + * pre-scheduled `external_propose` call. + * + * Weight: `O(1)` + **/ + externalProposeMajority: AugmentedSubmittable<(proposal: FrameSupportPreimagesBounded | { Legacy: any } | { Inline: any } | { Lookup: any } | string | Uint8Array) => SubmittableExtrinsic, [FrameSupportPreimagesBounded]>; + /** + * Schedule the currently externally-proposed majority-carries referendum to be tabled + * immediately. If there is no externally-proposed referendum currently, or if there is one + * but it is not a majority-carries referendum then it fails. + * + * The dispatch of this call must be `FastTrackOrigin`. + * + * - `proposal_hash`: The hash of the current external proposal. + * - `voting_period`: The period that is allowed for voting on this proposal. Increased to + * Must be always greater than zero. + * For `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`. + * - `delay`: The number of block after voting has ended in approval and this should be + * enacted. This doesn't have a minimum amount. + * + * Emits `Started`. + * + * Weight: `O(1)` + **/ + fastTrack: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, votingPeriod: u32 | AnyNumber | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, u32, u32]>; + /** + * Propose a sensitive action to be taken. + * + * The dispatch origin of this call must be _Signed_ and the sender must + * have funds to cover the deposit. + * + * - `proposal_hash`: The hash of the proposal preimage. + * - `value`: The amount of deposit (must be at least `MinimumDeposit`). + * + * Emits `Proposed`. + **/ + propose: AugmentedSubmittable<(proposal: FrameSupportPreimagesBounded | { Legacy: any } | { Inline: any } | { Lookup: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [FrameSupportPreimagesBounded, Compact]>; + /** + * Remove a vote for a referendum. + * + * If the `target` is equal to the signer, then this function is exactly equivalent to + * `remove_vote`. If not equal to the signer, then the vote must have expired, + * either because the referendum was cancelled, because the voter lost the referendum or + * because the conviction period is over. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account of the vote to be removed; this account must have voted for + * referendum `index`. + * - `index`: The index of referendum of the vote to be removed. + * + * Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeOtherVote: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Remove a vote for a referendum. + * + * If: + * - the referendum was cancelled, or + * - the referendum is ongoing, or + * - the referendum has ended such that + * - the vote of the account was in opposition to the result; or + * - there was no conviction to the account's vote; or + * - the account made a split vote + * ...then the vote is removed cleanly and a following call to `unlock` may result in more + * funds being available. + * + * If, however, the referendum has ended and: + * - it finished corresponding to the vote of the account, and + * - the account made a standard vote with conviction, and + * - the lock period of the conviction is not over + * ...then the lock will be aggregated into the overall account's lock, which may involve + * *overlocking* (where the two locks are combined into a single lock that is the maximum + * of both the amount locked and the time is it locked for). + * + * The dispatch origin of this call must be _Signed_, and the signer must have a vote + * registered for referendum `index`. + * + * - `index`: The index of referendum of the vote to be removed. + * + * Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeVote: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Signals agreement with a particular proposal. + * + * The dispatch origin of this call must be _Signed_ and the sender + * must have funds to cover the deposit, equal to the original deposit. + * + * - `proposal`: The index of the proposal to second. + **/ + second: AugmentedSubmittable<(proposal: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Set or clear a metadata of a proposal or a referendum. + * + * Parameters: + * - `origin`: Must correspond to the `MetadataOwner`. + * - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove` + * threshold. + * - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst` + * threshold. + * - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority` + * threshold. + * - `Signed` by a creator for a public proposal. + * - `Signed` to clear a metadata for a finished referendum. + * - `Root` to set a metadata for an ongoing referendum. + * - `owner`: an identifier of a metadata owner. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(owner: PalletDemocracyMetadataOwner | { External: any } | { Proposal: any } | { Referendum: any } | string | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [PalletDemocracyMetadataOwner, Option]>; + /** + * Undelegate the voting power of the sending account. + * + * Tokens may be unlocked following once an amount of time consistent with the lock period + * of the conviction with which the delegation was issued. + * + * The dispatch origin of this call must be _Signed_ and the signing account must be + * currently delegating. + * + * Emits `Undelegated`. + * + * Weight: `O(R)` where R is the number of referendums the voter delegating to has + * voted on. Weight is charged as if maximum votes. + **/ + undelegate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Unlock tokens that have an expired lock. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account to remove the lock on. + * + * Weight: `O(R)` with R number of vote of target. + **/ + unlock: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Veto and blacklist the external proposal hash. + * + * The dispatch origin of this call must be `VetoOrigin`. + * + * - `proposal_hash`: The preimage hash of the proposal to veto and blacklist. + * + * Emits `Vetoed`. + * + * Weight: `O(V + log(V))` where V is number of `existing vetoers` + **/ + vetoExternal: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal; + * otherwise it is a vote to keep the status quo. + * + * The dispatch origin of this call must be _Signed_. + * + * - `ref_index`: The index of the referendum to vote for. + * - `vote`: The vote configuration. + **/ + vote: AugmentedSubmittable<(refIndex: Compact | AnyNumber | Uint8Array, vote: PalletDemocracyVoteAccountVote | { Standard: any } | { Split: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, PalletDemocracyVoteAccountVote]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; dmpQueue: { /** * Service a single overweight message. @@ -382,6 +825,174 @@ **/ [key: string]: SubmittableExtrinsicFunction; }; + fellowshipCollective: { + /** + * Introduce a new member. + * + * - `origin`: Must be the `AdminOrigin`. + * - `who`: Account of non-member which will become a member. + * - `rank`: The rank to give the new member. + * + * Weight: `O(1)` + **/ + addMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove votes from the given poll. It must have ended. + * + * - `origin`: Must be `Signed` by any account. + * - `poll_index`: Index of a poll which is completed and for which votes continue to + * exist. + * - `max`: Maximum number of vote items from remove in this call. + * + * Transaction fees are waived if the operation is successful. + * + * Weight `O(max)` (less if there are fewer items to remove than `max`). + **/ + cleanupPoll: AugmentedSubmittable<(pollIndex: u32 | AnyNumber | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Decrement the rank of an existing member by one. If the member is already at rank zero, + * then they are removed entirely. + * + * - `origin`: Must be the `AdminOrigin`. + * - `who`: Account of existing member of rank greater than zero. + * + * Weight: `O(1)`, less if the member's index is highest in its rank. + **/ + demoteMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Increment the rank of an existing member by one. + * + * - `origin`: Must be the `AdminOrigin`. + * - `who`: Account of existing member. + * + * Weight: `O(1)` + **/ + promoteMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove the member entirely. + * + * - `origin`: Must be the `AdminOrigin`. + * - `who`: Account of existing member of rank greater than zero. + * - `min_rank`: The rank of the member or greater. + * + * Weight: `O(min_rank)`. + **/ + removeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minRank: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u16]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * - `origin`: Must be `Signed` by a member account. + * - `poll`: Index of a poll which is ongoing. + * - `aye`: `true` if the vote is to approve the proposal, `false` otherwise. + * + * Transaction fees are be waived if the member is voting on any particular proposal + * for the first time and the call is successful. Subsequent vote changes will charge a + * fee. + * + * Weight: `O(1)`, less if there was no previous vote on the poll by the member. + **/ + vote: AugmentedSubmittable<(poll: u32 | AnyNumber | Uint8Array, aye: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fellowshipReferenda: { + /** + * Cancel an ongoing referendum. + * + * - `origin`: must be the `CancelOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Cancelled`. + **/ + cancel: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Cancel an ongoing referendum and slash the deposits. + * + * - `origin`: must be the `KillOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Killed` and `DepositSlashed`. + **/ + kill: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a referendum onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `index`: the referendum to be advanced. + **/ + nudgeReferendum: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a track onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `track`: the track to be advanced. + * + * Action item for when there is now one fewer referendum in the deciding phase and the + * `DecidingCount` is not yet updated. This means that we should either: + * - begin deciding another referendum (and leave `DecidingCount` alone); or + * - decrement `DecidingCount`. + **/ + oneFewerDeciding: AugmentedSubmittable<(track: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Post the Decision Deposit for a referendum. + * + * - `origin`: must be `Signed` and the account must have funds available for the + * referendum's track's Decision Deposit. + * - `index`: The index of the submitted referendum whose Decision Deposit is yet to be + * posted. + * + * Emits `DecisionDepositPlaced`. + **/ + placeDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Decision Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Decision Deposit has not yet been + * refunded. + * + * Emits `DecisionDepositRefunded`. + **/ + refundDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Submission Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Submission Deposit has not yet been + * refunded. + * + * Emits `SubmissionDepositRefunded`. + **/ + refundSubmissionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set or clear metadata of a referendum. + * + * Parameters: + * - `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a + * metadata of a finished referendum. + * - `index`: The index of a referendum to set or clear metadata for. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Propose a referendum on a privileged action. + * + * - `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds + * available. + * - `proposal_origin`: The origin from which the proposal should be executed. + * - `proposal`: The proposal. + * - `enactment_moment`: The moment that the proposal should be enacted. + * + * Emits `Submitted`. + **/ + submit: AugmentedSubmittable<(proposalOrigin: QuartzRuntimeOriginCaller | { system: any } | { Void: any } | { Council: any } | { TechnicalCommittee: any } | { PolkadotXcm: any } | { CumulusXcm: any } | { Origins: any } | { Ethereum: any } | string | Uint8Array, proposal: FrameSupportPreimagesBounded | { Legacy: any } | { Inline: any } | { Lookup: any } | string | Uint8Array, enactmentMoment: FrameSupportScheduleDispatchTime | { At: any } | { After: any } | string | Uint8Array) => SubmittableExtrinsic, [QuartzRuntimeOriginCaller, FrameSupportPreimagesBounded, FrameSupportScheduleDispatchTime]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; foreignAssets: { registerForeignAsset: AugmentedSubmittable<(owner: AccountId32 | string | Uint8Array, location: XcmVersionedMultiLocation | { V2: any } | { V3: any } | string | Uint8Array, metadata: PalletForeignAssetsModuleAssetMetadata | { name?: any; symbol?: any; decimals?: any; minimalBalance?: any } | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, XcmVersionedMultiLocation, PalletForeignAssetsModuleAssetMetadata]>; updateForeignAsset: AugmentedSubmittable<(foreignAssetId: u32 | AnyNumber | Uint8Array, location: XcmVersionedMultiLocation | { V2: any } | { V3: any } | string | Uint8Array, metadata: PalletForeignAssetsModuleAssetMetadata | { name?: any; symbol?: any; decimals?: any; minimalBalance?: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, XcmVersionedMultiLocation, PalletForeignAssetsModuleAssetMetadata]>; @@ -390,6 +1001,36 @@ **/ [key: string]: SubmittableExtrinsicFunction; }; + govScheduler: { + /** + * Cancel an anonymously scheduled task. + **/ + cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Cancel a named scheduled task. + **/ + cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Anonymously schedule a task. + **/ + schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, Call]>; + /** + * Anonymously schedule a task after a delay. + **/ + scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, Call]>; + /** + * Schedule a named task. + **/ + scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, Call]>; + /** + * Schedule a named task after a delay. + **/ + scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, Call]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; identity: { /** * Add a registrar to the system. @@ -966,7 +1607,7 @@ * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is * fixed. **/ - setKeys: AugmentedSubmittable<(keys: OpalRuntimeRuntimeCommonSessionKeys | { aura?: any } | string | Uint8Array, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic, [OpalRuntimeRuntimeCommonSessionKeys, Bytes]>; + setKeys: AugmentedSubmittable<(keys: QuartzRuntimeRuntimeCommonSessionKeys | { aura?: any } | string | Uint8Array, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic, [QuartzRuntimeRuntimeCommonSessionKeys, Bytes]>; /** * Generic tx **/ @@ -1135,6 +1776,173 @@ **/ [key: string]: SubmittableExtrinsicFunction; }; + technicalCommittee: { + /** + * Close a vote that is either approved, disapproved or whose voting period has ended. + * + * May be called by any signed account in order to finish voting and close the proposal. + * + * If called before the end of the voting period it will only close the vote if it is + * has enough votes to be approved or disapproved. + * + * If called after the end of the voting period abstentions are counted as rejections + * unless there is a prime member set and the prime member cast an approval. + * + * If the close operation completes successfully with disapproval, the transaction fee will + * be waived. Otherwise execution of the approved operation will be charged to the caller. + * + * + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed + * proposal. + * + `length_bound`: The upper bound for the length of the proposal in storage. Checked via + * `storage::read` so it is `size_of::() == 4` larger than the pure length. + * + * ## Complexity + * - `O(B + M + P1 + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - `P1` is the complexity of `proposal` preimage. + * - `P2` is proposal-count (code-bounded) + **/ + close: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, proposalWeightBound: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, Compact, SpWeightsWeightV2Weight, Compact]>; + /** + * Disapprove a proposal, close, and remove it from the system, regardless of its current + * state. + * + * Must be called by the Root origin. + * + * Parameters: + * * `proposal_hash`: The hash of the proposal that should be disapproved. + * + * ## Complexity + * O(P) where P is the number of max proposals + **/ + disapproveProposal: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Dispatch a proposal from a member using the `Member` origin. + * + * Origin must be a member of the collective. + * + * ## Complexity: + * - `O(B + M + P)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` members-count (code-bounded) + * - `P` complexity of dispatching `proposal` + **/ + execute: AugmentedSubmittable<(proposal: Call | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Call, Compact]>; + /** + * Add a new proposal to either be voted on or executed directly. + * + * Requires the sender to be member. + * + * `threshold` determines whether `proposal` is executed directly (`threshold < 2`) + * or put up for voting. + * + * ## Complexity + * - `O(B + M + P1)` or `O(B + M + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - branching is influenced by `threshold` where: + * - `P1` is proposal execution complexity (`threshold < 2`) + * - `P2` is proposals-count (code-bounded) (`threshold >= 2`) + **/ + propose: AugmentedSubmittable<(threshold: Compact | AnyNumber | Uint8Array, proposal: Call | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Call, Compact]>; + /** + * Set the collective's membership. + * + * - `new_members`: The new member list. Be nice to the chain and provide it sorted. + * - `prime`: The prime member whose vote sets the default. + * - `old_count`: The upper bound for the previous number of members in storage. Used for + * weight estimation. + * + * The dispatch of this call must be `SetMembersOrigin`. + * + * NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but + * the weight estimations rely on it to estimate dispatchable weight. + * + * # WARNING: + * + * The `pallet-collective` can also be managed by logic outside of the pallet through the + * implementation of the trait [`ChangeMembers`]. + * Any call to `set_members` must be careful that the member set doesn't get out of sync + * with other logic managing the member set. + * + * ## Complexity: + * - `O(MP + N)` where: + * - `M` old-members-count (code- and governance-bounded) + * - `N` new-members-count (code- and governance-bounded) + * - `P` proposals-count (code-bounded) + **/ + setMembers: AugmentedSubmittable<(newMembers: Vec | (AccountId32 | string | Uint8Array)[], prime: Option | null | Uint8Array | AccountId32 | string, oldCount: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, Option, u32]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * Requires the sender to be a member. + * + * Transaction fees will be waived if the member is voting on any particular proposal + * for the first time and the call is successful. Subsequent vote changes will charge a + * fee. + * ## Complexity + * - `O(M)` where `M` is members-count (code- and governance-bounded) + **/ + vote: AugmentedSubmittable<(proposal: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [H256, Compact, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + technicalCommitteeMembership: { + /** + * Add a member `who` to the set. + * + * May only be called from `T::AddOrigin`. + **/ + addMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Swap out the sending member for some other key `new`. + * + * May only be called from `Signed` origin of a current member. + * + * Prime membership is passed from the origin account to `new`, if extant. + **/ + changeKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove the prime member if it exists. + * + * May only be called from `T::PrimeOrigin`. + **/ + clearPrime: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a member `who` from the set. + * + * May only be called from `T::RemoveOrigin`. + **/ + removeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Change the membership to a new set, disregarding the existing membership. Be nice and + * pass `members` pre-sorted. + * + * May only be called from `T::ResetOrigin`. + **/ + resetMembers: AugmentedSubmittable<(members: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Set the prime member. Must be a current member. + * + * May only be called from `T::PrimeOrigin`. + **/ + setPrime: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Swap out one member `remove` for another `add`. + * + * May only be called from `T::SwapOrigin`. + * + * Prime membership is *not* passed from `remove` to `add`, if extant. + **/ + swapMember: AugmentedSubmittable<(remove: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, add: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; testUtils: { batchAll: AugmentedSubmittable<(calls: Vec | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; enable: AugmentedSubmittable<() => SubmittableExtrinsic, []>; --- a/tests/src/interfaces/augment-types.ts +++ b/tests/src/interfaces/augment-types.ts @@ -5,7 +5,7 @@ // this is required to allow for ambient/previous definitions import '@polkadot/types/types/registry'; -import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemCodeUpgradeAuthorization, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, 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, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OpalRuntimeRuntimeCommonSessionKeys, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesIdAmount, PalletBalancesReasons, PalletBalancesReserveData, PalletCollatorSelectionCall, PalletCollatorSelectionError, PalletCollatorSelectionEvent, PalletCommonError, PalletCommonEvent, PalletConfigurationAppPromotionConfiguration, PalletConfigurationCall, PalletConfigurationError, PalletConfigurationEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCodeMetadata, PalletEvmCoderSubstrateError, PalletEvmContractHelpersCall, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletIdentityBitFlags, PalletIdentityCall, PalletIdentityError, PalletIdentityEvent, PalletIdentityIdentityField, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletPreimageCall, PalletPreimageError, PalletPreimageEvent, PalletPreimageRequestStatus, PalletRefungibleError, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStateTrieMigrationCall, PalletStateTrieMigrationError, PalletStateTrieMigrationEvent, PalletStateTrieMigrationMigrationCompute, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletStateTrieMigrationProgress, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmQueryStatus, PalletXcmRemoteLockedFungibleRecord, PalletXcmVersionMigrationStage, ParachainInfoCall, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV4AbridgedHostConfiguration, PolkadotPrimitivesV4AbridgedHrmpChannel, PolkadotPrimitivesV4PersistedValidationData, PolkadotPrimitivesV4UpgradeRestriction, SpArithmeticArithmeticError, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Public, SpCoreSr25519Signature, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionValidityInvalidTransaction, SpRuntimeTransactionValidityTransactionValidityError, SpRuntimeTransactionValidityUnknownTransaction, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, 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, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, UpPovEstimateRpcPovInfo, UpPovEstimateRpcTrieKeyValue, XcmDoubleEncoded, XcmV2BodyId, XcmV2BodyPart, XcmV2Instruction, XcmV2Junction, XcmV2MultiAsset, XcmV2MultiLocation, XcmV2MultiassetAssetId, XcmV2MultiassetAssetInstance, XcmV2MultiassetFungibility, XcmV2MultiassetMultiAssetFilter, XcmV2MultiassetMultiAssets, XcmV2MultiassetWildFungibility, XcmV2MultiassetWildMultiAsset, XcmV2MultilocationJunctions, XcmV2NetworkId, XcmV2OriginKind, XcmV2Response, XcmV2TraitsError, XcmV2WeightLimit, XcmV2Xcm, XcmV3Instruction, XcmV3Junction, XcmV3JunctionBodyId, XcmV3JunctionBodyPart, XcmV3JunctionNetworkId, XcmV3Junctions, XcmV3MaybeErrorCode, XcmV3MultiAsset, XcmV3MultiLocation, XcmV3MultiassetAssetId, XcmV3MultiassetAssetInstance, XcmV3MultiassetFungibility, XcmV3MultiassetMultiAssetFilter, XcmV3MultiassetMultiAssets, XcmV3MultiassetWildFungibility, XcmV3MultiassetWildMultiAsset, XcmV3PalletInfo, XcmV3QueryResponseInfo, XcmV3Response, XcmV3TraitsError, XcmV3TraitsOutcome, XcmV3WeightLimit, XcmV3Xcm, XcmVersionedAssetId, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedResponse, XcmVersionedXcm } from './default'; +import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemCodeUpgradeAuthorization, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize, 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, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportPreimagesBounded, FrameSupportScheduleDispatchTime, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesIdAmount, PalletBalancesReasons, PalletBalancesReserveData, PalletCollatorSelectionCall, PalletCollatorSelectionError, PalletCollatorSelectionEvent, PalletCollectiveCall, PalletCollectiveError, PalletCollectiveEvent, PalletCollectiveRawOrigin, PalletCollectiveVotes, PalletCommonError, PalletCommonEvent, PalletConfigurationAppPromotionConfiguration, PalletConfigurationCall, PalletConfigurationError, PalletConfigurationEvent, PalletDemocracyCall, PalletDemocracyConviction, PalletDemocracyDelegations, PalletDemocracyError, PalletDemocracyEvent, PalletDemocracyMetadataOwner, PalletDemocracyReferendumInfo, PalletDemocracyReferendumStatus, PalletDemocracyTally, PalletDemocracyVoteAccountVote, PalletDemocracyVotePriorLock, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCodeMetadata, PalletEvmCoderSubstrateError, PalletEvmContractHelpersCall, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletGovOriginsOrigin, PalletIdentityBitFlags, PalletIdentityCall, PalletIdentityError, PalletIdentityEvent, PalletIdentityIdentityField, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletMembershipCall, PalletMembershipError, PalletMembershipEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletPreimageCall, PalletPreimageError, PalletPreimageEvent, PalletPreimageRequestStatus, PalletRankedCollectiveCall, PalletRankedCollectiveError, PalletRankedCollectiveEvent, PalletRankedCollectiveMemberRecord, PalletRankedCollectiveTally, PalletRankedCollectiveVoteRecord, PalletReferendaCall, PalletReferendaCurve, PalletReferendaDecidingStatus, PalletReferendaDeposit, PalletReferendaError, PalletReferendaEvent, PalletReferendaReferendumInfo, PalletReferendaReferendumStatus, PalletReferendaTrackInfo, PalletRefungibleError, PalletSchedulerCall, PalletSchedulerError, PalletSchedulerEvent, PalletSchedulerScheduled, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStateTrieMigrationCall, PalletStateTrieMigrationError, PalletStateTrieMigrationEvent, PalletStateTrieMigrationMigrationCompute, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletStateTrieMigrationProgress, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PalletXcmQueryStatus, PalletXcmRemoteLockedFungibleRecord, PalletXcmVersionMigrationStage, ParachainInfoCall, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV4AbridgedHostConfiguration, PolkadotPrimitivesV4AbridgedHrmpChannel, PolkadotPrimitivesV4PersistedValidationData, PolkadotPrimitivesV4UpgradeRestriction, QuartzRuntimeOriginCaller, QuartzRuntimeRuntime, QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls, QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance, QuartzRuntimeRuntimeCommonSessionKeys, SpArithmeticArithmeticError, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Public, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionValidityInvalidTransaction, SpRuntimeTransactionValidityTransactionValidityError, SpRuntimeTransactionValidityUnknownTransaction, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, 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, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, UpPovEstimateRpcPovInfo, UpPovEstimateRpcTrieKeyValue, XcmDoubleEncoded, XcmV2BodyId, XcmV2BodyPart, XcmV2Instruction, XcmV2Junction, XcmV2MultiAsset, XcmV2MultiLocation, XcmV2MultiassetAssetId, XcmV2MultiassetAssetInstance, XcmV2MultiassetFungibility, XcmV2MultiassetMultiAssetFilter, XcmV2MultiassetMultiAssets, XcmV2MultiassetWildFungibility, XcmV2MultiassetWildMultiAsset, XcmV2MultilocationJunctions, XcmV2NetworkId, XcmV2OriginKind, XcmV2Response, XcmV2TraitsError, XcmV2WeightLimit, XcmV2Xcm, XcmV3Instruction, XcmV3Junction, XcmV3JunctionBodyId, XcmV3JunctionBodyPart, XcmV3JunctionNetworkId, XcmV3Junctions, XcmV3MaybeErrorCode, XcmV3MultiAsset, XcmV3MultiLocation, XcmV3MultiassetAssetId, XcmV3MultiassetAssetInstance, XcmV3MultiassetFungibility, XcmV3MultiassetMultiAssetFilter, XcmV3MultiassetMultiAssets, XcmV3MultiassetWildFungibility, XcmV3MultiassetWildMultiAsset, XcmV3PalletInfo, XcmV3QueryResponseInfo, XcmV3Response, XcmV3TraitsError, XcmV3TraitsOutcome, XcmV3WeightLimit, XcmV3Xcm, XcmVersionedAssetId, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedResponse, XcmVersionedXcm } from './default'; import type { Data, StorageKey } from '@polkadot/types'; import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, ISize, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, isize, 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'; @@ -25,7 +25,7 @@ import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective'; import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus'; import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractExecResultU64, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractInstantiateResultU64, 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, ContractContractSpecV4, 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, ContractMetadataV4, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi'; +import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractConstructorSpecV4, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractContractSpecV4, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEnvironmentV4, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMessageSpecV3, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractMetadataV4, 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 { 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'; @@ -254,6 +254,7 @@ ContractConstructorSpecV1: ContractConstructorSpecV1; ContractConstructorSpecV2: ContractConstructorSpecV2; ContractConstructorSpecV3: ContractConstructorSpecV3; + ContractConstructorSpecV4: ContractConstructorSpecV4; ContractContractSpecV0: ContractContractSpecV0; ContractContractSpecV1: ContractContractSpecV1; ContractContractSpecV2: ContractContractSpecV2; @@ -262,6 +263,7 @@ ContractCryptoHasher: ContractCryptoHasher; ContractDiscriminant: ContractDiscriminant; ContractDisplayName: ContractDisplayName; + ContractEnvironmentV4: ContractEnvironmentV4; ContractEventParamSpecLatest: ContractEventParamSpecLatest; ContractEventParamSpecV0: ContractEventParamSpecV0; ContractEventParamSpecV2: ContractEventParamSpecV2; @@ -298,6 +300,7 @@ ContractMessageSpecV0: ContractMessageSpecV0; ContractMessageSpecV1: ContractMessageSpecV1; ContractMessageSpecV2: ContractMessageSpecV2; + ContractMessageSpecV3: ContractMessageSpecV3; ContractMetadata: ContractMetadata; ContractMetadataLatest: ContractMetadataLatest; ContractMetadataV0: ContractMetadataV0; @@ -336,6 +339,7 @@ CumulusPalletXcmCall: CumulusPalletXcmCall; CumulusPalletXcmError: CumulusPalletXcmError; CumulusPalletXcmEvent: CumulusPalletXcmEvent; + CumulusPalletXcmOrigin: CumulusPalletXcmOrigin; CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; @@ -534,7 +538,10 @@ FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin; FrameSupportPalletId: FrameSupportPalletId; + FrameSupportPreimagesBounded: FrameSupportPreimagesBounded; + FrameSupportScheduleDispatchTime: FrameSupportScheduleDispatchTime; FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; FrameSystemAccountInfo: FrameSystemAccountInfo; FrameSystemCall: FrameSystemCall; @@ -788,10 +795,6 @@ OffenceDetails: OffenceDetails; Offender: Offender; OldV1SessionInfo: OldV1SessionInfo; - OpalRuntimeRuntime: OpalRuntimeRuntime; - OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls: OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls; - OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance; - OpalRuntimeRuntimeCommonSessionKeys: OpalRuntimeRuntimeCommonSessionKeys; OpaqueCall: OpaqueCall; OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof; OpaqueMetadata: OpaqueMetadata; @@ -849,6 +852,11 @@ PalletCollatorSelectionCall: PalletCollatorSelectionCall; PalletCollatorSelectionError: PalletCollatorSelectionError; PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; + PalletCollectiveCall: PalletCollectiveCall; + PalletCollectiveError: PalletCollectiveError; + PalletCollectiveEvent: PalletCollectiveEvent; + PalletCollectiveRawOrigin: PalletCollectiveRawOrigin; + PalletCollectiveVotes: PalletCollectiveVotes; PalletCommonError: PalletCommonError; PalletCommonEvent: PalletCommonEvent; PalletConfigurationAppPromotionConfiguration: PalletConfigurationAppPromotionConfiguration; @@ -857,12 +865,26 @@ PalletConfigurationEvent: PalletConfigurationEvent; PalletConstantMetadataLatest: PalletConstantMetadataLatest; PalletConstantMetadataV14: PalletConstantMetadataV14; + PalletDemocracyCall: PalletDemocracyCall; + PalletDemocracyConviction: PalletDemocracyConviction; + PalletDemocracyDelegations: PalletDemocracyDelegations; + PalletDemocracyError: PalletDemocracyError; + PalletDemocracyEvent: PalletDemocracyEvent; + PalletDemocracyMetadataOwner: PalletDemocracyMetadataOwner; + PalletDemocracyReferendumInfo: PalletDemocracyReferendumInfo; + PalletDemocracyReferendumStatus: PalletDemocracyReferendumStatus; + PalletDemocracyTally: PalletDemocracyTally; + PalletDemocracyVoteAccountVote: PalletDemocracyVoteAccountVote; + PalletDemocracyVotePriorLock: PalletDemocracyVotePriorLock; + PalletDemocracyVoteThreshold: PalletDemocracyVoteThreshold; + PalletDemocracyVoteVoting: PalletDemocracyVoteVoting; PalletErrorMetadataLatest: PalletErrorMetadataLatest; PalletErrorMetadataV14: PalletErrorMetadataV14; PalletEthereumCall: PalletEthereumCall; PalletEthereumError: PalletEthereumError; PalletEthereumEvent: PalletEthereumEvent; PalletEthereumFakeTransactionFinalizer: PalletEthereumFakeTransactionFinalizer; + PalletEthereumRawOrigin: PalletEthereumRawOrigin; PalletEventMetadataLatest: PalletEventMetadataLatest; PalletEventMetadataV14: PalletEventMetadataV14; PalletEvmAccountBasicCrossAccountIdRepr: PalletEvmAccountBasicCrossAccountIdRepr; @@ -885,6 +907,7 @@ PalletForeignAssetsModuleEvent: PalletForeignAssetsModuleEvent; PalletForeignAssetsNativeCurrency: PalletForeignAssetsNativeCurrency; PalletFungibleError: PalletFungibleError; + PalletGovOriginsOrigin: PalletGovOriginsOrigin; PalletId: PalletId; PalletIdentityBitFlags: PalletIdentityBitFlags; PalletIdentityCall: PalletIdentityCall; @@ -899,6 +922,9 @@ PalletMaintenanceCall: PalletMaintenanceCall; PalletMaintenanceError: PalletMaintenanceError; PalletMaintenanceEvent: PalletMaintenanceEvent; + PalletMembershipCall: PalletMembershipCall; + PalletMembershipError: PalletMembershipError; + PalletMembershipEvent: PalletMembershipEvent; PalletMetadataLatest: PalletMetadataLatest; PalletMetadataV14: PalletMetadataV14; PalletMetadataV15: PalletMetadataV15; @@ -908,7 +934,26 @@ PalletPreimageError: PalletPreimageError; PalletPreimageEvent: PalletPreimageEvent; PalletPreimageRequestStatus: PalletPreimageRequestStatus; + PalletRankedCollectiveCall: PalletRankedCollectiveCall; + PalletRankedCollectiveError: PalletRankedCollectiveError; + PalletRankedCollectiveEvent: PalletRankedCollectiveEvent; + PalletRankedCollectiveMemberRecord: PalletRankedCollectiveMemberRecord; + PalletRankedCollectiveTally: PalletRankedCollectiveTally; + PalletRankedCollectiveVoteRecord: PalletRankedCollectiveVoteRecord; + PalletReferendaCall: PalletReferendaCall; + PalletReferendaCurve: PalletReferendaCurve; + PalletReferendaDecidingStatus: PalletReferendaDecidingStatus; + PalletReferendaDeposit: PalletReferendaDeposit; + PalletReferendaError: PalletReferendaError; + PalletReferendaEvent: PalletReferendaEvent; + PalletReferendaReferendumInfo: PalletReferendaReferendumInfo; + PalletReferendaReferendumStatus: PalletReferendaReferendumStatus; + PalletReferendaTrackInfo: PalletReferendaTrackInfo; PalletRefungibleError: PalletRefungibleError; + PalletSchedulerCall: PalletSchedulerCall; + PalletSchedulerError: PalletSchedulerError; + PalletSchedulerEvent: PalletSchedulerEvent; + PalletSchedulerScheduled: PalletSchedulerScheduled; PalletSessionCall: PalletSessionCall; PalletSessionError: PalletSessionError; PalletSessionEvent: PalletSessionEvent; @@ -945,6 +990,7 @@ PalletXcmCall: PalletXcmCall; PalletXcmError: PalletXcmError; PalletXcmEvent: PalletXcmEvent; + PalletXcmOrigin: PalletXcmOrigin; PalletXcmQueryStatus: PalletXcmQueryStatus; PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; @@ -1021,6 +1067,11 @@ PvfCheckStatement: PvfCheckStatement; PvfExecTimeoutKind: PvfExecTimeoutKind; PvfPrepTimeoutKind: PvfPrepTimeoutKind; + QuartzRuntimeOriginCaller: QuartzRuntimeOriginCaller; + QuartzRuntimeRuntime: QuartzRuntimeRuntime; + QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls: QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls; + QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance: QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance; + QuartzRuntimeRuntimeCommonSessionKeys: QuartzRuntimeRuntimeCommonSessionKeys; QueryId: QueryId; QueryStatus: QueryStatus; QueueConfigData: QueueConfigData; @@ -1218,6 +1269,7 @@ SpCoreEd25519Signature: SpCoreEd25519Signature; SpCoreSr25519Public: SpCoreSr25519Public; SpCoreSr25519Signature: SpCoreSr25519Signature; + SpCoreVoid: SpCoreVoid; SpecVersion: SpecVersion; SpRuntimeDigest: SpRuntimeDigest; SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; --- a/tests/src/interfaces/default/types.ts +++ b/tests/src/interfaces/default/types.ts @@ -2,8 +2,9 @@ /* eslint-disable */ import type { Data } from '@polkadot/types'; -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'; +import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, i64, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; import type { ITuple } from '@polkadot/types-codec/types'; +import type { Vote } from '@polkadot/types/interfaces/elections'; import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime'; import type { Event } from '@polkadot/types/interfaces/system'; @@ -175,6 +176,14 @@ readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward'; } +/** @name CumulusPalletXcmOrigin */ +export interface CumulusPalletXcmOrigin extends Enum { + readonly isRelay: boolean; + readonly isSiblingParachain: boolean; + readonly asSiblingParachain: u32; + readonly type: 'Relay' | 'SiblingParachain'; +} + /** @name CumulusPalletXcmpQueueCall */ export interface CumulusPalletXcmpQueueCall extends Enum { readonly isServiceOverweight: boolean; @@ -556,9 +565,43 @@ readonly mandatory: FrameSystemLimitsWeightsPerClass; } +/** @name FrameSupportDispatchRawOrigin */ +export interface FrameSupportDispatchRawOrigin extends Enum { + readonly isRoot: boolean; + readonly isSigned: boolean; + readonly asSigned: AccountId32; + readonly isNone: boolean; + readonly type: 'Root' | 'Signed' | 'None'; +} + /** @name FrameSupportPalletId */ export interface FrameSupportPalletId extends U8aFixed {} +/** @name FrameSupportPreimagesBounded */ +export interface FrameSupportPreimagesBounded extends Enum { + readonly isLegacy: boolean; + readonly asLegacy: { + readonly hash_: H256; + } & Struct; + readonly isInline: boolean; + readonly asInline: Bytes; + readonly isLookup: boolean; + readonly asLookup: { + readonly hash_: H256; + readonly len: u32; + } & Struct; + readonly type: 'Legacy' | 'Inline' | 'Lookup'; +} + +/** @name FrameSupportScheduleDispatchTime */ +export interface FrameSupportScheduleDispatchTime extends Enum { + readonly isAt: boolean; + readonly asAt: u32; + readonly isAfter: boolean; + readonly asAfter: u32; + readonly type: 'At' | 'After'; +} + /** @name FrameSupportTokensMiscBalanceStatus */ export interface FrameSupportTokensMiscBalanceStatus extends Enum { readonly isFree: boolean; @@ -708,21 +751,7 @@ readonly isInitialization: boolean; readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization'; } - -/** @name OpalRuntimeRuntime */ -export interface OpalRuntimeRuntime extends Null {} -/** @name OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls */ -export interface OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls extends Null {} - -/** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance */ -export interface OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance extends Null {} - -/** @name OpalRuntimeRuntimeCommonSessionKeys */ -export interface OpalRuntimeRuntimeCommonSessionKeys extends Struct { - readonly aura: SpConsensusAuraSr25519AppSr25519Public; -} - /** @name OrmlTokensAccountData */ export interface OrmlTokensAccountData extends Struct { readonly free: u128; @@ -1382,6 +1411,123 @@ readonly type: 'InvulnerableAdded' | 'InvulnerableRemoved' | 'LicenseObtained' | 'LicenseReleased' | 'CandidateAdded' | 'CandidateRemoved'; } +/** @name PalletCollectiveCall */ +export interface PalletCollectiveCall extends Enum { + readonly isSetMembers: boolean; + readonly asSetMembers: { + readonly newMembers: Vec; + readonly prime: Option; + readonly oldCount: u32; + } & Struct; + readonly isExecute: boolean; + readonly asExecute: { + readonly proposal: Call; + readonly lengthBound: Compact; + } & Struct; + readonly isPropose: boolean; + readonly asPropose: { + readonly threshold: Compact; + readonly proposal: Call; + readonly lengthBound: Compact; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly proposal: H256; + readonly index: Compact; + readonly approve: bool; + } & Struct; + readonly isDisapproveProposal: boolean; + readonly asDisapproveProposal: { + readonly proposalHash: H256; + } & Struct; + readonly isClose: boolean; + readonly asClose: { + readonly proposalHash: H256; + readonly index: Compact; + readonly proposalWeightBound: SpWeightsWeightV2Weight; + readonly lengthBound: Compact; + } & Struct; + readonly type: 'SetMembers' | 'Execute' | 'Propose' | 'Vote' | 'DisapproveProposal' | 'Close'; +} + +/** @name PalletCollectiveError */ +export interface PalletCollectiveError extends Enum { + readonly isNotMember: boolean; + readonly isDuplicateProposal: boolean; + readonly isProposalMissing: boolean; + readonly isWrongIndex: boolean; + readonly isDuplicateVote: boolean; + readonly isAlreadyInitialized: boolean; + readonly isTooEarly: boolean; + readonly isTooManyProposals: boolean; + readonly isWrongProposalWeight: boolean; + readonly isWrongProposalLength: boolean; + readonly type: 'NotMember' | 'DuplicateProposal' | 'ProposalMissing' | 'WrongIndex' | 'DuplicateVote' | 'AlreadyInitialized' | 'TooEarly' | 'TooManyProposals' | 'WrongProposalWeight' | 'WrongProposalLength'; +} + +/** @name PalletCollectiveEvent */ +export interface PalletCollectiveEvent extends Enum { + readonly isProposed: boolean; + readonly asProposed: { + readonly account: AccountId32; + readonly proposalIndex: u32; + readonly proposalHash: H256; + readonly threshold: u32; + } & Struct; + readonly isVoted: boolean; + readonly asVoted: { + readonly account: AccountId32; + readonly proposalHash: H256; + readonly voted: bool; + readonly yes: u32; + readonly no: u32; + } & Struct; + readonly isApproved: boolean; + readonly asApproved: { + readonly proposalHash: H256; + } & Struct; + readonly isDisapproved: boolean; + readonly asDisapproved: { + readonly proposalHash: H256; + } & Struct; + readonly isExecuted: boolean; + readonly asExecuted: { + readonly proposalHash: H256; + readonly result: Result; + } & Struct; + readonly isMemberExecuted: boolean; + readonly asMemberExecuted: { + readonly proposalHash: H256; + readonly result: Result; + } & Struct; + readonly isClosed: boolean; + readonly asClosed: { + readonly proposalHash: H256; + readonly yes: u32; + readonly no: u32; + } & Struct; + readonly type: 'Proposed' | 'Voted' | 'Approved' | 'Disapproved' | 'Executed' | 'MemberExecuted' | 'Closed'; +} + +/** @name PalletCollectiveRawOrigin */ +export interface PalletCollectiveRawOrigin extends Enum { + readonly isMembers: boolean; + readonly asMembers: ITuple<[u32, u32]>; + readonly isMember: boolean; + readonly asMember: AccountId32; + readonly isPhantom: boolean; + readonly type: 'Members' | 'Member' | 'Phantom'; +} + +/** @name PalletCollectiveVotes */ +export interface PalletCollectiveVotes extends Struct { + readonly index: u32; + readonly threshold: u32; + readonly ayes: Vec; + readonly nays: Vec; + readonly end: u32; +} + /** @name PalletCommonError */ export interface PalletCommonError extends Enum { readonly isCollectionNotFound: boolean; @@ -1533,6 +1679,303 @@ readonly type: 'NewDesiredCollators' | 'NewCollatorLicenseBond' | 'NewCollatorKickThreshold'; } +/** @name PalletDemocracyCall */ +export interface PalletDemocracyCall extends Enum { + readonly isPropose: boolean; + readonly asPropose: { + readonly proposal: FrameSupportPreimagesBounded; + readonly value: Compact; + } & Struct; + readonly isSecond: boolean; + readonly asSecond: { + readonly proposal: Compact; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly refIndex: Compact; + readonly vote: PalletDemocracyVoteAccountVote; + } & Struct; + readonly isEmergencyCancel: boolean; + readonly asEmergencyCancel: { + readonly refIndex: u32; + } & Struct; + readonly isExternalPropose: boolean; + readonly asExternalPropose: { + readonly proposal: FrameSupportPreimagesBounded; + } & Struct; + readonly isExternalProposeMajority: boolean; + readonly asExternalProposeMajority: { + readonly proposal: FrameSupportPreimagesBounded; + } & Struct; + readonly isExternalProposeDefault: boolean; + readonly asExternalProposeDefault: { + readonly proposal: FrameSupportPreimagesBounded; + } & Struct; + readonly isFastTrack: boolean; + readonly asFastTrack: { + readonly proposalHash: H256; + readonly votingPeriod: u32; + readonly delay: u32; + } & Struct; + readonly isVetoExternal: boolean; + readonly asVetoExternal: { + readonly proposalHash: H256; + } & Struct; + readonly isCancelReferendum: boolean; + readonly asCancelReferendum: { + readonly refIndex: Compact; + } & Struct; + readonly isDelegate: boolean; + readonly asDelegate: { + readonly to: MultiAddress; + readonly conviction: PalletDemocracyConviction; + readonly balance: u128; + } & Struct; + readonly isUndelegate: boolean; + readonly isClearPublicProposals: boolean; + readonly isUnlock: boolean; + readonly asUnlock: { + readonly target: MultiAddress; + } & Struct; + readonly isRemoveVote: boolean; + readonly asRemoveVote: { + readonly index: u32; + } & Struct; + readonly isRemoveOtherVote: boolean; + readonly asRemoveOtherVote: { + readonly target: MultiAddress; + readonly index: u32; + } & Struct; + readonly isBlacklist: boolean; + readonly asBlacklist: { + readonly proposalHash: H256; + readonly maybeRefIndex: Option; + } & Struct; + readonly isCancelProposal: boolean; + readonly asCancelProposal: { + readonly propIndex: Compact; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly owner: PalletDemocracyMetadataOwner; + readonly maybeHash: Option; + } & Struct; + readonly type: 'Propose' | 'Second' | 'Vote' | 'EmergencyCancel' | 'ExternalPropose' | 'ExternalProposeMajority' | 'ExternalProposeDefault' | 'FastTrack' | 'VetoExternal' | 'CancelReferendum' | 'Delegate' | 'Undelegate' | 'ClearPublicProposals' | 'Unlock' | 'RemoveVote' | 'RemoveOtherVote' | 'Blacklist' | 'CancelProposal' | 'SetMetadata'; +} + +/** @name PalletDemocracyConviction */ +export interface PalletDemocracyConviction extends Enum { + readonly isNone: boolean; + readonly isLocked1x: boolean; + readonly isLocked2x: boolean; + readonly isLocked3x: boolean; + readonly isLocked4x: boolean; + readonly isLocked5x: boolean; + readonly isLocked6x: boolean; + readonly type: 'None' | 'Locked1x' | 'Locked2x' | 'Locked3x' | 'Locked4x' | 'Locked5x' | 'Locked6x'; +} + +/** @name PalletDemocracyDelegations */ +export interface PalletDemocracyDelegations extends Struct { + readonly votes: u128; + readonly capital: u128; +} + +/** @name PalletDemocracyError */ +export interface PalletDemocracyError extends Enum { + readonly isValueLow: boolean; + readonly isProposalMissing: boolean; + readonly isAlreadyCanceled: boolean; + readonly isDuplicateProposal: boolean; + readonly isProposalBlacklisted: boolean; + readonly isNotSimpleMajority: boolean; + readonly isInvalidHash: boolean; + readonly isNoProposal: boolean; + readonly isAlreadyVetoed: boolean; + readonly isReferendumInvalid: boolean; + readonly isNoneWaiting: boolean; + readonly isNotVoter: boolean; + readonly isNoPermission: boolean; + readonly isAlreadyDelegating: boolean; + readonly isInsufficientFunds: boolean; + readonly isNotDelegating: boolean; + readonly isVotesExist: boolean; + readonly isInstantNotAllowed: boolean; + readonly isNonsense: boolean; + readonly isWrongUpperBound: boolean; + readonly isMaxVotesReached: boolean; + readonly isTooMany: boolean; + readonly isVotingPeriodLow: boolean; + readonly isPreimageNotExist: boolean; + readonly type: 'ValueLow' | 'ProposalMissing' | 'AlreadyCanceled' | 'DuplicateProposal' | 'ProposalBlacklisted' | 'NotSimpleMajority' | 'InvalidHash' | 'NoProposal' | 'AlreadyVetoed' | 'ReferendumInvalid' | 'NoneWaiting' | 'NotVoter' | 'NoPermission' | 'AlreadyDelegating' | 'InsufficientFunds' | 'NotDelegating' | 'VotesExist' | 'InstantNotAllowed' | 'Nonsense' | 'WrongUpperBound' | 'MaxVotesReached' | 'TooMany' | 'VotingPeriodLow' | 'PreimageNotExist'; +} + +/** @name PalletDemocracyEvent */ +export interface PalletDemocracyEvent extends Enum { + readonly isProposed: boolean; + readonly asProposed: { + readonly proposalIndex: u32; + readonly deposit: u128; + } & Struct; + readonly isTabled: boolean; + readonly asTabled: { + readonly proposalIndex: u32; + readonly deposit: u128; + } & Struct; + readonly isExternalTabled: boolean; + readonly isStarted: boolean; + readonly asStarted: { + readonly refIndex: u32; + readonly threshold: PalletDemocracyVoteThreshold; + } & Struct; + readonly isPassed: boolean; + readonly asPassed: { + readonly refIndex: u32; + } & Struct; + readonly isNotPassed: boolean; + readonly asNotPassed: { + readonly refIndex: u32; + } & Struct; + readonly isCancelled: boolean; + readonly asCancelled: { + readonly refIndex: u32; + } & Struct; + readonly isDelegated: boolean; + readonly asDelegated: { + readonly who: AccountId32; + readonly target: AccountId32; + } & Struct; + readonly isUndelegated: boolean; + readonly asUndelegated: { + readonly account: AccountId32; + } & Struct; + readonly isVetoed: boolean; + readonly asVetoed: { + readonly who: AccountId32; + readonly proposalHash: H256; + readonly until: u32; + } & Struct; + readonly isBlacklisted: boolean; + readonly asBlacklisted: { + readonly proposalHash: H256; + } & Struct; + readonly isVoted: boolean; + readonly asVoted: { + readonly voter: AccountId32; + readonly refIndex: u32; + readonly vote: PalletDemocracyVoteAccountVote; + } & Struct; + readonly isSeconded: boolean; + readonly asSeconded: { + readonly seconder: AccountId32; + readonly propIndex: u32; + } & Struct; + readonly isProposalCanceled: boolean; + readonly asProposalCanceled: { + readonly propIndex: u32; + } & Struct; + readonly isMetadataSet: boolean; + readonly asMetadataSet: { + readonly owner: PalletDemocracyMetadataOwner; + readonly hash_: H256; + } & Struct; + readonly isMetadataCleared: boolean; + readonly asMetadataCleared: { + readonly owner: PalletDemocracyMetadataOwner; + readonly hash_: H256; + } & Struct; + readonly isMetadataTransferred: boolean; + readonly asMetadataTransferred: { + readonly prevOwner: PalletDemocracyMetadataOwner; + readonly owner: PalletDemocracyMetadataOwner; + readonly hash_: H256; + } & Struct; + readonly type: 'Proposed' | 'Tabled' | 'ExternalTabled' | 'Started' | 'Passed' | 'NotPassed' | 'Cancelled' | 'Delegated' | 'Undelegated' | 'Vetoed' | 'Blacklisted' | 'Voted' | 'Seconded' | 'ProposalCanceled' | 'MetadataSet' | 'MetadataCleared' | 'MetadataTransferred'; +} + +/** @name PalletDemocracyMetadataOwner */ +export interface PalletDemocracyMetadataOwner extends Enum { + readonly isExternal: boolean; + readonly isProposal: boolean; + readonly asProposal: u32; + readonly isReferendum: boolean; + readonly asReferendum: u32; + readonly type: 'External' | 'Proposal' | 'Referendum'; +} + +/** @name PalletDemocracyReferendumInfo */ +export interface PalletDemocracyReferendumInfo extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PalletDemocracyReferendumStatus; + readonly isFinished: boolean; + readonly asFinished: { + readonly approved: bool; + readonly end: u32; + } & Struct; + readonly type: 'Ongoing' | 'Finished'; +} + +/** @name PalletDemocracyReferendumStatus */ +export interface PalletDemocracyReferendumStatus extends Struct { + readonly end: u32; + readonly proposal: FrameSupportPreimagesBounded; + readonly threshold: PalletDemocracyVoteThreshold; + readonly delay: u32; + readonly tally: PalletDemocracyTally; +} + +/** @name PalletDemocracyTally */ +export interface PalletDemocracyTally extends Struct { + readonly ayes: u128; + readonly nays: u128; + readonly turnout: u128; +} + +/** @name PalletDemocracyVoteAccountVote */ +export interface PalletDemocracyVoteAccountVote extends Enum { + readonly isStandard: boolean; + readonly asStandard: { + readonly vote: Vote; + readonly balance: u128; + } & Struct; + readonly isSplit: boolean; + readonly asSplit: { + readonly aye: u128; + readonly nay: u128; + } & Struct; + readonly type: 'Standard' | 'Split'; +} + +/** @name PalletDemocracyVotePriorLock */ +export interface PalletDemocracyVotePriorLock extends ITuple<[u32, u128]> {} + +/** @name PalletDemocracyVoteThreshold */ +export interface PalletDemocracyVoteThreshold extends Enum { + readonly isSuperMajorityApprove: boolean; + readonly isSuperMajorityAgainst: boolean; + readonly isSimpleMajority: boolean; + readonly type: 'SuperMajorityApprove' | 'SuperMajorityAgainst' | 'SimpleMajority'; +} + +/** @name PalletDemocracyVoteVoting */ +export interface PalletDemocracyVoteVoting extends Enum { + readonly isDirect: boolean; + readonly asDirect: { + readonly votes: Vec>; + readonly delegations: PalletDemocracyDelegations; + readonly prior: PalletDemocracyVotePriorLock; + } & Struct; + readonly isDelegating: boolean; + readonly asDelegating: { + readonly balance: u128; + readonly target: AccountId32; + readonly conviction: PalletDemocracyConviction; + readonly delegations: PalletDemocracyDelegations; + readonly prior: PalletDemocracyVotePriorLock; + } & Struct; + readonly type: 'Direct' | 'Delegating'; +} + /** @name PalletEthereumCall */ export interface PalletEthereumCall extends Enum { readonly isTransact: boolean; @@ -1565,6 +2008,13 @@ /** @name PalletEthereumFakeTransactionFinalizer */ export interface PalletEthereumFakeTransactionFinalizer extends Null {} +/** @name PalletEthereumRawOrigin */ +export interface PalletEthereumRawOrigin extends Enum { + readonly isEthereumTransaction: boolean; + readonly asEthereumTransaction: H160; + readonly type: 'EthereumTransaction'; +} + /** @name PalletEvmAccountBasicCrossAccountIdRepr */ export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum { readonly isSubstrate: boolean; @@ -1840,6 +2290,12 @@ readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed' | 'SettingAllowanceForAllNotAllowed' | 'FungibleTokensAreAlwaysValid'; } +/** @name PalletGovOriginsOrigin */ +export interface PalletGovOriginsOrigin extends Enum { + readonly isFellowshipProposition: boolean; + readonly type: 'FellowshipProposition'; +} + /** @name PalletIdentityBitFlags */ export interface PalletIdentityBitFlags extends Struct { readonly _bitLength: 64; @@ -2108,6 +2564,56 @@ readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled'; } +/** @name PalletMembershipCall */ +export interface PalletMembershipCall extends Enum { + readonly isAddMember: boolean; + readonly asAddMember: { + readonly who: MultiAddress; + } & Struct; + readonly isRemoveMember: boolean; + readonly asRemoveMember: { + readonly who: MultiAddress; + } & Struct; + readonly isSwapMember: boolean; + readonly asSwapMember: { + readonly remove: MultiAddress; + readonly add: MultiAddress; + } & Struct; + readonly isResetMembers: boolean; + readonly asResetMembers: { + readonly members: Vec; + } & Struct; + readonly isChangeKey: boolean; + readonly asChangeKey: { + readonly new_: MultiAddress; + } & Struct; + readonly isSetPrime: boolean; + readonly asSetPrime: { + readonly who: MultiAddress; + } & Struct; + readonly isClearPrime: boolean; + readonly type: 'AddMember' | 'RemoveMember' | 'SwapMember' | 'ResetMembers' | 'ChangeKey' | 'SetPrime' | 'ClearPrime'; +} + +/** @name PalletMembershipError */ +export interface PalletMembershipError extends Enum { + readonly isAlreadyMember: boolean; + readonly isNotMember: boolean; + readonly isTooManyMembers: boolean; + readonly type: 'AlreadyMember' | 'NotMember' | 'TooManyMembers'; +} + +/** @name PalletMembershipEvent */ +export interface PalletMembershipEvent extends Enum { + readonly isMemberAdded: boolean; + readonly isMemberRemoved: boolean; + readonly isMembersSwapped: boolean; + readonly isMembersReset: boolean; + readonly isKeyChanged: boolean; + readonly isDummy: boolean; + readonly type: 'MemberAdded' | 'MemberRemoved' | 'MembersSwapped' | 'MembersReset' | 'KeyChanged' | 'Dummy'; +} + /** @name PalletNonfungibleError */ export interface PalletNonfungibleError extends Enum { readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean; @@ -2186,6 +2692,330 @@ readonly type: 'Unrequested' | 'Requested'; } +/** @name PalletRankedCollectiveCall */ +export interface PalletRankedCollectiveCall extends Enum { + readonly isAddMember: boolean; + readonly asAddMember: { + readonly who: MultiAddress; + } & Struct; + readonly isPromoteMember: boolean; + readonly asPromoteMember: { + readonly who: MultiAddress; + } & Struct; + readonly isDemoteMember: boolean; + readonly asDemoteMember: { + readonly who: MultiAddress; + } & Struct; + readonly isRemoveMember: boolean; + readonly asRemoveMember: { + readonly who: MultiAddress; + readonly minRank: u16; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly poll: u32; + readonly aye: bool; + } & Struct; + readonly isCleanupPoll: boolean; + readonly asCleanupPoll: { + readonly pollIndex: u32; + readonly max: u32; + } & Struct; + readonly type: 'AddMember' | 'PromoteMember' | 'DemoteMember' | 'RemoveMember' | 'Vote' | 'CleanupPoll'; +} + +/** @name PalletRankedCollectiveError */ +export interface PalletRankedCollectiveError extends Enum { + readonly isAlreadyMember: boolean; + readonly isNotMember: boolean; + readonly isNotPolling: boolean; + readonly isOngoing: boolean; + readonly isNoneRemaining: boolean; + readonly isCorruption: boolean; + readonly isRankTooLow: boolean; + readonly isInvalidWitness: boolean; + readonly isNoPermission: boolean; + readonly type: 'AlreadyMember' | 'NotMember' | 'NotPolling' | 'Ongoing' | 'NoneRemaining' | 'Corruption' | 'RankTooLow' | 'InvalidWitness' | 'NoPermission'; +} + +/** @name PalletRankedCollectiveEvent */ +export interface PalletRankedCollectiveEvent extends Enum { + readonly isMemberAdded: boolean; + readonly asMemberAdded: { + readonly who: AccountId32; + } & Struct; + readonly isRankChanged: boolean; + readonly asRankChanged: { + readonly who: AccountId32; + readonly rank: u16; + } & Struct; + readonly isMemberRemoved: boolean; + readonly asMemberRemoved: { + readonly who: AccountId32; + readonly rank: u16; + } & Struct; + readonly isVoted: boolean; + readonly asVoted: { + readonly who: AccountId32; + readonly poll: u32; + readonly vote: PalletRankedCollectiveVoteRecord; + readonly tally: PalletRankedCollectiveTally; + } & Struct; + readonly type: 'MemberAdded' | 'RankChanged' | 'MemberRemoved' | 'Voted'; +} + +/** @name PalletRankedCollectiveMemberRecord */ +export interface PalletRankedCollectiveMemberRecord extends Struct { + readonly rank: u16; +} + +/** @name PalletRankedCollectiveTally */ +export interface PalletRankedCollectiveTally extends Struct { + readonly bareAyes: u32; + readonly ayes: u32; + readonly nays: u32; +} + +/** @name PalletRankedCollectiveVoteRecord */ +export interface PalletRankedCollectiveVoteRecord extends Enum { + readonly isAye: boolean; + readonly asAye: u32; + readonly isNay: boolean; + readonly asNay: u32; + readonly type: 'Aye' | 'Nay'; +} + +/** @name PalletReferendaCall */ +export interface PalletReferendaCall extends Enum { + readonly isSubmit: boolean; + readonly asSubmit: { + readonly proposalOrigin: QuartzRuntimeOriginCaller; + readonly proposal: FrameSupportPreimagesBounded; + readonly enactmentMoment: FrameSupportScheduleDispatchTime; + } & Struct; + readonly isPlaceDecisionDeposit: boolean; + readonly asPlaceDecisionDeposit: { + readonly index: u32; + } & Struct; + readonly isRefundDecisionDeposit: boolean; + readonly asRefundDecisionDeposit: { + readonly index: u32; + } & Struct; + readonly isCancel: boolean; + readonly asCancel: { + readonly index: u32; + } & Struct; + readonly isKill: boolean; + readonly asKill: { + readonly index: u32; + } & Struct; + readonly isNudgeReferendum: boolean; + readonly asNudgeReferendum: { + readonly index: u32; + } & Struct; + readonly isOneFewerDeciding: boolean; + readonly asOneFewerDeciding: { + readonly track: u16; + } & Struct; + readonly isRefundSubmissionDeposit: boolean; + readonly asRefundSubmissionDeposit: { + readonly index: u32; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly index: u32; + readonly maybeHash: Option; + } & Struct; + readonly type: 'Submit' | 'PlaceDecisionDeposit' | 'RefundDecisionDeposit' | 'Cancel' | 'Kill' | 'NudgeReferendum' | 'OneFewerDeciding' | 'RefundSubmissionDeposit' | 'SetMetadata'; +} + +/** @name PalletReferendaCurve */ +export interface PalletReferendaCurve extends Enum { + readonly isLinearDecreasing: boolean; + readonly asLinearDecreasing: { + readonly length: Perbill; + readonly floor: Perbill; + readonly ceil: Perbill; + } & Struct; + readonly isSteppedDecreasing: boolean; + readonly asSteppedDecreasing: { + readonly begin: Perbill; + readonly end: Perbill; + readonly step: Perbill; + readonly period: Perbill; + } & Struct; + readonly isReciprocal: boolean; + readonly asReciprocal: { + readonly factor: i64; + readonly xOffset: i64; + readonly yOffset: i64; + } & Struct; + readonly type: 'LinearDecreasing' | 'SteppedDecreasing' | 'Reciprocal'; +} + +/** @name PalletReferendaDecidingStatus */ +export interface PalletReferendaDecidingStatus extends Struct { + readonly since: u32; + readonly confirming: Option; +} + +/** @name PalletReferendaDeposit */ +export interface PalletReferendaDeposit extends Struct { + readonly who: AccountId32; + readonly amount: u128; +} + +/** @name PalletReferendaError */ +export interface PalletReferendaError extends Enum { + readonly isNotOngoing: boolean; + readonly isHasDeposit: boolean; + readonly isBadTrack: boolean; + readonly isFull: boolean; + readonly isQueueEmpty: boolean; + readonly isBadReferendum: boolean; + readonly isNothingToDo: boolean; + readonly isNoTrack: boolean; + readonly isUnfinished: boolean; + readonly isNoPermission: boolean; + readonly isNoDeposit: boolean; + readonly isBadStatus: boolean; + readonly isPreimageNotExist: boolean; + readonly type: 'NotOngoing' | 'HasDeposit' | 'BadTrack' | 'Full' | 'QueueEmpty' | 'BadReferendum' | 'NothingToDo' | 'NoTrack' | 'Unfinished' | 'NoPermission' | 'NoDeposit' | 'BadStatus' | 'PreimageNotExist'; +} + +/** @name PalletReferendaEvent */ +export interface PalletReferendaEvent extends Enum { + readonly isSubmitted: boolean; + readonly asSubmitted: { + readonly index: u32; + readonly track: u16; + readonly proposal: FrameSupportPreimagesBounded; + } & Struct; + readonly isDecisionDepositPlaced: boolean; + readonly asDecisionDepositPlaced: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isDecisionDepositRefunded: boolean; + readonly asDecisionDepositRefunded: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isDepositSlashed: boolean; + readonly asDepositSlashed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isDecisionStarted: boolean; + readonly asDecisionStarted: { + readonly index: u32; + readonly track: u16; + readonly proposal: FrameSupportPreimagesBounded; + readonly tally: PalletRankedCollectiveTally; + } & Struct; + readonly isConfirmStarted: boolean; + readonly asConfirmStarted: { + readonly index: u32; + } & Struct; + readonly isConfirmAborted: boolean; + readonly asConfirmAborted: { + readonly index: u32; + } & Struct; + readonly isConfirmed: boolean; + readonly asConfirmed: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; + } & Struct; + readonly isApproved: boolean; + readonly asApproved: { + readonly index: u32; + } & Struct; + readonly isRejected: boolean; + readonly asRejected: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; + } & Struct; + readonly isTimedOut: boolean; + readonly asTimedOut: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; + } & Struct; + readonly isCancelled: boolean; + readonly asCancelled: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; + } & Struct; + readonly isKilled: boolean; + readonly asKilled: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; + } & Struct; + readonly isSubmissionDepositRefunded: boolean; + readonly asSubmissionDepositRefunded: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isMetadataSet: boolean; + readonly asMetadataSet: { + readonly index: u32; + readonly hash_: H256; + } & Struct; + readonly isMetadataCleared: boolean; + readonly asMetadataCleared: { + readonly index: u32; + readonly hash_: H256; + } & Struct; + readonly type: 'Submitted' | 'DecisionDepositPlaced' | 'DecisionDepositRefunded' | 'DepositSlashed' | 'DecisionStarted' | 'ConfirmStarted' | 'ConfirmAborted' | 'Confirmed' | 'Approved' | 'Rejected' | 'TimedOut' | 'Cancelled' | 'Killed' | 'SubmissionDepositRefunded' | 'MetadataSet' | 'MetadataCleared'; +} + +/** @name PalletReferendaReferendumInfo */ +export interface PalletReferendaReferendumInfo extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PalletReferendaReferendumStatus; + readonly isApproved: boolean; + readonly asApproved: ITuple<[u32, Option, Option]>; + readonly isRejected: boolean; + readonly asRejected: ITuple<[u32, Option, Option]>; + readonly isCancelled: boolean; + readonly asCancelled: ITuple<[u32, Option, Option]>; + readonly isTimedOut: boolean; + readonly asTimedOut: ITuple<[u32, Option, Option]>; + readonly isKilled: boolean; + readonly asKilled: u32; + readonly type: 'Ongoing' | 'Approved' | 'Rejected' | 'Cancelled' | 'TimedOut' | 'Killed'; +} + +/** @name PalletReferendaReferendumStatus */ +export interface PalletReferendaReferendumStatus extends Struct { + readonly track: u16; + readonly origin: QuartzRuntimeOriginCaller; + readonly proposal: FrameSupportPreimagesBounded; + readonly enactment: FrameSupportScheduleDispatchTime; + readonly submitted: u32; + readonly submissionDeposit: PalletReferendaDeposit; + readonly decisionDeposit: Option; + readonly deciding: Option; + readonly tally: PalletRankedCollectiveTally; + readonly inQueue: bool; + readonly alarm: Option]>>; +} + +/** @name PalletReferendaTrackInfo */ +export interface PalletReferendaTrackInfo extends Struct { + readonly name: Text; + readonly maxDeciding: u32; + readonly decisionDeposit: u128; + readonly preparePeriod: u32; + readonly decisionPeriod: u32; + readonly confirmPeriod: u32; + readonly minEnactmentPeriod: u32; + readonly minApproval: PalletReferendaCurve; + readonly minSupport: PalletReferendaCurve; +} + /** @name PalletRefungibleError */ export interface PalletRefungibleError extends Enum { readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean; @@ -2196,11 +3026,110 @@ readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed'; } +/** @name PalletSchedulerCall */ +export interface PalletSchedulerCall extends Enum { + readonly isSchedule: boolean; + readonly asSchedule: { + readonly when: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: Call; + } & Struct; + readonly isCancel: boolean; + readonly asCancel: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isScheduleNamed: boolean; + readonly asScheduleNamed: { + readonly id: U8aFixed; + readonly when: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: Call; + } & Struct; + readonly isCancelNamed: boolean; + readonly asCancelNamed: { + readonly id: U8aFixed; + } & Struct; + readonly isScheduleAfter: boolean; + readonly asScheduleAfter: { + readonly after: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: Call; + } & Struct; + readonly isScheduleNamedAfter: boolean; + readonly asScheduleNamedAfter: { + readonly id: U8aFixed; + readonly after: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: Call; + } & Struct; + readonly type: 'Schedule' | 'Cancel' | 'ScheduleNamed' | 'CancelNamed' | 'ScheduleAfter' | 'ScheduleNamedAfter'; +} + +/** @name PalletSchedulerError */ +export interface PalletSchedulerError extends Enum { + readonly isFailedToSchedule: boolean; + readonly isNotFound: boolean; + readonly isTargetBlockNumberInPast: boolean; + readonly isRescheduleNoChange: boolean; + readonly isNamed: boolean; + readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange' | 'Named'; +} + +/** @name PalletSchedulerEvent */ +export interface PalletSchedulerEvent extends Enum { + readonly isScheduled: boolean; + readonly asScheduled: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isCanceled: boolean; + readonly asCanceled: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isDispatched: boolean; + readonly asDispatched: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + readonly result: Result; + } & Struct; + readonly isCallUnavailable: boolean; + readonly asCallUnavailable: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isPeriodicFailed: boolean; + readonly asPeriodicFailed: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isPermanentlyOverweight: boolean; + readonly asPermanentlyOverweight: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallUnavailable' | 'PeriodicFailed' | 'PermanentlyOverweight'; +} + +/** @name PalletSchedulerScheduled */ +export interface PalletSchedulerScheduled extends Struct { + readonly maybeId: Option; + readonly priority: u8; + readonly call: FrameSupportPreimagesBounded; + readonly maybePeriodic: Option>; + readonly origin: QuartzRuntimeOriginCaller; +} + /** @name PalletSessionCall */ export interface PalletSessionCall extends Enum { readonly isSetKeys: boolean; readonly asSetKeys: { - readonly keys_: OpalRuntimeRuntimeCommonSessionKeys; + readonly keys_: QuartzRuntimeRuntimeCommonSessionKeys; readonly proof: Bytes; } & Struct; readonly isPurgeKeys: boolean; @@ -2878,6 +3807,15 @@ readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail' | 'InvalidQuerierVersion' | 'InvalidQuerier' | 'VersionNotifyStarted' | 'VersionNotifyRequested' | 'VersionNotifyUnrequested' | 'FeesPaid' | 'AssetsClaimed'; } +/** @name PalletXcmOrigin */ +export interface PalletXcmOrigin extends Enum { + readonly isXcm: boolean; + readonly asXcm: XcmV3MultiLocation; + readonly isResponse: boolean; + readonly asResponse: XcmV3MultiLocation; + readonly type: 'Xcm' | 'Response'; +} + /** @name PalletXcmQueryStatus */ export interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; @@ -2987,6 +3925,41 @@ readonly type: 'Present'; } +/** @name QuartzRuntimeOriginCaller */ +export interface QuartzRuntimeOriginCaller extends Enum { + readonly isSystem: boolean; + readonly asSystem: FrameSupportDispatchRawOrigin; + readonly isVoid: boolean; + readonly asVoid: SpCoreVoid; + readonly isCouncil: boolean; + readonly asCouncil: PalletCollectiveRawOrigin; + readonly isTechnicalCommittee: boolean; + readonly asTechnicalCommittee: PalletCollectiveRawOrigin; + readonly isPolkadotXcm: boolean; + readonly asPolkadotXcm: PalletXcmOrigin; + readonly isCumulusXcm: boolean; + readonly asCumulusXcm: CumulusPalletXcmOrigin; + readonly isOrigins: boolean; + readonly asOrigins: PalletGovOriginsOrigin; + readonly isEthereum: boolean; + readonly asEthereum: PalletEthereumRawOrigin; + readonly type: 'System' | 'Void' | 'Council' | 'TechnicalCommittee' | 'PolkadotXcm' | 'CumulusXcm' | 'Origins' | 'Ethereum'; +} + +/** @name QuartzRuntimeRuntime */ +export interface QuartzRuntimeRuntime extends Null {} + +/** @name QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls */ +export interface QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls extends Null {} + +/** @name QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance */ +export interface QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance extends Null {} + +/** @name QuartzRuntimeRuntimeCommonSessionKeys */ +export interface QuartzRuntimeRuntimeCommonSessionKeys extends Struct { + readonly aura: SpConsensusAuraSr25519AppSr25519Public; +} + /** @name SpArithmeticArithmeticError */ export interface SpArithmeticArithmeticError extends Enum { readonly isUnderflow: boolean; @@ -3013,6 +3986,9 @@ /** @name SpCoreSr25519Signature */ export interface SpCoreSr25519Signature extends U8aFixed {} +/** @name SpCoreVoid */ +export interface SpCoreVoid extends Null {} + /** @name SpRuntimeDigest */ export interface SpRuntimeDigest extends Struct { readonly logs: Vec; --- a/tests/src/interfaces/lookup.ts +++ b/tests/src/interfaces/lookup.ts @@ -61,7 +61,7 @@ } }, /** - * Lookup19: frame_system::EventRecord + * Lookup19: frame_system::EventRecord **/ FrameSystemEventRecord: { phase: 'FrameSystemPhase', @@ -806,835 +806,303 @@ } }, /** - * Lookup71: cumulus_pallet_xcmp_queue::pallet::Event + * Lookup71: pallet_democracy::pallet::Event **/ - CumulusPalletXcmpQueueEvent: { + PalletDemocracyEvent: { _enum: { - Success: { - messageHash: 'Option<[u8;32]>', - weight: 'SpWeightsWeightV2Weight', + Proposed: { + proposalIndex: 'u32', + deposit: 'u128', }, - Fail: { - messageHash: 'Option<[u8;32]>', - error: 'XcmV3TraitsError', - weight: 'SpWeightsWeightV2Weight', + Tabled: { + proposalIndex: 'u32', + deposit: 'u128', }, - BadVersion: { - messageHash: 'Option<[u8;32]>', + ExternalTabled: 'Null', + Started: { + refIndex: 'u32', + threshold: 'PalletDemocracyVoteThreshold', }, - BadFormat: { - messageHash: 'Option<[u8;32]>', + Passed: { + refIndex: 'u32', }, - XcmpMessageSent: { - messageHash: 'Option<[u8;32]>', + NotPassed: { + refIndex: 'u32', }, - OverweightEnqueued: { - sender: 'u32', - sentAt: 'u32', - index: 'u64', - required: 'SpWeightsWeightV2Weight', + Cancelled: { + refIndex: 'u32', }, - OverweightServiced: { - index: 'u64', - used: 'SpWeightsWeightV2Weight' - } - } - }, - /** - * Lookup72: xcm::v3::traits::Error - **/ - XcmV3TraitsError: { - _enum: { - Overflow: 'Null', - Unimplemented: 'Null', - UntrustedReserveLocation: 'Null', - UntrustedTeleportLocation: 'Null', - LocationFull: 'Null', - LocationNotInvertible: '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', - ExpectationFalse: 'Null', - PalletNotFound: 'Null', - NameMismatch: 'Null', - VersionIncompatible: 'Null', - HoldingWouldOverflow: 'Null', - ExportError: 'Null', - ReanchorFailed: 'Null', - NoDeal: 'Null', - FeesNotMet: 'Null', - LockError: 'Null', - NoPermission: 'Null', - Unanchored: 'Null', - NotDepositable: 'Null', - UnhandledXcmVersion: 'Null', - WeightLimitReached: 'SpWeightsWeightV2Weight', - Barrier: 'Null', - WeightNotComputable: 'Null', - ExceedsStackLimit: 'Null' - } - }, - /** - * Lookup74: pallet_xcm::pallet::Event - **/ - PalletXcmEvent: { - _enum: { - Attempted: 'XcmV3TraitsOutcome', - Sent: '(XcmV3MultiLocation,XcmV3MultiLocation,XcmV3Xcm)', - UnexpectedResponse: '(XcmV3MultiLocation,u64)', - ResponseReady: '(u64,XcmV3Response)', - Notified: '(u64,u8,u8)', - NotifyOverweight: '(u64,u8,u8,SpWeightsWeightV2Weight,SpWeightsWeightV2Weight)', - NotifyDispatchError: '(u64,u8,u8)', - NotifyDecodeFailed: '(u64,u8,u8)', - InvalidResponder: '(XcmV3MultiLocation,u64,Option)', - InvalidResponderVersion: '(XcmV3MultiLocation,u64)', - ResponseTaken: 'u64', - AssetsTrapped: '(H256,XcmV3MultiLocation,XcmVersionedMultiAssets)', - VersionChangeNotified: '(XcmV3MultiLocation,u32,XcmV3MultiassetMultiAssets)', - SupportedVersionChanged: '(XcmV3MultiLocation,u32)', - NotifyTargetSendFail: '(XcmV3MultiLocation,u64,XcmV3TraitsError)', - NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)', - InvalidQuerierVersion: '(XcmV3MultiLocation,u64)', - InvalidQuerier: '(XcmV3MultiLocation,u64,XcmV3MultiLocation,Option)', - VersionNotifyStarted: '(XcmV3MultiLocation,XcmV3MultiassetMultiAssets)', - VersionNotifyRequested: '(XcmV3MultiLocation,XcmV3MultiassetMultiAssets)', - VersionNotifyUnrequested: '(XcmV3MultiLocation,XcmV3MultiassetMultiAssets)', - FeesPaid: '(XcmV3MultiLocation,XcmV3MultiassetMultiAssets)', - AssetsClaimed: '(H256,XcmV3MultiLocation,XcmVersionedMultiAssets)' - } - }, - /** - * Lookup75: xcm::v3::traits::Outcome - **/ - XcmV3TraitsOutcome: { - _enum: { - Complete: 'SpWeightsWeightV2Weight', - Incomplete: '(SpWeightsWeightV2Weight,XcmV3TraitsError)', - Error: 'XcmV3TraitsError' - } - }, - /** - * Lookup76: xcm::v3::Xcm - **/ - XcmV3Xcm: 'Vec', - /** - * Lookup78: xcm::v3::Instruction - **/ - XcmV3Instruction: { - _enum: { - WithdrawAsset: 'XcmV3MultiassetMultiAssets', - ReserveAssetDeposited: 'XcmV3MultiassetMultiAssets', - ReceiveTeleportedAsset: 'XcmV3MultiassetMultiAssets', - QueryResponse: { - queryId: 'Compact', - response: 'XcmV3Response', - maxWeight: 'SpWeightsWeightV2Weight', - querier: 'Option', + Delegated: { + who: 'AccountId32', + target: 'AccountId32', }, - TransferAsset: { - assets: 'XcmV3MultiassetMultiAssets', - beneficiary: 'XcmV3MultiLocation', + Undelegated: { + account: 'AccountId32', }, - TransferReserveAsset: { - assets: 'XcmV3MultiassetMultiAssets', - dest: 'XcmV3MultiLocation', - xcm: 'XcmV3Xcm', + Vetoed: { + who: 'AccountId32', + proposalHash: 'H256', + until: 'u32', }, - Transact: { - originKind: 'XcmV2OriginKind', - requireWeightAtMost: 'SpWeightsWeightV2Weight', - call: 'XcmDoubleEncoded', + Blacklisted: { + proposalHash: 'H256', }, - HrmpNewChannelOpenRequest: { - sender: 'Compact', - maxMessageSize: 'Compact', - maxCapacity: 'Compact', + Voted: { + voter: 'AccountId32', + refIndex: 'u32', + vote: 'PalletDemocracyVoteAccountVote', }, - HrmpChannelAccepted: { - recipient: 'Compact', + Seconded: { + seconder: 'AccountId32', + propIndex: 'u32', }, - HrmpChannelClosing: { - initiator: 'Compact', - sender: 'Compact', - recipient: 'Compact', + ProposalCanceled: { + propIndex: 'u32', }, - ClearOrigin: 'Null', - DescendOrigin: 'XcmV3Junctions', - ReportError: 'XcmV3QueryResponseInfo', - DepositAsset: { - assets: 'XcmV3MultiassetMultiAssetFilter', - beneficiary: 'XcmV3MultiLocation', + MetadataSet: { + _alias: { + hash_: 'hash', + }, + owner: 'PalletDemocracyMetadataOwner', + hash_: 'H256', }, - DepositReserveAsset: { - assets: 'XcmV3MultiassetMultiAssetFilter', - dest: 'XcmV3MultiLocation', - xcm: 'XcmV3Xcm', - }, - ExchangeAsset: { - give: 'XcmV3MultiassetMultiAssetFilter', - want: 'XcmV3MultiassetMultiAssets', - maximal: 'bool', - }, - InitiateReserveWithdraw: { - assets: 'XcmV3MultiassetMultiAssetFilter', - reserve: 'XcmV3MultiLocation', - xcm: 'XcmV3Xcm', - }, - InitiateTeleport: { - assets: 'XcmV3MultiassetMultiAssetFilter', - dest: 'XcmV3MultiLocation', - xcm: 'XcmV3Xcm', - }, - ReportHolding: { - responseInfo: 'XcmV3QueryResponseInfo', - assets: 'XcmV3MultiassetMultiAssetFilter', - }, - BuyExecution: { - fees: 'XcmV3MultiAsset', - weightLimit: 'XcmV3WeightLimit', - }, - RefundSurplus: 'Null', - SetErrorHandler: 'XcmV3Xcm', - SetAppendix: 'XcmV3Xcm', - ClearError: 'Null', - ClaimAsset: { - assets: 'XcmV3MultiassetMultiAssets', - ticket: 'XcmV3MultiLocation', + MetadataCleared: { + _alias: { + hash_: 'hash', + }, + owner: 'PalletDemocracyMetadataOwner', + hash_: 'H256', }, - Trap: 'Compact', - SubscribeVersion: { - queryId: 'Compact', - maxResponseWeight: 'SpWeightsWeightV2Weight', - }, - UnsubscribeVersion: 'Null', - BurnAsset: 'XcmV3MultiassetMultiAssets', - ExpectAsset: 'XcmV3MultiassetMultiAssets', - ExpectOrigin: 'Option', - ExpectError: 'Option<(u32,XcmV3TraitsError)>', - ExpectTransactStatus: 'XcmV3MaybeErrorCode', - QueryPallet: { - moduleName: 'Bytes', - responseInfo: 'XcmV3QueryResponseInfo', - }, - ExpectPallet: { - index: 'Compact', - name: 'Bytes', - moduleName: 'Bytes', - crateMajor: 'Compact', - minCrateMinor: 'Compact', - }, - ReportTransactStatus: 'XcmV3QueryResponseInfo', - ClearTransactStatus: 'Null', - UniversalOrigin: 'XcmV3Junction', - ExportMessage: { - network: 'XcmV3JunctionNetworkId', - destination: 'XcmV3Junctions', - xcm: 'XcmV3Xcm', - }, - LockAsset: { - asset: 'XcmV3MultiAsset', - unlocker: 'XcmV3MultiLocation', - }, - UnlockAsset: { - asset: 'XcmV3MultiAsset', - target: 'XcmV3MultiLocation', - }, - NoteUnlockable: { - asset: 'XcmV3MultiAsset', - owner: 'XcmV3MultiLocation', - }, - RequestUnlock: { - asset: 'XcmV3MultiAsset', - locker: 'XcmV3MultiLocation', - }, - SetFeesMode: { - jitWithdraw: 'bool', - }, - SetTopic: '[u8;32]', - ClearTopic: 'Null', - AliasOrigin: 'XcmV3MultiLocation', - UnpaidExecution: { - weightLimit: 'XcmV3WeightLimit', - checkOrigin: 'Option' + MetadataTransferred: { + _alias: { + hash_: 'hash', + }, + prevOwner: 'PalletDemocracyMetadataOwner', + owner: 'PalletDemocracyMetadataOwner', + hash_: 'H256' } } }, /** - * Lookup79: xcm::v3::Response + * Lookup72: pallet_democracy::vote_threshold::VoteThreshold **/ - XcmV3Response: { - _enum: { - Null: 'Null', - Assets: 'XcmV3MultiassetMultiAssets', - ExecutionResult: 'Option<(u32,XcmV3TraitsError)>', - Version: 'u32', - PalletsInfo: 'Vec', - DispatchResult: 'XcmV3MaybeErrorCode' - } + PalletDemocracyVoteThreshold: { + _enum: ['SuperMajorityApprove', 'SuperMajorityAgainst', 'SimpleMajority'] }, /** - * Lookup83: xcm::v3::PalletInfo - **/ - XcmV3PalletInfo: { - index: 'Compact', - name: 'Bytes', - moduleName: 'Bytes', - major: 'Compact', - minor: 'Compact', - patch: 'Compact' - }, - /** - * Lookup86: xcm::v3::MaybeErrorCode + * Lookup73: pallet_democracy::vote::AccountVote **/ - XcmV3MaybeErrorCode: { + PalletDemocracyVoteAccountVote: { _enum: { - Success: 'Null', - Error: 'Bytes', - TruncatedError: 'Bytes' - } - }, - /** - * Lookup89: xcm::v2::OriginKind - **/ - XcmV2OriginKind: { - _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm'] - }, - /** - * Lookup90: xcm::double_encoded::DoubleEncoded - **/ - XcmDoubleEncoded: { - encoded: 'Bytes' - }, - /** - * Lookup91: xcm::v3::QueryResponseInfo - **/ - XcmV3QueryResponseInfo: { - destination: 'XcmV3MultiLocation', - queryId: 'Compact', - maxWeight: 'SpWeightsWeightV2Weight' - }, - /** - * Lookup92: xcm::v3::multiasset::MultiAssetFilter - **/ - XcmV3MultiassetMultiAssetFilter: { - _enum: { - Definite: 'XcmV3MultiassetMultiAssets', - Wild: 'XcmV3MultiassetWildMultiAsset' - } - }, - /** - * Lookup93: xcm::v3::multiasset::WildMultiAsset - **/ - XcmV3MultiassetWildMultiAsset: { - _enum: { - All: 'Null', - AllOf: { - id: 'XcmV3MultiassetAssetId', - fun: 'XcmV3MultiassetWildFungibility', + Standard: { + vote: 'Vote', + balance: 'u128', }, - AllCounted: 'Compact', - AllOfCounted: { - id: 'XcmV3MultiassetAssetId', - fun: 'XcmV3MultiassetWildFungibility', - count: 'Compact' + Split: { + aye: 'u128', + nay: 'u128' } } }, /** - * Lookup94: xcm::v3::multiasset::WildFungibility - **/ - XcmV3MultiassetWildFungibility: { - _enum: ['Fungible', 'NonFungible'] - }, - /** - * Lookup96: xcm::v3::WeightLimit + * Lookup75: pallet_democracy::types::MetadataOwner **/ - XcmV3WeightLimit: { + PalletDemocracyMetadataOwner: { _enum: { - Unlimited: 'Null', - Limited: 'SpWeightsWeightV2Weight' + External: 'Null', + Proposal: 'u32', + Referendum: 'u32' } }, /** - * Lookup97: xcm::VersionedMultiAssets + * Lookup76: pallet_collective::pallet::Event **/ - XcmVersionedMultiAssets: { + PalletCollectiveEvent: { _enum: { - __Unused0: 'Null', - V2: 'XcmV2MultiassetMultiAssets', - __Unused2: 'Null', - V3: 'XcmV3MultiassetMultiAssets' - } - }, - /** - * Lookup98: xcm::v2::multiasset::MultiAssets - **/ - XcmV2MultiassetMultiAssets: 'Vec', - /** - * Lookup100: xcm::v2::multiasset::MultiAsset - **/ - XcmV2MultiAsset: { - id: 'XcmV2MultiassetAssetId', - fun: 'XcmV2MultiassetFungibility' - }, - /** - * Lookup101: xcm::v2::multiasset::AssetId - **/ - XcmV2MultiassetAssetId: { - _enum: { - Concrete: 'XcmV2MultiLocation', - Abstract: 'Bytes' - } - }, - /** - * Lookup102: xcm::v2::multilocation::MultiLocation - **/ - XcmV2MultiLocation: { - parents: 'u8', - interior: 'XcmV2MultilocationJunctions' - }, - /** - * Lookup103: xcm::v2::multilocation::Junctions - **/ - XcmV2MultilocationJunctions: { - _enum: { - Here: 'Null', - X1: 'XcmV2Junction', - X2: '(XcmV2Junction,XcmV2Junction)', - X3: '(XcmV2Junction,XcmV2Junction,XcmV2Junction)', - X4: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)', - X5: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)', - X6: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)', - X7: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)', - X8: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)' - } - }, - /** - * Lookup104: xcm::v2::junction::Junction - **/ - XcmV2Junction: { - _enum: { - Parachain: 'Compact', - AccountId32: { - network: 'XcmV2NetworkId', - id: '[u8;32]', + Proposed: { + account: 'AccountId32', + proposalIndex: 'u32', + proposalHash: 'H256', + threshold: 'u32', + }, + Voted: { + account: 'AccountId32', + proposalHash: 'H256', + voted: 'bool', + yes: 'u32', + no: 'u32', + }, + Approved: { + proposalHash: 'H256', + }, + Disapproved: { + proposalHash: 'H256', }, - AccountIndex64: { - network: 'XcmV2NetworkId', - index: 'Compact', + Executed: { + proposalHash: 'H256', + result: 'Result', }, - AccountKey20: { - network: 'XcmV2NetworkId', - key: '[u8;20]', + MemberExecuted: { + proposalHash: 'H256', + result: 'Result', }, - PalletInstance: 'u8', - GeneralIndex: 'Compact', - GeneralKey: 'Bytes', - OnlyChild: 'Null', - Plurality: { - id: 'XcmV2BodyId', - part: 'XcmV2BodyPart' + Closed: { + proposalHash: 'H256', + yes: 'u32', + no: 'u32' } } }, /** - * Lookup105: xcm::v2::NetworkId + * Lookup79: pallet_membership::pallet::Event **/ - XcmV2NetworkId: { - _enum: { - Any: 'Null', - Named: 'Bytes', - Polkadot: 'Null', - Kusama: 'Null' - } + PalletMembershipEvent: { + _enum: ['MemberAdded', 'MemberRemoved', 'MembersSwapped', 'MembersReset', 'KeyChanged', 'Dummy'] }, /** - * Lookup107: xcm::v2::BodyId - **/ - XcmV2BodyId: { - _enum: { - Unit: 'Null', - Named: 'Bytes', - Index: 'Compact', - Executive: 'Null', - Technical: 'Null', - Legislative: 'Null', - Judicial: 'Null', - Defense: 'Null', - Administration: 'Null', - Treasury: 'Null' - } - }, - /** - * Lookup108: xcm::v2::BodyPart + * Lookup81: pallet_ranked_collective::pallet::Event **/ - XcmV2BodyPart: { + PalletRankedCollectiveEvent: { _enum: { - Voice: 'Null', - Members: { - count: 'Compact', + MemberAdded: { + who: 'AccountId32', }, - Fraction: { - nom: 'Compact', - denom: 'Compact', + RankChanged: { + who: 'AccountId32', + rank: 'u16', }, - AtLeastProportion: { - nom: 'Compact', - denom: 'Compact', + MemberRemoved: { + who: 'AccountId32', + rank: 'u16', }, - MoreThanProportion: { - nom: 'Compact', - denom: 'Compact' + Voted: { + who: 'AccountId32', + poll: 'u32', + vote: 'PalletRankedCollectiveVoteRecord', + tally: 'PalletRankedCollectiveTally' } } }, /** - * Lookup109: xcm::v2::multiasset::Fungibility + * Lookup83: pallet_ranked_collective::VoteRecord **/ - XcmV2MultiassetFungibility: { + PalletRankedCollectiveVoteRecord: { _enum: { - Fungible: 'Compact', - NonFungible: 'XcmV2MultiassetAssetInstance' + Aye: 'u32', + Nay: 'u32' } }, /** - * Lookup110: xcm::v2::multiasset::AssetInstance - **/ - XcmV2MultiassetAssetInstance: { - _enum: { - Undefined: 'Null', - Index: 'Compact', - Array4: '[u8;4]', - Array8: '[u8;8]', - Array16: '[u8;16]', - Array32: '[u8;32]', - Blob: 'Bytes' - } - }, - /** - * Lookup111: xcm::VersionedMultiLocation + * Lookup84: pallet_ranked_collective::Tally **/ - XcmVersionedMultiLocation: { - _enum: { - __Unused0: 'Null', - V2: 'XcmV2MultiLocation', - __Unused2: 'Null', - V3: 'XcmV3MultiLocation' - } + PalletRankedCollectiveTally: { + bareAyes: 'u32', + ayes: 'u32', + nays: 'u32' }, /** - * Lookup112: cumulus_pallet_xcm::pallet::Event + * Lookup85: pallet_referenda::pallet::Event **/ - CumulusPalletXcmEvent: { + PalletReferendaEvent: { _enum: { - InvalidFormat: '[u8;32]', - UnsupportedVersion: '[u8;32]', - ExecutedDownward: '([u8;32],XcmV3TraitsOutcome)' - } - }, - /** - * Lookup113: cumulus_pallet_dmp_queue::pallet::Event - **/ - CumulusPalletDmpQueueEvent: { - _enum: { - InvalidFormat: { - messageId: '[u8;32]', + Submitted: { + index: 'u32', + track: 'u16', + proposal: 'FrameSupportPreimagesBounded', }, - UnsupportedVersion: { - messageId: '[u8;32]', + DecisionDepositPlaced: { + index: 'u32', + who: 'AccountId32', + amount: 'u128', }, - ExecutedDownward: { - messageId: '[u8;32]', - outcome: 'XcmV3TraitsOutcome', + DecisionDepositRefunded: { + index: 'u32', + who: 'AccountId32', + amount: 'u128', }, - WeightExhausted: { - messageId: '[u8;32]', - remainingWeight: 'SpWeightsWeightV2Weight', - requiredWeight: 'SpWeightsWeightV2Weight', + DepositSlashed: { + who: 'AccountId32', + amount: 'u128', }, - OverweightEnqueued: { - messageId: '[u8;32]', - overweightIndex: 'u64', - requiredWeight: 'SpWeightsWeightV2Weight', + DecisionStarted: { + index: 'u32', + track: 'u16', + proposal: 'FrameSupportPreimagesBounded', + tally: 'PalletRankedCollectiveTally', }, - OverweightServiced: { - overweightIndex: 'u64', - weightUsed: 'SpWeightsWeightV2Weight', + ConfirmStarted: { + index: 'u32', }, - MaxMessagesExhausted: { - messageId: '[u8;32]' - } - } - }, - /** - * Lookup114: pallet_configuration::pallet::Event - **/ - PalletConfigurationEvent: { - _enum: { - NewDesiredCollators: { - desiredCollators: 'Option', + ConfirmAborted: { + index: 'u32', }, - NewCollatorLicenseBond: { - bondCost: 'Option', + Confirmed: { + index: 'u32', + tally: 'PalletRankedCollectiveTally', }, - NewCollatorKickThreshold: { - lengthInBlocks: 'Option' - } - } - }, - /** - * Lookup117: pallet_common::pallet::Event - **/ - PalletCommonEvent: { - _enum: { - CollectionCreated: '(u32,u8,AccountId32)', - CollectionDestroyed: 'u32', - ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)', - ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)', - Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)', - Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)', - ApprovedForAll: '(u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,bool)', - CollectionPropertySet: '(u32,Bytes)', - CollectionPropertyDeleted: '(u32,Bytes)', - TokenPropertySet: '(u32,u32,Bytes)', - TokenPropertyDeleted: '(u32,u32,Bytes)', - PropertyPermissionSet: '(u32,Bytes)', - AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)', - AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)', - CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)', - CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)', - CollectionLimitSet: 'u32', - CollectionOwnerChanged: '(u32,AccountId32)', - CollectionPermissionSet: 'u32', - CollectionSponsorSet: '(u32,AccountId32)', - SponsorshipConfirmed: '(u32,AccountId32)', - CollectionSponsorRemoved: 'u32' - } - }, - /** - * Lookup120: pallet_evm::account::BasicCrossAccountIdRepr - **/ - PalletEvmAccountBasicCrossAccountIdRepr: { - _enum: { - Substrate: 'AccountId32', - Ethereum: 'H160' - } - }, - /** - * Lookup123: pallet_structure::pallet::Event - **/ - PalletStructureEvent: { - _enum: { - Executed: 'Result' - } - }, - /** - * Lookup124: pallet_app_promotion::pallet::Event - **/ - PalletAppPromotionEvent: { - _enum: { - StakingRecalculation: '(AccountId32,u128,u128)', - Stake: '(AccountId32,u128)', - Unstake: '(AccountId32,u128)', - SetAdmin: 'AccountId32' - } - }, - /** - * Lookup125: pallet_foreign_assets::module::Event - **/ - PalletForeignAssetsModuleEvent: { - _enum: { - ForeignAssetRegistered: { - assetId: 'u32', - assetAddress: 'XcmV3MultiLocation', - metadata: 'PalletForeignAssetsModuleAssetMetadata', + Approved: { + index: 'u32', }, - ForeignAssetUpdated: { - assetId: 'u32', - assetAddress: 'XcmV3MultiLocation', - metadata: 'PalletForeignAssetsModuleAssetMetadata', + Rejected: { + index: 'u32', + tally: 'PalletRankedCollectiveTally', }, - AssetRegistered: { - assetId: 'PalletForeignAssetsAssetIds', - metadata: 'PalletForeignAssetsModuleAssetMetadata', + TimedOut: { + index: 'u32', + tally: 'PalletRankedCollectiveTally', }, - AssetUpdated: { - assetId: 'PalletForeignAssetsAssetIds', - metadata: 'PalletForeignAssetsModuleAssetMetadata' - } - } - }, - /** - * Lookup126: pallet_foreign_assets::module::AssetMetadata - **/ - PalletForeignAssetsModuleAssetMetadata: { - name: 'Bytes', - symbol: 'Bytes', - decimals: 'u8', - minimalBalance: 'u128' - }, - /** - * Lookup129: pallet_evm::pallet::Event - **/ - PalletEvmEvent: { - _enum: { - Log: { - log: 'EthereumLog', + Cancelled: { + index: 'u32', + tally: 'PalletRankedCollectiveTally', }, - Created: { - address: 'H160', + Killed: { + index: 'u32', + tally: 'PalletRankedCollectiveTally', }, - CreatedFailed: { - address: 'H160', + SubmissionDepositRefunded: { + index: 'u32', + who: 'AccountId32', + amount: 'u128', }, - Executed: { - address: 'H160', + MetadataSet: { + _alias: { + hash_: 'hash', + }, + index: 'u32', + hash_: 'H256', }, - ExecutedFailed: { - address: 'H160' + MetadataCleared: { + _alias: { + hash_: 'hash', + }, + index: 'u32', + hash_: 'H256' } } }, /** - * Lookup130: ethereum::log::Log - **/ - EthereumLog: { - address: 'H160', - topics: 'Vec', - data: 'Bytes' - }, - /** - * Lookup132: pallet_ethereum::pallet::Event + * Lookup86: frame_support::traits::preimages::Bounded **/ - PalletEthereumEvent: { + FrameSupportPreimagesBounded: { _enum: { - Executed: { - from: 'H160', - to: 'H160', - transactionHash: 'H256', - exitReason: 'EvmCoreErrorExitReason', - extraData: 'Bytes' + Legacy: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + Inline: 'Bytes', + Lookup: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + len: 'u32' } } }, /** - * Lookup133: evm_core::error::ExitReason - **/ - EvmCoreErrorExitReason: { - _enum: { - Succeed: 'EvmCoreErrorExitSucceed', - Error: 'EvmCoreErrorExitError', - Revert: 'EvmCoreErrorExitRevert', - Fatal: 'EvmCoreErrorExitFatal' - } - }, - /** - * Lookup134: evm_core::error::ExitSucceed - **/ - EvmCoreErrorExitSucceed: { - _enum: ['Stopped', 'Returned', 'Suicided'] - }, - /** - * Lookup135: evm_core::error::ExitError - **/ - EvmCoreErrorExitError: { - _enum: { - StackUnderflow: 'Null', - StackOverflow: 'Null', - InvalidJump: 'Null', - InvalidRange: 'Null', - DesignatedInvalid: 'Null', - CallTooDeep: 'Null', - CreateCollision: 'Null', - CreateContractLimit: 'Null', - OutOfOffset: 'Null', - OutOfGas: 'Null', - OutOfFund: 'Null', - PCUnderflow: 'Null', - CreateEmpty: 'Null', - Other: 'Text', - MaxNonce: 'Null', - InvalidCode: 'u8' - } - }, - /** - * Lookup139: evm_core::error::ExitRevert - **/ - EvmCoreErrorExitRevert: { - _enum: ['Reverted'] - }, - /** - * Lookup140: evm_core::error::ExitFatal - **/ - EvmCoreErrorExitFatal: { - _enum: { - NotSupported: 'Null', - UnhandledInterrupt: 'Null', - CallErrorAsFatal: 'EvmCoreErrorExitError', - Other: 'Text' - } - }, - /** - * Lookup141: pallet_evm_contract_helpers::pallet::Event - **/ - PalletEvmContractHelpersEvent: { - _enum: { - ContractSponsorSet: '(H160,AccountId32)', - ContractSponsorshipConfirmed: '(H160,AccountId32)', - ContractSponsorRemoved: 'H160' - } - }, - /** - * Lookup142: pallet_evm_migration::pallet::Event - **/ - PalletEvmMigrationEvent: { - _enum: ['TestEvent'] - }, - /** - * Lookup143: pallet_maintenance::pallet::Event - **/ - PalletMaintenanceEvent: { - _enum: ['MaintenanceEnabled', 'MaintenanceDisabled'] - }, - /** - * Lookup144: pallet_test_utils::pallet::Event - **/ - PalletTestUtilsEvent: { - _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted'] - }, - /** - * Lookup145: frame_system::Phase - **/ - FrameSystemPhase: { - _enum: { - ApplyExtrinsic: 'u32', - Finalization: 'Null', - Initialization: 'Null' - } - }, - /** - * Lookup148: frame_system::LastRuntimeUpgradeInfo - **/ - FrameSystemLastRuntimeUpgradeInfo: { - specVersion: 'Compact', - specName: 'Text' - }, - /** - * Lookup149: frame_system::pallet::Call + * Lookup88: frame_system::pallet::Call **/ FrameSystemCall: { _enum: { @@ -1669,106 +1137,8 @@ } }, /** - * Lookup153: frame_system::limits::BlockWeights - **/ - FrameSystemLimitsBlockWeights: { - baseBlock: 'SpWeightsWeightV2Weight', - maxBlock: 'SpWeightsWeightV2Weight', - perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass' - }, - /** - * Lookup154: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassWeightsPerClass: { - normal: 'FrameSystemLimitsWeightsPerClass', - operational: 'FrameSystemLimitsWeightsPerClass', - mandatory: 'FrameSystemLimitsWeightsPerClass' - }, - /** - * Lookup155: frame_system::limits::WeightsPerClass - **/ - FrameSystemLimitsWeightsPerClass: { - baseExtrinsic: 'SpWeightsWeightV2Weight', - maxExtrinsic: 'Option', - maxTotal: 'Option', - reserved: 'Option' - }, - /** - * Lookup157: frame_system::limits::BlockLength - **/ - FrameSystemLimitsBlockLength: { - max: 'FrameSupportDispatchPerDispatchClassU32' - }, - /** - * Lookup158: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassU32: { - normal: 'u32', - operational: 'u32', - mandatory: 'u32' - }, - /** - * Lookup159: sp_weights::RuntimeDbWeight - **/ - SpWeightsRuntimeDbWeight: { - read: 'u64', - write: 'u64' - }, - /** - * Lookup160: sp_version::RuntimeVersion - **/ - SpVersionRuntimeVersion: { - specName: 'Text', - implName: 'Text', - authoringVersion: 'u32', - specVersion: 'u32', - implVersion: 'u32', - apis: 'Vec<([u8;8],u32)>', - transactionVersion: 'u32', - stateVersion: 'u8' - }, - /** - * Lookup165: frame_system::pallet::Error - **/ - FrameSystemError: { - _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered'] - }, - /** - * Lookup166: pallet_state_trie_migration::pallet::MigrationTask - **/ - PalletStateTrieMigrationMigrationTask: { - _alias: { - size_: 'size' - }, - progressTop: 'PalletStateTrieMigrationProgress', - progressChild: 'PalletStateTrieMigrationProgress', - size_: 'u32', - topItems: 'u32', - childItems: 'u32' - }, - /** - * Lookup167: pallet_state_trie_migration::pallet::Progress - **/ - PalletStateTrieMigrationProgress: { - _enum: { - ToStart: 'Null', - LastKey: 'Bytes', - Complete: 'Null' - } - }, - /** - * Lookup170: pallet_state_trie_migration::pallet::MigrationLimits + * Lookup92: pallet_state_trie_migration::pallet::Call **/ - PalletStateTrieMigrationMigrationLimits: { - _alias: { - size_: 'size' - }, - size_: 'u32', - item: 'u32' - }, - /** - * Lookup171: pallet_state_trie_migration::pallet::Call - **/ PalletStateTrieMigrationCall: { _enum: { control_auto_migration: { @@ -1801,83 +1171,40 @@ } }, /** - * Lookup172: polkadot_primitives::v4::PersistedValidationData + * Lookup94: pallet_state_trie_migration::pallet::MigrationLimits **/ - PolkadotPrimitivesV4PersistedValidationData: { - parentHead: 'Bytes', - relayParentNumber: 'u32', - relayParentStorageRoot: 'H256', - maxPovSize: 'u32' + PalletStateTrieMigrationMigrationLimits: { + _alias: { + size_: 'size' + }, + size_: 'u32', + item: 'u32' }, /** - * Lookup175: polkadot_primitives::v4::UpgradeRestriction + * Lookup95: pallet_state_trie_migration::pallet::MigrationTask **/ - PolkadotPrimitivesV4UpgradeRestriction: { - _enum: ['Present'] + PalletStateTrieMigrationMigrationTask: { + _alias: { + size_: 'size' + }, + progressTop: 'PalletStateTrieMigrationProgress', + progressChild: 'PalletStateTrieMigrationProgress', + size_: 'u32', + topItems: 'u32', + childItems: 'u32' }, /** - * Lookup176: sp_trie::storage_proof::StorageProof - **/ - SpTrieStorageProof: { - trieNodes: 'BTreeSet' - }, - /** - * Lookup178: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot - **/ - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { - dmqMqcHead: 'H256', - relayDispatchQueueSize: 'CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize', - ingressChannels: 'Vec<(u32,PolkadotPrimitivesV4AbridgedHrmpChannel)>', - egressChannels: 'Vec<(u32,PolkadotPrimitivesV4AbridgedHrmpChannel)>' - }, - /** - * Lookup179: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispachQueueSize + * Lookup96: pallet_state_trie_migration::pallet::Progress **/ - CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize: { - remainingCount: 'u32', - remainingSize: 'u32' - }, - /** - * Lookup182: polkadot_primitives::v4::AbridgedHrmpChannel - **/ - PolkadotPrimitivesV4AbridgedHrmpChannel: { - maxCapacity: 'u32', - maxTotalSize: 'u32', - maxMessageSize: 'u32', - msgCount: 'u32', - totalSize: 'u32', - mqcHead: 'Option' - }, - /** - * Lookup184: polkadot_primitives::v4::AbridgedHostConfiguration - **/ - PolkadotPrimitivesV4AbridgedHostConfiguration: { - maxCodeSize: 'u32', - maxHeadDataSize: 'u32', - maxUpwardQueueCount: 'u32', - maxUpwardQueueSize: 'u32', - maxUpwardMessageSize: 'u32', - maxUpwardMessageNumPerCandidate: 'u32', - hrmpMaxMessageNumPerCandidate: 'u32', - validationUpgradeCooldown: 'u32', - validationUpgradeDelay: 'u32' + PalletStateTrieMigrationProgress: { + _enum: { + ToStart: 'Null', + LastKey: 'Bytes', + Complete: 'Null' + } }, /** - * Lookup190: polkadot_core_primitives::OutboundHrmpMessage - **/ - PolkadotCorePrimitivesOutboundHrmpMessage: { - recipient: 'u32', - data: 'Bytes' - }, - /** - * Lookup191: cumulus_pallet_parachain_system::CodeUpgradeAuthorization - **/ - CumulusPalletParachainSystemCodeUpgradeAuthorization: { - codeHash: 'H256', - checkVersion: 'bool' - }, - /** - * Lookup192: cumulus_pallet_parachain_system::pallet::Call + * Lookup98: cumulus_pallet_parachain_system::pallet::Call **/ CumulusPalletParachainSystemCall: { _enum: { @@ -1897,7 +1224,7 @@ } }, /** - * Lookup193: cumulus_primitives_parachain_inherent::ParachainInherentData + * Lookup99: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { validationData: 'PolkadotPrimitivesV4PersistedValidationData', @@ -1906,31 +1233,40 @@ horizontalMessages: 'BTreeMap>' }, /** - * Lookup195: polkadot_core_primitives::InboundDownwardMessage + * Lookup100: polkadot_primitives::v4::PersistedValidationData **/ + PolkadotPrimitivesV4PersistedValidationData: { + parentHead: 'Bytes', + relayParentNumber: 'u32', + relayParentStorageRoot: 'H256', + maxPovSize: 'u32' + }, + /** + * Lookup102: sp_trie::storage_proof::StorageProof + **/ + SpTrieStorageProof: { + trieNodes: 'BTreeSet' + }, + /** + * Lookup105: polkadot_core_primitives::InboundDownwardMessage + **/ PolkadotCorePrimitivesInboundDownwardMessage: { sentAt: 'u32', msg: 'Bytes' }, /** - * Lookup198: polkadot_core_primitives::InboundHrmpMessage + * Lookup109: polkadot_core_primitives::InboundHrmpMessage **/ PolkadotCorePrimitivesInboundHrmpMessage: { sentAt: 'u32', data: 'Bytes' }, /** - * Lookup201: cumulus_pallet_parachain_system::pallet::Error - **/ - CumulusPalletParachainSystemError: { - _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized'] - }, - /** - * Lookup202: parachain_info::pallet::Call + * Lookup112: parachain_info::pallet::Call **/ ParachainInfoCall: 'Null', /** - * Lookup205: pallet_collator_selection::pallet::Call + * Lookup113: pallet_collator_selection::pallet::Call **/ PalletCollatorSelectionCall: { _enum: { @@ -1953,80 +1289,36 @@ } }, /** - * Lookup206: pallet_collator_selection::pallet::Error - **/ - PalletCollatorSelectionError: { - _enum: ['TooManyCandidates', 'Unknown', 'Permission', 'AlreadyHoldingLicense', 'NoLicense', 'AlreadyCandidate', 'NotCandidate', 'TooManyInvulnerables', 'TooFewInvulnerables', 'AlreadyInvulnerable', 'NotInvulnerable', 'NoAssociatedValidatorId', 'ValidatorNotRegistered'] - }, - /** - * Lookup209: opal_runtime::runtime_common::SessionKeys - **/ - OpalRuntimeRuntimeCommonSessionKeys: { - aura: 'SpConsensusAuraSr25519AppSr25519Public' - }, - /** - * Lookup210: sp_consensus_aura::sr25519::app_sr25519::Public - **/ - SpConsensusAuraSr25519AppSr25519Public: 'SpCoreSr25519Public', - /** - * Lookup211: sp_core::sr25519::Public + * Lookup114: pallet_session::pallet::Call **/ - SpCoreSr25519Public: '[u8;32]', - /** - * Lookup214: sp_core::crypto::KeyTypeId - **/ - SpCoreCryptoKeyTypeId: '[u8;4]', - /** - * Lookup215: pallet_session::pallet::Call - **/ PalletSessionCall: { _enum: { set_keys: { _alias: { keys_: 'keys', }, - keys_: 'OpalRuntimeRuntimeCommonSessionKeys', + keys_: 'QuartzRuntimeRuntimeCommonSessionKeys', proof: 'Bytes', }, purge_keys: 'Null' } }, /** - * Lookup216: pallet_session::pallet::Error - **/ - PalletSessionError: { - _enum: ['InvalidProof', 'NoAssociatedValidatorId', 'DuplicatedKey', 'NoKeys', 'NoAccount'] - }, - /** - * Lookup221: pallet_balances::types::BalanceLock - **/ - PalletBalancesBalanceLock: { - id: '[u8;8]', - amount: 'u128', - reasons: 'PalletBalancesReasons' - }, - /** - * Lookup222: pallet_balances::types::Reasons + * Lookup115: quartz_runtime::runtime_common::SessionKeys **/ - PalletBalancesReasons: { - _enum: ['Fee', 'Misc', 'All'] + QuartzRuntimeRuntimeCommonSessionKeys: { + aura: 'SpConsensusAuraSr25519AppSr25519Public' }, /** - * Lookup225: pallet_balances::types::ReserveData + * Lookup116: sp_consensus_aura::sr25519::app_sr25519::Public **/ - PalletBalancesReserveData: { - id: '[u8;16]', - amount: 'u128' - }, + SpConsensusAuraSr25519AppSr25519Public: 'SpCoreSr25519Public', /** - * Lookup228: pallet_balances::types::IdAmount + * Lookup117: sp_core::sr25519::Public **/ - PalletBalancesIdAmount: { - id: '[u8;16]', - amount: 'u128' - }, + SpCoreSr25519Public: '[u8;32]', /** - * Lookup231: pallet_balances::pallet::Call + * Lookup118: pallet_balances::pallet::Call **/ PalletBalancesCall: { _enum: { @@ -2070,13 +1362,7 @@ } }, /** - * Lookup234: pallet_balances::pallet::Error - **/ - PalletBalancesError: { - _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'Expendability', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves', 'TooManyHolds', 'TooManyFreezes'] - }, - /** - * Lookup235: pallet_timestamp::pallet::Call + * Lookup122: pallet_timestamp::pallet::Call **/ PalletTimestampCall: { _enum: { @@ -2086,22 +1372,7 @@ } }, /** - * Lookup237: pallet_transaction_payment::Releases - **/ - PalletTransactionPaymentReleases: { - _enum: ['V1Ancient', 'V2'] - }, - /** - * Lookup238: pallet_treasury::Proposal - **/ - PalletTreasuryProposal: { - proposer: 'AccountId32', - value: 'u128', - beneficiary: 'AccountId32', - bond: 'u128' - }, - /** - * Lookup240: pallet_treasury::pallet::Call + * Lookup123: pallet_treasury::pallet::Call **/ PalletTreasuryCall: { _enum: { @@ -2125,17 +1396,7 @@ } }, /** - * Lookup242: frame_support::PalletId - **/ - FrameSupportPalletId: '[u8;8]', - /** - * Lookup243: pallet_treasury::pallet::Error - **/ - PalletTreasuryError: { - _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved'] - }, - /** - * Lookup244: pallet_sudo::pallet::Call + * Lookup124: pallet_sudo::pallet::Call **/ PalletSudoCall: { _enum: { @@ -2159,7 +1420,7 @@ } }, /** - * Lookup246: orml_vesting::module::Call + * Lookup125: orml_vesting::module::Call **/ OrmlVestingModuleCall: { _enum: { @@ -2178,7 +1439,7 @@ } }, /** - * Lookup248: orml_xtokens::module::Call + * Lookup127: orml_xtokens::module::Call **/ OrmlXtokensModuleCall: { _enum: { @@ -2221,7 +1482,129 @@ } }, /** - * Lookup249: xcm::VersionedMultiAsset + * Lookup128: xcm::VersionedMultiLocation + **/ + XcmVersionedMultiLocation: { + _enum: { + __Unused0: 'Null', + V2: 'XcmV2MultiLocation', + __Unused2: 'Null', + V3: 'XcmV3MultiLocation' + } + }, + /** + * Lookup129: xcm::v2::multilocation::MultiLocation + **/ + XcmV2MultiLocation: { + parents: 'u8', + interior: 'XcmV2MultilocationJunctions' + }, + /** + * Lookup130: xcm::v2::multilocation::Junctions + **/ + XcmV2MultilocationJunctions: { + _enum: { + Here: 'Null', + X1: 'XcmV2Junction', + X2: '(XcmV2Junction,XcmV2Junction)', + X3: '(XcmV2Junction,XcmV2Junction,XcmV2Junction)', + X4: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)', + X5: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)', + X6: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)', + X7: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)', + X8: '(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)' + } + }, + /** + * Lookup131: xcm::v2::junction::Junction + **/ + XcmV2Junction: { + _enum: { + Parachain: 'Compact', + AccountId32: { + network: 'XcmV2NetworkId', + id: '[u8;32]', + }, + AccountIndex64: { + network: 'XcmV2NetworkId', + index: 'Compact', + }, + AccountKey20: { + network: 'XcmV2NetworkId', + key: '[u8;20]', + }, + PalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: 'Bytes', + OnlyChild: 'Null', + Plurality: { + id: 'XcmV2BodyId', + part: 'XcmV2BodyPart' + } + } + }, + /** + * Lookup132: xcm::v2::NetworkId + **/ + XcmV2NetworkId: { + _enum: { + Any: 'Null', + Named: 'Bytes', + Polkadot: 'Null', + Kusama: 'Null' + } + }, + /** + * Lookup134: xcm::v2::BodyId + **/ + XcmV2BodyId: { + _enum: { + Unit: 'Null', + Named: 'Bytes', + Index: 'Compact', + Executive: 'Null', + Technical: 'Null', + Legislative: 'Null', + Judicial: 'Null', + Defense: 'Null', + Administration: 'Null', + Treasury: 'Null' + } + }, + /** + * Lookup135: xcm::v2::BodyPart + **/ + XcmV2BodyPart: { + _enum: { + Voice: 'Null', + Members: { + count: 'Compact', + }, + Fraction: { + nom: 'Compact', + denom: 'Compact', + }, + AtLeastProportion: { + nom: 'Compact', + denom: 'Compact', + }, + MoreThanProportion: { + nom: 'Compact', + denom: 'Compact' + } + } + }, + /** + * Lookup136: xcm::v3::WeightLimit + **/ + XcmV3WeightLimit: { + _enum: { + Unlimited: 'Null', + Limited: 'SpWeightsWeightV2Weight' + } + }, + /** + * Lookup137: xcm::VersionedMultiAsset **/ XcmVersionedMultiAsset: { _enum: { @@ -2232,8 +1615,62 @@ } }, /** - * Lookup252: orml_tokens::module::Call + * Lookup138: xcm::v2::multiasset::MultiAsset **/ + XcmV2MultiAsset: { + id: 'XcmV2MultiassetAssetId', + fun: 'XcmV2MultiassetFungibility' + }, + /** + * Lookup139: xcm::v2::multiasset::AssetId + **/ + XcmV2MultiassetAssetId: { + _enum: { + Concrete: 'XcmV2MultiLocation', + Abstract: 'Bytes' + } + }, + /** + * Lookup140: xcm::v2::multiasset::Fungibility + **/ + XcmV2MultiassetFungibility: { + _enum: { + Fungible: 'Compact', + NonFungible: 'XcmV2MultiassetAssetInstance' + } + }, + /** + * Lookup141: xcm::v2::multiasset::AssetInstance + **/ + XcmV2MultiassetAssetInstance: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]', + Blob: 'Bytes' + } + }, + /** + * Lookup144: xcm::VersionedMultiAssets + **/ + XcmVersionedMultiAssets: { + _enum: { + __Unused0: 'Null', + V2: 'XcmV2MultiassetMultiAssets', + __Unused2: 'Null', + V3: 'XcmV3MultiassetMultiAssets' + } + }, + /** + * Lookup145: xcm::v2::multiasset::MultiAssets + **/ + XcmV2MultiassetMultiAssets: 'Vec', + /** + * Lookup147: orml_tokens::module::Call + **/ OrmlTokensModuleCall: { _enum: { transfer: { @@ -2266,7 +1703,7 @@ } }, /** - * Lookup253: pallet_identity::pallet::Call + * Lookup148: pallet_identity::pallet::Call **/ PalletIdentityCall: { _enum: { @@ -2335,7 +1772,7 @@ } }, /** - * Lookup254: pallet_identity::types::IdentityInfo + * Lookup149: pallet_identity::types::IdentityInfo **/ PalletIdentityIdentityInfo: { additional: 'Vec<(Data,Data)>', @@ -2349,7 +1786,7 @@ twitter: 'Data' }, /** - * Lookup290: pallet_identity::types::BitFlags + * Lookup185: pallet_identity::types::BitFlags **/ PalletIdentityBitFlags: { _bitLength: 64, @@ -2363,13 +1800,13 @@ Twitter: 128 }, /** - * Lookup291: pallet_identity::types::IdentityField + * Lookup186: pallet_identity::types::IdentityField **/ PalletIdentityIdentityField: { _enum: ['__Unused0', 'Display', 'Legal', '__Unused3', 'Web', '__Unused5', '__Unused6', '__Unused7', 'Riot', '__Unused9', '__Unused10', '__Unused11', '__Unused12', '__Unused13', '__Unused14', '__Unused15', 'Email', '__Unused17', '__Unused18', '__Unused19', '__Unused20', '__Unused21', '__Unused22', '__Unused23', '__Unused24', '__Unused25', '__Unused26', '__Unused27', '__Unused28', '__Unused29', '__Unused30', '__Unused31', 'PgpFingerprint', '__Unused33', '__Unused34', '__Unused35', '__Unused36', '__Unused37', '__Unused38', '__Unused39', '__Unused40', '__Unused41', '__Unused42', '__Unused43', '__Unused44', '__Unused45', '__Unused46', '__Unused47', '__Unused48', '__Unused49', '__Unused50', '__Unused51', '__Unused52', '__Unused53', '__Unused54', '__Unused55', '__Unused56', '__Unused57', '__Unused58', '__Unused59', '__Unused60', '__Unused61', '__Unused62', '__Unused63', 'Image', '__Unused65', '__Unused66', '__Unused67', '__Unused68', '__Unused69', '__Unused70', '__Unused71', '__Unused72', '__Unused73', '__Unused74', '__Unused75', '__Unused76', '__Unused77', '__Unused78', '__Unused79', '__Unused80', '__Unused81', '__Unused82', '__Unused83', '__Unused84', '__Unused85', '__Unused86', '__Unused87', '__Unused88', '__Unused89', '__Unused90', '__Unused91', '__Unused92', '__Unused93', '__Unused94', '__Unused95', '__Unused96', '__Unused97', '__Unused98', '__Unused99', '__Unused100', '__Unused101', '__Unused102', '__Unused103', '__Unused104', '__Unused105', '__Unused106', '__Unused107', '__Unused108', '__Unused109', '__Unused110', '__Unused111', '__Unused112', '__Unused113', '__Unused114', '__Unused115', '__Unused116', '__Unused117', '__Unused118', '__Unused119', '__Unused120', '__Unused121', '__Unused122', '__Unused123', '__Unused124', '__Unused125', '__Unused126', '__Unused127', 'Twitter'] }, /** - * Lookup292: pallet_identity::types::Judgement + * Lookup187: pallet_identity::types::Judgement **/ PalletIdentityJudgement: { _enum: { @@ -2383,7 +1820,7 @@ } }, /** - * Lookup295: pallet_identity::types::Registration + * Lookup190: pallet_identity::types::Registration **/ PalletIdentityRegistration: { judgements: 'Vec<(u32,PalletIdentityJudgement)>', @@ -2391,7 +1828,7 @@ info: 'PalletIdentityIdentityInfo' }, /** - * Lookup303: pallet_preimage::pallet::Call + * Lookup198: pallet_preimage::pallet::Call **/ PalletPreimageCall: { _enum: { @@ -2419,7 +1856,427 @@ } }, /** - * Lookup304: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup199: pallet_democracy::pallet::Call + **/ + PalletDemocracyCall: { + _enum: { + propose: { + proposal: 'FrameSupportPreimagesBounded', + value: 'Compact', + }, + second: { + proposal: 'Compact', + }, + vote: { + refIndex: 'Compact', + vote: 'PalletDemocracyVoteAccountVote', + }, + emergency_cancel: { + refIndex: 'u32', + }, + external_propose: { + proposal: 'FrameSupportPreimagesBounded', + }, + external_propose_majority: { + proposal: 'FrameSupportPreimagesBounded', + }, + external_propose_default: { + proposal: 'FrameSupportPreimagesBounded', + }, + fast_track: { + proposalHash: 'H256', + votingPeriod: 'u32', + delay: 'u32', + }, + veto_external: { + proposalHash: 'H256', + }, + cancel_referendum: { + refIndex: 'Compact', + }, + delegate: { + to: 'MultiAddress', + conviction: 'PalletDemocracyConviction', + balance: 'u128', + }, + undelegate: 'Null', + clear_public_proposals: 'Null', + unlock: { + target: 'MultiAddress', + }, + remove_vote: { + index: 'u32', + }, + remove_other_vote: { + target: 'MultiAddress', + index: 'u32', + }, + blacklist: { + proposalHash: 'H256', + maybeRefIndex: 'Option', + }, + cancel_proposal: { + propIndex: 'Compact', + }, + set_metadata: { + owner: 'PalletDemocracyMetadataOwner', + maybeHash: 'Option' + } + } + }, + /** + * Lookup200: pallet_democracy::conviction::Conviction + **/ + PalletDemocracyConviction: { + _enum: ['None', 'Locked1x', 'Locked2x', 'Locked3x', 'Locked4x', 'Locked5x', 'Locked6x'] + }, + /** + * Lookup203: pallet_collective::pallet::Call + **/ + PalletCollectiveCall: { + _enum: { + set_members: { + newMembers: 'Vec', + prime: 'Option', + oldCount: 'u32', + }, + execute: { + proposal: 'Call', + lengthBound: 'Compact', + }, + propose: { + threshold: 'Compact', + proposal: 'Call', + lengthBound: 'Compact', + }, + vote: { + proposal: 'H256', + index: 'Compact', + approve: 'bool', + }, + __Unused4: 'Null', + disapprove_proposal: { + proposalHash: 'H256', + }, + close: { + proposalHash: 'H256', + index: 'Compact', + proposalWeightBound: 'SpWeightsWeightV2Weight', + lengthBound: 'Compact' + } + } + }, + /** + * Lookup205: pallet_membership::pallet::Call + **/ + PalletMembershipCall: { + _enum: { + add_member: { + who: 'MultiAddress', + }, + remove_member: { + who: 'MultiAddress', + }, + swap_member: { + remove: 'MultiAddress', + add: 'MultiAddress', + }, + reset_members: { + members: 'Vec', + }, + change_key: { + _alias: { + new_: 'new', + }, + new_: 'MultiAddress', + }, + set_prime: { + who: 'MultiAddress', + }, + clear_prime: 'Null' + } + }, + /** + * Lookup207: pallet_ranked_collective::pallet::Call + **/ + PalletRankedCollectiveCall: { + _enum: { + add_member: { + who: 'MultiAddress', + }, + promote_member: { + who: 'MultiAddress', + }, + demote_member: { + who: 'MultiAddress', + }, + remove_member: { + who: 'MultiAddress', + minRank: 'u16', + }, + vote: { + poll: 'u32', + aye: 'bool', + }, + cleanup_poll: { + pollIndex: 'u32', + max: 'u32' + } + } + }, + /** + * Lookup208: pallet_referenda::pallet::Call + **/ + PalletReferendaCall: { + _enum: { + submit: { + proposalOrigin: 'QuartzRuntimeOriginCaller', + proposal: 'FrameSupportPreimagesBounded', + enactmentMoment: 'FrameSupportScheduleDispatchTime', + }, + place_decision_deposit: { + index: 'u32', + }, + refund_decision_deposit: { + index: 'u32', + }, + cancel: { + index: 'u32', + }, + kill: { + index: 'u32', + }, + nudge_referendum: { + index: 'u32', + }, + one_fewer_deciding: { + track: 'u16', + }, + refund_submission_deposit: { + index: 'u32', + }, + set_metadata: { + index: 'u32', + maybeHash: 'Option' + } + } + }, + /** + * Lookup209: quartz_runtime::OriginCaller + **/ + QuartzRuntimeOriginCaller: { + _enum: { + system: 'FrameSupportDispatchRawOrigin', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + Void: 'SpCoreVoid', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + Council: 'PalletCollectiveRawOrigin', + TechnicalCommittee: 'PalletCollectiveRawOrigin', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + PolkadotXcm: 'PalletXcmOrigin', + CumulusXcm: 'CumulusPalletXcmOrigin', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + __Unused98: 'Null', + Origins: 'PalletGovOriginsOrigin', + __Unused100: 'Null', + Ethereum: 'PalletEthereumRawOrigin' + } + }, + /** + * Lookup210: frame_support::dispatch::RawOrigin + **/ + FrameSupportDispatchRawOrigin: { + _enum: { + Root: 'Null', + Signed: 'AccountId32', + None: 'Null' + } + }, + /** + * Lookup211: pallet_collective::RawOrigin + **/ + PalletCollectiveRawOrigin: { + _enum: { + Members: '(u32,u32)', + Member: 'AccountId32', + _Phantom: 'Null' + } + }, + /** + * Lookup213: pallet_gov_origins::pallet::Origin + **/ + PalletGovOriginsOrigin: { + _enum: ['FellowshipProposition'] + }, + /** + * Lookup214: pallet_xcm::pallet::Origin + **/ + PalletXcmOrigin: { + _enum: { + Xcm: 'XcmV3MultiLocation', + Response: 'XcmV3MultiLocation' + } + }, + /** + * Lookup215: cumulus_pallet_xcm::pallet::Origin + **/ + CumulusPalletXcmOrigin: { + _enum: { + Relay: 'Null', + SiblingParachain: 'u32' + } + }, + /** + * Lookup216: pallet_ethereum::RawOrigin + **/ + PalletEthereumRawOrigin: { + _enum: { + EthereumTransaction: 'H160' + } + }, + /** + * Lookup218: sp_core::Void + **/ + SpCoreVoid: 'Null', + /** + * Lookup219: frame_support::traits::schedule::DispatchTime + **/ + FrameSupportScheduleDispatchTime: { + _enum: { + At: 'u32', + After: 'u32' + } + }, + /** + * Lookup220: pallet_scheduler::pallet::Call + **/ + PalletSchedulerCall: { + _enum: { + schedule: { + when: 'u32', + maybePeriodic: 'Option<(u32,u32)>', + priority: 'u8', + call: 'Call', + }, + cancel: { + when: 'u32', + index: 'u32', + }, + schedule_named: { + id: '[u8;32]', + when: 'u32', + maybePeriodic: 'Option<(u32,u32)>', + priority: 'u8', + call: 'Call', + }, + cancel_named: { + id: '[u8;32]', + }, + schedule_after: { + after: 'u32', + maybePeriodic: 'Option<(u32,u32)>', + priority: 'u8', + call: 'Call', + }, + schedule_named_after: { + id: '[u8;32]', + after: 'u32', + maybePeriodic: 'Option<(u32,u32)>', + priority: 'u8', + call: 'Call' + } + } + }, + /** + * Lookup223: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2468,7 +2325,7 @@ } }, /** - * Lookup305: pallet_xcm::pallet::Call + * Lookup224: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2525,7 +2382,7 @@ } }, /** - * Lookup306: xcm::VersionedXcm + * Lookup225: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2536,11 +2393,11 @@ } }, /** - * Lookup307: xcm::v2::Xcm + * Lookup226: xcm::v2::Xcm **/ XcmV2Xcm: 'Vec', /** - * Lookup309: xcm::v2::Instruction + * Lookup228: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2638,7 +2495,7 @@ } }, /** - * Lookup310: xcm::v2::Response + * Lookup229: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2649,7 +2506,7 @@ } }, /** - * Lookup313: xcm::v2::traits::Error + * Lookup232: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2682,8 +2539,20 @@ } }, /** - * Lookup314: xcm::v2::multiasset::MultiAssetFilter + * Lookup233: xcm::v2::OriginKind **/ + XcmV2OriginKind: { + _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm'] + }, + /** + * Lookup234: xcm::double_encoded::DoubleEncoded + **/ + XcmDoubleEncoded: { + encoded: 'Bytes' + }, + /** + * Lookup235: xcm::v2::multiasset::MultiAssetFilter + **/ XcmV2MultiassetMultiAssetFilter: { _enum: { Definite: 'XcmV2MultiassetMultiAssets', @@ -2691,7 +2560,7 @@ } }, /** - * Lookup315: xcm::v2::multiasset::WildMultiAsset + * Lookup236: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2703,13 +2572,13 @@ } }, /** - * Lookup316: xcm::v2::multiasset::WildFungibility + * Lookup237: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ['Fungible', 'NonFungible'] }, /** - * Lookup317: xcm::v2::WeightLimit + * Lookup238: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2718,11 +2587,279 @@ } }, /** - * Lookup326: cumulus_pallet_xcm::pallet::Call + * Lookup239: xcm::v3::Xcm + **/ + XcmV3Xcm: 'Vec', + /** + * Lookup241: xcm::v3::Instruction + **/ + XcmV3Instruction: { + _enum: { + WithdrawAsset: 'XcmV3MultiassetMultiAssets', + ReserveAssetDeposited: 'XcmV3MultiassetMultiAssets', + ReceiveTeleportedAsset: 'XcmV3MultiassetMultiAssets', + QueryResponse: { + queryId: 'Compact', + response: 'XcmV3Response', + maxWeight: 'SpWeightsWeightV2Weight', + querier: 'Option', + }, + TransferAsset: { + assets: 'XcmV3MultiassetMultiAssets', + beneficiary: 'XcmV3MultiLocation', + }, + TransferReserveAsset: { + assets: 'XcmV3MultiassetMultiAssets', + dest: 'XcmV3MultiLocation', + xcm: 'XcmV3Xcm', + }, + Transact: { + originKind: 'XcmV2OriginKind', + requireWeightAtMost: 'SpWeightsWeightV2Weight', + call: 'XcmDoubleEncoded', + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact', + }, + HrmpChannelAccepted: { + recipient: 'Compact', + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact', + }, + ClearOrigin: 'Null', + DescendOrigin: 'XcmV3Junctions', + ReportError: 'XcmV3QueryResponseInfo', + DepositAsset: { + assets: 'XcmV3MultiassetMultiAssetFilter', + beneficiary: 'XcmV3MultiLocation', + }, + DepositReserveAsset: { + assets: 'XcmV3MultiassetMultiAssetFilter', + dest: 'XcmV3MultiLocation', + xcm: 'XcmV3Xcm', + }, + ExchangeAsset: { + give: 'XcmV3MultiassetMultiAssetFilter', + want: 'XcmV3MultiassetMultiAssets', + maximal: 'bool', + }, + InitiateReserveWithdraw: { + assets: 'XcmV3MultiassetMultiAssetFilter', + reserve: 'XcmV3MultiLocation', + xcm: 'XcmV3Xcm', + }, + InitiateTeleport: { + assets: 'XcmV3MultiassetMultiAssetFilter', + dest: 'XcmV3MultiLocation', + xcm: 'XcmV3Xcm', + }, + ReportHolding: { + responseInfo: 'XcmV3QueryResponseInfo', + assets: 'XcmV3MultiassetMultiAssetFilter', + }, + BuyExecution: { + fees: 'XcmV3MultiAsset', + weightLimit: 'XcmV3WeightLimit', + }, + RefundSurplus: 'Null', + SetErrorHandler: 'XcmV3Xcm', + SetAppendix: 'XcmV3Xcm', + ClearError: 'Null', + ClaimAsset: { + assets: 'XcmV3MultiassetMultiAssets', + ticket: 'XcmV3MultiLocation', + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'SpWeightsWeightV2Weight', + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'XcmV3MultiassetMultiAssets', + ExpectAsset: 'XcmV3MultiassetMultiAssets', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32,XcmV3TraitsError)>', + ExpectTransactStatus: 'XcmV3MaybeErrorCode', + QueryPallet: { + moduleName: 'Bytes', + responseInfo: 'XcmV3QueryResponseInfo', + }, + ExpectPallet: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + crateMajor: 'Compact', + minCrateMinor: 'Compact', + }, + ReportTransactStatus: 'XcmV3QueryResponseInfo', + ClearTransactStatus: 'Null', + UniversalOrigin: 'XcmV3Junction', + ExportMessage: { + network: 'XcmV3JunctionNetworkId', + destination: 'XcmV3Junctions', + xcm: 'XcmV3Xcm', + }, + LockAsset: { + asset: 'XcmV3MultiAsset', + unlocker: 'XcmV3MultiLocation', + }, + UnlockAsset: { + asset: 'XcmV3MultiAsset', + target: 'XcmV3MultiLocation', + }, + NoteUnlockable: { + asset: 'XcmV3MultiAsset', + owner: 'XcmV3MultiLocation', + }, + RequestUnlock: { + asset: 'XcmV3MultiAsset', + locker: 'XcmV3MultiLocation', + }, + SetFeesMode: { + jitWithdraw: 'bool', + }, + SetTopic: '[u8;32]', + ClearTopic: 'Null', + AliasOrigin: 'XcmV3MultiLocation', + UnpaidExecution: { + weightLimit: 'XcmV3WeightLimit', + checkOrigin: 'Option' + } + } + }, + /** + * Lookup242: xcm::v3::Response + **/ + XcmV3Response: { + _enum: { + Null: 'Null', + Assets: 'XcmV3MultiassetMultiAssets', + ExecutionResult: 'Option<(u32,XcmV3TraitsError)>', + Version: 'u32', + PalletsInfo: 'Vec', + DispatchResult: 'XcmV3MaybeErrorCode' + } + }, + /** + * Lookup245: xcm::v3::traits::Error + **/ + XcmV3TraitsError: { + _enum: { + Overflow: 'Null', + Unimplemented: 'Null', + UntrustedReserveLocation: 'Null', + UntrustedTeleportLocation: 'Null', + LocationFull: 'Null', + LocationNotInvertible: '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', + ExpectationFalse: 'Null', + PalletNotFound: 'Null', + NameMismatch: 'Null', + VersionIncompatible: 'Null', + HoldingWouldOverflow: 'Null', + ExportError: 'Null', + ReanchorFailed: 'Null', + NoDeal: 'Null', + FeesNotMet: 'Null', + LockError: 'Null', + NoPermission: 'Null', + Unanchored: 'Null', + NotDepositable: 'Null', + UnhandledXcmVersion: 'Null', + WeightLimitReached: 'SpWeightsWeightV2Weight', + Barrier: 'Null', + WeightNotComputable: 'Null', + ExceedsStackLimit: 'Null' + } + }, + /** + * Lookup247: xcm::v3::PalletInfo + **/ + XcmV3PalletInfo: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + major: 'Compact', + minor: 'Compact', + patch: 'Compact' + }, + /** + * Lookup250: xcm::v3::MaybeErrorCode + **/ + XcmV3MaybeErrorCode: { + _enum: { + Success: 'Null', + Error: 'Bytes', + TruncatedError: 'Bytes' + } + }, + /** + * Lookup253: xcm::v3::QueryResponseInfo + **/ + XcmV3QueryResponseInfo: { + destination: 'XcmV3MultiLocation', + queryId: 'Compact', + maxWeight: 'SpWeightsWeightV2Weight' + }, + /** + * Lookup254: xcm::v3::multiasset::MultiAssetFilter + **/ + XcmV3MultiassetMultiAssetFilter: { + _enum: { + Definite: 'XcmV3MultiassetMultiAssets', + Wild: 'XcmV3MultiassetWildMultiAsset' + } + }, + /** + * Lookup255: xcm::v3::multiasset::WildMultiAsset **/ + XcmV3MultiassetWildMultiAsset: { + _enum: { + All: 'Null', + AllOf: { + id: 'XcmV3MultiassetAssetId', + fun: 'XcmV3MultiassetWildFungibility', + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'XcmV3MultiassetAssetId', + fun: 'XcmV3MultiassetWildFungibility', + count: 'Compact' + } + } + }, + /** + * Lookup256: xcm::v3::multiasset::WildFungibility + **/ + XcmV3MultiassetWildFungibility: { + _enum: ['Fungible', 'NonFungible'] + }, + /** + * Lookup265: cumulus_pallet_xcm::pallet::Call + **/ CumulusPalletXcmCall: 'Null', /** - * Lookup327: cumulus_pallet_dmp_queue::pallet::Call + * Lookup266: cumulus_pallet_dmp_queue::pallet::Call **/ CumulusPalletDmpQueueCall: { _enum: { @@ -2733,7 +2870,7 @@ } }, /** - * Lookup328: pallet_inflation::pallet::Call + * Lookup267: pallet_inflation::pallet::Call **/ PalletInflationCall: { _enum: { @@ -2743,7 +2880,7 @@ } }, /** - * Lookup329: pallet_unique::pallet::Call + * Lookup268: pallet_unique::pallet::Call **/ PalletUniqueCall: { _enum: { @@ -2894,7 +3031,7 @@ } }, /** - * Lookup334: up_data_structs::CollectionMode + * Lookup273: up_data_structs::CollectionMode **/ UpDataStructsCollectionMode: { _enum: { @@ -2904,7 +3041,7 @@ } }, /** - * Lookup335: up_data_structs::CreateCollectionData> + * Lookup274: up_data_structs::CreateCollectionData> **/ UpDataStructsCreateCollectionData: { mode: 'UpDataStructsCollectionMode', @@ -2921,13 +3058,22 @@ flags: '[u8;1]' }, /** - * Lookup337: up_data_structs::AccessMode + * Lookup275: pallet_evm::account::BasicCrossAccountIdRepr + **/ + PalletEvmAccountBasicCrossAccountIdRepr: { + _enum: { + Substrate: 'AccountId32', + Ethereum: 'H160' + } + }, + /** + * Lookup277: up_data_structs::AccessMode **/ UpDataStructsAccessMode: { _enum: ['Normal', 'AllowList'] }, /** - * Lookup339: up_data_structs::CollectionLimits + * Lookup279: up_data_structs::CollectionLimits **/ UpDataStructsCollectionLimits: { accountTokenOwnershipLimit: 'Option', @@ -2941,7 +3087,7 @@ transfersEnabled: 'Option' }, /** - * Lookup341: up_data_structs::SponsoringRateLimit + * Lookup281: up_data_structs::SponsoringRateLimit **/ UpDataStructsSponsoringRateLimit: { _enum: { @@ -2950,7 +3096,7 @@ } }, /** - * Lookup344: up_data_structs::CollectionPermissions + * Lookup284: up_data_structs::CollectionPermissions **/ UpDataStructsCollectionPermissions: { access: 'Option', @@ -2958,7 +3104,7 @@ nesting: 'Option' }, /** - * Lookup346: up_data_structs::NestingPermissions + * Lookup286: up_data_structs::NestingPermissions **/ UpDataStructsNestingPermissions: { tokenOwner: 'bool', @@ -2966,18 +3112,18 @@ restricted: 'Option' }, /** - * Lookup348: up_data_structs::OwnerRestrictedSet + * Lookup288: up_data_structs::OwnerRestrictedSet **/ UpDataStructsOwnerRestrictedSet: 'BTreeSet', /** - * Lookup353: up_data_structs::PropertyKeyPermission + * Lookup294: up_data_structs::PropertyKeyPermission **/ UpDataStructsPropertyKeyPermission: { key: 'Bytes', permission: 'UpDataStructsPropertyPermission' }, /** - * Lookup354: up_data_structs::PropertyPermission + * Lookup296: up_data_structs::PropertyPermission **/ UpDataStructsPropertyPermission: { mutable: 'bool', @@ -2985,14 +3131,14 @@ tokenOwner: 'bool' }, /** - * Lookup357: up_data_structs::Property + * Lookup299: up_data_structs::Property **/ UpDataStructsProperty: { key: 'Bytes', value: 'Bytes' }, /** - * Lookup362: up_data_structs::CreateItemData + * Lookup304: up_data_structs::CreateItemData **/ UpDataStructsCreateItemData: { _enum: { @@ -3002,26 +3148,26 @@ } }, /** - * Lookup363: up_data_structs::CreateNftData + * Lookup305: up_data_structs::CreateNftData **/ UpDataStructsCreateNftData: { properties: 'Vec' }, /** - * Lookup364: up_data_structs::CreateFungibleData + * Lookup306: up_data_structs::CreateFungibleData **/ UpDataStructsCreateFungibleData: { value: 'u128' }, /** - * Lookup365: up_data_structs::CreateReFungibleData + * Lookup307: up_data_structs::CreateReFungibleData **/ UpDataStructsCreateReFungibleData: { pieces: 'u128', properties: 'Vec' }, /** - * Lookup368: up_data_structs::CreateItemExData> + * Lookup311: up_data_structs::CreateItemExData> **/ UpDataStructsCreateItemExData: { _enum: { @@ -3032,14 +3178,14 @@ } }, /** - * Lookup370: up_data_structs::CreateNftExData> + * Lookup313: up_data_structs::CreateNftExData> **/ UpDataStructsCreateNftExData: { properties: 'Vec', owner: 'PalletEvmAccountBasicCrossAccountIdRepr' }, /** - * Lookup377: up_data_structs::CreateRefungibleExSingleOwner> + * Lookup320: up_data_structs::CreateRefungibleExSingleOwner> **/ UpDataStructsCreateRefungibleExSingleOwner: { user: 'PalletEvmAccountBasicCrossAccountIdRepr', @@ -3047,14 +3193,14 @@ properties: 'Vec' }, /** - * Lookup379: up_data_structs::CreateRefungibleExMultipleOwners> + * Lookup322: up_data_structs::CreateRefungibleExMultipleOwners> **/ UpDataStructsCreateRefungibleExMultipleOwners: { users: 'BTreeMap', properties: 'Vec' }, /** - * Lookup380: pallet_configuration::pallet::Call + * Lookup323: pallet_configuration::pallet::Call **/ PalletConfigurationCall: { _enum: { @@ -3080,7 +3226,7 @@ } }, /** - * Lookup382: pallet_configuration::AppPromotionConfiguration + * Lookup325: pallet_configuration::AppPromotionConfiguration **/ PalletConfigurationAppPromotionConfiguration: { recalculationInterval: 'Option', @@ -3089,11 +3235,11 @@ maxStakersPerCalculation: 'Option' }, /** - * Lookup386: pallet_structure::pallet::Call + * Lookup330: pallet_structure::pallet::Call **/ PalletStructureCall: 'Null', /** - * Lookup387: pallet_app_promotion::pallet::Call + * Lookup331: pallet_app_promotion::pallet::Call **/ PalletAppPromotionCall: { _enum: { @@ -3128,7 +3274,7 @@ } }, /** - * Lookup388: pallet_foreign_assets::module::Call + * Lookup333: pallet_foreign_assets::module::Call **/ PalletForeignAssetsModuleCall: { _enum: { @@ -3145,7 +3291,16 @@ } }, /** - * Lookup389: pallet_evm::pallet::Call + * Lookup334: pallet_foreign_assets::module::AssetMetadata + **/ + PalletForeignAssetsModuleAssetMetadata: { + name: 'Bytes', + symbol: 'Bytes', + decimals: 'u8', + minimalBalance: 'u128' + }, + /** + * Lookup337: pallet_evm::pallet::Call **/ PalletEvmCall: { _enum: { @@ -3188,7 +3343,7 @@ } }, /** - * Lookup395: pallet_ethereum::pallet::Call + * Lookup344: pallet_ethereum::pallet::Call **/ PalletEthereumCall: { _enum: { @@ -3198,7 +3353,7 @@ } }, /** - * Lookup396: ethereum::transaction::TransactionV2 + * Lookup345: ethereum::transaction::TransactionV2 **/ EthereumTransactionTransactionV2: { _enum: { @@ -3208,7 +3363,7 @@ } }, /** - * Lookup397: ethereum::transaction::LegacyTransaction + * Lookup346: ethereum::transaction::LegacyTransaction **/ EthereumTransactionLegacyTransaction: { nonce: 'U256', @@ -3220,7 +3375,7 @@ signature: 'EthereumTransactionTransactionSignature' }, /** - * Lookup398: ethereum::transaction::TransactionAction + * Lookup347: ethereum::transaction::TransactionAction **/ EthereumTransactionTransactionAction: { _enum: { @@ -3229,7 +3384,7 @@ } }, /** - * Lookup399: ethereum::transaction::TransactionSignature + * Lookup348: ethereum::transaction::TransactionSignature **/ EthereumTransactionTransactionSignature: { v: 'u64', @@ -3237,7 +3392,7 @@ s: 'H256' }, /** - * Lookup401: ethereum::transaction::EIP2930Transaction + * Lookup350: ethereum::transaction::EIP2930Transaction **/ EthereumTransactionEip2930Transaction: { chainId: 'u64', @@ -3253,14 +3408,14 @@ s: 'H256' }, /** - * Lookup403: ethereum::transaction::AccessListItem + * Lookup352: ethereum::transaction::AccessListItem **/ EthereumTransactionAccessListItem: { address: 'H160', storageKeys: 'Vec' }, /** - * Lookup404: ethereum::transaction::EIP1559Transaction + * Lookup353: ethereum::transaction::EIP1559Transaction **/ EthereumTransactionEip1559Transaction: { chainId: 'u64', @@ -3277,7 +3432,7 @@ s: 'H256' }, /** - * Lookup405: pallet_evm_contract_helpers::pallet::Call + * Lookup354: pallet_evm_contract_helpers::pallet::Call **/ PalletEvmContractHelpersCall: { _enum: { @@ -3287,7 +3442,7 @@ } }, /** - * Lookup407: pallet_evm_migration::pallet::Call + * Lookup356: pallet_evm_migration::pallet::Call **/ PalletEvmMigrationCall: { _enum: { @@ -3312,7 +3467,15 @@ } }, /** - * Lookup411: pallet_maintenance::pallet::Call + * Lookup360: ethereum::log::Log + **/ + EthereumLog: { + address: 'H160', + topics: 'Vec', + data: 'Bytes' + }, + /** + * Lookup361: pallet_maintenance::pallet::Call **/ PalletMaintenanceCall: { _enum: { @@ -3328,7 +3491,7 @@ } }, /** - * Lookup412: pallet_test_utils::pallet::Call + * Lookup362: pallet_test_utils::pallet::Call **/ PalletTestUtilsCall: { _enum: { @@ -3347,32 +3510,617 @@ } }, /** - * Lookup414: pallet_sudo::pallet::Error + * Lookup365: pallet_scheduler::pallet::Event + **/ + PalletSchedulerEvent: { + _enum: { + Scheduled: { + when: 'u32', + index: 'u32', + }, + Canceled: { + when: 'u32', + index: 'u32', + }, + Dispatched: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + result: 'Result', + }, + CallUnavailable: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + }, + PeriodicFailed: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + }, + PermanentlyOverweight: { + task: '(u32,u32)', + id: 'Option<[u8;32]>' + } + } + }, + /** + * Lookup366: cumulus_pallet_xcmp_queue::pallet::Event + **/ + CumulusPalletXcmpQueueEvent: { + _enum: { + Success: { + messageHash: 'Option<[u8;32]>', + weight: 'SpWeightsWeightV2Weight', + }, + Fail: { + messageHash: 'Option<[u8;32]>', + error: 'XcmV3TraitsError', + weight: 'SpWeightsWeightV2Weight', + }, + BadVersion: { + messageHash: 'Option<[u8;32]>', + }, + BadFormat: { + messageHash: 'Option<[u8;32]>', + }, + XcmpMessageSent: { + messageHash: 'Option<[u8;32]>', + }, + OverweightEnqueued: { + sender: 'u32', + sentAt: 'u32', + index: 'u64', + required: 'SpWeightsWeightV2Weight', + }, + OverweightServiced: { + index: 'u64', + used: 'SpWeightsWeightV2Weight' + } + } + }, + /** + * Lookup367: pallet_xcm::pallet::Event + **/ + PalletXcmEvent: { + _enum: { + Attempted: 'XcmV3TraitsOutcome', + Sent: '(XcmV3MultiLocation,XcmV3MultiLocation,XcmV3Xcm)', + UnexpectedResponse: '(XcmV3MultiLocation,u64)', + ResponseReady: '(u64,XcmV3Response)', + Notified: '(u64,u8,u8)', + NotifyOverweight: '(u64,u8,u8,SpWeightsWeightV2Weight,SpWeightsWeightV2Weight)', + NotifyDispatchError: '(u64,u8,u8)', + NotifyDecodeFailed: '(u64,u8,u8)', + InvalidResponder: '(XcmV3MultiLocation,u64,Option)', + InvalidResponderVersion: '(XcmV3MultiLocation,u64)', + ResponseTaken: 'u64', + AssetsTrapped: '(H256,XcmV3MultiLocation,XcmVersionedMultiAssets)', + VersionChangeNotified: '(XcmV3MultiLocation,u32,XcmV3MultiassetMultiAssets)', + SupportedVersionChanged: '(XcmV3MultiLocation,u32)', + NotifyTargetSendFail: '(XcmV3MultiLocation,u64,XcmV3TraitsError)', + NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)', + InvalidQuerierVersion: '(XcmV3MultiLocation,u64)', + InvalidQuerier: '(XcmV3MultiLocation,u64,XcmV3MultiLocation,Option)', + VersionNotifyStarted: '(XcmV3MultiLocation,XcmV3MultiassetMultiAssets)', + VersionNotifyRequested: '(XcmV3MultiLocation,XcmV3MultiassetMultiAssets)', + VersionNotifyUnrequested: '(XcmV3MultiLocation,XcmV3MultiassetMultiAssets)', + FeesPaid: '(XcmV3MultiLocation,XcmV3MultiassetMultiAssets)', + AssetsClaimed: '(H256,XcmV3MultiLocation,XcmVersionedMultiAssets)' + } + }, + /** + * Lookup368: xcm::v3::traits::Outcome + **/ + XcmV3TraitsOutcome: { + _enum: { + Complete: 'SpWeightsWeightV2Weight', + Incomplete: '(SpWeightsWeightV2Weight,XcmV3TraitsError)', + Error: 'XcmV3TraitsError' + } + }, + /** + * Lookup369: cumulus_pallet_xcm::pallet::Event + **/ + CumulusPalletXcmEvent: { + _enum: { + InvalidFormat: '[u8;32]', + UnsupportedVersion: '[u8;32]', + ExecutedDownward: '([u8;32],XcmV3TraitsOutcome)' + } + }, + /** + * Lookup370: cumulus_pallet_dmp_queue::pallet::Event **/ + CumulusPalletDmpQueueEvent: { + _enum: { + InvalidFormat: { + messageId: '[u8;32]', + }, + UnsupportedVersion: { + messageId: '[u8;32]', + }, + ExecutedDownward: { + messageId: '[u8;32]', + outcome: 'XcmV3TraitsOutcome', + }, + WeightExhausted: { + messageId: '[u8;32]', + remainingWeight: 'SpWeightsWeightV2Weight', + requiredWeight: 'SpWeightsWeightV2Weight', + }, + OverweightEnqueued: { + messageId: '[u8;32]', + overweightIndex: 'u64', + requiredWeight: 'SpWeightsWeightV2Weight', + }, + OverweightServiced: { + overweightIndex: 'u64', + weightUsed: 'SpWeightsWeightV2Weight', + }, + MaxMessagesExhausted: { + messageId: '[u8;32]' + } + } + }, + /** + * Lookup371: pallet_configuration::pallet::Event + **/ + PalletConfigurationEvent: { + _enum: { + NewDesiredCollators: { + desiredCollators: 'Option', + }, + NewCollatorLicenseBond: { + bondCost: 'Option', + }, + NewCollatorKickThreshold: { + lengthInBlocks: 'Option' + } + } + }, + /** + * Lookup372: pallet_common::pallet::Event + **/ + PalletCommonEvent: { + _enum: { + CollectionCreated: '(u32,u8,AccountId32)', + CollectionDestroyed: 'u32', + ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)', + ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)', + Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)', + Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)', + ApprovedForAll: '(u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,bool)', + CollectionPropertySet: '(u32,Bytes)', + CollectionPropertyDeleted: '(u32,Bytes)', + TokenPropertySet: '(u32,u32,Bytes)', + TokenPropertyDeleted: '(u32,u32,Bytes)', + PropertyPermissionSet: '(u32,Bytes)', + AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)', + AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)', + CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)', + CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)', + CollectionLimitSet: 'u32', + CollectionOwnerChanged: '(u32,AccountId32)', + CollectionPermissionSet: 'u32', + CollectionSponsorSet: '(u32,AccountId32)', + SponsorshipConfirmed: '(u32,AccountId32)', + CollectionSponsorRemoved: 'u32' + } + }, + /** + * Lookup373: pallet_structure::pallet::Event + **/ + PalletStructureEvent: { + _enum: { + Executed: 'Result' + } + }, + /** + * Lookup374: pallet_app_promotion::pallet::Event + **/ + PalletAppPromotionEvent: { + _enum: { + StakingRecalculation: '(AccountId32,u128,u128)', + Stake: '(AccountId32,u128)', + Unstake: '(AccountId32,u128)', + SetAdmin: 'AccountId32' + } + }, + /** + * Lookup375: pallet_foreign_assets::module::Event + **/ + PalletForeignAssetsModuleEvent: { + _enum: { + ForeignAssetRegistered: { + assetId: 'u32', + assetAddress: 'XcmV3MultiLocation', + metadata: 'PalletForeignAssetsModuleAssetMetadata', + }, + ForeignAssetUpdated: { + assetId: 'u32', + assetAddress: 'XcmV3MultiLocation', + metadata: 'PalletForeignAssetsModuleAssetMetadata', + }, + AssetRegistered: { + assetId: 'PalletForeignAssetsAssetIds', + metadata: 'PalletForeignAssetsModuleAssetMetadata', + }, + AssetUpdated: { + assetId: 'PalletForeignAssetsAssetIds', + metadata: 'PalletForeignAssetsModuleAssetMetadata' + } + } + }, + /** + * Lookup376: pallet_evm::pallet::Event + **/ + PalletEvmEvent: { + _enum: { + Log: { + log: 'EthereumLog', + }, + Created: { + address: 'H160', + }, + CreatedFailed: { + address: 'H160', + }, + Executed: { + address: 'H160', + }, + ExecutedFailed: { + address: 'H160' + } + } + }, + /** + * Lookup377: pallet_ethereum::pallet::Event + **/ + PalletEthereumEvent: { + _enum: { + Executed: { + from: 'H160', + to: 'H160', + transactionHash: 'H256', + exitReason: 'EvmCoreErrorExitReason', + extraData: 'Bytes' + } + } + }, + /** + * Lookup378: evm_core::error::ExitReason + **/ + EvmCoreErrorExitReason: { + _enum: { + Succeed: 'EvmCoreErrorExitSucceed', + Error: 'EvmCoreErrorExitError', + Revert: 'EvmCoreErrorExitRevert', + Fatal: 'EvmCoreErrorExitFatal' + } + }, + /** + * Lookup379: evm_core::error::ExitSucceed + **/ + EvmCoreErrorExitSucceed: { + _enum: ['Stopped', 'Returned', 'Suicided'] + }, + /** + * Lookup380: evm_core::error::ExitError + **/ + EvmCoreErrorExitError: { + _enum: { + StackUnderflow: 'Null', + StackOverflow: 'Null', + InvalidJump: 'Null', + InvalidRange: 'Null', + DesignatedInvalid: 'Null', + CallTooDeep: 'Null', + CreateCollision: 'Null', + CreateContractLimit: 'Null', + OutOfOffset: 'Null', + OutOfGas: 'Null', + OutOfFund: 'Null', + PCUnderflow: 'Null', + CreateEmpty: 'Null', + Other: 'Text', + MaxNonce: 'Null', + InvalidCode: 'u8' + } + }, + /** + * Lookup384: evm_core::error::ExitRevert + **/ + EvmCoreErrorExitRevert: { + _enum: ['Reverted'] + }, + /** + * Lookup385: evm_core::error::ExitFatal + **/ + EvmCoreErrorExitFatal: { + _enum: { + NotSupported: 'Null', + UnhandledInterrupt: 'Null', + CallErrorAsFatal: 'EvmCoreErrorExitError', + Other: 'Text' + } + }, + /** + * Lookup386: pallet_evm_contract_helpers::pallet::Event + **/ + PalletEvmContractHelpersEvent: { + _enum: { + ContractSponsorSet: '(H160,AccountId32)', + ContractSponsorshipConfirmed: '(H160,AccountId32)', + ContractSponsorRemoved: 'H160' + } + }, + /** + * Lookup387: pallet_evm_migration::pallet::Event + **/ + PalletEvmMigrationEvent: { + _enum: ['TestEvent'] + }, + /** + * Lookup388: pallet_maintenance::pallet::Event + **/ + PalletMaintenanceEvent: { + _enum: ['MaintenanceEnabled', 'MaintenanceDisabled'] + }, + /** + * Lookup389: pallet_test_utils::pallet::Event + **/ + PalletTestUtilsEvent: { + _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted'] + }, + /** + * Lookup390: frame_system::Phase + **/ + FrameSystemPhase: { + _enum: { + ApplyExtrinsic: 'u32', + Finalization: 'Null', + Initialization: 'Null' + } + }, + /** + * Lookup392: frame_system::LastRuntimeUpgradeInfo + **/ + FrameSystemLastRuntimeUpgradeInfo: { + specVersion: 'Compact', + specName: 'Text' + }, + /** + * Lookup393: frame_system::limits::BlockWeights + **/ + FrameSystemLimitsBlockWeights: { + baseBlock: 'SpWeightsWeightV2Weight', + maxBlock: 'SpWeightsWeightV2Weight', + perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass' + }, + /** + * Lookup394: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassWeightsPerClass: { + normal: 'FrameSystemLimitsWeightsPerClass', + operational: 'FrameSystemLimitsWeightsPerClass', + mandatory: 'FrameSystemLimitsWeightsPerClass' + }, + /** + * Lookup395: frame_system::limits::WeightsPerClass + **/ + FrameSystemLimitsWeightsPerClass: { + baseExtrinsic: 'SpWeightsWeightV2Weight', + maxExtrinsic: 'Option', + maxTotal: 'Option', + reserved: 'Option' + }, + /** + * Lookup397: frame_system::limits::BlockLength + **/ + FrameSystemLimitsBlockLength: { + max: 'FrameSupportDispatchPerDispatchClassU32' + }, + /** + * Lookup398: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassU32: { + normal: 'u32', + operational: 'u32', + mandatory: 'u32' + }, + /** + * Lookup399: sp_weights::RuntimeDbWeight + **/ + SpWeightsRuntimeDbWeight: { + read: 'u64', + write: 'u64' + }, + /** + * Lookup400: sp_version::RuntimeVersion + **/ + SpVersionRuntimeVersion: { + specName: 'Text', + implName: 'Text', + authoringVersion: 'u32', + specVersion: 'u32', + implVersion: 'u32', + apis: 'Vec<([u8;8],u32)>', + transactionVersion: 'u32', + stateVersion: 'u8' + }, + /** + * Lookup404: frame_system::pallet::Error + **/ + FrameSystemError: { + _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered'] + }, + /** + * Lookup406: polkadot_primitives::v4::UpgradeRestriction + **/ + PolkadotPrimitivesV4UpgradeRestriction: { + _enum: ['Present'] + }, + /** + * Lookup407: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + **/ + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { + dmqMqcHead: 'H256', + relayDispatchQueueSize: 'CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize', + ingressChannels: 'Vec<(u32,PolkadotPrimitivesV4AbridgedHrmpChannel)>', + egressChannels: 'Vec<(u32,PolkadotPrimitivesV4AbridgedHrmpChannel)>' + }, + /** + * Lookup408: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispachQueueSize + **/ + CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize: { + remainingCount: 'u32', + remainingSize: 'u32' + }, + /** + * Lookup411: polkadot_primitives::v4::AbridgedHrmpChannel + **/ + PolkadotPrimitivesV4AbridgedHrmpChannel: { + maxCapacity: 'u32', + maxTotalSize: 'u32', + maxMessageSize: 'u32', + msgCount: 'u32', + totalSize: 'u32', + mqcHead: 'Option' + }, + /** + * Lookup412: polkadot_primitives::v4::AbridgedHostConfiguration + **/ + PolkadotPrimitivesV4AbridgedHostConfiguration: { + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + maxUpwardQueueCount: 'u32', + maxUpwardQueueSize: 'u32', + maxUpwardMessageSize: 'u32', + maxUpwardMessageNumPerCandidate: 'u32', + hrmpMaxMessageNumPerCandidate: 'u32', + validationUpgradeCooldown: 'u32', + validationUpgradeDelay: 'u32' + }, + /** + * Lookup418: polkadot_core_primitives::OutboundHrmpMessage + **/ + PolkadotCorePrimitivesOutboundHrmpMessage: { + recipient: 'u32', + data: 'Bytes' + }, + /** + * Lookup419: cumulus_pallet_parachain_system::CodeUpgradeAuthorization + **/ + CumulusPalletParachainSystemCodeUpgradeAuthorization: { + codeHash: 'H256', + checkVersion: 'bool' + }, + /** + * Lookup420: cumulus_pallet_parachain_system::pallet::Error + **/ + CumulusPalletParachainSystemError: { + _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized'] + }, + /** + * Lookup422: pallet_collator_selection::pallet::Error + **/ + PalletCollatorSelectionError: { + _enum: ['TooManyCandidates', 'Unknown', 'Permission', 'AlreadyHoldingLicense', 'NoLicense', 'AlreadyCandidate', 'NotCandidate', 'TooManyInvulnerables', 'TooFewInvulnerables', 'AlreadyInvulnerable', 'NotInvulnerable', 'NoAssociatedValidatorId', 'ValidatorNotRegistered'] + }, + /** + * Lookup426: sp_core::crypto::KeyTypeId + **/ + SpCoreCryptoKeyTypeId: '[u8;4]', + /** + * Lookup427: pallet_session::pallet::Error + **/ + PalletSessionError: { + _enum: ['InvalidProof', 'NoAssociatedValidatorId', 'DuplicatedKey', 'NoKeys', 'NoAccount'] + }, + /** + * Lookup432: pallet_balances::types::BalanceLock + **/ + PalletBalancesBalanceLock: { + id: '[u8;8]', + amount: 'u128', + reasons: 'PalletBalancesReasons' + }, + /** + * Lookup433: pallet_balances::types::Reasons + **/ + PalletBalancesReasons: { + _enum: ['Fee', 'Misc', 'All'] + }, + /** + * Lookup436: pallet_balances::types::ReserveData + **/ + PalletBalancesReserveData: { + id: '[u8;16]', + amount: 'u128' + }, + /** + * Lookup439: pallet_balances::types::IdAmount + **/ + PalletBalancesIdAmount: { + id: '[u8;16]', + amount: 'u128' + }, + /** + * Lookup442: pallet_balances::pallet::Error + **/ + PalletBalancesError: { + _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'Expendability', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves', 'TooManyHolds', 'TooManyFreezes'] + }, + /** + * Lookup444: pallet_transaction_payment::Releases + **/ + PalletTransactionPaymentReleases: { + _enum: ['V1Ancient', 'V2'] + }, + /** + * Lookup445: pallet_treasury::Proposal + **/ + PalletTreasuryProposal: { + proposer: 'AccountId32', + value: 'u128', + beneficiary: 'AccountId32', + bond: 'u128' + }, + /** + * Lookup448: frame_support::PalletId + **/ + FrameSupportPalletId: '[u8;8]', + /** + * Lookup449: pallet_treasury::pallet::Error + **/ + PalletTreasuryError: { + _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved'] + }, + /** + * Lookup450: pallet_sudo::pallet::Error + **/ PalletSudoError: { _enum: ['RequireSudo'] }, /** - * Lookup416: orml_vesting::module::Error + * Lookup452: orml_vesting::module::Error **/ OrmlVestingModuleError: { _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded'] }, /** - * Lookup417: orml_xtokens::module::Error + * Lookup453: orml_xtokens::module::Error **/ OrmlXtokensModuleError: { _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined'] }, /** - * Lookup420: orml_tokens::BalanceLock + * Lookup456: orml_tokens::BalanceLock **/ OrmlTokensBalanceLock: { id: '[u8;8]', amount: 'u128' }, /** - * Lookup422: orml_tokens::AccountData + * Lookup458: orml_tokens::AccountData **/ OrmlTokensAccountData: { free: 'u128', @@ -3380,20 +4128,20 @@ frozen: 'u128' }, /** - * Lookup424: orml_tokens::ReserveData + * Lookup460: orml_tokens::ReserveData **/ OrmlTokensReserveData: { id: 'Null', amount: 'u128' }, /** - * Lookup426: orml_tokens::module::Error + * Lookup462: orml_tokens::module::Error **/ OrmlTokensModuleError: { _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves'] }, /** - * Lookup431: pallet_identity::types::RegistrarInfo + * Lookup467: pallet_identity::types::RegistrarInfo **/ PalletIdentityRegistrarInfo: { account: 'AccountId32', @@ -3401,13 +4149,13 @@ fields: 'PalletIdentityBitFlags' }, /** - * Lookup433: pallet_identity::pallet::Error + * Lookup469: pallet_identity::pallet::Error **/ PalletIdentityError: { _enum: ['TooManySubAccounts', 'NotFound', 'NotNamed', 'EmptyIndex', 'FeeChanged', 'NoIdentity', 'StickyJudgement', 'JudgementGiven', 'InvalidJudgement', 'InvalidIndex', 'InvalidTarget', 'TooManyFields', 'TooManyRegistrars', 'AlreadyClaimed', 'NotSub', 'NotOwned', 'JudgementForDifferentIdentity', 'JudgementPaymentFailed'] }, /** - * Lookup434: pallet_preimage::RequestStatus + * Lookup470: pallet_preimage::RequestStatus **/ PalletPreimageRequestStatus: { _enum: { @@ -3423,33 +4171,235 @@ } }, /** - * Lookup439: pallet_preimage::pallet::Error + * Lookup475: pallet_preimage::pallet::Error **/ PalletPreimageError: { _enum: ['TooBig', 'AlreadyNoted', 'NotAuthorized', 'NotNoted', 'Requested', 'NotRequested'] }, /** - * Lookup441: cumulus_pallet_xcmp_queue::InboundChannelDetails + * Lookup481: pallet_democracy::types::ReferendumInfo, Balance> + **/ + PalletDemocracyReferendumInfo: { + _enum: { + Ongoing: 'PalletDemocracyReferendumStatus', + Finished: { + approved: 'bool', + end: 'u32' + } + } + }, + /** + * Lookup482: pallet_democracy::types::ReferendumStatus, Balance> + **/ + PalletDemocracyReferendumStatus: { + end: 'u32', + proposal: 'FrameSupportPreimagesBounded', + threshold: 'PalletDemocracyVoteThreshold', + delay: 'u32', + tally: 'PalletDemocracyTally' + }, + /** + * Lookup483: pallet_democracy::types::Tally + **/ + PalletDemocracyTally: { + ayes: 'u128', + nays: 'u128', + turnout: 'u128' + }, + /** + * Lookup484: pallet_democracy::vote::Voting + **/ + PalletDemocracyVoteVoting: { + _enum: { + Direct: { + votes: 'Vec<(u32,PalletDemocracyVoteAccountVote)>', + delegations: 'PalletDemocracyDelegations', + prior: 'PalletDemocracyVotePriorLock', + }, + Delegating: { + balance: 'u128', + target: 'AccountId32', + conviction: 'PalletDemocracyConviction', + delegations: 'PalletDemocracyDelegations', + prior: 'PalletDemocracyVotePriorLock' + } + } + }, + /** + * Lookup488: pallet_democracy::types::Delegations + **/ + PalletDemocracyDelegations: { + votes: 'u128', + capital: 'u128' + }, + /** + * Lookup489: pallet_democracy::vote::PriorLock + **/ + PalletDemocracyVotePriorLock: '(u32,u128)', + /** + * Lookup492: pallet_democracy::pallet::Error + **/ + PalletDemocracyError: { + _enum: ['ValueLow', 'ProposalMissing', 'AlreadyCanceled', 'DuplicateProposal', 'ProposalBlacklisted', 'NotSimpleMajority', 'InvalidHash', 'NoProposal', 'AlreadyVetoed', 'ReferendumInvalid', 'NoneWaiting', 'NotVoter', 'NoPermission', 'AlreadyDelegating', 'InsufficientFunds', 'NotDelegating', 'VotesExist', 'InstantNotAllowed', 'Nonsense', 'WrongUpperBound', 'MaxVotesReached', 'TooMany', 'VotingPeriodLow', 'PreimageNotExist'] + }, + /** + * Lookup494: pallet_collective::Votes + **/ + PalletCollectiveVotes: { + index: 'u32', + threshold: 'u32', + ayes: 'Vec', + nays: 'Vec', + end: 'u32' + }, + /** + * Lookup495: pallet_collective::pallet::Error + **/ + PalletCollectiveError: { + _enum: ['NotMember', 'DuplicateProposal', 'ProposalMissing', 'WrongIndex', 'DuplicateVote', 'AlreadyInitialized', 'TooEarly', 'TooManyProposals', 'WrongProposalWeight', 'WrongProposalLength'] + }, + /** + * Lookup499: pallet_membership::pallet::Error + **/ + PalletMembershipError: { + _enum: ['AlreadyMember', 'NotMember', 'TooManyMembers'] + }, + /** + * Lookup502: pallet_ranked_collective::MemberRecord + **/ + PalletRankedCollectiveMemberRecord: { + rank: 'u16' + }, + /** + * Lookup507: pallet_ranked_collective::pallet::Error + **/ + PalletRankedCollectiveError: { + _enum: ['AlreadyMember', 'NotMember', 'NotPolling', 'Ongoing', 'NoneRemaining', 'Corruption', 'RankTooLow', 'InvalidWitness', 'NoPermission'] + }, + /** + * Lookup508: pallet_referenda::types::ReferendumInfo, Balance, pallet_ranked_collective::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PalletReferendaReferendumInfo: { + _enum: { + Ongoing: 'PalletReferendaReferendumStatus', + Approved: '(u32,Option,Option)', + Rejected: '(u32,Option,Option)', + Cancelled: '(u32,Option,Option)', + TimedOut: '(u32,Option,Option)', + Killed: 'u32' + } + }, + /** + * Lookup509: pallet_referenda::types::ReferendumStatus, Balance, pallet_ranked_collective::Tally, sp_core::crypto::AccountId32, ScheduleAddress> **/ + PalletReferendaReferendumStatus: { + track: 'u16', + origin: 'QuartzRuntimeOriginCaller', + proposal: 'FrameSupportPreimagesBounded', + enactment: 'FrameSupportScheduleDispatchTime', + submitted: 'u32', + submissionDeposit: 'PalletReferendaDeposit', + decisionDeposit: 'Option', + deciding: 'Option', + tally: 'PalletRankedCollectiveTally', + inQueue: 'bool', + alarm: 'Option<(u32,(u32,u32))>' + }, + /** + * Lookup510: pallet_referenda::types::Deposit + **/ + PalletReferendaDeposit: { + who: 'AccountId32', + amount: 'u128' + }, + /** + * Lookup513: pallet_referenda::types::DecidingStatus + **/ + PalletReferendaDecidingStatus: { + since: 'u32', + confirming: 'Option' + }, + /** + * Lookup519: pallet_referenda::types::TrackInfo + **/ + PalletReferendaTrackInfo: { + name: 'Text', + maxDeciding: 'u32', + decisionDeposit: 'u128', + preparePeriod: 'u32', + decisionPeriod: 'u32', + confirmPeriod: 'u32', + minEnactmentPeriod: 'u32', + minApproval: 'PalletReferendaCurve', + minSupport: 'PalletReferendaCurve' + }, + /** + * Lookup520: pallet_referenda::types::Curve + **/ + PalletReferendaCurve: { + _enum: { + LinearDecreasing: { + length: 'Perbill', + floor: 'Perbill', + ceil: 'Perbill', + }, + SteppedDecreasing: { + begin: 'Perbill', + end: 'Perbill', + step: 'Perbill', + period: 'Perbill', + }, + Reciprocal: { + factor: 'i64', + xOffset: 'i64', + yOffset: 'i64' + } + } + }, + /** + * Lookup523: pallet_referenda::pallet::Error + **/ + PalletReferendaError: { + _enum: ['NotOngoing', 'HasDeposit', 'BadTrack', 'Full', 'QueueEmpty', 'BadReferendum', 'NothingToDo', 'NoTrack', 'Unfinished', 'NoPermission', 'NoDeposit', 'BadStatus', 'PreimageNotExist'] + }, + /** + * Lookup526: pallet_scheduler::Scheduled, BlockNumber, quartz_runtime::OriginCaller, sp_core::crypto::AccountId32> + **/ + PalletSchedulerScheduled: { + maybeId: 'Option<[u8;32]>', + priority: 'u8', + call: 'FrameSupportPreimagesBounded', + maybePeriodic: 'Option<(u32,u32)>', + origin: 'QuartzRuntimeOriginCaller' + }, + /** + * Lookup528: pallet_scheduler::pallet::Error + **/ + PalletSchedulerError: { + _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange', 'Named'] + }, + /** + * Lookup530: cumulus_pallet_xcmp_queue::InboundChannelDetails + **/ CumulusPalletXcmpQueueInboundChannelDetails: { sender: 'u32', state: 'CumulusPalletXcmpQueueInboundState', messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>' }, /** - * Lookup442: cumulus_pallet_xcmp_queue::InboundState + * Lookup531: cumulus_pallet_xcmp_queue::InboundState **/ CumulusPalletXcmpQueueInboundState: { _enum: ['Ok', 'Suspended'] }, /** - * Lookup445: polkadot_parachain::primitives::XcmpMessageFormat + * Lookup534: polkadot_parachain::primitives::XcmpMessageFormat **/ PolkadotParachainPrimitivesXcmpMessageFormat: { _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals'] }, /** - * Lookup448: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup537: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: 'u32', @@ -3459,13 +4409,13 @@ lastIndex: 'u16' }, /** - * Lookup449: cumulus_pallet_xcmp_queue::OutboundState + * Lookup538: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ['Ok', 'Suspended'] }, /** - * Lookup451: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup540: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: 'u32', @@ -3476,13 +4426,13 @@ xcmpMaxIndividualWeight: 'SpWeightsWeightV2Weight' }, /** - * Lookup453: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup542: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit'] }, /** - * Lookup454: pallet_xcm::pallet::QueryStatus + * Lookup543: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3503,7 +4453,7 @@ } }, /** - * Lookup458: xcm::VersionedResponse + * Lookup547: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3514,7 +4464,7 @@ } }, /** - * Lookup464: pallet_xcm::pallet::VersionMigrationStage + * Lookup553: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3525,7 +4475,7 @@ } }, /** - * Lookup467: xcm::VersionedAssetId + * Lookup556: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3536,7 +4486,7 @@ } }, /** - * Lookup468: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup557: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: 'u128', @@ -3545,23 +4495,23 @@ consumers: 'Vec<(Null,u128)>' }, /** - * Lookup475: pallet_xcm::pallet::Error + * Lookup564: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed', 'InvalidAsset', 'LowBalance', 'TooManyLocks', 'AccountNotSovereign', 'FeesNotMet', 'LockNotFound', 'InUse'] }, /** - * Lookup476: cumulus_pallet_xcm::pallet::Error + * Lookup565: cumulus_pallet_xcm::pallet::Error **/ CumulusPalletXcmError: 'Null', /** - * Lookup477: cumulus_pallet_dmp_queue::ConfigData + * Lookup566: cumulus_pallet_dmp_queue::ConfigData **/ CumulusPalletDmpQueueConfigData: { maxIndividual: 'SpWeightsWeightV2Weight' }, /** - * Lookup478: cumulus_pallet_dmp_queue::PageIndexData + * Lookup567: cumulus_pallet_dmp_queue::PageIndexData **/ CumulusPalletDmpQueuePageIndexData: { beginUsed: 'u32', @@ -3569,25 +4519,25 @@ overweightCount: 'u64' }, /** - * Lookup481: cumulus_pallet_dmp_queue::pallet::Error + * Lookup570: cumulus_pallet_dmp_queue::pallet::Error **/ CumulusPalletDmpQueueError: { _enum: ['Unknown', 'OverLimit'] }, /** - * Lookup485: pallet_unique::pallet::Error + * Lookup574: pallet_unique::pallet::Error **/ PalletUniqueError: { _enum: ['CollectionDecimalPointLimitExceeded', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection'] }, /** - * Lookup486: pallet_configuration::pallet::Error + * Lookup575: pallet_configuration::pallet::Error **/ PalletConfigurationError: { _enum: ['InconsistentConfiguration'] }, /** - * Lookup487: up_data_structs::Collection + * Lookup576: up_data_structs::Collection **/ UpDataStructsCollection: { owner: 'AccountId32', @@ -3601,7 +4551,7 @@ flags: '[u8;1]' }, /** - * Lookup488: up_data_structs::SponsorshipState + * Lookup577: up_data_structs::SponsorshipState **/ UpDataStructsSponsorshipStateAccountId32: { _enum: { @@ -3611,7 +4561,7 @@ } }, /** - * Lookup489: up_data_structs::Properties + * Lookup578: up_data_structs::Properties **/ UpDataStructsProperties: { map: 'UpDataStructsPropertiesMapBoundedVec', @@ -3619,15 +4569,15 @@ reserved: 'u32' }, /** - * Lookup490: up_data_structs::PropertiesMap> + * Lookup579: up_data_structs::PropertiesMap> **/ UpDataStructsPropertiesMapBoundedVec: 'BTreeMap', /** - * Lookup495: up_data_structs::PropertiesMap + * Lookup584: up_data_structs::PropertiesMap **/ UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap', /** - * Lookup502: up_data_structs::CollectionStats + * Lookup591: up_data_structs::CollectionStats **/ UpDataStructsCollectionStats: { created: 'u32', @@ -3635,18 +4585,18 @@ alive: 'u32' }, /** - * Lookup503: up_data_structs::TokenChild + * Lookup592: up_data_structs::TokenChild **/ UpDataStructsTokenChild: { token: 'u32', collection: 'u32' }, /** - * Lookup504: PhantomType::up_data_structs + * Lookup593: PhantomType::up_data_structs **/ PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,UpPovEstimateRpcPovInfo);0]', /** - * Lookup506: up_data_structs::TokenData> + * Lookup595: up_data_structs::TokenData> **/ UpDataStructsTokenData: { properties: 'Vec', @@ -3654,7 +4604,7 @@ pieces: 'u128' }, /** - * Lookup507: up_data_structs::RpcCollection + * Lookup596: up_data_structs::RpcCollection **/ UpDataStructsRpcCollection: { owner: 'AccountId32', @@ -3671,14 +4621,14 @@ flags: 'UpDataStructsRpcCollectionFlags' }, /** - * Lookup508: up_data_structs::RpcCollectionFlags + * Lookup597: up_data_structs::RpcCollectionFlags **/ UpDataStructsRpcCollectionFlags: { foreign: 'bool', erc721metadata: 'bool' }, /** - * Lookup509: up_pov_estimate_rpc::PovInfo + * Lookup598: up_pov_estimate_rpc::PovInfo **/ UpPovEstimateRpcPovInfo: { proofSize: 'u64', @@ -3688,7 +4638,7 @@ keyValues: 'Vec' }, /** - * Lookup512: sp_runtime::transaction_validity::TransactionValidityError + * Lookup601: sp_runtime::transaction_validity::TransactionValidityError **/ SpRuntimeTransactionValidityTransactionValidityError: { _enum: { @@ -3697,7 +4647,7 @@ } }, /** - * Lookup513: sp_runtime::transaction_validity::InvalidTransaction + * Lookup602: sp_runtime::transaction_validity::InvalidTransaction **/ SpRuntimeTransactionValidityInvalidTransaction: { _enum: { @@ -3715,7 +4665,7 @@ } }, /** - * Lookup514: sp_runtime::transaction_validity::UnknownTransaction + * Lookup603: sp_runtime::transaction_validity::UnknownTransaction **/ SpRuntimeTransactionValidityUnknownTransaction: { _enum: { @@ -3725,68 +4675,68 @@ } }, /** - * Lookup516: up_pov_estimate_rpc::TrieKeyValue + * Lookup605: up_pov_estimate_rpc::TrieKeyValue **/ UpPovEstimateRpcTrieKeyValue: { key: 'Bytes', value: 'Bytes' }, /** - * Lookup518: pallet_common::pallet::Error + * Lookup607: pallet_common::pallet::Error **/ PalletCommonError: { _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsNotEthMirror', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal', 'ConfirmSponsorshipFail', 'UserIsNotCollectionAdmin'] }, /** - * Lookup520: pallet_fungible::pallet::Error + * Lookup609: pallet_fungible::pallet::Error **/ PalletFungibleError: { _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed', 'SettingAllowanceForAllNotAllowed', 'FungibleTokensAreAlwaysValid'] }, /** - * Lookup525: pallet_refungible::pallet::Error + * Lookup614: pallet_refungible::pallet::Error **/ PalletRefungibleError: { _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed'] }, /** - * Lookup526: pallet_nonfungible::ItemData> + * Lookup615: pallet_nonfungible::ItemData> **/ PalletNonfungibleItemData: { owner: 'PalletEvmAccountBasicCrossAccountIdRepr' }, /** - * Lookup528: up_data_structs::PropertyScope + * Lookup617: up_data_structs::PropertyScope **/ UpDataStructsPropertyScope: { _enum: ['None', 'Rmrk'] }, /** - * Lookup531: pallet_nonfungible::pallet::Error + * Lookup620: pallet_nonfungible::pallet::Error **/ PalletNonfungibleError: { _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren'] }, /** - * Lookup532: pallet_structure::pallet::Error + * Lookup621: pallet_structure::pallet::Error **/ PalletStructureError: { _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound', 'CantNestTokenUnderCollection'] }, /** - * Lookup537: pallet_app_promotion::pallet::Error + * Lookup626: pallet_app_promotion::pallet::Error **/ PalletAppPromotionError: { _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'InsufficientStakedBalance', 'InconsistencyState'] }, /** - * Lookup538: pallet_foreign_assets::module::Error + * Lookup627: pallet_foreign_assets::module::Error **/ PalletForeignAssetsModuleError: { _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted'] }, /** - * Lookup539: pallet_evm::CodeMetadata + * Lookup628: pallet_evm::CodeMetadata **/ PalletEvmCodeMetadata: { _alias: { @@ -3797,13 +4747,13 @@ hash_: 'H256' }, /** - * Lookup541: pallet_evm::pallet::Error + * Lookup630: pallet_evm::pallet::Error **/ PalletEvmError: { _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce', 'GasLimitTooLow', 'GasLimitTooHigh', 'Undefined', 'Reentrancy', 'TransactionMustComeFromEOA'] }, /** - * Lookup544: fp_rpc::TransactionStatus + * Lookup633: fp_rpc::TransactionStatus **/ FpRpcTransactionStatus: { transactionHash: 'H256', @@ -3815,11 +4765,11 @@ logsBloom: 'EthbloomBloom' }, /** - * Lookup546: ethbloom::Bloom + * Lookup635: ethbloom::Bloom **/ EthbloomBloom: '[u8;256]', /** - * Lookup548: ethereum::receipt::ReceiptV3 + * Lookup637: ethereum::receipt::ReceiptV3 **/ EthereumReceiptReceiptV3: { _enum: { @@ -3829,7 +4779,7 @@ } }, /** - * Lookup549: ethereum::receipt::EIP658ReceiptData + * Lookup638: ethereum::receipt::EIP658ReceiptData **/ EthereumReceiptEip658ReceiptData: { statusCode: 'u8', @@ -3838,7 +4788,7 @@ logs: 'Vec' }, /** - * Lookup550: ethereum::block::Block + * Lookup639: ethereum::block::Block **/ EthereumBlock: { header: 'EthereumHeader', @@ -3846,7 +4796,7 @@ ommers: 'Vec' }, /** - * Lookup551: ethereum::header::Header + * Lookup640: ethereum::header::Header **/ EthereumHeader: { parentHash: 'H256', @@ -3866,23 +4816,23 @@ nonce: 'EthereumTypesHashH64' }, /** - * Lookup552: ethereum_types::hash::H64 + * Lookup641: ethereum_types::hash::H64 **/ EthereumTypesHashH64: '[u8;8]', /** - * Lookup557: pallet_ethereum::pallet::Error + * Lookup646: pallet_ethereum::pallet::Error **/ PalletEthereumError: { _enum: ['InvalidSignature', 'PreLogExists'] }, /** - * Lookup558: pallet_evm_coder_substrate::pallet::Error + * Lookup647: pallet_evm_coder_substrate::pallet::Error **/ PalletEvmCoderSubstrateError: { _enum: ['OutOfGas', 'OutOfFund'] }, /** - * Lookup559: up_data_structs::SponsorshipState> + * Lookup648: up_data_structs::SponsorshipState> **/ UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: { _enum: { @@ -3892,35 +4842,35 @@ } }, /** - * Lookup560: pallet_evm_contract_helpers::SponsoringModeT + * Lookup649: pallet_evm_contract_helpers::SponsoringModeT **/ PalletEvmContractHelpersSponsoringModeT: { _enum: ['Disabled', 'Allowlisted', 'Generous'] }, /** - * Lookup566: pallet_evm_contract_helpers::pallet::Error + * Lookup655: pallet_evm_contract_helpers::pallet::Error **/ PalletEvmContractHelpersError: { _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit'] }, /** - * Lookup567: pallet_evm_migration::pallet::Error + * Lookup656: pallet_evm_migration::pallet::Error **/ PalletEvmMigrationError: { _enum: ['AccountNotEmpty', 'AccountIsNotMigrating', 'BadEvent'] }, /** - * Lookup568: pallet_maintenance::pallet::Error + * Lookup657: pallet_maintenance::pallet::Error **/ PalletMaintenanceError: 'Null', /** - * Lookup569: pallet_test_utils::pallet::Error + * Lookup658: pallet_test_utils::pallet::Error **/ PalletTestUtilsError: { _enum: ['TestPalletDisabled', 'TriggerRollback'] }, /** - * Lookup571: sp_runtime::MultiSignature + * Lookup660: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3930,55 +4880,55 @@ } }, /** - * Lookup572: sp_core::ed25519::Signature + * Lookup661: sp_core::ed25519::Signature **/ SpCoreEd25519Signature: '[u8;64]', /** - * Lookup574: sp_core::sr25519::Signature + * Lookup663: sp_core::sr25519::Signature **/ SpCoreSr25519Signature: '[u8;64]', /** - * Lookup575: sp_core::ecdsa::Signature + * Lookup664: sp_core::ecdsa::Signature **/ SpCoreEcdsaSignature: '[u8;65]', /** - * Lookup578: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup667: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: 'Null', /** - * Lookup579: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup668: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: 'Null', /** - * Lookup580: frame_system::extensions::check_genesis::CheckGenesis + * Lookup669: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: 'Null', /** - * Lookup583: frame_system::extensions::check_nonce::CheckNonce + * Lookup672: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: 'Compact', /** - * Lookup584: frame_system::extensions::check_weight::CheckWeight + * Lookup673: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: 'Null', /** - * Lookup585: opal_runtime::runtime_common::maintenance::CheckMaintenance + * Lookup674: quartz_runtime::runtime_common::maintenance::CheckMaintenance **/ - OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null', + QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null', /** - * Lookup586: opal_runtime::runtime_common::identity::DisableIdentityCalls + * Lookup675: quartz_runtime::runtime_common::identity::DisableIdentityCalls **/ - OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls: 'Null', + QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls: 'Null', /** - * Lookup587: pallet_template_transaction_payment::ChargeTransactionPayment + * Lookup676: pallet_template_transaction_payment::ChargeTransactionPayment **/ PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact', /** - * Lookup588: opal_runtime::Runtime + * Lookup677: quartz_runtime::Runtime **/ - OpalRuntimeRuntime: 'Null', + QuartzRuntimeRuntime: 'Null', /** - * Lookup589: pallet_ethereum::FakeTransactionFinalizer + * Lookup678: pallet_ethereum::FakeTransactionFinalizer **/ PalletEthereumFakeTransactionFinalizer: 'Null' }; --- a/tests/src/interfaces/registry.ts +++ b/tests/src/interfaces/registry.ts @@ -5,7 +5,7 @@ // this is required to allow for ambient/previous definitions import '@polkadot/types/types/registry'; -import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemCodeUpgradeAuthorization, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, 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, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OpalRuntimeRuntimeCommonSessionKeys, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesIdAmount, PalletBalancesReasons, PalletBalancesReserveData, PalletCollatorSelectionCall, PalletCollatorSelectionError, PalletCollatorSelectionEvent, PalletCommonError, PalletCommonEvent, PalletConfigurationAppPromotionConfiguration, PalletConfigurationCall, PalletConfigurationError, PalletConfigurationEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCodeMetadata, PalletEvmCoderSubstrateError, PalletEvmContractHelpersCall, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletIdentityBitFlags, PalletIdentityCall, PalletIdentityError, PalletIdentityEvent, PalletIdentityIdentityField, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletPreimageCall, PalletPreimageError, PalletPreimageEvent, PalletPreimageRequestStatus, PalletRefungibleError, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStateTrieMigrationCall, PalletStateTrieMigrationError, PalletStateTrieMigrationEvent, PalletStateTrieMigrationMigrationCompute, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletStateTrieMigrationProgress, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmQueryStatus, PalletXcmRemoteLockedFungibleRecord, PalletXcmVersionMigrationStage, ParachainInfoCall, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV4AbridgedHostConfiguration, PolkadotPrimitivesV4AbridgedHrmpChannel, PolkadotPrimitivesV4PersistedValidationData, PolkadotPrimitivesV4UpgradeRestriction, SpArithmeticArithmeticError, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Public, SpCoreSr25519Signature, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionValidityInvalidTransaction, SpRuntimeTransactionValidityTransactionValidityError, SpRuntimeTransactionValidityUnknownTransaction, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, 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, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, UpPovEstimateRpcPovInfo, UpPovEstimateRpcTrieKeyValue, XcmDoubleEncoded, XcmV2BodyId, XcmV2BodyPart, XcmV2Instruction, XcmV2Junction, XcmV2MultiAsset, XcmV2MultiLocation, XcmV2MultiassetAssetId, XcmV2MultiassetAssetInstance, XcmV2MultiassetFungibility, XcmV2MultiassetMultiAssetFilter, XcmV2MultiassetMultiAssets, XcmV2MultiassetWildFungibility, XcmV2MultiassetWildMultiAsset, XcmV2MultilocationJunctions, XcmV2NetworkId, XcmV2OriginKind, XcmV2Response, XcmV2TraitsError, XcmV2WeightLimit, XcmV2Xcm, XcmV3Instruction, XcmV3Junction, XcmV3JunctionBodyId, XcmV3JunctionBodyPart, XcmV3JunctionNetworkId, XcmV3Junctions, XcmV3MaybeErrorCode, XcmV3MultiAsset, XcmV3MultiLocation, XcmV3MultiassetAssetId, XcmV3MultiassetAssetInstance, XcmV3MultiassetFungibility, XcmV3MultiassetMultiAssetFilter, XcmV3MultiassetMultiAssets, XcmV3MultiassetWildFungibility, XcmV3MultiassetWildMultiAsset, XcmV3PalletInfo, XcmV3QueryResponseInfo, XcmV3Response, XcmV3TraitsError, XcmV3TraitsOutcome, XcmV3WeightLimit, XcmV3Xcm, XcmVersionedAssetId, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedResponse, XcmVersionedXcm } from '@polkadot/types/lookup'; +import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemCodeUpgradeAuthorization, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize, 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, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportPreimagesBounded, FrameSupportScheduleDispatchTime, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesIdAmount, PalletBalancesReasons, PalletBalancesReserveData, PalletCollatorSelectionCall, PalletCollatorSelectionError, PalletCollatorSelectionEvent, PalletCollectiveCall, PalletCollectiveError, PalletCollectiveEvent, PalletCollectiveRawOrigin, PalletCollectiveVotes, PalletCommonError, PalletCommonEvent, PalletConfigurationAppPromotionConfiguration, PalletConfigurationCall, PalletConfigurationError, PalletConfigurationEvent, PalletDemocracyCall, PalletDemocracyConviction, PalletDemocracyDelegations, PalletDemocracyError, PalletDemocracyEvent, PalletDemocracyMetadataOwner, PalletDemocracyReferendumInfo, PalletDemocracyReferendumStatus, PalletDemocracyTally, PalletDemocracyVoteAccountVote, PalletDemocracyVotePriorLock, PalletDemocracyVoteThreshold, PalletDemocracyVoteVoting, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCodeMetadata, PalletEvmCoderSubstrateError, PalletEvmContractHelpersCall, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletGovOriginsOrigin, PalletIdentityBitFlags, PalletIdentityCall, PalletIdentityError, PalletIdentityEvent, PalletIdentityIdentityField, PalletIdentityIdentityInfo, PalletIdentityJudgement, PalletIdentityRegistrarInfo, PalletIdentityRegistration, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletMembershipCall, PalletMembershipError, PalletMembershipEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletPreimageCall, PalletPreimageError, PalletPreimageEvent, PalletPreimageRequestStatus, PalletRankedCollectiveCall, PalletRankedCollectiveError, PalletRankedCollectiveEvent, PalletRankedCollectiveMemberRecord, PalletRankedCollectiveTally, PalletRankedCollectiveVoteRecord, PalletReferendaCall, PalletReferendaCurve, PalletReferendaDecidingStatus, PalletReferendaDeposit, PalletReferendaError, PalletReferendaEvent, PalletReferendaReferendumInfo, PalletReferendaReferendumStatus, PalletReferendaTrackInfo, PalletRefungibleError, PalletSchedulerCall, PalletSchedulerError, PalletSchedulerEvent, PalletSchedulerScheduled, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStateTrieMigrationCall, PalletStateTrieMigrationError, PalletStateTrieMigrationEvent, PalletStateTrieMigrationMigrationCompute, PalletStateTrieMigrationMigrationLimits, PalletStateTrieMigrationMigrationTask, PalletStateTrieMigrationProgress, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PalletXcmQueryStatus, PalletXcmRemoteLockedFungibleRecord, PalletXcmVersionMigrationStage, ParachainInfoCall, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV4AbridgedHostConfiguration, PolkadotPrimitivesV4AbridgedHrmpChannel, PolkadotPrimitivesV4PersistedValidationData, PolkadotPrimitivesV4UpgradeRestriction, QuartzRuntimeOriginCaller, QuartzRuntimeRuntime, QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls, QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance, QuartzRuntimeRuntimeCommonSessionKeys, SpArithmeticArithmeticError, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Public, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionValidityInvalidTransaction, SpRuntimeTransactionValidityTransactionValidityError, SpRuntimeTransactionValidityUnknownTransaction, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, 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, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, UpPovEstimateRpcPovInfo, UpPovEstimateRpcTrieKeyValue, XcmDoubleEncoded, XcmV2BodyId, XcmV2BodyPart, XcmV2Instruction, XcmV2Junction, XcmV2MultiAsset, XcmV2MultiLocation, XcmV2MultiassetAssetId, XcmV2MultiassetAssetInstance, XcmV2MultiassetFungibility, XcmV2MultiassetMultiAssetFilter, XcmV2MultiassetMultiAssets, XcmV2MultiassetWildFungibility, XcmV2MultiassetWildMultiAsset, XcmV2MultilocationJunctions, XcmV2NetworkId, XcmV2OriginKind, XcmV2Response, XcmV2TraitsError, XcmV2WeightLimit, XcmV2Xcm, XcmV3Instruction, XcmV3Junction, XcmV3JunctionBodyId, XcmV3JunctionBodyPart, XcmV3JunctionNetworkId, XcmV3Junctions, XcmV3MaybeErrorCode, XcmV3MultiAsset, XcmV3MultiLocation, XcmV3MultiassetAssetId, XcmV3MultiassetAssetInstance, XcmV3MultiassetFungibility, XcmV3MultiassetMultiAssetFilter, XcmV3MultiassetMultiAssets, XcmV3MultiassetWildFungibility, XcmV3MultiassetWildMultiAsset, XcmV3PalletInfo, XcmV3QueryResponseInfo, XcmV3Response, XcmV3TraitsError, XcmV3TraitsOutcome, XcmV3WeightLimit, XcmV3Xcm, XcmVersionedAssetId, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedResponse, XcmVersionedXcm } from '@polkadot/types/lookup'; declare module '@polkadot/types/types/registry' { interface InterfaceTypes { @@ -23,6 +23,7 @@ CumulusPalletXcmCall: CumulusPalletXcmCall; CumulusPalletXcmError: CumulusPalletXcmError; CumulusPalletXcmEvent: CumulusPalletXcmEvent; + CumulusPalletXcmOrigin: CumulusPalletXcmOrigin; CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; @@ -58,7 +59,10 @@ FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin; FrameSupportPalletId: FrameSupportPalletId; + FrameSupportPreimagesBounded: FrameSupportPreimagesBounded; + FrameSupportScheduleDispatchTime: FrameSupportScheduleDispatchTime; FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; FrameSystemAccountInfo: FrameSystemAccountInfo; FrameSystemCall: FrameSystemCall; @@ -75,10 +79,6 @@ FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; FrameSystemPhase: FrameSystemPhase; - OpalRuntimeRuntime: OpalRuntimeRuntime; - OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls: OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls; - OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance; - OpalRuntimeRuntimeCommonSessionKeys: OpalRuntimeRuntimeCommonSessionKeys; OrmlTokensAccountData: OrmlTokensAccountData; OrmlTokensBalanceLock: OrmlTokensBalanceLock; OrmlTokensModuleCall: OrmlTokensModuleCall; @@ -106,16 +106,35 @@ PalletCollatorSelectionCall: PalletCollatorSelectionCall; PalletCollatorSelectionError: PalletCollatorSelectionError; PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; + PalletCollectiveCall: PalletCollectiveCall; + PalletCollectiveError: PalletCollectiveError; + PalletCollectiveEvent: PalletCollectiveEvent; + PalletCollectiveRawOrigin: PalletCollectiveRawOrigin; + PalletCollectiveVotes: PalletCollectiveVotes; PalletCommonError: PalletCommonError; PalletCommonEvent: PalletCommonEvent; PalletConfigurationAppPromotionConfiguration: PalletConfigurationAppPromotionConfiguration; PalletConfigurationCall: PalletConfigurationCall; PalletConfigurationError: PalletConfigurationError; PalletConfigurationEvent: PalletConfigurationEvent; + PalletDemocracyCall: PalletDemocracyCall; + PalletDemocracyConviction: PalletDemocracyConviction; + PalletDemocracyDelegations: PalletDemocracyDelegations; + PalletDemocracyError: PalletDemocracyError; + PalletDemocracyEvent: PalletDemocracyEvent; + PalletDemocracyMetadataOwner: PalletDemocracyMetadataOwner; + PalletDemocracyReferendumInfo: PalletDemocracyReferendumInfo; + PalletDemocracyReferendumStatus: PalletDemocracyReferendumStatus; + PalletDemocracyTally: PalletDemocracyTally; + PalletDemocracyVoteAccountVote: PalletDemocracyVoteAccountVote; + PalletDemocracyVotePriorLock: PalletDemocracyVotePriorLock; + PalletDemocracyVoteThreshold: PalletDemocracyVoteThreshold; + PalletDemocracyVoteVoting: PalletDemocracyVoteVoting; PalletEthereumCall: PalletEthereumCall; PalletEthereumError: PalletEthereumError; PalletEthereumEvent: PalletEthereumEvent; PalletEthereumFakeTransactionFinalizer: PalletEthereumFakeTransactionFinalizer; + PalletEthereumRawOrigin: PalletEthereumRawOrigin; PalletEvmAccountBasicCrossAccountIdRepr: PalletEvmAccountBasicCrossAccountIdRepr; PalletEvmCall: PalletEvmCall; PalletEvmCodeMetadata: PalletEvmCodeMetadata; @@ -136,6 +155,7 @@ PalletForeignAssetsModuleEvent: PalletForeignAssetsModuleEvent; PalletForeignAssetsNativeCurrency: PalletForeignAssetsNativeCurrency; PalletFungibleError: PalletFungibleError; + PalletGovOriginsOrigin: PalletGovOriginsOrigin; PalletIdentityBitFlags: PalletIdentityBitFlags; PalletIdentityCall: PalletIdentityCall; PalletIdentityError: PalletIdentityError; @@ -149,13 +169,35 @@ PalletMaintenanceCall: PalletMaintenanceCall; PalletMaintenanceError: PalletMaintenanceError; PalletMaintenanceEvent: PalletMaintenanceEvent; + PalletMembershipCall: PalletMembershipCall; + PalletMembershipError: PalletMembershipError; + PalletMembershipEvent: PalletMembershipEvent; PalletNonfungibleError: PalletNonfungibleError; PalletNonfungibleItemData: PalletNonfungibleItemData; PalletPreimageCall: PalletPreimageCall; PalletPreimageError: PalletPreimageError; PalletPreimageEvent: PalletPreimageEvent; PalletPreimageRequestStatus: PalletPreimageRequestStatus; + PalletRankedCollectiveCall: PalletRankedCollectiveCall; + PalletRankedCollectiveError: PalletRankedCollectiveError; + PalletRankedCollectiveEvent: PalletRankedCollectiveEvent; + PalletRankedCollectiveMemberRecord: PalletRankedCollectiveMemberRecord; + PalletRankedCollectiveTally: PalletRankedCollectiveTally; + PalletRankedCollectiveVoteRecord: PalletRankedCollectiveVoteRecord; + PalletReferendaCall: PalletReferendaCall; + PalletReferendaCurve: PalletReferendaCurve; + PalletReferendaDecidingStatus: PalletReferendaDecidingStatus; + PalletReferendaDeposit: PalletReferendaDeposit; + PalletReferendaError: PalletReferendaError; + PalletReferendaEvent: PalletReferendaEvent; + PalletReferendaReferendumInfo: PalletReferendaReferendumInfo; + PalletReferendaReferendumStatus: PalletReferendaReferendumStatus; + PalletReferendaTrackInfo: PalletReferendaTrackInfo; PalletRefungibleError: PalletRefungibleError; + PalletSchedulerCall: PalletSchedulerCall; + PalletSchedulerError: PalletSchedulerError; + PalletSchedulerEvent: PalletSchedulerEvent; + PalletSchedulerScheduled: PalletSchedulerScheduled; PalletSessionCall: PalletSessionCall; PalletSessionError: PalletSessionError; PalletSessionEvent: PalletSessionEvent; @@ -188,6 +230,7 @@ PalletXcmCall: PalletXcmCall; PalletXcmError: PalletXcmError; PalletXcmEvent: PalletXcmEvent; + PalletXcmOrigin: PalletXcmOrigin; PalletXcmQueryStatus: PalletXcmQueryStatus; PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; @@ -201,6 +244,11 @@ PolkadotPrimitivesV4AbridgedHrmpChannel: PolkadotPrimitivesV4AbridgedHrmpChannel; PolkadotPrimitivesV4PersistedValidationData: PolkadotPrimitivesV4PersistedValidationData; PolkadotPrimitivesV4UpgradeRestriction: PolkadotPrimitivesV4UpgradeRestriction; + QuartzRuntimeOriginCaller: QuartzRuntimeOriginCaller; + QuartzRuntimeRuntime: QuartzRuntimeRuntime; + QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls: QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls; + QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance: QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance; + QuartzRuntimeRuntimeCommonSessionKeys: QuartzRuntimeRuntimeCommonSessionKeys; SpArithmeticArithmeticError: SpArithmeticArithmeticError; SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; @@ -208,6 +256,7 @@ SpCoreEd25519Signature: SpCoreEd25519Signature; SpCoreSr25519Public: SpCoreSr25519Public; SpCoreSr25519Signature: SpCoreSr25519Signature; + SpCoreVoid: SpCoreVoid; SpRuntimeDigest: SpRuntimeDigest; SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; SpRuntimeDispatchError: SpRuntimeDispatchError; --- a/tests/src/interfaces/types-lookup.ts +++ b/tests/src/interfaces/types-lookup.ts @@ -6,8 +6,9 @@ import '@polkadot/types/lookup'; import type { Data } from '@polkadot/types'; -import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Set, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; +import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Set, Struct, Text, U256, U8aFixed, Vec, bool, i64, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; import type { ITuple } from '@polkadot/types-codec/types'; +import type { Vote } from '@polkadot/types/interfaces/elections'; import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime'; import type { Event } from '@polkadot/types/interfaces/system'; @@ -892,951 +893,324 @@ readonly type: 'Noted' | 'Requested' | 'Cleared'; } - /** @name CumulusPalletXcmpQueueEvent (71) */ - interface CumulusPalletXcmpQueueEvent extends Enum { - readonly isSuccess: boolean; - readonly asSuccess: { - readonly messageHash: Option; - readonly weight: SpWeightsWeightV2Weight; - } & Struct; - readonly isFail: boolean; - readonly asFail: { - readonly messageHash: Option; - readonly error: XcmV3TraitsError; - readonly weight: SpWeightsWeightV2Weight; - } & Struct; - readonly isBadVersion: boolean; - readonly asBadVersion: { - readonly messageHash: Option; - } & Struct; - readonly isBadFormat: boolean; - readonly asBadFormat: { - readonly messageHash: Option; - } & Struct; - readonly isXcmpMessageSent: boolean; - readonly asXcmpMessageSent: { - readonly messageHash: Option; - } & Struct; - readonly isOverweightEnqueued: boolean; - readonly asOverweightEnqueued: { - readonly sender: u32; - readonly sentAt: u32; - readonly index: u64; - readonly required: SpWeightsWeightV2Weight; - } & Struct; - readonly isOverweightServiced: boolean; - readonly asOverweightServiced: { - readonly index: u64; - readonly used: SpWeightsWeightV2Weight; - } & Struct; - readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced'; - } - - /** @name XcmV3TraitsError (72) */ - interface XcmV3TraitsError extends Enum { - readonly isOverflow: boolean; - readonly isUnimplemented: boolean; - readonly isUntrustedReserveLocation: boolean; - readonly isUntrustedTeleportLocation: boolean; - readonly isLocationFull: boolean; - readonly isLocationNotInvertible: boolean; - readonly isBadOrigin: boolean; - readonly isInvalidLocation: boolean; - readonly isAssetNotFound: boolean; - readonly isFailedToTransactAsset: boolean; - readonly isNotWithdrawable: boolean; - readonly isLocationCannotHold: boolean; - readonly isExceedsMaxMessageSize: boolean; - readonly isDestinationUnsupported: boolean; - readonly isTransport: boolean; - readonly isUnroutable: boolean; - readonly isUnknownClaim: boolean; - readonly isFailedToDecode: boolean; - readonly isMaxWeightInvalid: boolean; - readonly isNotHoldingFees: boolean; - readonly isTooExpensive: boolean; - readonly isTrap: boolean; - readonly asTrap: u64; - readonly isExpectationFalse: boolean; - readonly isPalletNotFound: boolean; - readonly isNameMismatch: boolean; - readonly isVersionIncompatible: boolean; - readonly isHoldingWouldOverflow: boolean; - readonly isExportError: boolean; - readonly isReanchorFailed: boolean; - readonly isNoDeal: boolean; - readonly isFeesNotMet: boolean; - readonly isLockError: boolean; - readonly isNoPermission: boolean; - readonly isUnanchored: boolean; - readonly isNotDepositable: boolean; - readonly isUnhandledXcmVersion: boolean; - readonly isWeightLimitReached: boolean; - readonly asWeightLimitReached: SpWeightsWeightV2Weight; - readonly isBarrier: boolean; - readonly isWeightNotComputable: boolean; - readonly isExceedsStackLimit: boolean; - readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'LocationFull' | 'LocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'ExpectationFalse' | 'PalletNotFound' | 'NameMismatch' | 'VersionIncompatible' | 'HoldingWouldOverflow' | 'ExportError' | 'ReanchorFailed' | 'NoDeal' | 'FeesNotMet' | 'LockError' | 'NoPermission' | 'Unanchored' | 'NotDepositable' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable' | 'ExceedsStackLimit'; - } - - /** @name PalletXcmEvent (74) */ - interface PalletXcmEvent extends Enum { - readonly isAttempted: boolean; - readonly asAttempted: XcmV3TraitsOutcome; - readonly isSent: boolean; - readonly asSent: ITuple<[XcmV3MultiLocation, XcmV3MultiLocation, XcmV3Xcm]>; - readonly isUnexpectedResponse: boolean; - readonly asUnexpectedResponse: ITuple<[XcmV3MultiLocation, u64]>; - readonly isResponseReady: boolean; - readonly asResponseReady: ITuple<[u64, XcmV3Response]>; - readonly isNotified: boolean; - readonly asNotified: ITuple<[u64, u8, u8]>; - readonly isNotifyOverweight: boolean; - readonly asNotifyOverweight: ITuple<[u64, u8, u8, SpWeightsWeightV2Weight, SpWeightsWeightV2Weight]>; - readonly isNotifyDispatchError: boolean; - readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>; - readonly isNotifyDecodeFailed: boolean; - readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>; - readonly isInvalidResponder: boolean; - readonly asInvalidResponder: ITuple<[XcmV3MultiLocation, u64, Option]>; - readonly isInvalidResponderVersion: boolean; - readonly asInvalidResponderVersion: ITuple<[XcmV3MultiLocation, u64]>; - readonly isResponseTaken: boolean; - readonly asResponseTaken: u64; - readonly isAssetsTrapped: boolean; - readonly asAssetsTrapped: ITuple<[H256, XcmV3MultiLocation, XcmVersionedMultiAssets]>; - readonly isVersionChangeNotified: boolean; - readonly asVersionChangeNotified: ITuple<[XcmV3MultiLocation, u32, XcmV3MultiassetMultiAssets]>; - readonly isSupportedVersionChanged: boolean; - readonly asSupportedVersionChanged: ITuple<[XcmV3MultiLocation, u32]>; - readonly isNotifyTargetSendFail: boolean; - readonly asNotifyTargetSendFail: ITuple<[XcmV3MultiLocation, u64, XcmV3TraitsError]>; - readonly isNotifyTargetMigrationFail: boolean; - readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>; - readonly isInvalidQuerierVersion: boolean; - readonly asInvalidQuerierVersion: ITuple<[XcmV3MultiLocation, u64]>; - readonly isInvalidQuerier: boolean; - readonly asInvalidQuerier: ITuple<[XcmV3MultiLocation, u64, XcmV3MultiLocation, Option]>; - readonly isVersionNotifyStarted: boolean; - readonly asVersionNotifyStarted: ITuple<[XcmV3MultiLocation, XcmV3MultiassetMultiAssets]>; - readonly isVersionNotifyRequested: boolean; - readonly asVersionNotifyRequested: ITuple<[XcmV3MultiLocation, XcmV3MultiassetMultiAssets]>; - readonly isVersionNotifyUnrequested: boolean; - readonly asVersionNotifyUnrequested: ITuple<[XcmV3MultiLocation, XcmV3MultiassetMultiAssets]>; - readonly isFeesPaid: boolean; - readonly asFeesPaid: ITuple<[XcmV3MultiLocation, XcmV3MultiassetMultiAssets]>; - readonly isAssetsClaimed: boolean; - readonly asAssetsClaimed: ITuple<[H256, XcmV3MultiLocation, XcmVersionedMultiAssets]>; - readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail' | 'InvalidQuerierVersion' | 'InvalidQuerier' | 'VersionNotifyStarted' | 'VersionNotifyRequested' | 'VersionNotifyUnrequested' | 'FeesPaid' | 'AssetsClaimed'; - } - - /** @name XcmV3TraitsOutcome (75) */ - interface XcmV3TraitsOutcome extends Enum { - readonly isComplete: boolean; - readonly asComplete: SpWeightsWeightV2Weight; - readonly isIncomplete: boolean; - readonly asIncomplete: ITuple<[SpWeightsWeightV2Weight, XcmV3TraitsError]>; - readonly isError: boolean; - readonly asError: XcmV3TraitsError; - readonly type: 'Complete' | 'Incomplete' | 'Error'; - } - - /** @name XcmV3Xcm (76) */ - interface XcmV3Xcm extends Vec {} - - /** @name XcmV3Instruction (78) */ - interface XcmV3Instruction extends Enum { - readonly isWithdrawAsset: boolean; - readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; - readonly isReserveAssetDeposited: boolean; - readonly asReserveAssetDeposited: XcmV3MultiassetMultiAssets; - readonly isReceiveTeleportedAsset: boolean; - readonly asReceiveTeleportedAsset: XcmV3MultiassetMultiAssets; - readonly isQueryResponse: boolean; - readonly asQueryResponse: { - readonly queryId: Compact; - readonly response: XcmV3Response; - readonly maxWeight: SpWeightsWeightV2Weight; - readonly querier: Option; - } & Struct; - readonly isTransferAsset: boolean; - readonly asTransferAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly beneficiary: XcmV3MultiLocation; - } & Struct; - readonly isTransferReserveAsset: boolean; - readonly asTransferReserveAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly dest: XcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isTransact: boolean; - readonly asTransact: { - readonly originKind: XcmV2OriginKind; - readonly requireWeightAtMost: SpWeightsWeightV2Weight; - readonly call: XcmDoubleEncoded; - } & Struct; - readonly isHrmpNewChannelOpenRequest: boolean; - readonly asHrmpNewChannelOpenRequest: { - readonly sender: Compact; - readonly maxMessageSize: Compact; - readonly maxCapacity: Compact; - } & Struct; - readonly isHrmpChannelAccepted: boolean; - readonly asHrmpChannelAccepted: { - readonly recipient: Compact; - } & Struct; - readonly isHrmpChannelClosing: boolean; - readonly asHrmpChannelClosing: { - readonly initiator: Compact; - readonly sender: Compact; - readonly recipient: Compact; - } & Struct; - readonly isClearOrigin: boolean; - readonly isDescendOrigin: boolean; - readonly asDescendOrigin: XcmV3Junctions; - readonly isReportError: boolean; - readonly asReportError: XcmV3QueryResponseInfo; - readonly isDepositAsset: boolean; - readonly asDepositAsset: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly beneficiary: XcmV3MultiLocation; - } & Struct; - readonly isDepositReserveAsset: boolean; - readonly asDepositReserveAsset: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly dest: XcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isExchangeAsset: boolean; - readonly asExchangeAsset: { - readonly give: XcmV3MultiassetMultiAssetFilter; - readonly want: XcmV3MultiassetMultiAssets; - readonly maximal: bool; + /** @name PalletDemocracyEvent (71) */ + interface PalletDemocracyEvent extends Enum { + readonly isProposed: boolean; + readonly asProposed: { + readonly proposalIndex: u32; + readonly deposit: u128; } & Struct; - readonly isInitiateReserveWithdraw: boolean; - readonly asInitiateReserveWithdraw: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly reserve: XcmV3MultiLocation; - readonly xcm: XcmV3Xcm; + readonly isTabled: boolean; + readonly asTabled: { + readonly proposalIndex: u32; + readonly deposit: u128; } & Struct; - readonly isInitiateTeleport: boolean; - readonly asInitiateTeleport: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly dest: XcmV3MultiLocation; - readonly xcm: XcmV3Xcm; + readonly isExternalTabled: boolean; + readonly isStarted: boolean; + readonly asStarted: { + readonly refIndex: u32; + readonly threshold: PalletDemocracyVoteThreshold; } & Struct; - readonly isReportHolding: boolean; - readonly asReportHolding: { - readonly responseInfo: XcmV3QueryResponseInfo; - readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly isPassed: boolean; + readonly asPassed: { + readonly refIndex: u32; } & Struct; - readonly isBuyExecution: boolean; - readonly asBuyExecution: { - readonly fees: XcmV3MultiAsset; - readonly weightLimit: XcmV3WeightLimit; + readonly isNotPassed: boolean; + readonly asNotPassed: { + readonly refIndex: u32; } & Struct; - readonly isRefundSurplus: boolean; - readonly isSetErrorHandler: boolean; - readonly asSetErrorHandler: XcmV3Xcm; - readonly isSetAppendix: boolean; - readonly asSetAppendix: XcmV3Xcm; - readonly isClearError: boolean; - readonly isClaimAsset: boolean; - readonly asClaimAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly ticket: XcmV3MultiLocation; + readonly isCancelled: boolean; + readonly asCancelled: { + readonly refIndex: u32; } & Struct; - readonly isTrap: boolean; - readonly asTrap: Compact; - readonly isSubscribeVersion: boolean; - readonly asSubscribeVersion: { - readonly queryId: Compact; - readonly maxResponseWeight: SpWeightsWeightV2Weight; + readonly isDelegated: boolean; + readonly asDelegated: { + readonly who: AccountId32; + readonly target: AccountId32; } & Struct; - readonly isUnsubscribeVersion: boolean; - readonly isBurnAsset: boolean; - readonly asBurnAsset: XcmV3MultiassetMultiAssets; - readonly isExpectAsset: boolean; - readonly asExpectAsset: XcmV3MultiassetMultiAssets; - readonly isExpectOrigin: boolean; - readonly asExpectOrigin: Option; - readonly isExpectError: boolean; - readonly asExpectError: Option>; - readonly isExpectTransactStatus: boolean; - readonly asExpectTransactStatus: XcmV3MaybeErrorCode; - readonly isQueryPallet: boolean; - readonly asQueryPallet: { - readonly moduleName: Bytes; - readonly responseInfo: XcmV3QueryResponseInfo; + readonly isUndelegated: boolean; + readonly asUndelegated: { + readonly account: AccountId32; } & Struct; - readonly isExpectPallet: boolean; - readonly asExpectPallet: { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly crateMajor: Compact; - readonly minCrateMinor: Compact; + readonly isVetoed: boolean; + readonly asVetoed: { + readonly who: AccountId32; + readonly proposalHash: H256; + readonly until: u32; } & Struct; - readonly isReportTransactStatus: boolean; - readonly asReportTransactStatus: XcmV3QueryResponseInfo; - readonly isClearTransactStatus: boolean; - readonly isUniversalOrigin: boolean; - readonly asUniversalOrigin: XcmV3Junction; - readonly isExportMessage: boolean; - readonly asExportMessage: { - readonly network: XcmV3JunctionNetworkId; - readonly destination: XcmV3Junctions; - readonly xcm: XcmV3Xcm; + readonly isBlacklisted: boolean; + readonly asBlacklisted: { + readonly proposalHash: H256; } & Struct; - readonly isLockAsset: boolean; - readonly asLockAsset: { - readonly asset: XcmV3MultiAsset; - readonly unlocker: XcmV3MultiLocation; + readonly isVoted: boolean; + readonly asVoted: { + readonly voter: AccountId32; + readonly refIndex: u32; + readonly vote: PalletDemocracyVoteAccountVote; } & Struct; - readonly isUnlockAsset: boolean; - readonly asUnlockAsset: { - readonly asset: XcmV3MultiAsset; - readonly target: XcmV3MultiLocation; + readonly isSeconded: boolean; + readonly asSeconded: { + readonly seconder: AccountId32; + readonly propIndex: u32; } & Struct; - readonly isNoteUnlockable: boolean; - readonly asNoteUnlockable: { - readonly asset: XcmV3MultiAsset; - readonly owner: XcmV3MultiLocation; + readonly isProposalCanceled: boolean; + readonly asProposalCanceled: { + readonly propIndex: u32; } & Struct; - readonly isRequestUnlock: boolean; - readonly asRequestUnlock: { - readonly asset: XcmV3MultiAsset; - readonly locker: XcmV3MultiLocation; + readonly isMetadataSet: boolean; + readonly asMetadataSet: { + readonly owner: PalletDemocracyMetadataOwner; + readonly hash_: H256; } & Struct; - readonly isSetFeesMode: boolean; - readonly asSetFeesMode: { - readonly jitWithdraw: bool; + readonly isMetadataCleared: boolean; + readonly asMetadataCleared: { + readonly owner: PalletDemocracyMetadataOwner; + readonly hash_: H256; } & Struct; - readonly isSetTopic: boolean; - readonly asSetTopic: U8aFixed; - readonly isClearTopic: boolean; - readonly isAliasOrigin: boolean; - readonly asAliasOrigin: XcmV3MultiLocation; - readonly isUnpaidExecution: boolean; - readonly asUnpaidExecution: { - readonly weightLimit: XcmV3WeightLimit; - readonly checkOrigin: Option; + readonly isMetadataTransferred: boolean; + readonly asMetadataTransferred: { + readonly prevOwner: PalletDemocracyMetadataOwner; + readonly owner: PalletDemocracyMetadataOwner; + readonly hash_: H256; } & Struct; - readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPallet' | 'ExpectPallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution'; + readonly type: 'Proposed' | 'Tabled' | 'ExternalTabled' | 'Started' | 'Passed' | 'NotPassed' | 'Cancelled' | 'Delegated' | 'Undelegated' | 'Vetoed' | 'Blacklisted' | 'Voted' | 'Seconded' | 'ProposalCanceled' | 'MetadataSet' | 'MetadataCleared' | 'MetadataTransferred'; } - /** @name XcmV3Response (79) */ - interface XcmV3Response extends Enum { - readonly isNull: boolean; - readonly isAssets: boolean; - readonly asAssets: XcmV3MultiassetMultiAssets; - readonly isExecutionResult: boolean; - readonly asExecutionResult: Option>; - readonly isVersion: boolean; - readonly asVersion: u32; - readonly isPalletsInfo: boolean; - readonly asPalletsInfo: Vec; - readonly isDispatchResult: boolean; - readonly asDispatchResult: XcmV3MaybeErrorCode; - readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PalletsInfo' | 'DispatchResult'; + /** @name PalletDemocracyVoteThreshold (72) */ + interface PalletDemocracyVoteThreshold extends Enum { + readonly isSuperMajorityApprove: boolean; + readonly isSuperMajorityAgainst: boolean; + readonly isSimpleMajority: boolean; + readonly type: 'SuperMajorityApprove' | 'SuperMajorityAgainst' | 'SimpleMajority'; } - /** @name XcmV3PalletInfo (83) */ - interface XcmV3PalletInfo extends Struct { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly major: Compact; - readonly minor: Compact; - readonly patch: Compact; + /** @name PalletDemocracyVoteAccountVote (73) */ + interface PalletDemocracyVoteAccountVote extends Enum { + readonly isStandard: boolean; + readonly asStandard: { + readonly vote: Vote; + readonly balance: u128; + } & Struct; + readonly isSplit: boolean; + readonly asSplit: { + readonly aye: u128; + readonly nay: u128; + } & Struct; + readonly type: 'Standard' | 'Split'; } - /** @name XcmV3MaybeErrorCode (86) */ - interface XcmV3MaybeErrorCode extends Enum { - readonly isSuccess: boolean; - readonly isError: boolean; - readonly asError: Bytes; - readonly isTruncatedError: boolean; - readonly asTruncatedError: Bytes; - readonly type: 'Success' | 'Error' | 'TruncatedError'; + /** @name PalletDemocracyMetadataOwner (75) */ + interface PalletDemocracyMetadataOwner extends Enum { + readonly isExternal: boolean; + readonly isProposal: boolean; + readonly asProposal: u32; + readonly isReferendum: boolean; + readonly asReferendum: u32; + readonly type: 'External' | 'Proposal' | 'Referendum'; } - /** @name XcmV2OriginKind (89) */ - interface XcmV2OriginKind extends Enum { - readonly isNative: boolean; - readonly isSovereignAccount: boolean; - readonly isSuperuser: boolean; - readonly isXcm: boolean; - readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm'; - } - - /** @name XcmDoubleEncoded (90) */ - interface XcmDoubleEncoded extends Struct { - readonly encoded: Bytes; - } - - /** @name XcmV3QueryResponseInfo (91) */ - interface XcmV3QueryResponseInfo extends Struct { - readonly destination: XcmV3MultiLocation; - readonly queryId: Compact; - readonly maxWeight: SpWeightsWeightV2Weight; - } - - /** @name XcmV3MultiassetMultiAssetFilter (92) */ - interface XcmV3MultiassetMultiAssetFilter extends Enum { - readonly isDefinite: boolean; - readonly asDefinite: XcmV3MultiassetMultiAssets; - readonly isWild: boolean; - readonly asWild: XcmV3MultiassetWildMultiAsset; - readonly type: 'Definite' | 'Wild'; - } - - /** @name XcmV3MultiassetWildMultiAsset (93) */ - interface XcmV3MultiassetWildMultiAsset extends Enum { - readonly isAll: boolean; - readonly isAllOf: boolean; - readonly asAllOf: { - readonly id: XcmV3MultiassetAssetId; - readonly fun: XcmV3MultiassetWildFungibility; + /** @name PalletCollectiveEvent (76) */ + interface PalletCollectiveEvent extends Enum { + readonly isProposed: boolean; + readonly asProposed: { + readonly account: AccountId32; + readonly proposalIndex: u32; + readonly proposalHash: H256; + readonly threshold: u32; + } & Struct; + readonly isVoted: boolean; + readonly asVoted: { + readonly account: AccountId32; + readonly proposalHash: H256; + readonly voted: bool; + readonly yes: u32; + readonly no: u32; } & Struct; - readonly isAllCounted: boolean; - readonly asAllCounted: Compact; - readonly isAllOfCounted: boolean; - readonly asAllOfCounted: { - readonly id: XcmV3MultiassetAssetId; - readonly fun: XcmV3MultiassetWildFungibility; - readonly count: Compact; + readonly isApproved: boolean; + readonly asApproved: { + readonly proposalHash: H256; } & Struct; - readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; - } - - /** @name XcmV3MultiassetWildFungibility (94) */ - interface XcmV3MultiassetWildFungibility extends Enum { - readonly isFungible: boolean; - readonly isNonFungible: boolean; - readonly type: 'Fungible' | 'NonFungible'; - } - - /** @name XcmV3WeightLimit (96) */ - interface XcmV3WeightLimit extends Enum { - readonly isUnlimited: boolean; - readonly isLimited: boolean; - readonly asLimited: SpWeightsWeightV2Weight; - readonly type: 'Unlimited' | 'Limited'; - } - - /** @name XcmVersionedMultiAssets (97) */ - interface XcmVersionedMultiAssets extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2MultiassetMultiAssets; - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetMultiAssets; - readonly type: 'V2' | 'V3'; - } - - /** @name XcmV2MultiassetMultiAssets (98) */ - interface XcmV2MultiassetMultiAssets extends Vec {} - - /** @name XcmV2MultiAsset (100) */ - interface XcmV2MultiAsset extends Struct { - readonly id: XcmV2MultiassetAssetId; - readonly fun: XcmV2MultiassetFungibility; - } - - /** @name XcmV2MultiassetAssetId (101) */ - interface XcmV2MultiassetAssetId extends Enum { - readonly isConcrete: boolean; - readonly asConcrete: XcmV2MultiLocation; - readonly isAbstract: boolean; - readonly asAbstract: Bytes; - readonly type: 'Concrete' | 'Abstract'; - } - - /** @name XcmV2MultiLocation (102) */ - interface XcmV2MultiLocation extends Struct { - readonly parents: u8; - readonly interior: XcmV2MultilocationJunctions; - } - - /** @name XcmV2MultilocationJunctions (103) */ - interface XcmV2MultilocationJunctions extends Enum { - readonly isHere: boolean; - readonly isX1: boolean; - readonly asX1: XcmV2Junction; - readonly isX2: boolean; - readonly asX2: ITuple<[XcmV2Junction, XcmV2Junction]>; - readonly isX3: boolean; - readonly asX3: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX4: boolean; - readonly asX4: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX5: boolean; - readonly asX5: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX6: boolean; - readonly asX6: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX7: boolean; - readonly asX7: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX8: boolean; - readonly asX8: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; - } - - /** @name XcmV2Junction (104) */ - interface XcmV2Junction extends Enum { - readonly isParachain: boolean; - readonly asParachain: Compact; - readonly isAccountId32: boolean; - readonly asAccountId32: { - readonly network: XcmV2NetworkId; - readonly id: U8aFixed; + readonly isDisapproved: boolean; + readonly asDisapproved: { + readonly proposalHash: H256; } & Struct; - readonly isAccountIndex64: boolean; - readonly asAccountIndex64: { - readonly network: XcmV2NetworkId; - readonly index: Compact; + readonly isExecuted: boolean; + readonly asExecuted: { + readonly proposalHash: H256; + readonly result: Result; } & Struct; - readonly isAccountKey20: boolean; - readonly asAccountKey20: { - readonly network: XcmV2NetworkId; - readonly key: U8aFixed; + readonly isMemberExecuted: boolean; + readonly asMemberExecuted: { + readonly proposalHash: H256; + readonly result: Result; } & Struct; - readonly isPalletInstance: boolean; - readonly asPalletInstance: u8; - readonly isGeneralIndex: boolean; - readonly asGeneralIndex: Compact; - readonly isGeneralKey: boolean; - readonly asGeneralKey: Bytes; - readonly isOnlyChild: boolean; - readonly isPlurality: boolean; - readonly asPlurality: { - readonly id: XcmV2BodyId; - readonly part: XcmV2BodyPart; + readonly isClosed: boolean; + readonly asClosed: { + readonly proposalHash: H256; + readonly yes: u32; + readonly no: u32; } & Struct; - readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality'; + readonly type: 'Proposed' | 'Voted' | 'Approved' | 'Disapproved' | 'Executed' | 'MemberExecuted' | 'Closed'; } - /** @name XcmV2NetworkId (105) */ - interface XcmV2NetworkId extends Enum { - readonly isAny: boolean; - readonly isNamed: boolean; - readonly asNamed: Bytes; - readonly isPolkadot: boolean; - readonly isKusama: boolean; - readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama'; + /** @name PalletMembershipEvent (79) */ + interface PalletMembershipEvent extends Enum { + readonly isMemberAdded: boolean; + readonly isMemberRemoved: boolean; + readonly isMembersSwapped: boolean; + readonly isMembersReset: boolean; + readonly isKeyChanged: boolean; + readonly isDummy: boolean; + readonly type: 'MemberAdded' | 'MemberRemoved' | 'MembersSwapped' | 'MembersReset' | 'KeyChanged' | 'Dummy'; } - /** @name XcmV2BodyId (107) */ - interface XcmV2BodyId extends Enum { - readonly isUnit: boolean; - readonly isNamed: boolean; - readonly asNamed: Bytes; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isExecutive: boolean; - readonly isTechnical: boolean; - readonly isLegislative: boolean; - readonly isJudicial: boolean; - readonly isDefense: boolean; - readonly isAdministration: boolean; - readonly isTreasury: boolean; - readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial' | 'Defense' | 'Administration' | 'Treasury'; - } - - /** @name XcmV2BodyPart (108) */ - interface XcmV2BodyPart extends Enum { - readonly isVoice: boolean; - readonly isMembers: boolean; - readonly asMembers: { - readonly count: Compact; + /** @name PalletRankedCollectiveEvent (81) */ + interface PalletRankedCollectiveEvent extends Enum { + readonly isMemberAdded: boolean; + readonly asMemberAdded: { + readonly who: AccountId32; } & Struct; - readonly isFraction: boolean; - readonly asFraction: { - readonly nom: Compact; - readonly denom: Compact; + readonly isRankChanged: boolean; + readonly asRankChanged: { + readonly who: AccountId32; + readonly rank: u16; } & Struct; - readonly isAtLeastProportion: boolean; - readonly asAtLeastProportion: { - readonly nom: Compact; - readonly denom: Compact; + readonly isMemberRemoved: boolean; + readonly asMemberRemoved: { + readonly who: AccountId32; + readonly rank: u16; } & Struct; - readonly isMoreThanProportion: boolean; - readonly asMoreThanProportion: { - readonly nom: Compact; - readonly denom: Compact; + readonly isVoted: boolean; + readonly asVoted: { + readonly who: AccountId32; + readonly poll: u32; + readonly vote: PalletRankedCollectiveVoteRecord; + readonly tally: PalletRankedCollectiveTally; } & Struct; - readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; - } - - /** @name XcmV2MultiassetFungibility (109) */ - interface XcmV2MultiassetFungibility extends Enum { - readonly isFungible: boolean; - readonly asFungible: Compact; - readonly isNonFungible: boolean; - readonly asNonFungible: XcmV2MultiassetAssetInstance; - readonly type: 'Fungible' | 'NonFungible'; - } - - /** @name XcmV2MultiassetAssetInstance (110) */ - interface XcmV2MultiassetAssetInstance extends Enum { - readonly isUndefined: boolean; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isArray4: boolean; - readonly asArray4: U8aFixed; - readonly isArray8: boolean; - readonly asArray8: U8aFixed; - readonly isArray16: boolean; - readonly asArray16: U8aFixed; - readonly isArray32: boolean; - readonly asArray32: U8aFixed; - readonly isBlob: boolean; - readonly asBlob: Bytes; - readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob'; + readonly type: 'MemberAdded' | 'RankChanged' | 'MemberRemoved' | 'Voted'; } - /** @name XcmVersionedMultiLocation (111) */ - interface XcmVersionedMultiLocation extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2MultiLocation; - readonly isV3: boolean; - readonly asV3: XcmV3MultiLocation; - readonly type: 'V2' | 'V3'; + /** @name PalletRankedCollectiveVoteRecord (83) */ + interface PalletRankedCollectiveVoteRecord extends Enum { + readonly isAye: boolean; + readonly asAye: u32; + readonly isNay: boolean; + readonly asNay: u32; + readonly type: 'Aye' | 'Nay'; } - /** @name CumulusPalletXcmEvent (112) */ - interface CumulusPalletXcmEvent extends Enum { - readonly isInvalidFormat: boolean; - readonly asInvalidFormat: U8aFixed; - readonly isUnsupportedVersion: boolean; - readonly asUnsupportedVersion: U8aFixed; - readonly isExecutedDownward: boolean; - readonly asExecutedDownward: ITuple<[U8aFixed, XcmV3TraitsOutcome]>; - readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward'; + /** @name PalletRankedCollectiveTally (84) */ + interface PalletRankedCollectiveTally extends Struct { + readonly bareAyes: u32; + readonly ayes: u32; + readonly nays: u32; } - /** @name CumulusPalletDmpQueueEvent (113) */ - interface CumulusPalletDmpQueueEvent extends Enum { - readonly isInvalidFormat: boolean; - readonly asInvalidFormat: { - readonly messageId: U8aFixed; + /** @name PalletReferendaEvent (85) */ + interface PalletReferendaEvent extends Enum { + readonly isSubmitted: boolean; + readonly asSubmitted: { + readonly index: u32; + readonly track: u16; + readonly proposal: FrameSupportPreimagesBounded; } & Struct; - readonly isUnsupportedVersion: boolean; - readonly asUnsupportedVersion: { - readonly messageId: U8aFixed; + readonly isDecisionDepositPlaced: boolean; + readonly asDecisionDepositPlaced: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; } & Struct; - readonly isExecutedDownward: boolean; - readonly asExecutedDownward: { - readonly messageId: U8aFixed; - readonly outcome: XcmV3TraitsOutcome; - } & Struct; - readonly isWeightExhausted: boolean; - readonly asWeightExhausted: { - readonly messageId: U8aFixed; - readonly remainingWeight: SpWeightsWeightV2Weight; - readonly requiredWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isOverweightEnqueued: boolean; - readonly asOverweightEnqueued: { - readonly messageId: U8aFixed; - readonly overweightIndex: u64; - readonly requiredWeight: SpWeightsWeightV2Weight; + readonly isDecisionDepositRefunded: boolean; + readonly asDecisionDepositRefunded: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; } & Struct; - readonly isOverweightServiced: boolean; - readonly asOverweightServiced: { - readonly overweightIndex: u64; - readonly weightUsed: SpWeightsWeightV2Weight; + readonly isDepositSlashed: boolean; + readonly asDepositSlashed: { + readonly who: AccountId32; + readonly amount: u128; } & Struct; - readonly isMaxMessagesExhausted: boolean; - readonly asMaxMessagesExhausted: { - readonly messageId: U8aFixed; + readonly isDecisionStarted: boolean; + readonly asDecisionStarted: { + readonly index: u32; + readonly track: u16; + readonly proposal: FrameSupportPreimagesBounded; + readonly tally: PalletRankedCollectiveTally; } & Struct; - readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced' | 'MaxMessagesExhausted'; - } - - /** @name PalletConfigurationEvent (114) */ - interface PalletConfigurationEvent extends Enum { - readonly isNewDesiredCollators: boolean; - readonly asNewDesiredCollators: { - readonly desiredCollators: Option; + readonly isConfirmStarted: boolean; + readonly asConfirmStarted: { + readonly index: u32; } & Struct; - readonly isNewCollatorLicenseBond: boolean; - readonly asNewCollatorLicenseBond: { - readonly bondCost: Option; + readonly isConfirmAborted: boolean; + readonly asConfirmAborted: { + readonly index: u32; } & Struct; - readonly isNewCollatorKickThreshold: boolean; - readonly asNewCollatorKickThreshold: { - readonly lengthInBlocks: Option; + readonly isConfirmed: boolean; + readonly asConfirmed: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; } & Struct; - readonly type: 'NewDesiredCollators' | 'NewCollatorLicenseBond' | 'NewCollatorKickThreshold'; - } - - /** @name PalletCommonEvent (117) */ - interface PalletCommonEvent extends Enum { - readonly isCollectionCreated: boolean; - readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>; - readonly isCollectionDestroyed: boolean; - readonly asCollectionDestroyed: u32; - readonly isItemCreated: boolean; - readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>; - readonly isItemDestroyed: boolean; - readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>; - readonly isTransfer: boolean; - readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>; readonly isApproved: boolean; - readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>; - readonly isApprovedForAll: boolean; - readonly asApprovedForAll: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, bool]>; - readonly isCollectionPropertySet: boolean; - readonly asCollectionPropertySet: ITuple<[u32, Bytes]>; - readonly isCollectionPropertyDeleted: boolean; - readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>; - readonly isTokenPropertySet: boolean; - readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>; - readonly isTokenPropertyDeleted: boolean; - readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>; - readonly isPropertyPermissionSet: boolean; - readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>; - readonly isAllowListAddressAdded: boolean; - readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>; - readonly isAllowListAddressRemoved: boolean; - readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>; - readonly isCollectionAdminAdded: boolean; - readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>; - readonly isCollectionAdminRemoved: boolean; - readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>; - readonly isCollectionLimitSet: boolean; - readonly asCollectionLimitSet: u32; - readonly isCollectionOwnerChanged: boolean; - readonly asCollectionOwnerChanged: ITuple<[u32, AccountId32]>; - readonly isCollectionPermissionSet: boolean; - readonly asCollectionPermissionSet: u32; - readonly isCollectionSponsorSet: boolean; - readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>; - readonly isSponsorshipConfirmed: boolean; - readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>; - readonly isCollectionSponsorRemoved: boolean; - readonly asCollectionSponsorRemoved: u32; - readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'ApprovedForAll' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet' | 'AllowListAddressAdded' | 'AllowListAddressRemoved' | 'CollectionAdminAdded' | 'CollectionAdminRemoved' | 'CollectionLimitSet' | 'CollectionOwnerChanged' | 'CollectionPermissionSet' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionSponsorRemoved'; - } - - /** @name PalletEvmAccountBasicCrossAccountIdRepr (120) */ - interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum { - readonly isSubstrate: boolean; - readonly asSubstrate: AccountId32; - readonly isEthereum: boolean; - readonly asEthereum: H160; - readonly type: 'Substrate' | 'Ethereum'; - } - - /** @name PalletStructureEvent (123) */ - interface PalletStructureEvent extends Enum { - readonly isExecuted: boolean; - readonly asExecuted: Result; - readonly type: 'Executed'; - } - - /** @name PalletAppPromotionEvent (124) */ - interface PalletAppPromotionEvent extends Enum { - readonly isStakingRecalculation: boolean; - readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>; - readonly isStake: boolean; - readonly asStake: ITuple<[AccountId32, u128]>; - readonly isUnstake: boolean; - readonly asUnstake: ITuple<[AccountId32, u128]>; - readonly isSetAdmin: boolean; - readonly asSetAdmin: AccountId32; - readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin'; - } - - /** @name PalletForeignAssetsModuleEvent (125) */ - interface PalletForeignAssetsModuleEvent extends Enum { - readonly isForeignAssetRegistered: boolean; - readonly asForeignAssetRegistered: { - readonly assetId: u32; - readonly assetAddress: XcmV3MultiLocation; - readonly metadata: PalletForeignAssetsModuleAssetMetadata; - } & Struct; - readonly isForeignAssetUpdated: boolean; - readonly asForeignAssetUpdated: { - readonly assetId: u32; - readonly assetAddress: XcmV3MultiLocation; - readonly metadata: PalletForeignAssetsModuleAssetMetadata; + readonly asApproved: { + readonly index: u32; } & Struct; - readonly isAssetRegistered: boolean; - readonly asAssetRegistered: { - readonly assetId: PalletForeignAssetsAssetIds; - readonly metadata: PalletForeignAssetsModuleAssetMetadata; + readonly isRejected: boolean; + readonly asRejected: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; } & Struct; - readonly isAssetUpdated: boolean; - readonly asAssetUpdated: { - readonly assetId: PalletForeignAssetsAssetIds; - readonly metadata: PalletForeignAssetsModuleAssetMetadata; + readonly isTimedOut: boolean; + readonly asTimedOut: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; } & Struct; - readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated'; - } - - /** @name PalletForeignAssetsModuleAssetMetadata (126) */ - interface PalletForeignAssetsModuleAssetMetadata extends Struct { - readonly name: Bytes; - readonly symbol: Bytes; - readonly decimals: u8; - readonly minimalBalance: u128; - } - - /** @name PalletEvmEvent (129) */ - interface PalletEvmEvent extends Enum { - readonly isLog: boolean; - readonly asLog: { - readonly log: EthereumLog; + readonly isCancelled: boolean; + readonly asCancelled: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; } & Struct; - readonly isCreated: boolean; - readonly asCreated: { - readonly address: H160; + readonly isKilled: boolean; + readonly asKilled: { + readonly index: u32; + readonly tally: PalletRankedCollectiveTally; } & Struct; - readonly isCreatedFailed: boolean; - readonly asCreatedFailed: { - readonly address: H160; + readonly isSubmissionDepositRefunded: boolean; + readonly asSubmissionDepositRefunded: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; } & Struct; - readonly isExecuted: boolean; - readonly asExecuted: { - readonly address: H160; + readonly isMetadataSet: boolean; + readonly asMetadataSet: { + readonly index: u32; + readonly hash_: H256; } & Struct; - readonly isExecutedFailed: boolean; - readonly asExecutedFailed: { - readonly address: H160; + readonly isMetadataCleared: boolean; + readonly asMetadataCleared: { + readonly index: u32; + readonly hash_: H256; } & Struct; - readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed'; + readonly type: 'Submitted' | 'DecisionDepositPlaced' | 'DecisionDepositRefunded' | 'DepositSlashed' | 'DecisionStarted' | 'ConfirmStarted' | 'ConfirmAborted' | 'Confirmed' | 'Approved' | 'Rejected' | 'TimedOut' | 'Cancelled' | 'Killed' | 'SubmissionDepositRefunded' | 'MetadataSet' | 'MetadataCleared'; } - /** @name EthereumLog (130) */ - interface EthereumLog extends Struct { - readonly address: H160; - readonly topics: Vec; - readonly data: Bytes; - } - - /** @name PalletEthereumEvent (132) */ - interface PalletEthereumEvent extends Enum { - readonly isExecuted: boolean; - readonly asExecuted: { - readonly from: H160; - readonly to: H160; - readonly transactionHash: H256; - readonly exitReason: EvmCoreErrorExitReason; - readonly extraData: Bytes; + /** @name FrameSupportPreimagesBounded (86) */ + interface FrameSupportPreimagesBounded extends Enum { + readonly isLegacy: boolean; + readonly asLegacy: { + readonly hash_: H256; } & Struct; - readonly type: 'Executed'; - } - - /** @name EvmCoreErrorExitReason (133) */ - interface EvmCoreErrorExitReason extends Enum { - readonly isSucceed: boolean; - readonly asSucceed: EvmCoreErrorExitSucceed; - readonly isError: boolean; - readonly asError: EvmCoreErrorExitError; - readonly isRevert: boolean; - readonly asRevert: EvmCoreErrorExitRevert; - readonly isFatal: boolean; - readonly asFatal: EvmCoreErrorExitFatal; - readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal'; - } - - /** @name EvmCoreErrorExitSucceed (134) */ - interface EvmCoreErrorExitSucceed extends Enum { - readonly isStopped: boolean; - readonly isReturned: boolean; - readonly isSuicided: boolean; - readonly type: 'Stopped' | 'Returned' | 'Suicided'; - } - - /** @name EvmCoreErrorExitError (135) */ - interface EvmCoreErrorExitError extends Enum { - readonly isStackUnderflow: boolean; - readonly isStackOverflow: boolean; - readonly isInvalidJump: boolean; - readonly isInvalidRange: boolean; - readonly isDesignatedInvalid: boolean; - readonly isCallTooDeep: boolean; - readonly isCreateCollision: boolean; - readonly isCreateContractLimit: boolean; - readonly isOutOfOffset: boolean; - readonly isOutOfGas: boolean; - readonly isOutOfFund: boolean; - readonly isPcUnderflow: boolean; - readonly isCreateEmpty: boolean; - readonly isOther: boolean; - readonly asOther: Text; - readonly isMaxNonce: boolean; - readonly isInvalidCode: boolean; - readonly asInvalidCode: u8; - readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'MaxNonce' | 'InvalidCode'; - } - - /** @name EvmCoreErrorExitRevert (139) */ - interface EvmCoreErrorExitRevert extends Enum { - readonly isReverted: boolean; - readonly type: 'Reverted'; - } - - /** @name EvmCoreErrorExitFatal (140) */ - interface EvmCoreErrorExitFatal extends Enum { - readonly isNotSupported: boolean; - readonly isUnhandledInterrupt: boolean; - readonly isCallErrorAsFatal: boolean; - readonly asCallErrorAsFatal: EvmCoreErrorExitError; - readonly isOther: boolean; - readonly asOther: Text; - readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other'; - } - - /** @name PalletEvmContractHelpersEvent (141) */ - interface PalletEvmContractHelpersEvent extends Enum { - readonly isContractSponsorSet: boolean; - readonly asContractSponsorSet: ITuple<[H160, AccountId32]>; - readonly isContractSponsorshipConfirmed: boolean; - readonly asContractSponsorshipConfirmed: ITuple<[H160, AccountId32]>; - readonly isContractSponsorRemoved: boolean; - readonly asContractSponsorRemoved: H160; - readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved'; - } - - /** @name PalletEvmMigrationEvent (142) */ - interface PalletEvmMigrationEvent extends Enum { - readonly isTestEvent: boolean; - readonly type: 'TestEvent'; - } - - /** @name PalletMaintenanceEvent (143) */ - interface PalletMaintenanceEvent extends Enum { - readonly isMaintenanceEnabled: boolean; - readonly isMaintenanceDisabled: boolean; - readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled'; - } - - /** @name PalletTestUtilsEvent (144) */ - interface PalletTestUtilsEvent extends Enum { - readonly isValueIsSet: boolean; - readonly isShouldRollback: boolean; - readonly isBatchCompleted: boolean; - readonly type: 'ValueIsSet' | 'ShouldRollback' | 'BatchCompleted'; - } - - /** @name FrameSystemPhase (145) */ - interface FrameSystemPhase extends Enum { - readonly isApplyExtrinsic: boolean; - readonly asApplyExtrinsic: u32; - readonly isFinalization: boolean; - readonly isInitialization: boolean; - readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization'; - } - - /** @name FrameSystemLastRuntimeUpgradeInfo (148) */ - interface FrameSystemLastRuntimeUpgradeInfo extends Struct { - readonly specVersion: Compact; - readonly specName: Text; + readonly isInline: boolean; + readonly asInline: Bytes; + readonly isLookup: boolean; + readonly asLookup: { + readonly hash_: H256; + readonly len: u32; + } & Struct; + readonly type: 'Legacy' | 'Inline' | 'Lookup'; } - /** @name FrameSystemCall (149) */ + /** @name FrameSystemCall (88) */ interface FrameSystemCall extends Enum { readonly isRemark: boolean; readonly asRemark: { @@ -1874,94 +1248,7 @@ readonly type: 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent'; } - /** @name FrameSystemLimitsBlockWeights (153) */ - interface FrameSystemLimitsBlockWeights extends Struct { - readonly baseBlock: SpWeightsWeightV2Weight; - readonly maxBlock: SpWeightsWeightV2Weight; - readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; - } - - /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (154) */ - interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { - readonly normal: FrameSystemLimitsWeightsPerClass; - readonly operational: FrameSystemLimitsWeightsPerClass; - readonly mandatory: FrameSystemLimitsWeightsPerClass; - } - - /** @name FrameSystemLimitsWeightsPerClass (155) */ - interface FrameSystemLimitsWeightsPerClass extends Struct { - readonly baseExtrinsic: SpWeightsWeightV2Weight; - readonly maxExtrinsic: Option; - readonly maxTotal: Option; - readonly reserved: Option; - } - - /** @name FrameSystemLimitsBlockLength (157) */ - interface FrameSystemLimitsBlockLength extends Struct { - readonly max: FrameSupportDispatchPerDispatchClassU32; - } - - /** @name FrameSupportDispatchPerDispatchClassU32 (158) */ - interface FrameSupportDispatchPerDispatchClassU32 extends Struct { - readonly normal: u32; - readonly operational: u32; - readonly mandatory: u32; - } - - /** @name SpWeightsRuntimeDbWeight (159) */ - interface SpWeightsRuntimeDbWeight extends Struct { - readonly read: u64; - readonly write: u64; - } - - /** @name SpVersionRuntimeVersion (160) */ - interface SpVersionRuntimeVersion extends Struct { - readonly specName: Text; - readonly implName: Text; - readonly authoringVersion: u32; - readonly specVersion: u32; - readonly implVersion: u32; - readonly apis: Vec>; - readonly transactionVersion: u32; - readonly stateVersion: u8; - } - - /** @name FrameSystemError (165) */ - interface FrameSystemError extends Enum { - readonly isInvalidSpecName: boolean; - readonly isSpecVersionNeedsToIncrease: boolean; - readonly isFailedToExtractRuntimeVersion: boolean; - readonly isNonDefaultComposite: boolean; - readonly isNonZeroRefCount: boolean; - readonly isCallFiltered: boolean; - readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered'; - } - - /** @name PalletStateTrieMigrationMigrationTask (166) */ - interface PalletStateTrieMigrationMigrationTask extends Struct { - readonly progressTop: PalletStateTrieMigrationProgress; - readonly progressChild: PalletStateTrieMigrationProgress; - readonly size_: u32; - readonly topItems: u32; - readonly childItems: u32; - } - - /** @name PalletStateTrieMigrationProgress (167) */ - interface PalletStateTrieMigrationProgress extends Enum { - readonly isToStart: boolean; - readonly isLastKey: boolean; - readonly asLastKey: Bytes; - readonly isComplete: boolean; - readonly type: 'ToStart' | 'LastKey' | 'Complete'; - } - - /** @name PalletStateTrieMigrationMigrationLimits (170) */ - interface PalletStateTrieMigrationMigrationLimits extends Struct { - readonly size_: u32; - readonly item: u32; - } - - /** @name PalletStateTrieMigrationCall (171) */ + /** @name PalletStateTrieMigrationCall (92) */ interface PalletStateTrieMigrationCall extends Enum { readonly isControlAutoMigration: boolean; readonly asControlAutoMigration: { @@ -1994,77 +1281,33 @@ readonly progressChild: PalletStateTrieMigrationProgress; } & Struct; readonly type: 'ControlAutoMigration' | 'ContinueMigrate' | 'MigrateCustomTop' | 'MigrateCustomChild' | 'SetSignedMaxLimits' | 'ForceSetProgress'; - } - - /** @name PolkadotPrimitivesV4PersistedValidationData (172) */ - interface PolkadotPrimitivesV4PersistedValidationData extends Struct { - readonly parentHead: Bytes; - readonly relayParentNumber: u32; - readonly relayParentStorageRoot: H256; - readonly maxPovSize: u32; - } - - /** @name PolkadotPrimitivesV4UpgradeRestriction (175) */ - interface PolkadotPrimitivesV4UpgradeRestriction extends Enum { - readonly isPresent: boolean; - readonly type: 'Present'; } - /** @name SpTrieStorageProof (176) */ - interface SpTrieStorageProof extends Struct { - readonly trieNodes: BTreeSet; - } - - /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (178) */ - interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { - readonly dmqMqcHead: H256; - readonly relayDispatchQueueSize: CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; + /** @name PalletStateTrieMigrationMigrationLimits (94) */ + interface PalletStateTrieMigrationMigrationLimits extends Struct { + readonly size_: u32; + readonly item: u32; } - /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize (179) */ - interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize extends Struct { - readonly remainingCount: u32; - readonly remainingSize: u32; + /** @name PalletStateTrieMigrationMigrationTask (95) */ + interface PalletStateTrieMigrationMigrationTask extends Struct { + readonly progressTop: PalletStateTrieMigrationProgress; + readonly progressChild: PalletStateTrieMigrationProgress; + readonly size_: u32; + readonly topItems: u32; + readonly childItems: u32; } - /** @name PolkadotPrimitivesV4AbridgedHrmpChannel (182) */ - interface PolkadotPrimitivesV4AbridgedHrmpChannel extends Struct { - readonly maxCapacity: u32; - readonly maxTotalSize: u32; - readonly maxMessageSize: u32; - readonly msgCount: u32; - readonly totalSize: u32; - readonly mqcHead: Option; + /** @name PalletStateTrieMigrationProgress (96) */ + interface PalletStateTrieMigrationProgress extends Enum { + readonly isToStart: boolean; + readonly isLastKey: boolean; + readonly asLastKey: Bytes; + readonly isComplete: boolean; + readonly type: 'ToStart' | 'LastKey' | 'Complete'; } - /** @name PolkadotPrimitivesV4AbridgedHostConfiguration (184) */ - interface PolkadotPrimitivesV4AbridgedHostConfiguration extends Struct { - readonly maxCodeSize: u32; - readonly maxHeadDataSize: u32; - readonly maxUpwardQueueCount: u32; - readonly maxUpwardQueueSize: u32; - readonly maxUpwardMessageSize: u32; - readonly maxUpwardMessageNumPerCandidate: u32; - readonly hrmpMaxMessageNumPerCandidate: u32; - readonly validationUpgradeCooldown: u32; - readonly validationUpgradeDelay: u32; - } - - /** @name PolkadotCorePrimitivesOutboundHrmpMessage (190) */ - interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct { - readonly recipient: u32; - readonly data: Bytes; - } - - /** @name CumulusPalletParachainSystemCodeUpgradeAuthorization (191) */ - interface CumulusPalletParachainSystemCodeUpgradeAuthorization extends Struct { - readonly codeHash: H256; - readonly checkVersion: bool; - } - - /** @name CumulusPalletParachainSystemCall (192) */ + /** @name CumulusPalletParachainSystemCall (98) */ interface CumulusPalletParachainSystemCall extends Enum { readonly isSetValidationData: boolean; readonly asSetValidationData: { @@ -2086,7 +1329,7 @@ readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade'; } - /** @name CumulusPrimitivesParachainInherentParachainInherentData (193) */ + /** @name CumulusPrimitivesParachainInherentParachainInherentData (99) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { readonly validationData: PolkadotPrimitivesV4PersistedValidationData; readonly relayChainState: SpTrieStorageProof; @@ -2094,35 +1337,35 @@ readonly horizontalMessages: BTreeMap>; } - /** @name PolkadotCorePrimitivesInboundDownwardMessage (195) */ + /** @name PolkadotPrimitivesV4PersistedValidationData (100) */ + interface PolkadotPrimitivesV4PersistedValidationData extends Struct { + readonly parentHead: Bytes; + readonly relayParentNumber: u32; + readonly relayParentStorageRoot: H256; + readonly maxPovSize: u32; + } + + /** @name SpTrieStorageProof (102) */ + interface SpTrieStorageProof extends Struct { + readonly trieNodes: BTreeSet; + } + + /** @name PolkadotCorePrimitivesInboundDownwardMessage (105) */ interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct { readonly sentAt: u32; readonly msg: Bytes; } - /** @name PolkadotCorePrimitivesInboundHrmpMessage (198) */ + /** @name PolkadotCorePrimitivesInboundHrmpMessage (109) */ interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct { readonly sentAt: u32; readonly data: Bytes; } - /** @name CumulusPalletParachainSystemError (201) */ - interface CumulusPalletParachainSystemError extends Enum { - readonly isOverlappingUpgrades: boolean; - readonly isProhibitedByPolkadot: boolean; - readonly isTooBig: boolean; - readonly isValidationDataNotAvailable: boolean; - readonly isHostConfigurationNotAvailable: boolean; - readonly isNotScheduled: boolean; - readonly isNothingAuthorized: boolean; - readonly isUnauthorized: boolean; - readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized'; - } - - /** @name ParachainInfoCall (202) */ + /** @name ParachainInfoCall (112) */ type ParachainInfoCall = Null; - /** @name PalletCollatorSelectionCall (205) */ + /** @name PalletCollatorSelectionCall (113) */ interface PalletCollatorSelectionCall extends Enum { readonly isAddInvulnerable: boolean; readonly asAddInvulnerable: { @@ -2143,87 +1386,29 @@ readonly type: 'AddInvulnerable' | 'RemoveInvulnerable' | 'GetLicense' | 'Onboard' | 'Offboard' | 'ReleaseLicense' | 'ForceReleaseLicense'; } - /** @name PalletCollatorSelectionError (206) */ - interface PalletCollatorSelectionError extends Enum { - readonly isTooManyCandidates: boolean; - readonly isUnknown: boolean; - readonly isPermission: boolean; - readonly isAlreadyHoldingLicense: boolean; - readonly isNoLicense: boolean; - readonly isAlreadyCandidate: boolean; - readonly isNotCandidate: boolean; - readonly isTooManyInvulnerables: boolean; - readonly isTooFewInvulnerables: boolean; - readonly isAlreadyInvulnerable: boolean; - readonly isNotInvulnerable: boolean; - readonly isNoAssociatedValidatorId: boolean; - readonly isValidatorNotRegistered: boolean; - readonly type: 'TooManyCandidates' | 'Unknown' | 'Permission' | 'AlreadyHoldingLicense' | 'NoLicense' | 'AlreadyCandidate' | 'NotCandidate' | 'TooManyInvulnerables' | 'TooFewInvulnerables' | 'AlreadyInvulnerable' | 'NotInvulnerable' | 'NoAssociatedValidatorId' | 'ValidatorNotRegistered'; - } - - /** @name OpalRuntimeRuntimeCommonSessionKeys (209) */ - interface OpalRuntimeRuntimeCommonSessionKeys extends Struct { - readonly aura: SpConsensusAuraSr25519AppSr25519Public; - } - - /** @name SpConsensusAuraSr25519AppSr25519Public (210) */ - interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {} - - /** @name SpCoreSr25519Public (211) */ - interface SpCoreSr25519Public extends U8aFixed {} - - /** @name SpCoreCryptoKeyTypeId (214) */ - interface SpCoreCryptoKeyTypeId extends U8aFixed {} - - /** @name PalletSessionCall (215) */ + /** @name PalletSessionCall (114) */ interface PalletSessionCall extends Enum { readonly isSetKeys: boolean; readonly asSetKeys: { - readonly keys_: OpalRuntimeRuntimeCommonSessionKeys; + readonly keys_: QuartzRuntimeRuntimeCommonSessionKeys; readonly proof: Bytes; } & Struct; readonly isPurgeKeys: boolean; readonly type: 'SetKeys' | 'PurgeKeys'; } - /** @name PalletSessionError (216) */ - interface PalletSessionError extends Enum { - readonly isInvalidProof: boolean; - readonly isNoAssociatedValidatorId: boolean; - readonly isDuplicatedKey: boolean; - readonly isNoKeys: boolean; - readonly isNoAccount: boolean; - readonly type: 'InvalidProof' | 'NoAssociatedValidatorId' | 'DuplicatedKey' | 'NoKeys' | 'NoAccount'; + /** @name QuartzRuntimeRuntimeCommonSessionKeys (115) */ + interface QuartzRuntimeRuntimeCommonSessionKeys extends Struct { + readonly aura: SpConsensusAuraSr25519AppSr25519Public; } - /** @name PalletBalancesBalanceLock (221) */ - interface PalletBalancesBalanceLock extends Struct { - readonly id: U8aFixed; - readonly amount: u128; - readonly reasons: PalletBalancesReasons; - } - - /** @name PalletBalancesReasons (222) */ - interface PalletBalancesReasons extends Enum { - readonly isFee: boolean; - readonly isMisc: boolean; - readonly isAll: boolean; - readonly type: 'Fee' | 'Misc' | 'All'; - } - - /** @name PalletBalancesReserveData (225) */ - interface PalletBalancesReserveData extends Struct { - readonly id: U8aFixed; - readonly amount: u128; - } + /** @name SpConsensusAuraSr25519AppSr25519Public (116) */ + interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {} - /** @name PalletBalancesIdAmount (228) */ - interface PalletBalancesIdAmount extends Struct { - readonly id: U8aFixed; - readonly amount: u128; - } + /** @name SpCoreSr25519Public (117) */ + interface SpCoreSr25519Public extends U8aFixed {} - /** @name PalletBalancesCall (231) */ + /** @name PalletBalancesCall (118) */ interface PalletBalancesCall extends Enum { readonly isTransferAllowDeath: boolean; readonly asTransferAllowDeath: { @@ -2274,22 +1459,7 @@ readonly type: 'TransferAllowDeath' | 'SetBalanceDeprecated' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve' | 'UpgradeAccounts' | 'Transfer' | 'ForceSetBalance'; } - /** @name PalletBalancesError (234) */ - interface PalletBalancesError extends Enum { - readonly isVestingBalance: boolean; - readonly isLiquidityRestrictions: boolean; - readonly isInsufficientBalance: boolean; - readonly isExistentialDeposit: boolean; - readonly isExpendability: boolean; - readonly isExistingVestingSchedule: boolean; - readonly isDeadAccount: boolean; - readonly isTooManyReserves: boolean; - readonly isTooManyHolds: boolean; - readonly isTooManyFreezes: boolean; - readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'Expendability' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves' | 'TooManyHolds' | 'TooManyFreezes'; - } - - /** @name PalletTimestampCall (235) */ + /** @name PalletTimestampCall (122) */ interface PalletTimestampCall extends Enum { readonly isSet: boolean; readonly asSet: { @@ -2298,22 +1468,7 @@ readonly type: 'Set'; } - /** @name PalletTransactionPaymentReleases (237) */ - interface PalletTransactionPaymentReleases extends Enum { - readonly isV1Ancient: boolean; - readonly isV2: boolean; - readonly type: 'V1Ancient' | 'V2'; - } - - /** @name PalletTreasuryProposal (238) */ - interface PalletTreasuryProposal extends Struct { - readonly proposer: AccountId32; - readonly value: u128; - readonly beneficiary: AccountId32; - readonly bond: u128; - } - - /** @name PalletTreasuryCall (240) */ + /** @name PalletTreasuryCall (123) */ interface PalletTreasuryCall extends Enum { readonly isProposeSpend: boolean; readonly asProposeSpend: { @@ -2338,22 +1493,9 @@ readonly proposalId: Compact; } & Struct; readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval'; - } - - /** @name FrameSupportPalletId (242) */ - interface FrameSupportPalletId extends U8aFixed {} - - /** @name PalletTreasuryError (243) */ - interface PalletTreasuryError extends Enum { - readonly isInsufficientProposersBalance: boolean; - readonly isInvalidIndex: boolean; - readonly isTooManyApprovals: boolean; - readonly isInsufficientPermission: boolean; - readonly isProposalNotApproved: boolean; - readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved'; } - /** @name PalletSudoCall (244) */ + /** @name PalletSudoCall (124) */ interface PalletSudoCall extends Enum { readonly isSudo: boolean; readonly asSudo: { @@ -2376,7 +1518,7 @@ readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs'; } - /** @name OrmlVestingModuleCall (246) */ + /** @name OrmlVestingModuleCall (125) */ interface OrmlVestingModuleCall extends Enum { readonly isClaim: boolean; readonly isVestedTransfer: boolean; @@ -2396,7 +1538,7 @@ readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor'; } - /** @name OrmlXtokensModuleCall (248) */ + /** @name OrmlXtokensModuleCall (127) */ interface OrmlXtokensModuleCall extends Enum { readonly isTransfer: boolean; readonly asTransfer: { @@ -2443,7 +1585,138 @@ readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets'; } - /** @name XcmVersionedMultiAsset (249) */ + /** @name XcmVersionedMultiLocation (128) */ + interface XcmVersionedMultiLocation extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2MultiLocation; + readonly isV3: boolean; + readonly asV3: XcmV3MultiLocation; + readonly type: 'V2' | 'V3'; + } + + /** @name XcmV2MultiLocation (129) */ + interface XcmV2MultiLocation extends Struct { + readonly parents: u8; + readonly interior: XcmV2MultilocationJunctions; + } + + /** @name XcmV2MultilocationJunctions (130) */ + interface XcmV2MultilocationJunctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: XcmV2Junction; + readonly isX2: boolean; + readonly asX2: ITuple<[XcmV2Junction, XcmV2Junction]>; + readonly isX3: boolean; + readonly asX3: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX4: boolean; + readonly asX4: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX5: boolean; + readonly asX5: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX6: boolean; + readonly asX6: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX7: boolean; + readonly asX7: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX8: boolean; + readonly asX8: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; + } + + /** @name XcmV2Junction (131) */ + interface XcmV2Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: XcmV2NetworkId; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: XcmV2NetworkId; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: XcmV2NetworkId; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: Bytes; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV2BodyId; + readonly part: XcmV2BodyPart; + } & Struct; + readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality'; + } + + /** @name XcmV2NetworkId (132) */ + interface XcmV2NetworkId extends Enum { + readonly isAny: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama'; + } + + /** @name XcmV2BodyId (134) */ + interface XcmV2BodyId extends Enum { + readonly isUnit: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial' | 'Defense' | 'Administration' | 'Treasury'; + } + + /** @name XcmV2BodyPart (135) */ + interface XcmV2BodyPart extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; + } + + /** @name XcmV3WeightLimit (136) */ + interface XcmV3WeightLimit extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: SpWeightsWeightV2Weight; + readonly type: 'Unlimited' | 'Limited'; + } + + /** @name XcmVersionedMultiAsset (137) */ interface XcmVersionedMultiAsset extends Enum { readonly isV2: boolean; readonly asV2: XcmV2MultiAsset; @@ -2452,7 +1725,61 @@ readonly type: 'V2' | 'V3'; } - /** @name OrmlTokensModuleCall (252) */ + /** @name XcmV2MultiAsset (138) */ + interface XcmV2MultiAsset extends Struct { + readonly id: XcmV2MultiassetAssetId; + readonly fun: XcmV2MultiassetFungibility; + } + + /** @name XcmV2MultiassetAssetId (139) */ + interface XcmV2MultiassetAssetId extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: XcmV2MultiLocation; + readonly isAbstract: boolean; + readonly asAbstract: Bytes; + readonly type: 'Concrete' | 'Abstract'; + } + + /** @name XcmV2MultiassetFungibility (140) */ + interface XcmV2MultiassetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: XcmV2MultiassetAssetInstance; + readonly type: 'Fungible' | 'NonFungible'; + } + + /** @name XcmV2MultiassetAssetInstance (141) */ + interface XcmV2MultiassetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly isBlob: boolean; + readonly asBlob: Bytes; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob'; + } + + /** @name XcmVersionedMultiAssets (144) */ + interface XcmVersionedMultiAssets extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2MultiassetMultiAssets; + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetMultiAssets; + readonly type: 'V2' | 'V3'; + } + + /** @name XcmV2MultiassetMultiAssets (145) */ + interface XcmV2MultiassetMultiAssets extends Vec {} + + /** @name OrmlTokensModuleCall (147) */ interface OrmlTokensModuleCall extends Enum { readonly isTransfer: boolean; readonly asTransfer: { @@ -2489,7 +1816,7 @@ readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance'; } - /** @name PalletIdentityCall (253) */ + /** @name PalletIdentityCall (148) */ interface PalletIdentityCall extends Enum { readonly isAddRegistrar: boolean; readonly asAddRegistrar: { @@ -2569,7 +1896,7 @@ readonly type: 'AddRegistrar' | 'SetIdentity' | 'SetSubs' | 'ClearIdentity' | 'RequestJudgement' | 'CancelRequest' | 'SetFee' | 'SetAccountId' | 'SetFields' | 'ProvideJudgement' | 'KillIdentity' | 'AddSub' | 'RenameSub' | 'RemoveSub' | 'QuitSub' | 'ForceInsertIdentities' | 'ForceRemoveIdentities' | 'ForceSetSubs'; } - /** @name PalletIdentityIdentityInfo (254) */ + /** @name PalletIdentityIdentityInfo (149) */ interface PalletIdentityIdentityInfo extends Struct { readonly additional: Vec>; readonly display: Data; @@ -2582,7 +1909,7 @@ readonly twitter: Data; } - /** @name PalletIdentityBitFlags (290) */ + /** @name PalletIdentityBitFlags (185) */ interface PalletIdentityBitFlags extends Set { readonly isDisplay: boolean; readonly isLegal: boolean; @@ -2594,7 +1921,7 @@ readonly isTwitter: boolean; } - /** @name PalletIdentityIdentityField (291) */ + /** @name PalletIdentityIdentityField (186) */ interface PalletIdentityIdentityField extends Enum { readonly isDisplay: boolean; readonly isLegal: boolean; @@ -2607,7 +1934,7 @@ readonly type: 'Display' | 'Legal' | 'Web' | 'Riot' | 'Email' | 'PgpFingerprint' | 'Image' | 'Twitter'; } - /** @name PalletIdentityJudgement (292) */ + /** @name PalletIdentityJudgement (187) */ interface PalletIdentityJudgement extends Enum { readonly isUnknown: boolean; readonly isFeePaid: boolean; @@ -2620,14 +1947,14 @@ readonly type: 'Unknown' | 'FeePaid' | 'Reasonable' | 'KnownGood' | 'OutOfDate' | 'LowQuality' | 'Erroneous'; } - /** @name PalletIdentityRegistration (295) */ + /** @name PalletIdentityRegistration (190) */ interface PalletIdentityRegistration extends Struct { readonly judgements: Vec>; readonly deposit: u128; readonly info: PalletIdentityIdentityInfo; } - /** @name PalletPreimageCall (303) */ + /** @name PalletPreimageCall (198) */ interface PalletPreimageCall extends Enum { readonly isNotePreimage: boolean; readonly asNotePreimage: { @@ -2648,7 +1975,374 @@ readonly type: 'NotePreimage' | 'UnnotePreimage' | 'RequestPreimage' | 'UnrequestPreimage'; } - /** @name CumulusPalletXcmpQueueCall (304) */ + /** @name PalletDemocracyCall (199) */ + interface PalletDemocracyCall extends Enum { + readonly isPropose: boolean; + readonly asPropose: { + readonly proposal: FrameSupportPreimagesBounded; + readonly value: Compact; + } & Struct; + readonly isSecond: boolean; + readonly asSecond: { + readonly proposal: Compact; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly refIndex: Compact; + readonly vote: PalletDemocracyVoteAccountVote; + } & Struct; + readonly isEmergencyCancel: boolean; + readonly asEmergencyCancel: { + readonly refIndex: u32; + } & Struct; + readonly isExternalPropose: boolean; + readonly asExternalPropose: { + readonly proposal: FrameSupportPreimagesBounded; + } & Struct; + readonly isExternalProposeMajority: boolean; + readonly asExternalProposeMajority: { + readonly proposal: FrameSupportPreimagesBounded; + } & Struct; + readonly isExternalProposeDefault: boolean; + readonly asExternalProposeDefault: { + readonly proposal: FrameSupportPreimagesBounded; + } & Struct; + readonly isFastTrack: boolean; + readonly asFastTrack: { + readonly proposalHash: H256; + readonly votingPeriod: u32; + readonly delay: u32; + } & Struct; + readonly isVetoExternal: boolean; + readonly asVetoExternal: { + readonly proposalHash: H256; + } & Struct; + readonly isCancelReferendum: boolean; + readonly asCancelReferendum: { + readonly refIndex: Compact; + } & Struct; + readonly isDelegate: boolean; + readonly asDelegate: { + readonly to: MultiAddress; + readonly conviction: PalletDemocracyConviction; + readonly balance: u128; + } & Struct; + readonly isUndelegate: boolean; + readonly isClearPublicProposals: boolean; + readonly isUnlock: boolean; + readonly asUnlock: { + readonly target: MultiAddress; + } & Struct; + readonly isRemoveVote: boolean; + readonly asRemoveVote: { + readonly index: u32; + } & Struct; + readonly isRemoveOtherVote: boolean; + readonly asRemoveOtherVote: { + readonly target: MultiAddress; + readonly index: u32; + } & Struct; + readonly isBlacklist: boolean; + readonly asBlacklist: { + readonly proposalHash: H256; + readonly maybeRefIndex: Option; + } & Struct; + readonly isCancelProposal: boolean; + readonly asCancelProposal: { + readonly propIndex: Compact; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly owner: PalletDemocracyMetadataOwner; + readonly maybeHash: Option; + } & Struct; + readonly type: 'Propose' | 'Second' | 'Vote' | 'EmergencyCancel' | 'ExternalPropose' | 'ExternalProposeMajority' | 'ExternalProposeDefault' | 'FastTrack' | 'VetoExternal' | 'CancelReferendum' | 'Delegate' | 'Undelegate' | 'ClearPublicProposals' | 'Unlock' | 'RemoveVote' | 'RemoveOtherVote' | 'Blacklist' | 'CancelProposal' | 'SetMetadata'; + } + + /** @name PalletDemocracyConviction (200) */ + interface PalletDemocracyConviction extends Enum { + readonly isNone: boolean; + readonly isLocked1x: boolean; + readonly isLocked2x: boolean; + readonly isLocked3x: boolean; + readonly isLocked4x: boolean; + readonly isLocked5x: boolean; + readonly isLocked6x: boolean; + readonly type: 'None' | 'Locked1x' | 'Locked2x' | 'Locked3x' | 'Locked4x' | 'Locked5x' | 'Locked6x'; + } + + /** @name PalletCollectiveCall (203) */ + interface PalletCollectiveCall extends Enum { + readonly isSetMembers: boolean; + readonly asSetMembers: { + readonly newMembers: Vec; + readonly prime: Option; + readonly oldCount: u32; + } & Struct; + readonly isExecute: boolean; + readonly asExecute: { + readonly proposal: Call; + readonly lengthBound: Compact; + } & Struct; + readonly isPropose: boolean; + readonly asPropose: { + readonly threshold: Compact; + readonly proposal: Call; + readonly lengthBound: Compact; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly proposal: H256; + readonly index: Compact; + readonly approve: bool; + } & Struct; + readonly isDisapproveProposal: boolean; + readonly asDisapproveProposal: { + readonly proposalHash: H256; + } & Struct; + readonly isClose: boolean; + readonly asClose: { + readonly proposalHash: H256; + readonly index: Compact; + readonly proposalWeightBound: SpWeightsWeightV2Weight; + readonly lengthBound: Compact; + } & Struct; + readonly type: 'SetMembers' | 'Execute' | 'Propose' | 'Vote' | 'DisapproveProposal' | 'Close'; + } + + /** @name PalletMembershipCall (205) */ + interface PalletMembershipCall extends Enum { + readonly isAddMember: boolean; + readonly asAddMember: { + readonly who: MultiAddress; + } & Struct; + readonly isRemoveMember: boolean; + readonly asRemoveMember: { + readonly who: MultiAddress; + } & Struct; + readonly isSwapMember: boolean; + readonly asSwapMember: { + readonly remove: MultiAddress; + readonly add: MultiAddress; + } & Struct; + readonly isResetMembers: boolean; + readonly asResetMembers: { + readonly members: Vec; + } & Struct; + readonly isChangeKey: boolean; + readonly asChangeKey: { + readonly new_: MultiAddress; + } & Struct; + readonly isSetPrime: boolean; + readonly asSetPrime: { + readonly who: MultiAddress; + } & Struct; + readonly isClearPrime: boolean; + readonly type: 'AddMember' | 'RemoveMember' | 'SwapMember' | 'ResetMembers' | 'ChangeKey' | 'SetPrime' | 'ClearPrime'; + } + + /** @name PalletRankedCollectiveCall (207) */ + interface PalletRankedCollectiveCall extends Enum { + readonly isAddMember: boolean; + readonly asAddMember: { + readonly who: MultiAddress; + } & Struct; + readonly isPromoteMember: boolean; + readonly asPromoteMember: { + readonly who: MultiAddress; + } & Struct; + readonly isDemoteMember: boolean; + readonly asDemoteMember: { + readonly who: MultiAddress; + } & Struct; + readonly isRemoveMember: boolean; + readonly asRemoveMember: { + readonly who: MultiAddress; + readonly minRank: u16; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly poll: u32; + readonly aye: bool; + } & Struct; + readonly isCleanupPoll: boolean; + readonly asCleanupPoll: { + readonly pollIndex: u32; + readonly max: u32; + } & Struct; + readonly type: 'AddMember' | 'PromoteMember' | 'DemoteMember' | 'RemoveMember' | 'Vote' | 'CleanupPoll'; + } + + /** @name PalletReferendaCall (208) */ + interface PalletReferendaCall extends Enum { + readonly isSubmit: boolean; + readonly asSubmit: { + readonly proposalOrigin: QuartzRuntimeOriginCaller; + readonly proposal: FrameSupportPreimagesBounded; + readonly enactmentMoment: FrameSupportScheduleDispatchTime; + } & Struct; + readonly isPlaceDecisionDeposit: boolean; + readonly asPlaceDecisionDeposit: { + readonly index: u32; + } & Struct; + readonly isRefundDecisionDeposit: boolean; + readonly asRefundDecisionDeposit: { + readonly index: u32; + } & Struct; + readonly isCancel: boolean; + readonly asCancel: { + readonly index: u32; + } & Struct; + readonly isKill: boolean; + readonly asKill: { + readonly index: u32; + } & Struct; + readonly isNudgeReferendum: boolean; + readonly asNudgeReferendum: { + readonly index: u32; + } & Struct; + readonly isOneFewerDeciding: boolean; + readonly asOneFewerDeciding: { + readonly track: u16; + } & Struct; + readonly isRefundSubmissionDeposit: boolean; + readonly asRefundSubmissionDeposit: { + readonly index: u32; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly index: u32; + readonly maybeHash: Option; + } & Struct; + readonly type: 'Submit' | 'PlaceDecisionDeposit' | 'RefundDecisionDeposit' | 'Cancel' | 'Kill' | 'NudgeReferendum' | 'OneFewerDeciding' | 'RefundSubmissionDeposit' | 'SetMetadata'; + } + + /** @name QuartzRuntimeOriginCaller (209) */ + interface QuartzRuntimeOriginCaller extends Enum { + readonly isSystem: boolean; + readonly asSystem: FrameSupportDispatchRawOrigin; + readonly isVoid: boolean; + readonly isCouncil: boolean; + readonly asCouncil: PalletCollectiveRawOrigin; + readonly isTechnicalCommittee: boolean; + readonly asTechnicalCommittee: PalletCollectiveRawOrigin; + readonly isPolkadotXcm: boolean; + readonly asPolkadotXcm: PalletXcmOrigin; + readonly isCumulusXcm: boolean; + readonly asCumulusXcm: CumulusPalletXcmOrigin; + readonly isOrigins: boolean; + readonly asOrigins: PalletGovOriginsOrigin; + readonly isEthereum: boolean; + readonly asEthereum: PalletEthereumRawOrigin; + readonly type: 'System' | 'Void' | 'Council' | 'TechnicalCommittee' | 'PolkadotXcm' | 'CumulusXcm' | 'Origins' | 'Ethereum'; + } + + /** @name FrameSupportDispatchRawOrigin (210) */ + interface FrameSupportDispatchRawOrigin extends Enum { + readonly isRoot: boolean; + readonly isSigned: boolean; + readonly asSigned: AccountId32; + readonly isNone: boolean; + readonly type: 'Root' | 'Signed' | 'None'; + } + + /** @name PalletCollectiveRawOrigin (211) */ + interface PalletCollectiveRawOrigin extends Enum { + readonly isMembers: boolean; + readonly asMembers: ITuple<[u32, u32]>; + readonly isMember: boolean; + readonly asMember: AccountId32; + readonly isPhantom: boolean; + readonly type: 'Members' | 'Member' | 'Phantom'; + } + + /** @name PalletGovOriginsOrigin (213) */ + interface PalletGovOriginsOrigin extends Enum { + readonly isFellowshipProposition: boolean; + readonly type: 'FellowshipProposition'; + } + + /** @name PalletXcmOrigin (214) */ + interface PalletXcmOrigin extends Enum { + readonly isXcm: boolean; + readonly asXcm: XcmV3MultiLocation; + readonly isResponse: boolean; + readonly asResponse: XcmV3MultiLocation; + readonly type: 'Xcm' | 'Response'; + } + + /** @name CumulusPalletXcmOrigin (215) */ + interface CumulusPalletXcmOrigin extends Enum { + readonly isRelay: boolean; + readonly isSiblingParachain: boolean; + readonly asSiblingParachain: u32; + readonly type: 'Relay' | 'SiblingParachain'; + } + + /** @name PalletEthereumRawOrigin (216) */ + interface PalletEthereumRawOrigin extends Enum { + readonly isEthereumTransaction: boolean; + readonly asEthereumTransaction: H160; + readonly type: 'EthereumTransaction'; + } + + /** @name SpCoreVoid (218) */ + type SpCoreVoid = Null; + + /** @name FrameSupportScheduleDispatchTime (219) */ + interface FrameSupportScheduleDispatchTime extends Enum { + readonly isAt: boolean; + readonly asAt: u32; + readonly isAfter: boolean; + readonly asAfter: u32; + readonly type: 'At' | 'After'; + } + + /** @name PalletSchedulerCall (220) */ + interface PalletSchedulerCall extends Enum { + readonly isSchedule: boolean; + readonly asSchedule: { + readonly when: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: Call; + } & Struct; + readonly isCancel: boolean; + readonly asCancel: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isScheduleNamed: boolean; + readonly asScheduleNamed: { + readonly id: U8aFixed; + readonly when: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: Call; + } & Struct; + readonly isCancelNamed: boolean; + readonly asCancelNamed: { + readonly id: U8aFixed; + } & Struct; + readonly isScheduleAfter: boolean; + readonly asScheduleAfter: { + readonly after: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: Call; + } & Struct; + readonly isScheduleNamedAfter: boolean; + readonly asScheduleNamedAfter: { + readonly id: U8aFixed; + readonly after: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: Call; + } & Struct; + readonly type: 'Schedule' | 'Cancel' | 'ScheduleNamed' | 'CancelNamed' | 'ScheduleAfter' | 'ScheduleNamedAfter'; + } + + /** @name CumulusPalletXcmpQueueCall (223) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isServiceOverweight: boolean; readonly asServiceOverweight: { @@ -2684,7 +2378,7 @@ readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight'; } - /** @name PalletXcmCall (305) */ + /** @name PalletXcmCall (224) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -2750,7 +2444,7 @@ readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets' | 'ForceSuspension'; } - /** @name XcmVersionedXcm (306) */ + /** @name XcmVersionedXcm (225) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -2759,10 +2453,10 @@ readonly type: 'V2' | 'V3'; } - /** @name XcmV2Xcm (307) */ + /** @name XcmV2Xcm (226) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (309) */ + /** @name XcmV2Instruction (228) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -2882,7 +2576,7 @@ 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'; } - /** @name XcmV2Response (310) */ + /** @name XcmV2Response (229) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -2894,7 +2588,7 @@ readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version'; } - /** @name XcmV2TraitsError (313) */ + /** @name XcmV2TraitsError (232) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -2927,7 +2621,21 @@ 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'; } - /** @name XcmV2MultiassetMultiAssetFilter (314) */ + /** @name XcmV2OriginKind (233) */ + interface XcmV2OriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm'; + } + + /** @name XcmDoubleEncoded (234) */ + interface XcmDoubleEncoded extends Struct { + readonly encoded: Bytes; + } + + /** @name XcmV2MultiassetMultiAssetFilter (235) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -2936,7 +2644,7 @@ readonly type: 'Definite' | 'Wild'; } - /** @name XcmV2MultiassetWildMultiAsset (315) */ + /** @name XcmV2MultiassetWildMultiAsset (236) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -2947,14 +2655,14 @@ readonly type: 'All' | 'AllOf'; } - /** @name XcmV2MultiassetWildFungibility (316) */ + /** @name XcmV2MultiassetWildFungibility (237) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: 'Fungible' | 'NonFungible'; } - /** @name XcmV2WeightLimit (317) */ + /** @name XcmV2WeightLimit (238) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; @@ -2962,10 +2670,320 @@ readonly type: 'Unlimited' | 'Limited'; } - /** @name CumulusPalletXcmCall (326) */ + /** @name XcmV3Xcm (239) */ + interface XcmV3Xcm extends Vec {} + + /** @name XcmV3Instruction (241) */ + interface XcmV3Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: XcmV3MultiassetMultiAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: XcmV3MultiassetMultiAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: XcmV3Response; + readonly maxWeight: SpWeightsWeightV2Weight; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly beneficiary: XcmV3MultiLocation; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly dest: XcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmV2OriginKind; + readonly requireWeightAtMost: SpWeightsWeightV2Weight; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: XcmV3Junctions; + readonly isReportError: boolean; + readonly asReportError: XcmV3QueryResponseInfo; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly beneficiary: XcmV3MultiLocation; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly dest: XcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: XcmV3MultiassetMultiAssetFilter; + readonly want: XcmV3MultiassetMultiAssets; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly reserve: XcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly dest: XcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: XcmV3QueryResponseInfo; + readonly assets: XcmV3MultiassetMultiAssetFilter; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: XcmV3MultiAsset; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV3Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV3Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly ticket: XcmV3MultiLocation; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: XcmV3MultiassetMultiAssets; + readonly isExpectAsset: boolean; + readonly asExpectAsset: XcmV3MultiassetMultiAssets; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: XcmV3MaybeErrorCode; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: XcmV3QueryResponseInfo; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: XcmV3QueryResponseInfo; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: XcmV3Junction; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: XcmV3JunctionNetworkId; + readonly destination: XcmV3Junctions; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: XcmV3MultiAsset; + readonly unlocker: XcmV3MultiLocation; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: XcmV3MultiAsset; + readonly target: XcmV3MultiLocation; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: XcmV3MultiAsset; + readonly owner: XcmV3MultiLocation; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: XcmV3MultiAsset; + readonly locker: XcmV3MultiLocation; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: XcmV3MultiLocation; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: XcmV3WeightLimit; + readonly checkOrigin: Option; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPallet' | 'ExpectPallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution'; + } + + /** @name XcmV3Response (242) */ + interface XcmV3Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: XcmV3MultiassetMultiAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: XcmV3MaybeErrorCode; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PalletsInfo' | 'DispatchResult'; + } + + /** @name XcmV3TraitsError (245) */ + interface XcmV3TraitsError extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isLocationFull: boolean; + readonly isLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isExpectationFalse: boolean; + readonly isPalletNotFound: boolean; + readonly isNameMismatch: boolean; + readonly isVersionIncompatible: boolean; + readonly isHoldingWouldOverflow: boolean; + readonly isExportError: boolean; + readonly isReanchorFailed: boolean; + readonly isNoDeal: boolean; + readonly isFeesNotMet: boolean; + readonly isLockError: boolean; + readonly isNoPermission: boolean; + readonly isUnanchored: boolean; + readonly isNotDepositable: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: SpWeightsWeightV2Weight; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly isExceedsStackLimit: boolean; + readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'LocationFull' | 'LocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'ExpectationFalse' | 'PalletNotFound' | 'NameMismatch' | 'VersionIncompatible' | 'HoldingWouldOverflow' | 'ExportError' | 'ReanchorFailed' | 'NoDeal' | 'FeesNotMet' | 'LockError' | 'NoPermission' | 'Unanchored' | 'NotDepositable' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable' | 'ExceedsStackLimit'; + } + + /** @name XcmV3PalletInfo (247) */ + interface XcmV3PalletInfo extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; + } + + /** @name XcmV3MaybeErrorCode (250) */ + interface XcmV3MaybeErrorCode extends Enum { + readonly isSuccess: boolean; + readonly isError: boolean; + readonly asError: Bytes; + readonly isTruncatedError: boolean; + readonly asTruncatedError: Bytes; + readonly type: 'Success' | 'Error' | 'TruncatedError'; + } + + /** @name XcmV3QueryResponseInfo (253) */ + interface XcmV3QueryResponseInfo extends Struct { + readonly destination: XcmV3MultiLocation; + readonly queryId: Compact; + readonly maxWeight: SpWeightsWeightV2Weight; + } + + /** @name XcmV3MultiassetMultiAssetFilter (254) */ + interface XcmV3MultiassetMultiAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: XcmV3MultiassetMultiAssets; + readonly isWild: boolean; + readonly asWild: XcmV3MultiassetWildMultiAsset; + readonly type: 'Definite' | 'Wild'; + } + + /** @name XcmV3MultiassetWildMultiAsset (255) */ + interface XcmV3MultiassetWildMultiAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetWildFungibility; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetWildFungibility; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; + } + + /** @name XcmV3MultiassetWildFungibility (256) */ + interface XcmV3MultiassetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: 'Fungible' | 'NonFungible'; + } + + /** @name CumulusPalletXcmCall (265) */ type CumulusPalletXcmCall = Null; - /** @name CumulusPalletDmpQueueCall (327) */ + /** @name CumulusPalletDmpQueueCall (266) */ interface CumulusPalletDmpQueueCall extends Enum { readonly isServiceOverweight: boolean; readonly asServiceOverweight: { @@ -2975,7 +2993,7 @@ readonly type: 'ServiceOverweight'; } - /** @name PalletInflationCall (328) */ + /** @name PalletInflationCall (267) */ interface PalletInflationCall extends Enum { readonly isStartInflation: boolean; readonly asStartInflation: { @@ -2984,7 +3002,7 @@ readonly type: 'StartInflation'; } - /** @name PalletUniqueCall (329) */ + /** @name PalletUniqueCall (268) */ interface PalletUniqueCall extends Enum { readonly isCreateCollection: boolean; readonly asCreateCollection: { @@ -3165,7 +3183,7 @@ 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' | 'ApproveFrom' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'ForceRepairCollection' | 'ForceRepairItem'; } - /** @name UpDataStructsCollectionMode (334) */ + /** @name UpDataStructsCollectionMode (273) */ interface UpDataStructsCollectionMode extends Enum { readonly isNft: boolean; readonly isFungible: boolean; @@ -3174,7 +3192,7 @@ readonly type: 'Nft' | 'Fungible' | 'ReFungible'; } - /** @name UpDataStructsCreateCollectionData (335) */ + /** @name UpDataStructsCreateCollectionData (274) */ interface UpDataStructsCreateCollectionData extends Struct { readonly mode: UpDataStructsCollectionMode; readonly access: Option; @@ -3190,14 +3208,23 @@ readonly flags: U8aFixed; } - /** @name UpDataStructsAccessMode (337) */ + /** @name PalletEvmAccountBasicCrossAccountIdRepr (275) */ + interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum { + readonly isSubstrate: boolean; + readonly asSubstrate: AccountId32; + readonly isEthereum: boolean; + readonly asEthereum: H160; + readonly type: 'Substrate' | 'Ethereum'; + } + + /** @name UpDataStructsAccessMode (277) */ interface UpDataStructsAccessMode extends Enum { readonly isNormal: boolean; readonly isAllowList: boolean; readonly type: 'Normal' | 'AllowList'; } - /** @name UpDataStructsCollectionLimits (339) */ + /** @name UpDataStructsCollectionLimits (279) */ interface UpDataStructsCollectionLimits extends Struct { readonly accountTokenOwnershipLimit: Option; readonly sponsoredDataSize: Option; @@ -3210,7 +3237,7 @@ readonly transfersEnabled: Option; } - /** @name UpDataStructsSponsoringRateLimit (341) */ + /** @name UpDataStructsSponsoringRateLimit (281) */ interface UpDataStructsSponsoringRateLimit extends Enum { readonly isSponsoringDisabled: boolean; readonly isBlocks: boolean; @@ -3218,43 +3245,43 @@ readonly type: 'SponsoringDisabled' | 'Blocks'; } - /** @name UpDataStructsCollectionPermissions (344) */ + /** @name UpDataStructsCollectionPermissions (284) */ interface UpDataStructsCollectionPermissions extends Struct { readonly access: Option; readonly mintMode: Option; readonly nesting: Option; } - /** @name UpDataStructsNestingPermissions (346) */ + /** @name UpDataStructsNestingPermissions (286) */ interface UpDataStructsNestingPermissions extends Struct { readonly tokenOwner: bool; readonly collectionAdmin: bool; readonly restricted: Option; } - /** @name UpDataStructsOwnerRestrictedSet (348) */ + /** @name UpDataStructsOwnerRestrictedSet (288) */ interface UpDataStructsOwnerRestrictedSet extends BTreeSet {} - /** @name UpDataStructsPropertyKeyPermission (353) */ + /** @name UpDataStructsPropertyKeyPermission (294) */ interface UpDataStructsPropertyKeyPermission extends Struct { readonly key: Bytes; readonly permission: UpDataStructsPropertyPermission; } - /** @name UpDataStructsPropertyPermission (354) */ + /** @name UpDataStructsPropertyPermission (296) */ interface UpDataStructsPropertyPermission extends Struct { readonly mutable: bool; readonly collectionAdmin: bool; readonly tokenOwner: bool; } - /** @name UpDataStructsProperty (357) */ + /** @name UpDataStructsProperty (299) */ interface UpDataStructsProperty extends Struct { readonly key: Bytes; readonly value: Bytes; } - /** @name UpDataStructsCreateItemData (362) */ + /** @name UpDataStructsCreateItemData (304) */ interface UpDataStructsCreateItemData extends Enum { readonly isNft: boolean; readonly asNft: UpDataStructsCreateNftData; @@ -3265,23 +3292,23 @@ readonly type: 'Nft' | 'Fungible' | 'ReFungible'; } - /** @name UpDataStructsCreateNftData (363) */ + /** @name UpDataStructsCreateNftData (305) */ interface UpDataStructsCreateNftData extends Struct { readonly properties: Vec; } - /** @name UpDataStructsCreateFungibleData (364) */ + /** @name UpDataStructsCreateFungibleData (306) */ interface UpDataStructsCreateFungibleData extends Struct { readonly value: u128; } - /** @name UpDataStructsCreateReFungibleData (365) */ + /** @name UpDataStructsCreateReFungibleData (307) */ interface UpDataStructsCreateReFungibleData extends Struct { readonly pieces: u128; readonly properties: Vec; } - /** @name UpDataStructsCreateItemExData (368) */ + /** @name UpDataStructsCreateItemExData (311) */ interface UpDataStructsCreateItemExData extends Enum { readonly isNft: boolean; readonly asNft: Vec; @@ -3294,26 +3321,26 @@ readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners'; } - /** @name UpDataStructsCreateNftExData (370) */ + /** @name UpDataStructsCreateNftExData (313) */ interface UpDataStructsCreateNftExData extends Struct { readonly properties: Vec; readonly owner: PalletEvmAccountBasicCrossAccountIdRepr; } - /** @name UpDataStructsCreateRefungibleExSingleOwner (377) */ + /** @name UpDataStructsCreateRefungibleExSingleOwner (320) */ interface UpDataStructsCreateRefungibleExSingleOwner extends Struct { readonly user: PalletEvmAccountBasicCrossAccountIdRepr; readonly pieces: u128; readonly properties: Vec; } - /** @name UpDataStructsCreateRefungibleExMultipleOwners (379) */ + /** @name UpDataStructsCreateRefungibleExMultipleOwners (322) */ interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct { readonly users: BTreeMap; readonly properties: Vec; } - /** @name PalletConfigurationCall (380) */ + /** @name PalletConfigurationCall (323) */ interface PalletConfigurationCall extends Enum { readonly isSetWeightToFeeCoefficientOverride: boolean; readonly asSetWeightToFeeCoefficientOverride: { @@ -3342,7 +3369,7 @@ readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride' | 'SetAppPromotionConfigurationOverride' | 'SetCollatorSelectionDesiredCollators' | 'SetCollatorSelectionLicenseBond' | 'SetCollatorSelectionKickThreshold'; } - /** @name PalletConfigurationAppPromotionConfiguration (382) */ + /** @name PalletConfigurationAppPromotionConfiguration (325) */ interface PalletConfigurationAppPromotionConfiguration extends Struct { readonly recalculationInterval: Option; readonly pendingInterval: Option; @@ -3350,10 +3377,10 @@ readonly maxStakersPerCalculation: Option; } - /** @name PalletStructureCall (386) */ + /** @name PalletStructureCall (330) */ type PalletStructureCall = Null; - /** @name PalletAppPromotionCall (387) */ + /** @name PalletAppPromotionCall (331) */ interface PalletAppPromotionCall extends Enum { readonly isSetAdminAddress: boolean; readonly asSetAdminAddress: { @@ -3395,7 +3422,7 @@ readonly type: 'SetAdminAddress' | 'Stake' | 'UnstakeAll' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers' | 'UnstakePartial' | 'ForceUnstake'; } - /** @name PalletForeignAssetsModuleCall (388) */ + /** @name PalletForeignAssetsModuleCall (333) */ interface PalletForeignAssetsModuleCall extends Enum { readonly isRegisterForeignAsset: boolean; readonly asRegisterForeignAsset: { @@ -3412,7 +3439,15 @@ readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset'; } - /** @name PalletEvmCall (389) */ + /** @name PalletForeignAssetsModuleAssetMetadata (334) */ + interface PalletForeignAssetsModuleAssetMetadata extends Struct { + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly minimalBalance: u128; + } + + /** @name PalletEvmCall (337) */ interface PalletEvmCall extends Enum { readonly isWithdraw: boolean; readonly asWithdraw: { @@ -3457,7 +3492,7 @@ readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2'; } - /** @name PalletEthereumCall (395) */ + /** @name PalletEthereumCall (344) */ interface PalletEthereumCall extends Enum { readonly isTransact: boolean; readonly asTransact: { @@ -3466,7 +3501,7 @@ readonly type: 'Transact'; } - /** @name EthereumTransactionTransactionV2 (396) */ + /** @name EthereumTransactionTransactionV2 (345) */ interface EthereumTransactionTransactionV2 extends Enum { readonly isLegacy: boolean; readonly asLegacy: EthereumTransactionLegacyTransaction; @@ -3477,7 +3512,7 @@ readonly type: 'Legacy' | 'Eip2930' | 'Eip1559'; } - /** @name EthereumTransactionLegacyTransaction (397) */ + /** @name EthereumTransactionLegacyTransaction (346) */ interface EthereumTransactionLegacyTransaction extends Struct { readonly nonce: U256; readonly gasPrice: U256; @@ -3488,7 +3523,7 @@ readonly signature: EthereumTransactionTransactionSignature; } - /** @name EthereumTransactionTransactionAction (398) */ + /** @name EthereumTransactionTransactionAction (347) */ interface EthereumTransactionTransactionAction extends Enum { readonly isCall: boolean; readonly asCall: H160; @@ -3496,14 +3531,14 @@ readonly type: 'Call' | 'Create'; } - /** @name EthereumTransactionTransactionSignature (399) */ + /** @name EthereumTransactionTransactionSignature (348) */ interface EthereumTransactionTransactionSignature extends Struct { readonly v: u64; readonly r: H256; readonly s: H256; } - /** @name EthereumTransactionEip2930Transaction (401) */ + /** @name EthereumTransactionEip2930Transaction (350) */ interface EthereumTransactionEip2930Transaction extends Struct { readonly chainId: u64; readonly nonce: U256; @@ -3518,13 +3553,13 @@ readonly s: H256; } - /** @name EthereumTransactionAccessListItem (403) */ + /** @name EthereumTransactionAccessListItem (352) */ interface EthereumTransactionAccessListItem extends Struct { readonly address: H160; readonly storageKeys: Vec; } - /** @name EthereumTransactionEip1559Transaction (404) */ + /** @name EthereumTransactionEip1559Transaction (353) */ interface EthereumTransactionEip1559Transaction extends Struct { readonly chainId: u64; readonly nonce: U256; @@ -3540,7 +3575,7 @@ readonly s: H256; } - /** @name PalletEvmContractHelpersCall (405) */ + /** @name PalletEvmContractHelpersCall (354) */ interface PalletEvmContractHelpersCall extends Enum { readonly isMigrateFromSelfSponsoring: boolean; readonly asMigrateFromSelfSponsoring: { @@ -3549,7 +3584,7 @@ readonly type: 'MigrateFromSelfSponsoring'; } - /** @name PalletEvmMigrationCall (407) */ + /** @name PalletEvmMigrationCall (356) */ interface PalletEvmMigrationCall extends Enum { readonly isBegin: boolean; readonly asBegin: { @@ -3577,7 +3612,14 @@ readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents' | 'RemoveRmrkData'; } - /** @name PalletMaintenanceCall (411) */ + /** @name EthereumLog (360) */ + interface EthereumLog extends Struct { + readonly address: H160; + readonly topics: Vec; + readonly data: Bytes; + } + + /** @name PalletMaintenanceCall (361) */ interface PalletMaintenanceCall extends Enum { readonly isEnable: boolean; readonly isDisable: boolean; @@ -3589,7 +3631,7 @@ readonly type: 'Enable' | 'Disable' | 'ExecutePreimage'; } - /** @name PalletTestUtilsCall (412) */ + /** @name PalletTestUtilsCall (362) */ interface PalletTestUtilsCall extends Enum { readonly isEnable: boolean; readonly isSetTestValue: boolean; @@ -3609,13 +3651,692 @@ readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'JustTakeFee' | 'BatchAll'; } - /** @name PalletSudoError (414) */ + /** @name PalletSchedulerEvent (365) */ + interface PalletSchedulerEvent extends Enum { + readonly isScheduled: boolean; + readonly asScheduled: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isCanceled: boolean; + readonly asCanceled: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isDispatched: boolean; + readonly asDispatched: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + readonly result: Result; + } & Struct; + readonly isCallUnavailable: boolean; + readonly asCallUnavailable: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isPeriodicFailed: boolean; + readonly asPeriodicFailed: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isPermanentlyOverweight: boolean; + readonly asPermanentlyOverweight: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallUnavailable' | 'PeriodicFailed' | 'PermanentlyOverweight'; + } + + /** @name CumulusPalletXcmpQueueEvent (366) */ + interface CumulusPalletXcmpQueueEvent extends Enum { + readonly isSuccess: boolean; + readonly asSuccess: { + readonly messageHash: Option; + readonly weight: SpWeightsWeightV2Weight; + } & Struct; + readonly isFail: boolean; + readonly asFail: { + readonly messageHash: Option; + readonly error: XcmV3TraitsError; + readonly weight: SpWeightsWeightV2Weight; + } & Struct; + readonly isBadVersion: boolean; + readonly asBadVersion: { + readonly messageHash: Option; + } & Struct; + readonly isBadFormat: boolean; + readonly asBadFormat: { + readonly messageHash: Option; + } & Struct; + readonly isXcmpMessageSent: boolean; + readonly asXcmpMessageSent: { + readonly messageHash: Option; + } & Struct; + readonly isOverweightEnqueued: boolean; + readonly asOverweightEnqueued: { + readonly sender: u32; + readonly sentAt: u32; + readonly index: u64; + readonly required: SpWeightsWeightV2Weight; + } & Struct; + readonly isOverweightServiced: boolean; + readonly asOverweightServiced: { + readonly index: u64; + readonly used: SpWeightsWeightV2Weight; + } & Struct; + readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced'; + } + + /** @name PalletXcmEvent (367) */ + interface PalletXcmEvent extends Enum { + readonly isAttempted: boolean; + readonly asAttempted: XcmV3TraitsOutcome; + readonly isSent: boolean; + readonly asSent: ITuple<[XcmV3MultiLocation, XcmV3MultiLocation, XcmV3Xcm]>; + readonly isUnexpectedResponse: boolean; + readonly asUnexpectedResponse: ITuple<[XcmV3MultiLocation, u64]>; + readonly isResponseReady: boolean; + readonly asResponseReady: ITuple<[u64, XcmV3Response]>; + readonly isNotified: boolean; + readonly asNotified: ITuple<[u64, u8, u8]>; + readonly isNotifyOverweight: boolean; + readonly asNotifyOverweight: ITuple<[u64, u8, u8, SpWeightsWeightV2Weight, SpWeightsWeightV2Weight]>; + readonly isNotifyDispatchError: boolean; + readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>; + readonly isNotifyDecodeFailed: boolean; + readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>; + readonly isInvalidResponder: boolean; + readonly asInvalidResponder: ITuple<[XcmV3MultiLocation, u64, Option]>; + readonly isInvalidResponderVersion: boolean; + readonly asInvalidResponderVersion: ITuple<[XcmV3MultiLocation, u64]>; + readonly isResponseTaken: boolean; + readonly asResponseTaken: u64; + readonly isAssetsTrapped: boolean; + readonly asAssetsTrapped: ITuple<[H256, XcmV3MultiLocation, XcmVersionedMultiAssets]>; + readonly isVersionChangeNotified: boolean; + readonly asVersionChangeNotified: ITuple<[XcmV3MultiLocation, u32, XcmV3MultiassetMultiAssets]>; + readonly isSupportedVersionChanged: boolean; + readonly asSupportedVersionChanged: ITuple<[XcmV3MultiLocation, u32]>; + readonly isNotifyTargetSendFail: boolean; + readonly asNotifyTargetSendFail: ITuple<[XcmV3MultiLocation, u64, XcmV3TraitsError]>; + readonly isNotifyTargetMigrationFail: boolean; + readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>; + readonly isInvalidQuerierVersion: boolean; + readonly asInvalidQuerierVersion: ITuple<[XcmV3MultiLocation, u64]>; + readonly isInvalidQuerier: boolean; + readonly asInvalidQuerier: ITuple<[XcmV3MultiLocation, u64, XcmV3MultiLocation, Option]>; + readonly isVersionNotifyStarted: boolean; + readonly asVersionNotifyStarted: ITuple<[XcmV3MultiLocation, XcmV3MultiassetMultiAssets]>; + readonly isVersionNotifyRequested: boolean; + readonly asVersionNotifyRequested: ITuple<[XcmV3MultiLocation, XcmV3MultiassetMultiAssets]>; + readonly isVersionNotifyUnrequested: boolean; + readonly asVersionNotifyUnrequested: ITuple<[XcmV3MultiLocation, XcmV3MultiassetMultiAssets]>; + readonly isFeesPaid: boolean; + readonly asFeesPaid: ITuple<[XcmV3MultiLocation, XcmV3MultiassetMultiAssets]>; + readonly isAssetsClaimed: boolean; + readonly asAssetsClaimed: ITuple<[H256, XcmV3MultiLocation, XcmVersionedMultiAssets]>; + readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail' | 'InvalidQuerierVersion' | 'InvalidQuerier' | 'VersionNotifyStarted' | 'VersionNotifyRequested' | 'VersionNotifyUnrequested' | 'FeesPaid' | 'AssetsClaimed'; + } + + /** @name XcmV3TraitsOutcome (368) */ + interface XcmV3TraitsOutcome extends Enum { + readonly isComplete: boolean; + readonly asComplete: SpWeightsWeightV2Weight; + readonly isIncomplete: boolean; + readonly asIncomplete: ITuple<[SpWeightsWeightV2Weight, XcmV3TraitsError]>; + readonly isError: boolean; + readonly asError: XcmV3TraitsError; + readonly type: 'Complete' | 'Incomplete' | 'Error'; + } + + /** @name CumulusPalletXcmEvent (369) */ + interface CumulusPalletXcmEvent extends Enum { + readonly isInvalidFormat: boolean; + readonly asInvalidFormat: U8aFixed; + readonly isUnsupportedVersion: boolean; + readonly asUnsupportedVersion: U8aFixed; + readonly isExecutedDownward: boolean; + readonly asExecutedDownward: ITuple<[U8aFixed, XcmV3TraitsOutcome]>; + readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward'; + } + + /** @name CumulusPalletDmpQueueEvent (370) */ + interface CumulusPalletDmpQueueEvent extends Enum { + readonly isInvalidFormat: boolean; + readonly asInvalidFormat: { + readonly messageId: U8aFixed; + } & Struct; + readonly isUnsupportedVersion: boolean; + readonly asUnsupportedVersion: { + readonly messageId: U8aFixed; + } & Struct; + readonly isExecutedDownward: boolean; + readonly asExecutedDownward: { + readonly messageId: U8aFixed; + readonly outcome: XcmV3TraitsOutcome; + } & Struct; + readonly isWeightExhausted: boolean; + readonly asWeightExhausted: { + readonly messageId: U8aFixed; + readonly remainingWeight: SpWeightsWeightV2Weight; + readonly requiredWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isOverweightEnqueued: boolean; + readonly asOverweightEnqueued: { + readonly messageId: U8aFixed; + readonly overweightIndex: u64; + readonly requiredWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isOverweightServiced: boolean; + readonly asOverweightServiced: { + readonly overweightIndex: u64; + readonly weightUsed: SpWeightsWeightV2Weight; + } & Struct; + readonly isMaxMessagesExhausted: boolean; + readonly asMaxMessagesExhausted: { + readonly messageId: U8aFixed; + } & Struct; + readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced' | 'MaxMessagesExhausted'; + } + + /** @name PalletConfigurationEvent (371) */ + interface PalletConfigurationEvent extends Enum { + readonly isNewDesiredCollators: boolean; + readonly asNewDesiredCollators: { + readonly desiredCollators: Option; + } & Struct; + readonly isNewCollatorLicenseBond: boolean; + readonly asNewCollatorLicenseBond: { + readonly bondCost: Option; + } & Struct; + readonly isNewCollatorKickThreshold: boolean; + readonly asNewCollatorKickThreshold: { + readonly lengthInBlocks: Option; + } & Struct; + readonly type: 'NewDesiredCollators' | 'NewCollatorLicenseBond' | 'NewCollatorKickThreshold'; + } + + /** @name PalletCommonEvent (372) */ + interface PalletCommonEvent extends Enum { + readonly isCollectionCreated: boolean; + readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>; + readonly isCollectionDestroyed: boolean; + readonly asCollectionDestroyed: u32; + readonly isItemCreated: boolean; + readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>; + readonly isItemDestroyed: boolean; + readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>; + readonly isTransfer: boolean; + readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>; + readonly isApproved: boolean; + readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>; + readonly isApprovedForAll: boolean; + readonly asApprovedForAll: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, bool]>; + readonly isCollectionPropertySet: boolean; + readonly asCollectionPropertySet: ITuple<[u32, Bytes]>; + readonly isCollectionPropertyDeleted: boolean; + readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>; + readonly isTokenPropertySet: boolean; + readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>; + readonly isTokenPropertyDeleted: boolean; + readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>; + readonly isPropertyPermissionSet: boolean; + readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>; + readonly isAllowListAddressAdded: boolean; + readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>; + readonly isAllowListAddressRemoved: boolean; + readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>; + readonly isCollectionAdminAdded: boolean; + readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>; + readonly isCollectionAdminRemoved: boolean; + readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>; + readonly isCollectionLimitSet: boolean; + readonly asCollectionLimitSet: u32; + readonly isCollectionOwnerChanged: boolean; + readonly asCollectionOwnerChanged: ITuple<[u32, AccountId32]>; + readonly isCollectionPermissionSet: boolean; + readonly asCollectionPermissionSet: u32; + readonly isCollectionSponsorSet: boolean; + readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>; + readonly isSponsorshipConfirmed: boolean; + readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>; + readonly isCollectionSponsorRemoved: boolean; + readonly asCollectionSponsorRemoved: u32; + readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'ApprovedForAll' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet' | 'AllowListAddressAdded' | 'AllowListAddressRemoved' | 'CollectionAdminAdded' | 'CollectionAdminRemoved' | 'CollectionLimitSet' | 'CollectionOwnerChanged' | 'CollectionPermissionSet' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionSponsorRemoved'; + } + + /** @name PalletStructureEvent (373) */ + interface PalletStructureEvent extends Enum { + readonly isExecuted: boolean; + readonly asExecuted: Result; + readonly type: 'Executed'; + } + + /** @name PalletAppPromotionEvent (374) */ + interface PalletAppPromotionEvent extends Enum { + readonly isStakingRecalculation: boolean; + readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>; + readonly isStake: boolean; + readonly asStake: ITuple<[AccountId32, u128]>; + readonly isUnstake: boolean; + readonly asUnstake: ITuple<[AccountId32, u128]>; + readonly isSetAdmin: boolean; + readonly asSetAdmin: AccountId32; + readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin'; + } + + /** @name PalletForeignAssetsModuleEvent (375) */ + interface PalletForeignAssetsModuleEvent extends Enum { + readonly isForeignAssetRegistered: boolean; + readonly asForeignAssetRegistered: { + readonly assetId: u32; + readonly assetAddress: XcmV3MultiLocation; + readonly metadata: PalletForeignAssetsModuleAssetMetadata; + } & Struct; + readonly isForeignAssetUpdated: boolean; + readonly asForeignAssetUpdated: { + readonly assetId: u32; + readonly assetAddress: XcmV3MultiLocation; + readonly metadata: PalletForeignAssetsModuleAssetMetadata; + } & Struct; + readonly isAssetRegistered: boolean; + readonly asAssetRegistered: { + readonly assetId: PalletForeignAssetsAssetIds; + readonly metadata: PalletForeignAssetsModuleAssetMetadata; + } & Struct; + readonly isAssetUpdated: boolean; + readonly asAssetUpdated: { + readonly assetId: PalletForeignAssetsAssetIds; + readonly metadata: PalletForeignAssetsModuleAssetMetadata; + } & Struct; + readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated'; + } + + /** @name PalletEvmEvent (376) */ + interface PalletEvmEvent extends Enum { + readonly isLog: boolean; + readonly asLog: { + readonly log: EthereumLog; + } & Struct; + readonly isCreated: boolean; + readonly asCreated: { + readonly address: H160; + } & Struct; + readonly isCreatedFailed: boolean; + readonly asCreatedFailed: { + readonly address: H160; + } & Struct; + readonly isExecuted: boolean; + readonly asExecuted: { + readonly address: H160; + } & Struct; + readonly isExecutedFailed: boolean; + readonly asExecutedFailed: { + readonly address: H160; + } & Struct; + readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed'; + } + + /** @name PalletEthereumEvent (377) */ + interface PalletEthereumEvent extends Enum { + readonly isExecuted: boolean; + readonly asExecuted: { + readonly from: H160; + readonly to: H160; + readonly transactionHash: H256; + readonly exitReason: EvmCoreErrorExitReason; + readonly extraData: Bytes; + } & Struct; + readonly type: 'Executed'; + } + + /** @name EvmCoreErrorExitReason (378) */ + interface EvmCoreErrorExitReason extends Enum { + readonly isSucceed: boolean; + readonly asSucceed: EvmCoreErrorExitSucceed; + readonly isError: boolean; + readonly asError: EvmCoreErrorExitError; + readonly isRevert: boolean; + readonly asRevert: EvmCoreErrorExitRevert; + readonly isFatal: boolean; + readonly asFatal: EvmCoreErrorExitFatal; + readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal'; + } + + /** @name EvmCoreErrorExitSucceed (379) */ + interface EvmCoreErrorExitSucceed extends Enum { + readonly isStopped: boolean; + readonly isReturned: boolean; + readonly isSuicided: boolean; + readonly type: 'Stopped' | 'Returned' | 'Suicided'; + } + + /** @name EvmCoreErrorExitError (380) */ + interface EvmCoreErrorExitError extends Enum { + readonly isStackUnderflow: boolean; + readonly isStackOverflow: boolean; + readonly isInvalidJump: boolean; + readonly isInvalidRange: boolean; + readonly isDesignatedInvalid: boolean; + readonly isCallTooDeep: boolean; + readonly isCreateCollision: boolean; + readonly isCreateContractLimit: boolean; + readonly isOutOfOffset: boolean; + readonly isOutOfGas: boolean; + readonly isOutOfFund: boolean; + readonly isPcUnderflow: boolean; + readonly isCreateEmpty: boolean; + readonly isOther: boolean; + readonly asOther: Text; + readonly isMaxNonce: boolean; + readonly isInvalidCode: boolean; + readonly asInvalidCode: u8; + readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'MaxNonce' | 'InvalidCode'; + } + + /** @name EvmCoreErrorExitRevert (384) */ + interface EvmCoreErrorExitRevert extends Enum { + readonly isReverted: boolean; + readonly type: 'Reverted'; + } + + /** @name EvmCoreErrorExitFatal (385) */ + interface EvmCoreErrorExitFatal extends Enum { + readonly isNotSupported: boolean; + readonly isUnhandledInterrupt: boolean; + readonly isCallErrorAsFatal: boolean; + readonly asCallErrorAsFatal: EvmCoreErrorExitError; + readonly isOther: boolean; + readonly asOther: Text; + readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other'; + } + + /** @name PalletEvmContractHelpersEvent (386) */ + interface PalletEvmContractHelpersEvent extends Enum { + readonly isContractSponsorSet: boolean; + readonly asContractSponsorSet: ITuple<[H160, AccountId32]>; + readonly isContractSponsorshipConfirmed: boolean; + readonly asContractSponsorshipConfirmed: ITuple<[H160, AccountId32]>; + readonly isContractSponsorRemoved: boolean; + readonly asContractSponsorRemoved: H160; + readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved'; + } + + /** @name PalletEvmMigrationEvent (387) */ + interface PalletEvmMigrationEvent extends Enum { + readonly isTestEvent: boolean; + readonly type: 'TestEvent'; + } + + /** @name PalletMaintenanceEvent (388) */ + interface PalletMaintenanceEvent extends Enum { + readonly isMaintenanceEnabled: boolean; + readonly isMaintenanceDisabled: boolean; + readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled'; + } + + /** @name PalletTestUtilsEvent (389) */ + interface PalletTestUtilsEvent extends Enum { + readonly isValueIsSet: boolean; + readonly isShouldRollback: boolean; + readonly isBatchCompleted: boolean; + readonly type: 'ValueIsSet' | 'ShouldRollback' | 'BatchCompleted'; + } + + /** @name FrameSystemPhase (390) */ + interface FrameSystemPhase extends Enum { + readonly isApplyExtrinsic: boolean; + readonly asApplyExtrinsic: u32; + readonly isFinalization: boolean; + readonly isInitialization: boolean; + readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization'; + } + + /** @name FrameSystemLastRuntimeUpgradeInfo (392) */ + interface FrameSystemLastRuntimeUpgradeInfo extends Struct { + readonly specVersion: Compact; + readonly specName: Text; + } + + /** @name FrameSystemLimitsBlockWeights (393) */ + interface FrameSystemLimitsBlockWeights extends Struct { + readonly baseBlock: SpWeightsWeightV2Weight; + readonly maxBlock: SpWeightsWeightV2Weight; + readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + } + + /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (394) */ + interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { + readonly normal: FrameSystemLimitsWeightsPerClass; + readonly operational: FrameSystemLimitsWeightsPerClass; + readonly mandatory: FrameSystemLimitsWeightsPerClass; + } + + /** @name FrameSystemLimitsWeightsPerClass (395) */ + interface FrameSystemLimitsWeightsPerClass extends Struct { + readonly baseExtrinsic: SpWeightsWeightV2Weight; + readonly maxExtrinsic: Option; + readonly maxTotal: Option; + readonly reserved: Option; + } + + /** @name FrameSystemLimitsBlockLength (397) */ + interface FrameSystemLimitsBlockLength extends Struct { + readonly max: FrameSupportDispatchPerDispatchClassU32; + } + + /** @name FrameSupportDispatchPerDispatchClassU32 (398) */ + interface FrameSupportDispatchPerDispatchClassU32 extends Struct { + readonly normal: u32; + readonly operational: u32; + readonly mandatory: u32; + } + + /** @name SpWeightsRuntimeDbWeight (399) */ + interface SpWeightsRuntimeDbWeight extends Struct { + readonly read: u64; + readonly write: u64; + } + + /** @name SpVersionRuntimeVersion (400) */ + interface SpVersionRuntimeVersion extends Struct { + readonly specName: Text; + readonly implName: Text; + readonly authoringVersion: u32; + readonly specVersion: u32; + readonly implVersion: u32; + readonly apis: Vec>; + readonly transactionVersion: u32; + readonly stateVersion: u8; + } + + /** @name FrameSystemError (404) */ + interface FrameSystemError extends Enum { + readonly isInvalidSpecName: boolean; + readonly isSpecVersionNeedsToIncrease: boolean; + readonly isFailedToExtractRuntimeVersion: boolean; + readonly isNonDefaultComposite: boolean; + readonly isNonZeroRefCount: boolean; + readonly isCallFiltered: boolean; + readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered'; + } + + /** @name PolkadotPrimitivesV4UpgradeRestriction (406) */ + interface PolkadotPrimitivesV4UpgradeRestriction extends Enum { + readonly isPresent: boolean; + readonly type: 'Present'; + } + + /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (407) */ + interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { + readonly dmqMqcHead: H256; + readonly relayDispatchQueueSize: CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; + } + + /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize (408) */ + interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispachQueueSize extends Struct { + readonly remainingCount: u32; + readonly remainingSize: u32; + } + + /** @name PolkadotPrimitivesV4AbridgedHrmpChannel (411) */ + interface PolkadotPrimitivesV4AbridgedHrmpChannel extends Struct { + readonly maxCapacity: u32; + readonly maxTotalSize: u32; + readonly maxMessageSize: u32; + readonly msgCount: u32; + readonly totalSize: u32; + readonly mqcHead: Option; + } + + /** @name PolkadotPrimitivesV4AbridgedHostConfiguration (412) */ + interface PolkadotPrimitivesV4AbridgedHostConfiguration extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly maxUpwardQueueCount: u32; + readonly maxUpwardQueueSize: u32; + readonly maxUpwardMessageSize: u32; + readonly maxUpwardMessageNumPerCandidate: u32; + readonly hrmpMaxMessageNumPerCandidate: u32; + readonly validationUpgradeCooldown: u32; + readonly validationUpgradeDelay: u32; + } + + /** @name PolkadotCorePrimitivesOutboundHrmpMessage (418) */ + interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct { + readonly recipient: u32; + readonly data: Bytes; + } + + /** @name CumulusPalletParachainSystemCodeUpgradeAuthorization (419) */ + interface CumulusPalletParachainSystemCodeUpgradeAuthorization extends Struct { + readonly codeHash: H256; + readonly checkVersion: bool; + } + + /** @name CumulusPalletParachainSystemError (420) */ + interface CumulusPalletParachainSystemError extends Enum { + readonly isOverlappingUpgrades: boolean; + readonly isProhibitedByPolkadot: boolean; + readonly isTooBig: boolean; + readonly isValidationDataNotAvailable: boolean; + readonly isHostConfigurationNotAvailable: boolean; + readonly isNotScheduled: boolean; + readonly isNothingAuthorized: boolean; + readonly isUnauthorized: boolean; + readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized'; + } + + /** @name PalletCollatorSelectionError (422) */ + interface PalletCollatorSelectionError extends Enum { + readonly isTooManyCandidates: boolean; + readonly isUnknown: boolean; + readonly isPermission: boolean; + readonly isAlreadyHoldingLicense: boolean; + readonly isNoLicense: boolean; + readonly isAlreadyCandidate: boolean; + readonly isNotCandidate: boolean; + readonly isTooManyInvulnerables: boolean; + readonly isTooFewInvulnerables: boolean; + readonly isAlreadyInvulnerable: boolean; + readonly isNotInvulnerable: boolean; + readonly isNoAssociatedValidatorId: boolean; + readonly isValidatorNotRegistered: boolean; + readonly type: 'TooManyCandidates' | 'Unknown' | 'Permission' | 'AlreadyHoldingLicense' | 'NoLicense' | 'AlreadyCandidate' | 'NotCandidate' | 'TooManyInvulnerables' | 'TooFewInvulnerables' | 'AlreadyInvulnerable' | 'NotInvulnerable' | 'NoAssociatedValidatorId' | 'ValidatorNotRegistered'; + } + + /** @name SpCoreCryptoKeyTypeId (426) */ + interface SpCoreCryptoKeyTypeId extends U8aFixed {} + + /** @name PalletSessionError (427) */ + interface PalletSessionError extends Enum { + readonly isInvalidProof: boolean; + readonly isNoAssociatedValidatorId: boolean; + readonly isDuplicatedKey: boolean; + readonly isNoKeys: boolean; + readonly isNoAccount: boolean; + readonly type: 'InvalidProof' | 'NoAssociatedValidatorId' | 'DuplicatedKey' | 'NoKeys' | 'NoAccount'; + } + + /** @name PalletBalancesBalanceLock (432) */ + interface PalletBalancesBalanceLock extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + readonly reasons: PalletBalancesReasons; + } + + /** @name PalletBalancesReasons (433) */ + interface PalletBalancesReasons extends Enum { + readonly isFee: boolean; + readonly isMisc: boolean; + readonly isAll: boolean; + readonly type: 'Fee' | 'Misc' | 'All'; + } + + /** @name PalletBalancesReserveData (436) */ + interface PalletBalancesReserveData extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + } + + /** @name PalletBalancesIdAmount (439) */ + interface PalletBalancesIdAmount extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + } + + /** @name PalletBalancesError (442) */ + interface PalletBalancesError extends Enum { + readonly isVestingBalance: boolean; + readonly isLiquidityRestrictions: boolean; + readonly isInsufficientBalance: boolean; + readonly isExistentialDeposit: boolean; + readonly isExpendability: boolean; + readonly isExistingVestingSchedule: boolean; + readonly isDeadAccount: boolean; + readonly isTooManyReserves: boolean; + readonly isTooManyHolds: boolean; + readonly isTooManyFreezes: boolean; + readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'Expendability' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves' | 'TooManyHolds' | 'TooManyFreezes'; + } + + /** @name PalletTransactionPaymentReleases (444) */ + interface PalletTransactionPaymentReleases extends Enum { + readonly isV1Ancient: boolean; + readonly isV2: boolean; + readonly type: 'V1Ancient' | 'V2'; + } + + /** @name PalletTreasuryProposal (445) */ + interface PalletTreasuryProposal extends Struct { + readonly proposer: AccountId32; + readonly value: u128; + readonly beneficiary: AccountId32; + readonly bond: u128; + } + + /** @name FrameSupportPalletId (448) */ + interface FrameSupportPalletId extends U8aFixed {} + + /** @name PalletTreasuryError (449) */ + interface PalletTreasuryError extends Enum { + readonly isInsufficientProposersBalance: boolean; + readonly isInvalidIndex: boolean; + readonly isTooManyApprovals: boolean; + readonly isInsufficientPermission: boolean; + readonly isProposalNotApproved: boolean; + readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved'; + } + + /** @name PalletSudoError (450) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: 'RequireSudo'; } - /** @name OrmlVestingModuleError (416) */ + /** @name OrmlVestingModuleError (452) */ interface OrmlVestingModuleError extends Enum { readonly isZeroVestingPeriod: boolean; readonly isZeroVestingPeriodCount: boolean; @@ -3626,7 +4347,7 @@ readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded'; } - /** @name OrmlXtokensModuleError (417) */ + /** @name OrmlXtokensModuleError (453) */ interface OrmlXtokensModuleError extends Enum { readonly isAssetHasNoReserve: boolean; readonly isNotCrossChainTransfer: boolean; @@ -3650,26 +4371,26 @@ readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined'; } - /** @name OrmlTokensBalanceLock (420) */ + /** @name OrmlTokensBalanceLock (456) */ interface OrmlTokensBalanceLock extends Struct { readonly id: U8aFixed; readonly amount: u128; } - /** @name OrmlTokensAccountData (422) */ + /** @name OrmlTokensAccountData (458) */ interface OrmlTokensAccountData extends Struct { readonly free: u128; readonly reserved: u128; readonly frozen: u128; } - /** @name OrmlTokensReserveData (424) */ + /** @name OrmlTokensReserveData (460) */ interface OrmlTokensReserveData extends Struct { readonly id: Null; readonly amount: u128; } - /** @name OrmlTokensModuleError (426) */ + /** @name OrmlTokensModuleError (462) */ interface OrmlTokensModuleError extends Enum { readonly isBalanceTooLow: boolean; readonly isAmountIntoBalanceFailed: boolean; @@ -3682,14 +4403,14 @@ readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves'; } - /** @name PalletIdentityRegistrarInfo (431) */ + /** @name PalletIdentityRegistrarInfo (467) */ interface PalletIdentityRegistrarInfo extends Struct { readonly account: AccountId32; readonly fee: u128; readonly fields: PalletIdentityBitFlags; } - /** @name PalletIdentityError (433) */ + /** @name PalletIdentityError (469) */ interface PalletIdentityError extends Enum { readonly isTooManySubAccounts: boolean; readonly isNotFound: boolean; @@ -3712,7 +4433,7 @@ readonly type: 'TooManySubAccounts' | 'NotFound' | 'NotNamed' | 'EmptyIndex' | 'FeeChanged' | 'NoIdentity' | 'StickyJudgement' | 'JudgementGiven' | 'InvalidJudgement' | 'InvalidIndex' | 'InvalidTarget' | 'TooManyFields' | 'TooManyRegistrars' | 'AlreadyClaimed' | 'NotSub' | 'NotOwned' | 'JudgementForDifferentIdentity' | 'JudgementPaymentFailed'; } - /** @name PalletPreimageRequestStatus (434) */ + /** @name PalletPreimageRequestStatus (470) */ interface PalletPreimageRequestStatus extends Enum { readonly isUnrequested: boolean; readonly asUnrequested: { @@ -3728,7 +4449,7 @@ readonly type: 'Unrequested' | 'Requested'; } - /** @name PalletPreimageError (439) */ + /** @name PalletPreimageError (475) */ interface PalletPreimageError extends Enum { readonly isTooBig: boolean; readonly isAlreadyNoted: boolean; @@ -3739,21 +4460,275 @@ readonly type: 'TooBig' | 'AlreadyNoted' | 'NotAuthorized' | 'NotNoted' | 'Requested' | 'NotRequested'; } - /** @name CumulusPalletXcmpQueueInboundChannelDetails (441) */ + /** @name PalletDemocracyReferendumInfo (481) */ + interface PalletDemocracyReferendumInfo extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PalletDemocracyReferendumStatus; + readonly isFinished: boolean; + readonly asFinished: { + readonly approved: bool; + readonly end: u32; + } & Struct; + readonly type: 'Ongoing' | 'Finished'; + } + + /** @name PalletDemocracyReferendumStatus (482) */ + interface PalletDemocracyReferendumStatus extends Struct { + readonly end: u32; + readonly proposal: FrameSupportPreimagesBounded; + readonly threshold: PalletDemocracyVoteThreshold; + readonly delay: u32; + readonly tally: PalletDemocracyTally; + } + + /** @name PalletDemocracyTally (483) */ + interface PalletDemocracyTally extends Struct { + readonly ayes: u128; + readonly nays: u128; + readonly turnout: u128; + } + + /** @name PalletDemocracyVoteVoting (484) */ + interface PalletDemocracyVoteVoting extends Enum { + readonly isDirect: boolean; + readonly asDirect: { + readonly votes: Vec>; + readonly delegations: PalletDemocracyDelegations; + readonly prior: PalletDemocracyVotePriorLock; + } & Struct; + readonly isDelegating: boolean; + readonly asDelegating: { + readonly balance: u128; + readonly target: AccountId32; + readonly conviction: PalletDemocracyConviction; + readonly delegations: PalletDemocracyDelegations; + readonly prior: PalletDemocracyVotePriorLock; + } & Struct; + readonly type: 'Direct' | 'Delegating'; + } + + /** @name PalletDemocracyDelegations (488) */ + interface PalletDemocracyDelegations extends Struct { + readonly votes: u128; + readonly capital: u128; + } + + /** @name PalletDemocracyVotePriorLock (489) */ + interface PalletDemocracyVotePriorLock extends ITuple<[u32, u128]> {} + + /** @name PalletDemocracyError (492) */ + interface PalletDemocracyError extends Enum { + readonly isValueLow: boolean; + readonly isProposalMissing: boolean; + readonly isAlreadyCanceled: boolean; + readonly isDuplicateProposal: boolean; + readonly isProposalBlacklisted: boolean; + readonly isNotSimpleMajority: boolean; + readonly isInvalidHash: boolean; + readonly isNoProposal: boolean; + readonly isAlreadyVetoed: boolean; + readonly isReferendumInvalid: boolean; + readonly isNoneWaiting: boolean; + readonly isNotVoter: boolean; + readonly isNoPermission: boolean; + readonly isAlreadyDelegating: boolean; + readonly isInsufficientFunds: boolean; + readonly isNotDelegating: boolean; + readonly isVotesExist: boolean; + readonly isInstantNotAllowed: boolean; + readonly isNonsense: boolean; + readonly isWrongUpperBound: boolean; + readonly isMaxVotesReached: boolean; + readonly isTooMany: boolean; + readonly isVotingPeriodLow: boolean; + readonly isPreimageNotExist: boolean; + readonly type: 'ValueLow' | 'ProposalMissing' | 'AlreadyCanceled' | 'DuplicateProposal' | 'ProposalBlacklisted' | 'NotSimpleMajority' | 'InvalidHash' | 'NoProposal' | 'AlreadyVetoed' | 'ReferendumInvalid' | 'NoneWaiting' | 'NotVoter' | 'NoPermission' | 'AlreadyDelegating' | 'InsufficientFunds' | 'NotDelegating' | 'VotesExist' | 'InstantNotAllowed' | 'Nonsense' | 'WrongUpperBound' | 'MaxVotesReached' | 'TooMany' | 'VotingPeriodLow' | 'PreimageNotExist'; + } + + /** @name PalletCollectiveVotes (494) */ + interface PalletCollectiveVotes extends Struct { + readonly index: u32; + readonly threshold: u32; + readonly ayes: Vec; + readonly nays: Vec; + readonly end: u32; + } + + /** @name PalletCollectiveError (495) */ + interface PalletCollectiveError extends Enum { + readonly isNotMember: boolean; + readonly isDuplicateProposal: boolean; + readonly isProposalMissing: boolean; + readonly isWrongIndex: boolean; + readonly isDuplicateVote: boolean; + readonly isAlreadyInitialized: boolean; + readonly isTooEarly: boolean; + readonly isTooManyProposals: boolean; + readonly isWrongProposalWeight: boolean; + readonly isWrongProposalLength: boolean; + readonly type: 'NotMember' | 'DuplicateProposal' | 'ProposalMissing' | 'WrongIndex' | 'DuplicateVote' | 'AlreadyInitialized' | 'TooEarly' | 'TooManyProposals' | 'WrongProposalWeight' | 'WrongProposalLength'; + } + + /** @name PalletMembershipError (499) */ + interface PalletMembershipError extends Enum { + readonly isAlreadyMember: boolean; + readonly isNotMember: boolean; + readonly isTooManyMembers: boolean; + readonly type: 'AlreadyMember' | 'NotMember' | 'TooManyMembers'; + } + + /** @name PalletRankedCollectiveMemberRecord (502) */ + interface PalletRankedCollectiveMemberRecord extends Struct { + readonly rank: u16; + } + + /** @name PalletRankedCollectiveError (507) */ + interface PalletRankedCollectiveError extends Enum { + readonly isAlreadyMember: boolean; + readonly isNotMember: boolean; + readonly isNotPolling: boolean; + readonly isOngoing: boolean; + readonly isNoneRemaining: boolean; + readonly isCorruption: boolean; + readonly isRankTooLow: boolean; + readonly isInvalidWitness: boolean; + readonly isNoPermission: boolean; + readonly type: 'AlreadyMember' | 'NotMember' | 'NotPolling' | 'Ongoing' | 'NoneRemaining' | 'Corruption' | 'RankTooLow' | 'InvalidWitness' | 'NoPermission'; + } + + /** @name PalletReferendaReferendumInfo (508) */ + interface PalletReferendaReferendumInfo extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PalletReferendaReferendumStatus; + readonly isApproved: boolean; + readonly asApproved: ITuple<[u32, Option, Option]>; + readonly isRejected: boolean; + readonly asRejected: ITuple<[u32, Option, Option]>; + readonly isCancelled: boolean; + readonly asCancelled: ITuple<[u32, Option, Option]>; + readonly isTimedOut: boolean; + readonly asTimedOut: ITuple<[u32, Option, Option]>; + readonly isKilled: boolean; + readonly asKilled: u32; + readonly type: 'Ongoing' | 'Approved' | 'Rejected' | 'Cancelled' | 'TimedOut' | 'Killed'; + } + + /** @name PalletReferendaReferendumStatus (509) */ + interface PalletReferendaReferendumStatus extends Struct { + readonly track: u16; + readonly origin: QuartzRuntimeOriginCaller; + readonly proposal: FrameSupportPreimagesBounded; + readonly enactment: FrameSupportScheduleDispatchTime; + readonly submitted: u32; + readonly submissionDeposit: PalletReferendaDeposit; + readonly decisionDeposit: Option; + readonly deciding: Option; + readonly tally: PalletRankedCollectiveTally; + readonly inQueue: bool; + readonly alarm: Option]>>; + } + + /** @name PalletReferendaDeposit (510) */ + interface PalletReferendaDeposit extends Struct { + readonly who: AccountId32; + readonly amount: u128; + } + + /** @name PalletReferendaDecidingStatus (513) */ + interface PalletReferendaDecidingStatus extends Struct { + readonly since: u32; + readonly confirming: Option; + } + + /** @name PalletReferendaTrackInfo (519) */ + interface PalletReferendaTrackInfo extends Struct { + readonly name: Text; + readonly maxDeciding: u32; + readonly decisionDeposit: u128; + readonly preparePeriod: u32; + readonly decisionPeriod: u32; + readonly confirmPeriod: u32; + readonly minEnactmentPeriod: u32; + readonly minApproval: PalletReferendaCurve; + readonly minSupport: PalletReferendaCurve; + } + + /** @name PalletReferendaCurve (520) */ + interface PalletReferendaCurve extends Enum { + readonly isLinearDecreasing: boolean; + readonly asLinearDecreasing: { + readonly length: Perbill; + readonly floor: Perbill; + readonly ceil: Perbill; + } & Struct; + readonly isSteppedDecreasing: boolean; + readonly asSteppedDecreasing: { + readonly begin: Perbill; + readonly end: Perbill; + readonly step: Perbill; + readonly period: Perbill; + } & Struct; + readonly isReciprocal: boolean; + readonly asReciprocal: { + readonly factor: i64; + readonly xOffset: i64; + readonly yOffset: i64; + } & Struct; + readonly type: 'LinearDecreasing' | 'SteppedDecreasing' | 'Reciprocal'; + } + + /** @name PalletReferendaError (523) */ + interface PalletReferendaError extends Enum { + readonly isNotOngoing: boolean; + readonly isHasDeposit: boolean; + readonly isBadTrack: boolean; + readonly isFull: boolean; + readonly isQueueEmpty: boolean; + readonly isBadReferendum: boolean; + readonly isNothingToDo: boolean; + readonly isNoTrack: boolean; + readonly isUnfinished: boolean; + readonly isNoPermission: boolean; + readonly isNoDeposit: boolean; + readonly isBadStatus: boolean; + readonly isPreimageNotExist: boolean; + readonly type: 'NotOngoing' | 'HasDeposit' | 'BadTrack' | 'Full' | 'QueueEmpty' | 'BadReferendum' | 'NothingToDo' | 'NoTrack' | 'Unfinished' | 'NoPermission' | 'NoDeposit' | 'BadStatus' | 'PreimageNotExist'; + } + + /** @name PalletSchedulerScheduled (526) */ + interface PalletSchedulerScheduled extends Struct { + readonly maybeId: Option; + readonly priority: u8; + readonly call: FrameSupportPreimagesBounded; + readonly maybePeriodic: Option>; + readonly origin: QuartzRuntimeOriginCaller; + } + + /** @name PalletSchedulerError (528) */ + interface PalletSchedulerError extends Enum { + readonly isFailedToSchedule: boolean; + readonly isNotFound: boolean; + readonly isTargetBlockNumberInPast: boolean; + readonly isRescheduleNoChange: boolean; + readonly isNamed: boolean; + readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange' | 'Named'; + } + + /** @name CumulusPalletXcmpQueueInboundChannelDetails (530) */ interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct { readonly sender: u32; readonly state: CumulusPalletXcmpQueueInboundState; readonly messageMetadata: Vec>; } - /** @name CumulusPalletXcmpQueueInboundState (442) */ + /** @name CumulusPalletXcmpQueueInboundState (531) */ interface CumulusPalletXcmpQueueInboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: 'Ok' | 'Suspended'; } - /** @name PolkadotParachainPrimitivesXcmpMessageFormat (445) */ + /** @name PolkadotParachainPrimitivesXcmpMessageFormat (534) */ interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum { readonly isConcatenatedVersionedXcm: boolean; readonly isConcatenatedEncodedBlob: boolean; @@ -3761,7 +4736,7 @@ readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals'; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (448) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (537) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -3770,14 +4745,14 @@ readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (449) */ + /** @name CumulusPalletXcmpQueueOutboundState (538) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: 'Ok' | 'Suspended'; } - /** @name CumulusPalletXcmpQueueQueueConfigData (451) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (540) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; @@ -3787,7 +4762,7 @@ readonly xcmpMaxIndividualWeight: SpWeightsWeightV2Weight; } - /** @name CumulusPalletXcmpQueueError (453) */ + /** @name CumulusPalletXcmpQueueError (542) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isFailedToSend: boolean; readonly isBadXcmOrigin: boolean; @@ -3797,7 +4772,7 @@ readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit'; } - /** @name PalletXcmQueryStatus (454) */ + /** @name PalletXcmQueryStatus (543) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -3819,7 +4794,7 @@ readonly type: 'Pending' | 'VersionNotifier' | 'Ready'; } - /** @name XcmVersionedResponse (458) */ + /** @name XcmVersionedResponse (547) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -3828,7 +4803,7 @@ readonly type: 'V2' | 'V3'; } - /** @name PalletXcmVersionMigrationStage (464) */ + /** @name PalletXcmVersionMigrationStage (553) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -3838,14 +4813,14 @@ readonly type: 'MigrateSupportedVersion' | 'MigrateVersionNotifiers' | 'NotifyCurrentTargets' | 'MigrateAndNotifyOldTargets'; } - /** @name XcmVersionedAssetId (467) */ + /** @name XcmVersionedAssetId (556) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; readonly type: 'V3'; } - /** @name PalletXcmRemoteLockedFungibleRecord (468) */ + /** @name PalletXcmRemoteLockedFungibleRecord (557) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedMultiLocation; @@ -3853,7 +4828,7 @@ readonly consumers: Vec>; } - /** @name PalletXcmError (475) */ + /** @name PalletXcmError (564) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -3878,29 +4853,29 @@ readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed' | 'InvalidAsset' | 'LowBalance' | 'TooManyLocks' | 'AccountNotSovereign' | 'FeesNotMet' | 'LockNotFound' | 'InUse'; } - /** @name CumulusPalletXcmError (476) */ + /** @name CumulusPalletXcmError (565) */ type CumulusPalletXcmError = Null; - /** @name CumulusPalletDmpQueueConfigData (477) */ + /** @name CumulusPalletDmpQueueConfigData (566) */ interface CumulusPalletDmpQueueConfigData extends Struct { readonly maxIndividual: SpWeightsWeightV2Weight; } - /** @name CumulusPalletDmpQueuePageIndexData (478) */ + /** @name CumulusPalletDmpQueuePageIndexData (567) */ interface CumulusPalletDmpQueuePageIndexData extends Struct { readonly beginUsed: u32; readonly endUsed: u32; readonly overweightCount: u64; } - /** @name CumulusPalletDmpQueueError (481) */ + /** @name CumulusPalletDmpQueueError (570) */ interface CumulusPalletDmpQueueError extends Enum { readonly isUnknown: boolean; readonly isOverLimit: boolean; readonly type: 'Unknown' | 'OverLimit'; } - /** @name PalletUniqueError (485) */ + /** @name PalletUniqueError (574) */ interface PalletUniqueError extends Enum { readonly isCollectionDecimalPointLimitExceeded: boolean; readonly isEmptyArgument: boolean; @@ -3908,13 +4883,13 @@ readonly type: 'CollectionDecimalPointLimitExceeded' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection'; } - /** @name PalletConfigurationError (486) */ + /** @name PalletConfigurationError (575) */ interface PalletConfigurationError extends Enum { readonly isInconsistentConfiguration: boolean; readonly type: 'InconsistentConfiguration'; } - /** @name UpDataStructsCollection (487) */ + /** @name UpDataStructsCollection (576) */ interface UpDataStructsCollection extends Struct { readonly owner: AccountId32; readonly mode: UpDataStructsCollectionMode; @@ -3927,7 +4902,7 @@ readonly flags: U8aFixed; } - /** @name UpDataStructsSponsorshipStateAccountId32 (488) */ + /** @name UpDataStructsSponsorshipStateAccountId32 (577) */ interface UpDataStructsSponsorshipStateAccountId32 extends Enum { readonly isDisabled: boolean; readonly isUnconfirmed: boolean; @@ -3937,43 +4912,43 @@ readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed'; } - /** @name UpDataStructsProperties (489) */ + /** @name UpDataStructsProperties (578) */ interface UpDataStructsProperties extends Struct { readonly map: UpDataStructsPropertiesMapBoundedVec; readonly consumedSpace: u32; readonly reserved: u32; } - /** @name UpDataStructsPropertiesMapBoundedVec (490) */ + /** @name UpDataStructsPropertiesMapBoundedVec (579) */ interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap {} - /** @name UpDataStructsPropertiesMapPropertyPermission (495) */ + /** @name UpDataStructsPropertiesMapPropertyPermission (584) */ interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap {} - /** @name UpDataStructsCollectionStats (502) */ + /** @name UpDataStructsCollectionStats (591) */ interface UpDataStructsCollectionStats extends Struct { readonly created: u32; readonly destroyed: u32; readonly alive: u32; } - /** @name UpDataStructsTokenChild (503) */ + /** @name UpDataStructsTokenChild (592) */ interface UpDataStructsTokenChild extends Struct { readonly token: u32; readonly collection: u32; } - /** @name PhantomTypeUpDataStructs (504) */ + /** @name PhantomTypeUpDataStructs (593) */ interface PhantomTypeUpDataStructs extends Vec> {} - /** @name UpDataStructsTokenData (506) */ + /** @name UpDataStructsTokenData (595) */ interface UpDataStructsTokenData extends Struct { readonly properties: Vec; readonly owner: Option; readonly pieces: u128; } - /** @name UpDataStructsRpcCollection (507) */ + /** @name UpDataStructsRpcCollection (596) */ interface UpDataStructsRpcCollection extends Struct { readonly owner: AccountId32; readonly mode: UpDataStructsCollectionMode; @@ -3989,13 +4964,13 @@ readonly flags: UpDataStructsRpcCollectionFlags; } - /** @name UpDataStructsRpcCollectionFlags (508) */ + /** @name UpDataStructsRpcCollectionFlags (597) */ interface UpDataStructsRpcCollectionFlags extends Struct { readonly foreign: bool; readonly erc721metadata: bool; } - /** @name UpPovEstimateRpcPovInfo (509) */ + /** @name UpPovEstimateRpcPovInfo (598) */ interface UpPovEstimateRpcPovInfo extends Struct { readonly proofSize: u64; readonly compactProofSize: u64; @@ -4004,7 +4979,7 @@ readonly keyValues: Vec; } - /** @name SpRuntimeTransactionValidityTransactionValidityError (512) */ + /** @name SpRuntimeTransactionValidityTransactionValidityError (601) */ interface SpRuntimeTransactionValidityTransactionValidityError extends Enum { readonly isInvalid: boolean; readonly asInvalid: SpRuntimeTransactionValidityInvalidTransaction; @@ -4013,7 +4988,7 @@ readonly type: 'Invalid' | 'Unknown'; } - /** @name SpRuntimeTransactionValidityInvalidTransaction (513) */ + /** @name SpRuntimeTransactionValidityInvalidTransaction (602) */ interface SpRuntimeTransactionValidityInvalidTransaction extends Enum { readonly isCall: boolean; readonly isPayment: boolean; @@ -4030,7 +5005,7 @@ readonly type: 'Call' | 'Payment' | 'Future' | 'Stale' | 'BadProof' | 'AncientBirthBlock' | 'ExhaustsResources' | 'Custom' | 'BadMandatory' | 'MandatoryValidation' | 'BadSigner'; } - /** @name SpRuntimeTransactionValidityUnknownTransaction (514) */ + /** @name SpRuntimeTransactionValidityUnknownTransaction (603) */ interface SpRuntimeTransactionValidityUnknownTransaction extends Enum { readonly isCannotLookup: boolean; readonly isNoUnsignedValidator: boolean; @@ -4039,13 +5014,13 @@ readonly type: 'CannotLookup' | 'NoUnsignedValidator' | 'Custom'; } - /** @name UpPovEstimateRpcTrieKeyValue (516) */ + /** @name UpPovEstimateRpcTrieKeyValue (605) */ interface UpPovEstimateRpcTrieKeyValue extends Struct { readonly key: Bytes; readonly value: Bytes; } - /** @name PalletCommonError (518) */ + /** @name PalletCommonError (607) */ interface PalletCommonError extends Enum { readonly isCollectionNotFound: boolean; readonly isMustBeTokenOwner: boolean; @@ -4087,7 +5062,7 @@ readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsNotEthMirror' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal' | 'ConfirmSponsorshipFail' | 'UserIsNotCollectionAdmin'; } - /** @name PalletFungibleError (520) */ + /** @name PalletFungibleError (609) */ interface PalletFungibleError extends Enum { readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean; readonly isFungibleItemsHaveNoId: boolean; @@ -4099,7 +5074,7 @@ readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed' | 'SettingAllowanceForAllNotAllowed' | 'FungibleTokensAreAlwaysValid'; } - /** @name PalletRefungibleError (525) */ + /** @name PalletRefungibleError (614) */ interface PalletRefungibleError extends Enum { readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean; readonly isWrongRefungiblePieces: boolean; @@ -4109,19 +5084,19 @@ readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed'; } - /** @name PalletNonfungibleItemData (526) */ + /** @name PalletNonfungibleItemData (615) */ interface PalletNonfungibleItemData extends Struct { readonly owner: PalletEvmAccountBasicCrossAccountIdRepr; } - /** @name UpDataStructsPropertyScope (528) */ + /** @name UpDataStructsPropertyScope (617) */ interface UpDataStructsPropertyScope extends Enum { readonly isNone: boolean; readonly isRmrk: boolean; readonly type: 'None' | 'Rmrk'; } - /** @name PalletNonfungibleError (531) */ + /** @name PalletNonfungibleError (620) */ interface PalletNonfungibleError extends Enum { readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean; readonly isNonfungibleItemsHaveNoAmount: boolean; @@ -4129,7 +5104,7 @@ readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren'; } - /** @name PalletStructureError (532) */ + /** @name PalletStructureError (621) */ interface PalletStructureError extends Enum { readonly isOuroborosDetected: boolean; readonly isDepthLimit: boolean; @@ -4139,7 +5114,7 @@ readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound' | 'CantNestTokenUnderCollection'; } - /** @name PalletAppPromotionError (537) */ + /** @name PalletAppPromotionError (626) */ interface PalletAppPromotionError extends Enum { readonly isAdminNotSet: boolean; readonly isNoPermission: boolean; @@ -4151,7 +5126,7 @@ readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'InsufficientStakedBalance' | 'InconsistencyState'; } - /** @name PalletForeignAssetsModuleError (538) */ + /** @name PalletForeignAssetsModuleError (627) */ interface PalletForeignAssetsModuleError extends Enum { readonly isBadLocation: boolean; readonly isMultiLocationExisted: boolean; @@ -4160,13 +5135,13 @@ readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted'; } - /** @name PalletEvmCodeMetadata (539) */ + /** @name PalletEvmCodeMetadata (628) */ interface PalletEvmCodeMetadata extends Struct { readonly size_: u64; readonly hash_: H256; } - /** @name PalletEvmError (541) */ + /** @name PalletEvmError (630) */ interface PalletEvmError extends Enum { readonly isBalanceLow: boolean; readonly isFeeOverflow: boolean; @@ -4182,7 +5157,7 @@ readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce' | 'GasLimitTooLow' | 'GasLimitTooHigh' | 'Undefined' | 'Reentrancy' | 'TransactionMustComeFromEOA'; } - /** @name FpRpcTransactionStatus (544) */ + /** @name FpRpcTransactionStatus (633) */ interface FpRpcTransactionStatus extends Struct { readonly transactionHash: H256; readonly transactionIndex: u32; @@ -4193,10 +5168,10 @@ readonly logsBloom: EthbloomBloom; } - /** @name EthbloomBloom (546) */ + /** @name EthbloomBloom (635) */ interface EthbloomBloom extends U8aFixed {} - /** @name EthereumReceiptReceiptV3 (548) */ + /** @name EthereumReceiptReceiptV3 (637) */ interface EthereumReceiptReceiptV3 extends Enum { readonly isLegacy: boolean; readonly asLegacy: EthereumReceiptEip658ReceiptData; @@ -4207,7 +5182,7 @@ readonly type: 'Legacy' | 'Eip2930' | 'Eip1559'; } - /** @name EthereumReceiptEip658ReceiptData (549) */ + /** @name EthereumReceiptEip658ReceiptData (638) */ interface EthereumReceiptEip658ReceiptData extends Struct { readonly statusCode: u8; readonly usedGas: U256; @@ -4215,14 +5190,14 @@ readonly logs: Vec; } - /** @name EthereumBlock (550) */ + /** @name EthereumBlock (639) */ interface EthereumBlock extends Struct { readonly header: EthereumHeader; readonly transactions: Vec; readonly ommers: Vec; } - /** @name EthereumHeader (551) */ + /** @name EthereumHeader (640) */ interface EthereumHeader extends Struct { readonly parentHash: H256; readonly ommersHash: H256; @@ -4241,24 +5216,24 @@ readonly nonce: EthereumTypesHashH64; } - /** @name EthereumTypesHashH64 (552) */ + /** @name EthereumTypesHashH64 (641) */ interface EthereumTypesHashH64 extends U8aFixed {} - /** @name PalletEthereumError (557) */ + /** @name PalletEthereumError (646) */ interface PalletEthereumError extends Enum { readonly isInvalidSignature: boolean; readonly isPreLogExists: boolean; readonly type: 'InvalidSignature' | 'PreLogExists'; } - /** @name PalletEvmCoderSubstrateError (558) */ + /** @name PalletEvmCoderSubstrateError (647) */ interface PalletEvmCoderSubstrateError extends Enum { readonly isOutOfGas: boolean; readonly isOutOfFund: boolean; readonly type: 'OutOfGas' | 'OutOfFund'; } - /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (559) */ + /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (648) */ interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum { readonly isDisabled: boolean; readonly isUnconfirmed: boolean; @@ -4268,7 +5243,7 @@ readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed'; } - /** @name PalletEvmContractHelpersSponsoringModeT (560) */ + /** @name PalletEvmContractHelpersSponsoringModeT (649) */ interface PalletEvmContractHelpersSponsoringModeT extends Enum { readonly isDisabled: boolean; readonly isAllowlisted: boolean; @@ -4276,7 +5251,7 @@ readonly type: 'Disabled' | 'Allowlisted' | 'Generous'; } - /** @name PalletEvmContractHelpersError (566) */ + /** @name PalletEvmContractHelpersError (655) */ interface PalletEvmContractHelpersError extends Enum { readonly isNoPermission: boolean; readonly isNoPendingSponsor: boolean; @@ -4284,7 +5259,7 @@ readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit'; } - /** @name PalletEvmMigrationError (567) */ + /** @name PalletEvmMigrationError (656) */ interface PalletEvmMigrationError extends Enum { readonly isAccountNotEmpty: boolean; readonly isAccountIsNotMigrating: boolean; @@ -4292,17 +5267,17 @@ readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating' | 'BadEvent'; } - /** @name PalletMaintenanceError (568) */ + /** @name PalletMaintenanceError (657) */ type PalletMaintenanceError = Null; - /** @name PalletTestUtilsError (569) */ + /** @name PalletTestUtilsError (658) */ interface PalletTestUtilsError extends Enum { readonly isTestPalletDisabled: boolean; readonly isTriggerRollback: boolean; readonly type: 'TestPalletDisabled' | 'TriggerRollback'; } - /** @name SpRuntimeMultiSignature (571) */ + /** @name SpRuntimeMultiSignature (660) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: SpCoreEd25519Signature; @@ -4313,43 +5288,43 @@ readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa'; } - /** @name SpCoreEd25519Signature (572) */ + /** @name SpCoreEd25519Signature (661) */ interface SpCoreEd25519Signature extends U8aFixed {} - /** @name SpCoreSr25519Signature (574) */ + /** @name SpCoreSr25519Signature (663) */ interface SpCoreSr25519Signature extends U8aFixed {} - /** @name SpCoreEcdsaSignature (575) */ + /** @name SpCoreEcdsaSignature (664) */ interface SpCoreEcdsaSignature extends U8aFixed {} - /** @name FrameSystemExtensionsCheckSpecVersion (578) */ + /** @name FrameSystemExtensionsCheckSpecVersion (667) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (579) */ + /** @name FrameSystemExtensionsCheckTxVersion (668) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (580) */ + /** @name FrameSystemExtensionsCheckGenesis (669) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (583) */ + /** @name FrameSystemExtensionsCheckNonce (672) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (584) */ + /** @name FrameSystemExtensionsCheckWeight (673) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (585) */ - type OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null; + /** @name QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance (674) */ + type QuartzRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null; - /** @name OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls (586) */ - type OpalRuntimeRuntimeCommonIdentityDisableIdentityCalls = Null; + /** @name QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls (675) */ + type QuartzRuntimeRuntimeCommonIdentityDisableIdentityCalls = Null; - /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (587) */ + /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (676) */ interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name OpalRuntimeRuntime (588) */ - type OpalRuntimeRuntime = Null; + /** @name QuartzRuntimeRuntime (677) */ + type QuartzRuntimeRuntime = Null; - /** @name PalletEthereumFakeTransactionFinalizer (589) */ + /** @name PalletEthereumFakeTransactionFinalizer (678) */ type PalletEthereumFakeTransactionFinalizer = Null; } // declare module --- a/tests/src/maintenance.seqtest.ts +++ b/tests/src/maintenance.seqtest.ts @@ -173,7 +173,7 @@ await expect(helper.balance.transferToSubstrate(bob, superuser.address, 1n)).to.be.fulfilled; }); - itSched.ifWithPallets('MM blocks scheduled calls and the scheduler itself', [Pallets.Scheduler], async (scheduleKind, {helper}) => { + itSched.ifWithPallets('MM blocks scheduled calls and the scheduler itself', [Pallets.UniqueScheduler], async (scheduleKind, {helper}) => { const collection = await helper.nft.mintCollection(bob); const nftBeforeMM = await collection.mintToken(bob); @@ -284,13 +284,6 @@ describe('Preimage Execution', () => { const preimageHashes: string[] = []; - async function notePreimage(helper: UniqueHelper, preimage: any): Promise { - const result = await helper.preimage.notePreimage(bob, preimage); - const events = result.result.events.filter(x => x.event.method === 'Noted' && x.event.section === 'preimage'); - const preimageHash = events[0].event.data[0].toHuman(); - return preimageHash; - } - before(async function() { await usingPlaygrounds(async (helper) => { requirePalletsOrSkip(this, helper, [Pallets.Preimage, Pallets.Maintenance]); @@ -309,7 +302,7 @@ }, ]); const preimage = helper.constructApiCall('api.tx.identity.forceInsertIdentities', [randomIdentities]).method.toHex(); - preimageHashes.push(await notePreimage(helper, preimage)); + preimageHashes.push(await helper.preimage.notePreimage(bob, preimage, true)); }); }); @@ -332,7 +325,7 @@ const preimage = helper.constructApiCall('api.tx.balances.forceTransfer', [ {Id: zeroAccount.address}, {Id: superuser.address}, 1000n, ]).method.toHex(); - const preimageHash = await notePreimage(helper, preimage); + const preimageHash = await helper.preimage.notePreimage(bob, preimage, true); preimageHashes.push(preimageHash); await expect(helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.executePreimage', [ --- a/tests/src/pallet-presence.test.ts +++ b/tests/src/pallet-presence.test.ts @@ -68,6 +68,17 @@ const appPromotion = 'apppromotion'; const collatorSelection = ['authorship', 'session', 'collatorselection', 'identity']; const preimage = ['preimage']; + const governance = [ + 'council', + 'councilmembership', + 'democracy', + 'fellowshipcollective', + 'fellowshipreferenda', + 'origins', + 'scheduler', + 'technicalcommittee', + 'technicalcommitteemembership', + ]; const testUtils = 'testutils'; if(chain.eq('OPAL by UNIQUE')) { @@ -78,6 +89,7 @@ testUtils, ...collatorSelection, ...preimage, + ...governance, ); } else if(chain.eq('QUARTZ by UNIQUE') || chain.eq('SAPPHIRE by UNIQUE')) { requiredPallets.push( @@ -86,6 +98,7 @@ foreignAssets, ...collatorSelection, ...preimage, + ...governance, ); } else if(chain.eq('UNIQUE')) { // Insert Unique additional pallets here --- a/tests/src/scheduler.seqtest.ts +++ b/tests/src/scheduler.seqtest.ts @@ -26,7 +26,7 @@ before(async function() { await usingPlaygrounds(async (helper, privateKey) => { - requirePalletsOrSkip(this, helper, [Pallets.Scheduler]); + requirePalletsOrSkip(this, helper, [Pallets.UniqueScheduler]); superuser = await privateKey('//Alice'); const donor = await privateKey({url: import.meta.url}); @@ -411,7 +411,7 @@ const priority = 112; await helper.getSudo().scheduler.changePriority(superuser, scheduledId, priority); - const priorityChanged = await helper.wait.expectEvent(waitForBlocks, Event.Scheduler.PriorityChanged); + const priorityChanged = await helper.wait.expectEvent(waitForBlocks, Event.UniqueScheduler.PriorityChanged); const [blockNumber, index] = priorityChanged.task(); expect(blockNumber).to.be.equal(executionBlock); @@ -567,7 +567,7 @@ before(async function() { await usingPlaygrounds(async (helper, privateKey) => { - requirePalletsOrSkip(this, helper, [Pallets.Scheduler]); + requirePalletsOrSkip(this, helper, [Pallets.UniqueScheduler]); const donor = await privateKey({url: import.meta.url}); [alice, bob] = await helper.arrange.createAccounts([100n, 100n], donor); @@ -662,7 +662,7 @@ await expect(helper.scheduler.changePriority(alice, scheduledId, priority)) .to.be.rejectedWith(/BadOrigin/); - await helper.wait.expectEvent(waitForBlocks, Event.Scheduler.PriorityChanged); + await helper.wait.expectEvent(waitForBlocks, Event.UniqueScheduler.PriorityChanged); }); }); --- a/tests/src/util/index.ts +++ b/tests/src/util/index.ts @@ -23,12 +23,16 @@ export const getTestSeed = (filename: string) => `//Alice+${getTestHash(filename)}`; -async function usingPlaygroundsGeneral(helperType: new(logger: ILogger) => T, url: string, code: (helper: T, privateKey: (seed: string | {filename?: string, url?: string, ignoreFundsPresence?: boolean}) => Promise) => Promise) { +async function usingPlaygroundsGeneral( + helperType: new (logger: ILogger) => T, + url: string, + code: (helper: T, privateKey: (seed: string | { filename?: string, url?: string, ignoreFundsPresence?: boolean }) => Promise) => Promise, +): Promise { const silentConsole = new SilentConsole(); silentConsole.enable(); const helper = new helperType(new SilentLogger()); - + let result; try { await helper.connect(url); const ss58Format = helper.chain.getChainProperties().ss58Format; @@ -53,15 +57,16 @@ } return account; }; - await code(helper, privateKey); + result = await code(helper, privateKey); } finally { await helper.disconnect(); silentConsole.disable(); } + return result as any as R; } -export const usingPlaygrounds = (code: (helper: DevUniqueHelper, privateKey: (seed: string | {filename?: string, url?: string, ignoreFundsPresence?: boolean}) => Promise) => Promise, url: string = config.substrateUrl) => usingPlaygroundsGeneral(DevUniqueHelper, url, code); +export const usingPlaygrounds = (code: (helper: DevUniqueHelper, privateKey: (seed: string | {filename?: string, url?: string, ignoreFundsPresence?: boolean}) => Promise) => Promise, url: string = config.substrateUrl) => usingPlaygroundsGeneral(DevUniqueHelper, url, code); export const usingWestmintPlaygrounds = (url: string, code: (helper: DevWestmintHelper, privateKey: (seed: string) => Promise) => Promise) => usingPlaygroundsGeneral(DevWestmintHelper, url, code); @@ -83,8 +88,8 @@ export const usingShidenPlaygrounds = (url: string, code: (helper: DevShidenHelper, privateKey: (seed: string) => Promise) => Promise) => usingPlaygroundsGeneral(DevShidenHelper, url, code); -export const MINIMUM_DONOR_FUND = 100_000n; -export const DONOR_FUNDING = 2_000_000n; +export const MINIMUM_DONOR_FUND = 4_000_000n; +export const DONOR_FUNDING = 4_000_000n; // App-promotion periods: export const LOCKING_PERIOD = 12n; // 12 blocks of relay @@ -100,10 +105,16 @@ Fungible = 'fungible', NFT = 'nonfungible', Scheduler = 'scheduler', + UniqueScheduler = 'uniqueScheduler', AppPromotion = 'apppromotion', CollatorSelection = 'collatorselection', Session = 'session', Identity = 'identity', + Democracy = 'democracy', + Council = 'council', + //CouncilMembership = 'councilmembership', + TechnicalCommittee = 'technicalcommittee', + Fellowship = 'fellowshipcollective', Preimage = 'preimage', Maintenance = 'maintenance', TestUtils = 'testutils', @@ -167,6 +178,14 @@ describeXCM.skip = (name: string, fn: (this: Mocha.Suite) => void) => describeXCM(name, fn, {skip: true}); +export function describeGov(title: string, fn: (this: Mocha.Suite) => void, opts: {skip?: boolean} = {}) { + (process.env.RUN_GOV_TESTS && !opts.skip + ? describe + : describe.skip)(title, fn); +} + +describeGov.skip = (name: string, fn: (this: Mocha.Suite) => void) => describeGov(name, fn, {skip: true}); + export function sizeOfInt(i: number) { if(i < 0 || i > 0xffffffff) throw new Error('out of range'); if(i < 0b11_1111) { --- a/tests/src/util/playgrounds/types.ts +++ b/tests/src/util/playgrounds/types.ts @@ -5,6 +5,11 @@ export const NON_EXISTENT_COLLECTION_ID = 4_294_967_295; +export const MILLISECS_PER_BLOCK = 12000; +export const MINUTES = 60_000 / MILLISECS_PER_BLOCK; +export const HOURS = MINUTES * 60; +export const DAYS = HOURS * 24; + export interface IEvent { section: string; method: string; @@ -13,14 +18,16 @@ phase: {applyExtrinsic: number} | 'Initialization', } +export interface IPhasicEvent { + phase: any, // {ApplyExtrinsic: number} | 'Initialization', + event: IEvent; +} + export interface ITransactionResult { status: 'Fail' | 'Success'; result: { dispatchError: any, - events: { - phase: any, // {ApplyExtrinsic: number} | 'Initialization', - event: IEvent; - }[]; + events: IPhasicEvent[]; }, blockHash: string, moduleError?: string | object; @@ -246,6 +253,11 @@ }, } +export interface DemocracySplitAccount { + aye: bigint, + nay: bigint, +} + export type TSubstrateAccount = string; export type TEthereumAccount = string; export type TApiAllowedListeners = 'connected' | 'disconnected' | 'error' | 'ready' | 'decorated'; --- a/tests/src/util/playgrounds/unique.dev.ts +++ b/tests/src/util/playgrounds/unique.dev.ts @@ -8,8 +8,8 @@ import * as defs from '../../interfaces/definitions'; import {IKeyringPair} from '@polkadot/types/types'; import {EventRecord} from '@polkadot/types/interfaces'; -import {ICrossAccountId, IPovInfo, TSigner} from './types'; -import {FrameSystemEventRecord, XcmV2TraitsError} from '@polkadot/types/lookup'; +import {ICrossAccountId, IPovInfo, ITransactionResult, TSigner} from './types'; +import {FrameSystemEventRecord, XcmV2TraitsError, PalletSchedulerEvent} from '@polkadot/types/lookup'; import {VoidFn} from '@polkadot/api/types'; import {Pallets} from '..'; import {spawnSync} from 'child_process'; @@ -64,20 +64,18 @@ method(): string; - bindEventRecord(e: FrameSystemEventRecord): void; - - raw(): FrameSystemEventRecord; + wrapEvent(data: any[]): any; } // eslint-disable-next-line @typescript-eslint/naming-convention -function EventHelper(section: string, method: string) { - return class implements IEventHelper { - eventRecord: FrameSystemEventRecord | null; +function EventHelper(section: string, method: string, wrapEvent: (data: any[]) => any) { + const helperClass = class implements IEventHelper { + wrapEvent: (data: any[]) => any; _section: string; _method: string; constructor() { - this.eventRecord = null; + this.wrapEvent = wrapEvent; this._section = section; this._method = method; } @@ -90,22 +88,39 @@ return this._method; } - bindEventRecord(e: FrameSystemEventRecord) { - this.eventRecord = e; + filter(txres: ITransactionResult) { + return txres.result.events.filter(e => e.event.section === section && e.event.method === method) + .map(e => this.wrapEvent(e.event.data)); } - raw() { - return this.eventRecord!; + find(txres: ITransactionResult) { + const e = txres.result.events.find(e => e.event.section === section && e.event.method === method); + return e ? this.wrapEvent(e.event.data) : null; } - eventJsonData(index: number) { - return this.raw().event.data[index].toJSON() as T; + expect(txres: ITransactionResult) { + const e = this.find(txres); + if(e) { + return e; + } else { + throw Error(`Expected event ${section}.${method}`); + } } + }; + + return helperClass; +} + +function eventJsonData(data: any[], index: number) { + return data[index].toJSON() as T; +} + +function eventHumanData(data: any[], index: number) { + return data[index].toHuman(); +} - eventData(index: number) { - return this.raw().event.data[index] as T; - } - }; +function eventData(data: any[], index: number) { + return data[index] as T; } // eslint-disable-next-line @typescript-eslint/naming-convention @@ -113,73 +128,100 @@ return class Section { static section = section; - static Method(name: string) { - return EventHelper(Section.section, name); + static Method(name: string, wrapEvent: (data: any[]) => any = () => {}) { + const helperClass = EventHelper(Section.section, name, wrapEvent); + return new helperClass(); } }; } +function schedulerSection(schedulerInstance: string) { + return class extends EventSection(schedulerInstance) { + static Dispatched = this.Method('Dispatched', data => ({ + task: eventJsonData(data, 0), + id: eventHumanData(data, 1), + result: data[2], + })); + + static PriorityChanged = this.Method('PriorityChanged', data => ({ + task: eventJsonData(data, 0), + priority: eventJsonData(data, 1), + })); + }; +} + export class Event { static Democracy = class extends EventSection('democracy') { - static Started = class extends this.Method('Started') { - referendumIndex() { - return this.eventJsonData(0); - } + static Proposed = this.Method('Proposed', data => ({ + proposalIndex: eventJsonData(data, 0), + })); - threshold() { - return this.eventJsonData(1); - } - }; + static ExternalTabled = this.Method('ExternalTabled'); - static Voted = class extends this.Method('Voted') { - voter() { - return this.eventJsonData(0); - } + static Started = this.Method('Started', data => ({ + referendumIndex: eventJsonData(data, 0), + threshold: eventHumanData(data, 1), + })); - referendumIndex() { - return this.eventJsonData(1); - } + static Voted = this.Method('Voted', data => ({ + voter: eventJsonData(data, 0), + referendumIndex: eventJsonData(data, 1), + vote: eventJsonData(data, 2), + })); - vote() { - return this.eventJsonData(2); - } - }; + static Passed = this.Method('Passed', data => ({ + referendumIndex: eventJsonData(data, 0), + })); + }; - static Passed = class extends this.Method('Passed') { - referendumIndex() { - return this.eventJsonData(0); - } - }; + static Council = class extends EventSection('council') { + static Proposed = this.Method('Proposed', data => ({ + account: eventHumanData(data, 0), + proposalIndex: eventJsonData(data, 1), + proposalHash: eventHumanData(data, 2), + threshold: eventJsonData(data, 3), + })); + static Closed = this.Method('Closed', data => ({ + proposalHash: eventHumanData(data, 0), + yes: eventJsonData(data, 1), + no: eventJsonData(data, 2), + })); }; - static Scheduler = class extends EventSection('scheduler') { - static PriorityChanged = class extends this.Method('PriorityChanged') { - task() { - return this.eventJsonData(0); - } + static TechnicalCommittee = class extends EventSection('technicalCommittee') { + static Proposed = this.Method('Proposed', data => ({ + account: eventHumanData(data, 0), + proposalIndex: eventJsonData(data, 1), + proposalHash: eventHumanData(data, 2), + threshold: eventJsonData(data, 3), + })); + static Closed = this.Method('Closed', data => ({ + proposalHash: eventHumanData(data, 0), + yes: eventJsonData(data, 1), + no: eventJsonData(data, 2), + })); + }; - priority() { - return this.eventJsonData(1); - } - }; + static FellowshipReferenda = class extends EventSection('fellowshipReferenda') { + static Submitted = this.Method('Submitted', data => ({ + referendumIndex: eventJsonData(data, 0), + trackId: eventJsonData(data, 1), + proposal: eventJsonData(data, 2), + })); }; - static XcmpQueue = class extends EventSection('xcmpQueue') { - static XcmpMessageSent = class extends this.Method('XcmpMessageSent') { - messageHash() { - return this.eventJsonData(0); - } - }; + static UniqueScheduler = schedulerSection('uniqueScheduler'); + static Scheduler = schedulerSection('scheduler'); - static Fail = class extends this.Method('Fail') { - messageHash() { - return this.eventJsonData(0); - } + static XcmpQueue = class extends EventSection('xcmpQueue') { + static XcmpMessageSent = this.Method('XcmpMessageSent', data => ({ + messageHash: eventJsonData(data, 0), + })); - outcome() { - return this.eventData(1); - } - }; + static Fail = this.Method('Fail', data => ({ + messageHash: eventJsonData(data, 0), + outcome: eventData(data, 1), + })); }; } @@ -445,6 +487,16 @@ return crowd; }; + /** + * Generates one account with zero balance + * @returns the newly generated account + * @example const account = await helper.arrange.createEmptyAccount(); + */ + createEmptyAccount = (): IKeyringPair => { + const ss58Format = this.helper.chain.getChainProperties().ss58Format; + return this.helper.util.fromSeed(mnemonicGenerate(), ss58Format); + }; + isDevNode = async () => { let blockNumber = (await this.helper.callRpc('api.query.system.number')).toJSON(); if(blockNumber == 0) { @@ -759,7 +811,7 @@ // <<< Fast track proposal through technical committee <<< const democracyStarted = await this.helper.wait.expectEvent(3, Event.Democracy.Started); - const referendumIndex = democracyStarted.referendumIndex(); + const referendumIndex = democracyStarted.referendumIndex; // >>> Referendum voting >>> console.log(`\t* Referendum #${referendumIndex} voting.......`); @@ -771,7 +823,7 @@ // <<< Referendum voting <<< // Wait the proposal to pass - await this.helper.wait.expectEvent(3, Event.Democracy.Passed, event => event.referendumIndex() == referendumIndex); + await this.helper.wait.expectEvent(3, Event.Democracy.Passed, event => event.referendumIndex == referendumIndex); await this.helper.wait.newBlocks(1); @@ -919,15 +971,28 @@ return promise; } + parachainBlockMultiplesOf(val: bigint) { + // eslint-disable-next-line no-async-promise-executor + const promise = new Promise(async resolve => { + const unsubscribe = await this.helper.getApi().rpc.chain.subscribeNewHeads((data: any) => { + if(data.number.toBigInt() % val == 0n) { + console.log(`from waiter: ${data.number.toBigInt()}`); + unsubscribe(); + resolve(); + } + }); + }); + return promise; + } + event( maxBlocksToWait: number, - eventHelperType: new () => T, - filter: (_: T) => boolean = () => true, - ) { + eventHelper: T, + filter: (_: any) => boolean = () => true, + ): any { // eslint-disable-next-line no-async-promise-executor const promise = new Promise(async (resolve) => { const unsubscribe = await this.helper.getApi().rpc.chain.subscribeNewHeads(async header => { - const eventHelper = new eventHelperType(); const blockNumber = header.number.toHuman(); const blockHash = header.hash; const eventIdStr = `${eventHelper.section()}.${eventHelper.method()}`; @@ -938,21 +1003,14 @@ const apiAt = await this.helper.getApi().at(blockHash); const eventRecords = (await apiAt.query.system.events()) as any; - const neededEvent = eventRecords.toArray().find((r: FrameSystemEventRecord) => { - if( - r.event.section == eventHelper.section() - && r.event.method == eventHelper.method() - ) { - eventHelper.bindEventRecord(r); - return filter(eventHelper); - } else { - return false; - } - }); + const neededEvent = eventRecords.toArray() + .filter((r: FrameSystemEventRecord) => r.event.section == eventHelper.section() && r.event.method == eventHelper.method()) + .map((r: FrameSystemEventRecord) => eventHelper.wrapEvent(r.event.data)) + .find(filter); if(neededEvent) { unsubscribe(); - resolve(eventHelper); + resolve(neededEvent); } else if(maxBlocksToWait > 0) { maxBlocksToWait--; } else { @@ -967,12 +1025,11 @@ async expectEvent( maxBlocksToWait: number, - eventHelperType: new () => T, - filter: (e: T) => boolean = () => true, + eventHelper: T, + filter: (e: any) => boolean = () => true, ) { - const e = await this.event(maxBlocksToWait, eventHelperType, filter); + const e = await this.event(maxBlocksToWait, eventHelper, filter); if(e == null) { - const eventHelper = new eventHelperType(); throw Error(`The event '${eventHelper.section()}.${eventHelper.method()}' is expected`); } else { return e; --- a/tests/src/util/playgrounds/unique.ts +++ b/tests/src/util/playgrounds/unique.ts @@ -10,7 +10,7 @@ import '../../interfaces/augment-api'; import {AugmentedSubmittables} from '@polkadot/api-base/types/submittable'; import {ApiInterfaceEvents} from '@polkadot/api/types'; -import {encodeAddress, decodeAddress, keccakAsHex, evmToAddress, addressToEvm, base58Encode, blake2AsU8a} from '@polkadot/util-crypto'; +import {encodeAddress, decodeAddress, keccakAsHex, evmToAddress, addressToEvm, base58Encode, blake2AsU8a, blake2AsHex} from '@polkadot/util-crypto'; import {IKeyringPair} from '@polkadot/types/types'; import {hexToU8a} from '@polkadot/util/hex'; import {u8aConcat} from '@polkadot/util/u8a'; @@ -45,11 +45,14 @@ DemocracyStandardAccountVote, IEthCrossAccountId, CollectionFlag, + IPhasicEvent, + DemocracySplitAccount, } from './types'; import {RuntimeDispatchInfo} from '@polkadot/types/interfaces'; import type {Vec} from '@polkadot/types-codec'; -import {FrameSystemEventRecord, PalletBalancesIdAmount} from '@polkadot/types/lookup'; +import {FrameSupportPreimagesBounded, FrameSupportScheduleDispatchTime, FrameSystemEventRecord, PalletBalancesIdAmount, PalletDemocracyConviction, PalletDemocracyVoteAccountVote} from '@polkadot/types/lookup'; import {arrayUnzip} from '@polkadot/util'; +import {Event} from './unique.dev'; export class CrossAccountId { Substrate!: TSubstrateAccount; @@ -2960,12 +2963,544 @@ } } +class CollectiveGroup extends HelperGroup { + /** + * Pallet name to make an API call to. Examples: 'council', 'technicalCommittee' + */ + private collective: string; + + constructor(helper: UniqueHelper, collective: string) { + super(helper); + this.collective = collective; + } + + /** + * Check the result of a proposal execution for the success of the underlying proposed extrinsic. + * @param events events of the proposal execution + * @returns proposal hash + */ + private checkExecutedEvent(events: IPhasicEvent[]): string { + const executionEvents = events.filter(x => + x.event.section === this.collective && (x.event.method === 'Executed' || x.event.method === 'MemberExecuted')); + + if(executionEvents.length != 1) { + if(events.filter(x => x.event.section === this.collective && x.event.method === 'Disapproved').length > 0) + throw new Error(`Disapproved by ${this.collective}`); + else + throw new Error(`Expected one 'Executed' or 'MemberExecuted' event for ${this.collective}`); + } + + const result = (executionEvents[0].event.data as any).result; + + if(result.isErr) { + if(result.asErr.isModule) { + const error = result.asErr.asModule; + const metaError = this.helper.getApi()?.registry.findMetaError(error); + throw new Error(`Proposal execution failed with ${metaError.section}.${metaError.name}`); + } else { + throw new Error('Proposal execution failed with ' + result.asErr.toHuman()); + } + } + + return (executionEvents[0].event.data as any).proposalHash; + } + + /** + * Returns an array of members' addresses. + */ + async getMembers() { + return (await this.helper.callRpc(`api.query.${this.collective}.members`, [])).toHuman(); + } + + /** + * Returns the optional address of the prime member of the collective. + */ + async getPrimeMember() { + return (await this.helper.callRpc(`api.query.${this.collective}.prime`, [])).toHuman(); + } + + /** + * Returns an array of proposal hashes that are currently active for this collective. + */ + async getProposals() { + return (await this.helper.callRpc(`api.query.${this.collective}.proposals`, [])).toHuman(); + } + + /** + * Returns the call originally encoded under the specified hash. + * @param hash h256-encoded proposal + * @returns the optional call that the proposal hash stands for. + */ + async getProposalCallOf(hash: string) { + return (await this.helper.callRpc(`api.query.${this.collective}.proposalOf`, [hash])).toHuman(); + } + + /** + * Returns the total number of proposals so far. + */ + async getTotalProposalsCount() { + return (await this.helper.callRpc(`api.query.${this.collective}.proposalCount`, [])).toNumber(); + } + + /** + * Creates a new proposal up for voting. If the threshold is set to 1, the proposal will be executed immediately. + * @param signer keyring of the proposer + * @param proposal constructed call to be executed if the proposal is successful + * @param voteThreshold minimal number of votes for the proposal to be verified and executed + * @param lengthBound byte length of the encoded call + * @returns promise of extrinsic execution and its result + */ + async propose(signer: TSigner, proposal: any, voteThreshold: number, lengthBound = 10000) { + return await this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.propose`, [voteThreshold, proposal, lengthBound]); + } + + /** + * Casts a vote to either approve or reject a proposal. + * @param signer keyring of the voter + * @param proposalHash hash of the proposal to be voted for + * @param proposalIndex absolute index of the proposal used for absolutely nothing but throwing pointless errors + * @param approve aye or nay + * @returns promise of extrinsic execution and its result + */ + vote(signer: TSigner, proposalHash: string, proposalIndex: number, approve: boolean) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.vote`, [proposalHash, proposalIndex, approve]); + } + + /** + * Executes a call immediately as a member of the collective. Needed for the Member origin. + * @param signer keyring of the executor member + * @param proposal constructed call to be executed by the member + * @param lengthBound byte length of the encoded call + * @returns promise of extrinsic execution + */ + async execute(signer: TSigner, proposal: any, lengthBound = 10000) { + const result = await this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.execute`, [proposal, lengthBound]); + this.checkExecutedEvent(result.result.events); + return result; + } + + /** + * Attempt to close and execute a proposal. Note that there must already be enough votes to meet the threshold set when proposing. + * @param signer keyring of the executor. Can be absolutely anyone. + * @param proposalHash hash of the proposal to close + * @param proposalIndex index of the proposal generated on its creation + * @param weightBound weight of the proposed call. Can be obtained by calling `paymentInfo()` on the call. + * @param lengthBound byte length of the encoded call + * @returns promise of extrinsic execution and its result + */ + async close( + signer: TSigner, + proposalHash: string, + proposalIndex: number, + weightBound: [number, number] | any = [20_000_000_000, 1000_000], + lengthBound = 10_000, + ) { + const result = await this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.close`, [ + proposalHash, + proposalIndex, + weightBound, + lengthBound, + ]); + this.checkExecutedEvent(result.result.events); + return result; + } + + /** + * Shut down a proposal, regardless of its current state. + * @param signer keyring of the disapprover. Must be root + * @param proposalHash hash of the proposal to close + * @returns promise of extrinsic execution and its result + */ + disapproveProposal(signer: TSigner, proposalHash: string) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.disapproveProposal`, [proposalHash]); + } +} + +class CollectiveMembershipGroup extends HelperGroup { + /** + * Pallet name to make an API call to. Examples: 'councilMembership', 'technicalCommitteeMembership' + */ + private membership: string; + + constructor(helper: UniqueHelper, membership: string) { + super(helper); + this.membership = membership; + } + + /** + * Returns an array of members' addresses according to the membership pallet's perception. + * Note that it does not recognize the original pallet's members set with `setMembers()`. + */ + async getMembers() { + return (await this.helper.callRpc(`api.query.${this.membership}.members`, [])).toHuman(); + } + + /** + * Returns the optional address of the prime member of the collective. + */ + async getPrimeMember() { + return (await this.helper.callRpc(`api.query.${this.membership}.prime`, [])).toHuman(); + } + + /** + * Add a member to the collective. + * @param signer keyring of the setter. Must be root + * @param member address of the member to add + * @returns promise of extrinsic execution and its result + */ + addMember(signer: TSigner, member: string) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.membership}.addMember`, [member]); + } + + addMemberCall(member: string) { + return this.helper.constructApiCall(`api.tx.${this.membership}.addMember`, [member]); + } + + /** + * Remove a member from the collective. + * @param signer keyring of the setter. Must be root + * @param member address of the member to remove + * @returns promise of extrinsic execution and its result + */ + removeMember(signer: TSigner, member: string) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.membership}.removeMember`, [member]); + } + + removeMemberCall(member: string) { + return this.helper.constructApiCall(`api.tx.${this.membership}.removeMember`, [member]); + } + + /** + * Set members of the collective to the given list of addresses. + * @param signer keyring of the setter. Must be root (for the direct call, bypassing a public motion) + * @param members addresses of the members to set + * @returns promise of extrinsic execution and its result + */ + resetMembers(signer: TSigner, members: string[]) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.membership}.resetMembers`, [members]); + } + + /** + * Set the collective's prime member to the given address. + * @param signer keyring of the setter. Must be root (for the direct call, bypassing a public motion) + * @param prime address of the prime member of the collective + * @returns promise of extrinsic execution and its result + */ + setPrime(signer: TSigner, prime: string) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.membership}.setPrime`, [prime]); + } + + setPrimeCall(member: string) { + return this.helper.constructApiCall(`api.tx.${this.membership}.setPrime`, [member]); + } + + /** + * Remove the collective's prime member. + * @param signer keyring of the setter. Must be root (for the direct call, bypassing a public motion) + * @returns promise of extrinsic execution and its result + */ + clearPrime(signer: TSigner) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.membership}.clearPrime`, []); + } + + clearPrimeCall() { + return this.helper.constructApiCall(`api.tx.${this.membership}.clearPrime`, []); + } +} + +class RankedCollectiveGroup extends HelperGroup { + /** + * Pallet name to make an API call to. Examples: 'FellowshipCollective' + */ + private collective: string; + + constructor(helper: UniqueHelper, collective: string) { + super(helper); + this.collective = collective; + } + + addMember(signer: TSigner, newMember: string) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.addMember`, [newMember]); + } + + addMemberCall(newMember: string) { + return this.helper.constructApiCall(`api.tx.${this.collective}.addMember`, [newMember]); + } + + removeMember(signer: TSigner, member: string, minRank: number) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.removeMember`, [member, minRank]); + } + + removeMemberCall(newMember: string, minRank: number) { + return this.helper.constructApiCall(`api.tx.${this.collective}.removeMember`, [newMember, minRank]); + } + + promote(signer: TSigner, member: string) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.promoteMember`, [member]); + } + + promoteCall(newMember: string) { + return this.helper.constructApiCall(`api.tx.${this.collective}.promoteMember`, [newMember]); + } + + demote(signer: TSigner, member: string) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.demoteMember`, [member]); + } + + demoteCall(newMember: string) { + return this.helper.constructApiCall(`api.tx.${this.collective}.demoteMember`, [newMember]); + } + + vote(signer: TSigner, pollIndex: number, aye: boolean) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.vote`, [pollIndex, aye]); + } + + async getMembers() { + return (await this.helper.getApi().query.fellowshipCollective.members.keys()) + .map((key) => key.args[0].toString()); + } +} + +class ReferendaGroup extends HelperGroup { + /** + * Pallet name to make an API call to. Examples: 'FellowshipReferenda' + */ + private referenda: string; + + constructor(helper: UniqueHelper, referenda: string) { + super(helper); + this.referenda = referenda; + } + + submit( + signer: TSigner, + proposalOrigin: string, + proposal: any, + enactmentMoment: any, + ) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.referenda}.submit`, [ + {Origins: proposalOrigin}, + proposal, + enactmentMoment, + ]); + } + + placeDecisionDeposit(signer: TSigner, referendumIndex: number) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.referenda}.placeDecisionDeposit`, [referendumIndex]); + } + + cancel(signer: TSigner, referendumIndex: number) { + return this.helper.executeExtrinsic(signer, `api.tx.${this.referenda}.cancel`, [referendumIndex]); + } + + cancelCall(referendumIndex: number) { + return this.helper.constructApiCall(`api.tx.${this.referenda}.cancel`, [referendumIndex]); + } + + async referendumInfo(referendumIndex: number) { + return (await this.helper.callRpc(`api.query.${this.referenda}.referendumInfoFor`, [referendumIndex])).toJSON(); + } + + async enactmentEventId(referendumIndex: number) { + const api = await this.helper.getApi(); + + const bytes = api.createType('([u8;8], Text, u32)', ['assembly', 'enactment', referendumIndex]).toU8a(); + return blake2AsHex(bytes, 256); + } +} + +export interface IFellowshipGroup { + collective: RankedCollectiveGroup; + referenda: ReferendaGroup; +} + +export interface ICollectiveGroup { + collective: CollectiveGroup; + membership: CollectiveMembershipGroup; +} + +class DemocracyGroup extends HelperGroup { + // todo displace proposal into types? + propose(signer: TSigner, call: any, deposit: bigint) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.propose', [{Inline: call.method.toHex()}, deposit]); + } + + proposeWithPreimage(signer: TSigner, preimage: string, deposit: bigint) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.propose', [{Legacy: preimage}, deposit]); + } + + proposeCall(call: any, deposit: bigint) { + return this.helper.constructApiCall('api.tx.democracy.propose', [{Inline: call.method.toHex()}, deposit]); + } + + second(signer: TSigner, proposalIndex: number) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.second', [proposalIndex]); + } + + externalPropose(signer: TSigner, proposalCall: any) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.externalPropose', [{Inline: proposalCall.method.toHex()}]); + } + + externalProposeMajority(signer: TSigner, proposalCall: any) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.externalProposeMajority', [{Inline: proposalCall.method.toHex()}]); + } + + externalProposeDefault(signer: TSigner, proposalCall: any) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.externalProposeDefault', [{Inline: proposalCall.method.toHex()}]); + } + + externalProposeDefaultWithPreimage(signer: TSigner, preimage: string) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.externalProposeDefault', [{Legacy: preimage}]); + } + + externalProposeCall(proposalCall: any) { + return this.helper.constructApiCall('api.tx.democracy.externalPropose', [{Inline: proposalCall.method.toHex()}]); + } + + externalProposeMajorityCall(proposalCall: any) { + return this.helper.constructApiCall('api.tx.democracy.externalProposeMajority', [{Inline: proposalCall.method.toHex()}]); + } + + externalProposeDefaultCall(proposalCall: any) { + return this.helper.constructApiCall('api.tx.democracy.externalProposeDefault', [{Inline: proposalCall.method.toHex()}]); + } + + // ... and blacklist external proposal hash. + vetoExternal(signer: TSigner, proposalHash: string) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.vetoExternal', [proposalHash]); + } + + vetoExternalCall(proposalHash: string) { + return this.helper.constructApiCall('api.tx.democracy.vetoExternal', [proposalHash]); + } + + blacklist(signer: TSigner, proposalHash: string, referendumIndex: number | null = null) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.blacklist', [proposalHash, referendumIndex]); + } + + blacklistCall(proposalHash: string, referendumIndex: number | null = null) { + return this.helper.constructApiCall('api.tx.democracy.blacklist', [proposalHash, referendumIndex]); + } + + // proposal. CancelProposalOrigin (root or all techcom) + cancelProposal(signer: TSigner, proposalIndex: number) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.cancelProposal', [proposalIndex]); + } + + cancelProposalCall(proposalIndex: number) { + return this.helper.constructApiCall('api.tx.democracy.cancelProposal', [proposalIndex]); + } + + clearPublicProposals(signer: TSigner) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.clearPublicProposals', []); + } + + fastTrack(signer: TSigner, proposalHash: string, votingPeriod: number, delayPeriod: number) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.fastTrack', [proposalHash, votingPeriod, delayPeriod]); + } + + fastTrackCall(proposalHash: string, votingPeriod: number, delayPeriod: number) { + return this.helper.constructApiCall('api.tx.democracy.fastTrack', [proposalHash, votingPeriod, delayPeriod]); + } + + // referendum. CancellationOrigin (TechCom member) + emergencyCancel(signer: TSigner, referendumIndex: number) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.emergencyCancel', [referendumIndex]); + } + + emergencyCancelCall(referendumIndex: number) { + return this.helper.constructApiCall('api.tx.democracy.emergencyCancel', [referendumIndex]); + } + + vote(signer: TSigner, referendumIndex: number, vote: any) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.vote', [referendumIndex, vote]); + } + + removeVote(signer: TSigner, referendumIndex: number, targetAccount?: string) { + if(targetAccount) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.removeOtherVote', [targetAccount, referendumIndex]); + } else { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.removeVote', [referendumIndex]); + } + } + + unlock(signer: TSigner, targetAccount: string) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.unlock', [targetAccount]); + } + + delegate(signer: TSigner, toAccount: string, conviction: PalletDemocracyConviction, balance: bigint) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.delegate', [toAccount, conviction, balance]); + } + + undelegate(signer: TSigner) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.undelegate', []); + } + + async referendumInfo(referendumIndex: number) { + return (await this.helper.callRpc('api.query.democracy.referendumInfoOf', [referendumIndex])).toJSON(); + } + + async publicProposals() { + return (await this.helper.callRpc('api.query.democracy.publicProps', [])).toJSON(); + } + + async findPublicProposal(proposalIndex: number) { + const proposalInfo = (await this.publicProposals()).find((proposalInfo: any[]) => proposalInfo[0] == proposalIndex); + + return proposalInfo ? proposalInfo[1] : null; + } + + async expectPublicProposal(proposalIndex: number) { + const proposal = await this.findPublicProposal(proposalIndex); + + if(proposal) { + return proposal; + } else { + throw Error(`Proposal #${proposalIndex} is expected to exist`); + } + } + + async getExternalProposal() { + return (await this.helper.callRpc('api.query.democracy.nextExternal', [])); + } + + async expectExternalProposal() { + const proposal = await this.getExternalProposal(); + + if(proposal) { + return proposal; + } else { + throw Error('An external proposal is expected to exist'); + } + } + + /* setMetadata? */ + + /* todo? + referendumVote(signer: TSigner, referendumIndex: number, accountVote: DemocracyStandardAccountVote) { + return this.helper.executeExtrinsic(signer, 'api.tx.democracy.vote', [referendumIndex, {Standard: accountVote}], true); + }*/ +} + class PreimageGroup extends HelperGroup { async getPreimageInfo(h256: string) { return (await this.helper.callRpc('api.query.preimage.statusFor', [h256])).toJSON(); } /** + * Create a preimage from an API call. + * @param signer keyring of the signer. + * @param call an extrinsic call + * @example await notePreimageFromCall(preimageMaker, + * helper.constructApiCall('api.tx.identity.forceInsertIdentities', [identitiesToAdd]) + * ); + * @returns promise of extrinsic execution. + */ + notePreimageFromCall(signer: TSigner, call: any, returnPreimageHash = false) { + return this.notePreimage(signer, call.method.toHex(), returnPreimageHash); + } + + /** * Create a preimage with a hex or a byte array. * @param signer keyring of the signer. * @param bytes preimage encoded in hex or a byte array, e.g. an extrinsic call. @@ -2974,8 +3509,15 @@ * ); * @returns promise of extrinsic execution. */ - notePreimage(signer: TSigner, bytes: string | Uint8Array) { - return this.helper.executeExtrinsic(signer, 'api.tx.preimage.notePreimage', [bytes]); + async notePreimage(signer: TSigner, bytes: string | Uint8Array, returnPreimageHash = false) { + const promise = this.helper.executeExtrinsic(signer, 'api.tx.preimage.notePreimage', [bytes]); + if(returnPreimageHash) { + const result = await promise; + const events = result.result.events.filter(x => x.event.method === 'Noted' && x.event.section === 'preimage'); + const preimageHash = events[0].event.data[0].toHuman(); + return preimageHash; + } + return promise; } /** @@ -3262,6 +3804,10 @@ staking: StakingGroup; scheduler: SchedulerGroup; collatorSelection: CollatorSelectionGroup; + council: ICollectiveGroup; + technicalCommittee: ICollectiveGroup; + fellowship: IFellowshipGroup; + democracy: DemocracyGroup; preimage: PreimageGroup; foreignAssets: ForeignAssetsGroup; xcm: XcmGroup; @@ -3279,6 +3825,19 @@ this.staking = new StakingGroup(this); this.scheduler = new SchedulerGroup(this); this.collatorSelection = new CollatorSelectionGroup(this); + this.council = { + collective: new CollectiveGroup(this, 'council'), + membership: new CollectiveMembershipGroup(this, 'councilMembership'), + }; + this.technicalCommittee = { + collective: new CollectiveGroup(this, 'technicalCommittee'), + membership: new CollectiveMembershipGroup(this, 'technicalCommitteeMembership'), + }; + this.fellowship = { + collective: new RankedCollectiveGroup(this, 'fellowshipCollective'), + referenda: new ReferendaGroup(this, 'fellowshipReferenda'), + }; + this.democracy = new DemocracyGroup(this); this.preimage = new PreimageGroup(this); this.foreignAssets = new ForeignAssetsGroup(this); this.xcm = new XcmGroup(this, 'polkadotXcm'); --- a/tests/src/xcm/xcmQuartz.test.ts +++ b/tests/src/xcm/xcmQuartz.test.ts @@ -682,7 +682,7 @@ maliciousXcmProgramSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash && event.outcome().isFailedToTransactAsset); targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -763,7 +763,7 @@ maliciousXcmProgramFullIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramFullIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash && event.outcome().isUntrustedReserveLocation); let accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -776,7 +776,7 @@ maliciousXcmProgramHereIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramHereIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash && event.outcome().isUntrustedReserveLocation); accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -862,7 +862,7 @@ }); const expectFailedToTransact = async (helper: DevUniqueHelper, messageSent: any) => { - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == messageSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == messageSent.messageHash && event.outcome().isFailedToTransactAsset); }; @@ -1174,7 +1174,7 @@ maliciousXcmProgramSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash && event.outcome().isFailedToTransactAsset); targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1263,7 +1263,7 @@ maliciousXcmProgramFullIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramFullIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash && event.outcome().isUntrustedReserveLocation); let accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1280,7 +1280,7 @@ maliciousXcmProgramHereIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramHereIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash && event.outcome().isUntrustedReserveLocation); accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1540,7 +1540,7 @@ maliciousXcmProgramSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash && event.outcome().isFailedToTransactAsset); targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1621,7 +1621,7 @@ maliciousXcmProgramFullIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramFullIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash && event.outcome().isUntrustedReserveLocation); let accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1634,7 +1634,7 @@ maliciousXcmProgramHereIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramHereIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash && event.outcome().isUntrustedReserveLocation); accountBalance = await helper.balance.getSubstrate(targetAccount.address); --- a/tests/src/xcm/xcmUnique.test.ts +++ b/tests/src/xcm/xcmUnique.test.ts @@ -684,7 +684,7 @@ maliciousXcmProgramSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash && event.outcome().isFailedToTransactAsset); targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -765,7 +765,7 @@ maliciousXcmProgramFullIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramFullIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash && event.outcome().isUntrustedReserveLocation); let accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -778,7 +778,7 @@ maliciousXcmProgramHereIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramHereIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash && event.outcome().isUntrustedReserveLocation); accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -864,7 +864,7 @@ }); const expectFailedToTransact = async (helper: DevUniqueHelper, messageSent: any) => { - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == messageSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == messageSent.messageHash && event.outcome().isFailedToTransactAsset); }; @@ -1177,7 +1177,7 @@ maliciousXcmProgramSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash && event.outcome().isFailedToTransactAsset); targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1266,7 +1266,7 @@ maliciousXcmProgramFullIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramFullIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash && event.outcome().isUntrustedReserveLocation); let accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1283,7 +1283,7 @@ maliciousXcmProgramHereIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramHereIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash && event.outcome().isUntrustedReserveLocation); accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1542,7 +1542,7 @@ maliciousXcmProgramSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramSent.messageHash && event.outcome().isFailedToTransactAsset); targetAccountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1623,7 +1623,7 @@ maliciousXcmProgramFullIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramFullIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramFullIdSent.messageHash && event.outcome().isUntrustedReserveLocation); let accountBalance = await helper.balance.getSubstrate(targetAccount.address); @@ -1636,7 +1636,7 @@ maliciousXcmProgramHereIdSent = await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.XcmpMessageSent); }); - await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash() == maliciousXcmProgramHereIdSent.messageHash() + await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == maliciousXcmProgramHereIdSent.messageHash && event.outcome().isUntrustedReserveLocation); accountBalance = await helper.balance.getSubstrate(targetAccount.address); --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -1,33 +1,22 @@ { - "compilerOptions": { - "target": "ES2020", - "moduleResolution": "node", - "esModuleInterop": true, - "resolveJsonModule": true, - "module": "ESNext", - "sourceMap": true, - "outDir": "dist", - "strict": true, - "paths": { - "@polkadot/types/lookup": [ - "./src/interfaces/types-lookup.ts" - ], - "@unique-nft/types/*": [ - "./src/interfaces/*" - ] - } - }, - "include": [ - "./src/**/*", - "./src/interfaces/*.ts" - ], - "exclude": [ - "./src/.outdated" - ], - "lib": [ - "es2017" - ], - "ts-node": { - "experimentalSpecifierResolution": "node" - } + "compilerOptions": { + "target": "ES2020", + "moduleResolution": "node", + "esModuleInterop": true, + "resolveJsonModule": true, + "module": "ESNext", + "sourceMap": true, + "outDir": "dist", + "strict": true, + "paths": { + "@polkadot/types/lookup": ["./src/interfaces/types-lookup.ts"], + "@unique-nft/types/*": ["./src/interfaces/*"] + } + }, + "include": ["./src/**/*", "./src/interfaces/*.ts"], + "exclude": ["./src/.outdated"], + "lib": ["es2017"], + "ts-node": { + "experimentalSpecifierResolution": "node" + } }