difftreelog
Merge branch 'develop' into tests/vesting
in: master
144 files changed
.docker/Dockerfile-try-runtimediffbeforeafterboth46 echo "Fork from: $REPLICA_FROM\n" && \46 echo "Fork from: $REPLICA_FROM\n" && \47 cargo build --features=try-runtime,${NETWORK}-runtime --release47 cargo build --features=try-runtime,${NETWORK}-runtime --release484849CMD cargo run --features=try-runtime,${NETWORK}-runtime --release -- try-runtime --no-spec-check-panic on-runtime-upgrade live --uri $REPLICA_FROM49CMD cargo run --features=try-runtime,${NETWORK}-runtime --release -- try-runtime -ltry-runtime::cli=debug --no-spec-check-panic on-runtime-upgrade live --uri $REPLICA_FROM5050.docker/additional/Dockerfile-polkadotdiffbeforeafterbothno changes
.docker/docker-compose.tmp-node.j2diffbeforeafterboth23 read_only: true23 read_only: true24 expose:24 expose:25 - 994425 - 994426 - 994526 - 993327 - 993327 - 984428 - 984428 ports:29 ports:29 - 127.0.0.1:9944:994430 - 127.0.0.1:9944:994431 - 127.0.0.1:9945:994530 - 127.0.0.1:9933:993332 - 127.0.0.1:9933:993331 - 127.0.0.1:9844:984433 - 127.0.0.1:9844:984432 logging:34 logging:.docker/forkless-config/launch-config-forkless-data.j2diffbeforeafterboth107 "--rpc-cors=all",107 "--rpc-cors=all",108 "--unsafe-rpc-external",108 "--unsafe-rpc-external",109 "--unsafe-ws-external",109 "--unsafe-ws-external",110 "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug"110 "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",111 "--",112 "--port=31335",113 "--ws-port=9745",114 "--rpc-port=9734"111 ]115 ]112 },116 },113 {117 {.docker/forkless-config/launch-config-forkless-nodata.j2diffbeforeafterboth102 "--unsafe-rpc-external",102 "--unsafe-rpc-external",103 "--unsafe-ws-external",103 "--unsafe-ws-external",104 "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",104 "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",105 "--ws-max-connections=1000"105 "--ws-max-connections=1000",106 "--",107 "--port=31335",108 "--ws-port=9745",109 "--rpc-port=9734"106 ]110 ]107 },111 },108 {112 {115 "--unsafe-rpc-external",119 "--unsafe-rpc-external",116 "--unsafe-ws-external",120 "--unsafe-ws-external",117 "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",121 "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",118 "--ws-max-connections=1000"122 "--ws-max-connections=1000",123 "--",124 "--port=31337",125 "--ws-port=9747",126 "--rpc-port=9737" 119 ]127 ]120 }128 }121 ]129 ].docker/forkless-config/launch-config-node-update-only-v3.j2diffbeforeafterboth102 "--unsafe-rpc-external",102 "--unsafe-rpc-external",103 "--unsafe-ws-external",103 "--unsafe-ws-external",104 "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",104 "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",105 "--ws-max-connections=1000"105 "--ws-max-connections=1000",106 "--",107 "--port=31335",108 "--ws-port=9745",109 "--rpc-port=9734"106 ]110 ]107 },111 },108 {112 {.github/workflows/codestyle.ymldiffbeforeafterboth11 rustfmt:11 rustfmt:12 runs-on: [ self-hosted-ci ]12 runs-on: [ self-hosted-ci ]13 steps:13 steps:14 - name: Clean Workspace15 uses: AutoModality/action-clean@v1.1.014 - uses: actions/checkout@v316 - uses: actions/checkout@v317 with:18 ref: ${{ github.head_ref }} 15 - name: Install latest nightly19 - name: Install latest nightly16 uses: actions-rs/toolchain@v120 uses: actions-rs/toolchain@v117 with:21 with:28 yarn_eslint:32 yarn_eslint:29 runs-on: [ self-hosted-ci ]33 runs-on: [ self-hosted-ci ]30 steps:34 steps:35 - name: Clean Workspace36 uses: AutoModality/action-clean@v1.1.031 - uses: actions/checkout@v337 - uses: actions/checkout@v338 with:39 ref: ${{ github.head_ref }} 32 - uses: actions/setup-node@v340 - uses: actions/setup-node@v333 with:41 with:34 node-version: 1642 node-version: 16.github/workflows/node-only-update.ymldiffbeforeafterboth76 with:76 with:77 template: .docker/docker-compose.tmp-node.j277 template: .docker/docker-compose.tmp-node.j278 output_file: .docker/docker-compose.node.${{ matrix.network }}.yml78 output_file: .docker/docker-compose.node.${{ matrix.network }}.yml79 variables: |79 variables: |80 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git80 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git81 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}81 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}82 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}82 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}83 POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }} 83 POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}84 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}84 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}85 MAINNET_TAG=${{ matrix.mainnet_tag }}85 MAINNET_TAG=${{ matrix.mainnet_tag }}86 MAINNET_BRANCH=${{ matrix.mainnet_branch }}86 MAINNET_BRANCH=${{ matrix.mainnet_branch }}87 NETWORK=${{ matrix.network }}87 NETWORK=${{ matrix.network }}88 BRANCH=${{ github.head_ref }}88 BRANCH=${{ github.head_ref }}898990 - name: Show build configuration90 - name: Show build configuration91 run: cat .docker/docker-compose.node.${{ matrix.network }}.yml91 run: cat .docker/docker-compose.node.${{ matrix.network }}.yml160 ref: ${{ matrix.mainnet_branch }} #Checking out head commit160 ref: ${{ matrix.mainnet_branch }} #Checking out head commit161 path: ${{ matrix.mainnet_branch }}161 path: ${{ matrix.mainnet_branch }}162162163 - name: Run tests before Node Parachain upgrade163 - name: Run Parallel tests before Node Parachain upgrade164 working-directory: ${{ matrix.mainnet_branch }}/tests164 working-directory: ${{ matrix.mainnet_branch }}/tests165 if: success() || failure()165 run: |166 run: |166 yarn install167 yarn install167 yarn add mochawesome168 yarn add mochawesome168 node scripts/readyness.js169 node scripts/readyness.js169 echo "Ready to start tests"170 echo "Ready to start tests"170 yarn polkadot-types171 yarn polkadot-types171 NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-before-${NOW}172 NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}172 env:173 env:173 RPC_URL: http://127.0.0.1:9933/174 RPC_URL: http://127.0.0.1:9933/175176 # - name: Upload Parallel Test Report Before Node upgrade177 # uses: phoenix-actions/test-reporting@v8178 # id: test-parallel-report-before179 # if: success() || failure() # run this step even if previous step failed180 # with:181 # name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created182 # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results183 # reporter: mochawesome-json184 # fail-on-error: 'false'174185175 - name: Upload Test Report Before Node upgrade186 - name: Run Sequential tests before Node Parachain upgrade176 uses: phoenix-actions/test-reporting@v8177 id: test-report-before178 if: success() || failure() # run this step even if previous step failed187 if: success() || failure()179 with:180 name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created188 working-directory: ${{ matrix.mainnet_branch }}/tests181 path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-before-*.json # Path to test results189 run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}182 reporter: mochawesome-json190 env:183 fail-on-error: 'false'191 RPC_URL: http://127.0.0.1:9933/184185 # TODO uncomment thease steps after the merge186 #- name: Run Parallel tests before Node Parachain upgrade187 # working-directory: ${{ matrix.mainnet_branch }}/tests188 # run: |189 # yarn install190 # yarn add mochawesome191 # echo "Ready to start tests"192 # yarn polkadot-types193 # NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}194 # env:195 # RPC_URL: http://127.0.0.1:9933/196197 #- name: Upload Parallel Test Report Before Node upgrade198 # uses: phoenix-actions/test-reporting@v8199 # id: test-parallel-report-before200 # if: success() || failure() # run this step even if previous step failed201 # with:202 # name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created203 # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results204 # reporter: mochawesome-json205 # fail-on-error: 'false'206207 # - name: Run Sequential tests before Node Parachain upgrade208 # if: success() || failure()209 # working-directory: ${{ matrix.mainnet_branch }}/tests210 # run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}211 # env:212 # RPC_URL: http://127.0.0.1:9933/213192214 # - name: Upload Sequential Test Report Before Node upgrade193 # - name: Upload Sequential Test Report Before Node upgrade215 # uses: phoenix-actions/test-reporting@v8194 # uses: phoenix-actions/test-reporting@v8223 202224 - name: Send SIGUSR1 to polkadot-launch process203 - name: Send SIGUSR1 to polkadot-launch process225 if: success() || failure()204 if: success() || failure()226 run: |205 run: |227 #Get PID of polkadot-launch206 #Get PID of polkadot-launch228 ContainerID=$(docker ps -aqf "name=node-parachain")207 ContainerID=$(docker ps -aqf "name=node-parachain")229 PID=$(docker exec node-parachain pidof 'polkadot-launch')208 PID=$(docker exec node-parachain pidof 'polkadot-launch')230 sleep 30s209 sleep 30s231 echo -e "Show logs of node-parachain container.\n"210 echo -e "\n"232 docker logs ${ContainerID}211 echo -e "Restart polkadot-launch process: $PID\n"233 echo -e "\n"234 echo -e "Restart polkadot-launch process: $PID\n"212 docker exec node-parachain kill -SIGUSR1 ${PID}235 docker exec node-parachain kill -SIGUSR1 ${PID}213 echo "SIGUSR1 sent to Polkadot-launch PID: $PID"214 sleep 60s236 echo "SIGUSR1 sent to Polkadot-launch PID: $PID"215 echo -e "Show logs of node-parachain container.\n" 237 docker logs ${ContainerID}216 docker logs ${ContainerID}238 217239 - name: Get chain logs in case of docker image crashed after Polkadot Launch restart218 - name: Get chain logs in case of docker image crashed after Polkadot Launch restart240 if: failure() # run this step only at failure219 if: failure() # run this step only at failure241 run: |220 run: |242 docker exec node-parachain cat /polkadot-launch/9944.log221 docker exec node-parachain tail -n 1000 /polkadot-launch/9944.log243 docker exec node-parachain cat /polkadot-launch/9945.log222 docker exec node-parachain tail -n 1000 /polkadot-launch/9945.log244 docker exec node-parachain cat /polkadot-launch/alice.log223 docker exec node-parachain tail -n 1000 /polkadot-launch/alice.log245 docker exec node-parachain cat /polkadot-launch/eve.log224246 docker exec node-parachain cat /polkadot-launch/dave.log225 - name: copy chain log files from container to the host247 docker exec node-parachain cat /polkadot-launch/charlie.log 226 if: success() || failure() # run this step even if previous step failed227 run: |228 mkdir -p /tmp/node-only-update229 docker cp node-parachain:/polkadot-launch/9944.log /tmp/node-only-update/230 docker cp node-parachain:/polkadot-launch/9945.log /tmp/node-only-update/231 docker cp node-parachain:/polkadot-launch/alice.log /tmp/node-only-update/232233 - name: Upload chain log files234 if: success() || failure()235 uses: actions/upload-artifact@v3236 with:237 name: node-only-update-chain-logs238 path: /tmp/node-only-update/239 if-no-files-found: warn248240249 - name: Check if docker logs consist messages related to testing of Node Parachain Upgrade.241 - name: Check if docker logs consist messages related to testing of Node Parachain Upgrade.250 if: success()242 if: success()291 exit 0283 exit 0292 shell: bash284 shell: bash293 285294 ## TODO: Remove next two blocks before switch to Parrallel & Sequental tests. Uncoment commented blocks.295 - name: Run tests after Node Parachain upgrade286 - name: Run Parallel tests after Node Parachain upgrade296 working-directory: ${{ matrix.mainnet_branch }}/tests287 working-directory: ${{ matrix.mainnet_branch }}/tests288 if: success() || failure() # run this step even if previous step failed297 run: |289 run: |298 yarn install290 yarn install299 yarn add mochawesome291 yarn add mochawesome300 node scripts/readyness.js292 node scripts/readyness.js301 echo "Ready to start tests"293 echo "Ready to start tests"302 yarn polkadot-types294 yarn polkadot-types303 NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-after-${NOW}295 NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}304 env:296 env:305 RPC_URL: http://127.0.0.1:9933/297 RPC_URL: http://127.0.0.1:9933/298299 #- name: Test Report Parallel After Node upgrade300 # uses: phoenix-actions/test-reporting@v8301 # id: test-report-parallel-after302 # if: success() || failure() # run this step even if previous step failed303 # with:304 # name: Tests after node upgrade ${{ matrix.network }} # Name of the check run which will be created305 # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results306 # reporter: mochawesome-json307 # fail-on-error: 'false'306308307 - name: Test Report After Node upgrade309 - name: Run Sequential tests after Node Parachain upgrade308 uses: phoenix-actions/test-reporting@v8309 id: test-report-after310 if: success() || failure() # run this step even if previous step failed310 if: success() || failure()311 with:312 name: Tests after node upgrade ${{ matrix.network }} # Name of the check run which will be created311 working-directory: ${{ matrix.mainnet_branch }}/tests313 path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-after-*.json # Path to test results312 run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}314 reporter: mochawesome-json313 env:315 fail-on-error: 'false'314 RPC_URL: http://127.0.0.1:9933/316317 # TODO uncomment thease steps after the merge318 #- name: Run Parallel tests after Node Parachain upgrade319 # working-directory: ${{ matrix.mainnet_branch }}/tests320 # run: |321 # yarn install322 # yarn add mochawesome323 # node scripts/readyness.js324 # echo "Ready to start tests"325 # yarn polkadot-types326 # NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}327 # env:328 # RPC_URL: http://127.0.0.1:9933/329330 #- name: Test Report Parallel After Node upgrade331 # uses: phoenix-actions/test-reporting@v8332 # id: test-report-parallel-after333 # if: success() || failure() # run this step even if previous step failed334 # with:335 # name: Tests after node upgrade ${{ matrix.network }} # Name of the check run which will be created336 # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results337 # reporter: mochawesome-json338 # fail-on-error: 'false'339 340 #- name: Run Sequential tests after Node Parachain upgrade341 # if: success() || failure()342 # working-directory: ${{ matrix.mainnet_branch }}/tests343 # run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}344 # env:345 # RPC_URL: http://127.0.0.1:9933/346315347 #- name: Upload Sequential Test Report After Node upgrade316 #- name: Upload Sequential Test Report After Node upgrade348 # uses: phoenix-actions/test-reporting@v8317 # uses: phoenix-actions/test-reporting@v8.maintain/scripts/generate_abi.shdiffbeforeafterboth4dir=$PWD4dir=$PWD556tmp=$(mktemp -d)6tmp=$(mktemp -d)7echo "Tmp file: $tmp/input.sol"7cd $tmp8cd $tmp8cp $dir/$INPUT input.sol9cp $dir/$INPUT input.sol9solcjs --abi -p input.sol10solcjs --abi -p input.solCargo.lockdiffbeforeafterboth757576[[package]]76[[package]]77name = "aho-corasick"77name = "aho-corasick"78version = "0.7.19"78version = "0.7.20"79source = "registry+https://github.com/rust-lang/crates.io-index"79source = "registry+https://github.com/rust-lang/crates.io-index"80checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"80checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"81dependencies = [81dependencies = [82 "memchr",82 "memchr",83]83]137137138[[package]]138[[package]]139name = "array-bytes"139name = "array-bytes"140version = "4.1.0"140version = "4.2.0"141source = "registry+https://github.com/rust-lang/crates.io-index"141source = "registry+https://github.com/rust-lang/crates.io-index"142checksum = "6a913633b0c922e6b745072795f50d90ebea78ba31a57e2ac8c2fc7b50950949"142checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6"143143144[[package]]144[[package]]145name = "arrayref"145name = "arrayref"196source = "registry+https://github.com/rust-lang/crates.io-index"196source = "registry+https://github.com/rust-lang/crates.io-index"197checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"197checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"198dependencies = [198dependencies = [199 "concurrent-queue",199 "concurrent-queue 1.2.4",200 "event-listener",200 "event-listener",201 "futures-core",201 "futures-core",202]202]203203204[[package]]204[[package]]205name = "async-executor"205name = "async-executor"206version = "1.4.1"206version = "1.5.0"207source = "registry+https://github.com/rust-lang/crates.io-index"207source = "registry+https://github.com/rust-lang/crates.io-index"208checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"208checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"209dependencies = [209dependencies = [210 "async-lock",210 "async-task",211 "async-task",211 "concurrent-queue",212 "concurrent-queue 2.0.0",212 "fastrand",213 "fastrand",213 "futures-lite",214 "futures-lite",214 "once_cell",215 "slab",215 "slab",216]216]217217218[[package]]218[[package]]219name = "async-global-executor"219name = "async-global-executor"220version = "2.3.0"220version = "2.3.1"221source = "registry+https://github.com/rust-lang/crates.io-index"221source = "registry+https://github.com/rust-lang/crates.io-index"222checksum = "0da5b41ee986eed3f524c380e6d64965aea573882a8907682ad100f7859305ca"222checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"223dependencies = [223dependencies = [224 "async-channel",224 "async-channel",225 "async-executor",225 "async-executor",232232233[[package]]233[[package]]234name = "async-io"234name = "async-io"235version = "1.9.0"235version = "1.10.0"236source = "registry+https://github.com/rust-lang/crates.io-index"236source = "registry+https://github.com/rust-lang/crates.io-index"237checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7"237checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7"238dependencies = [238dependencies = [239 "async-lock",239 "autocfg",240 "autocfg",240 "concurrent-queue",241 "concurrent-queue 1.2.4",241 "futures-lite",242 "futures-lite",242 "libc",243 "libc",243 "log",244 "log",244 "once_cell",245 "parking",245 "parking",246 "polling",246 "polling",247 "slab",247 "slab",340340341[[package]]341[[package]]342name = "asynchronous-codec"342name = "asynchronous-codec"343version = "0.6.0"343version = "0.6.1"344source = "registry+https://github.com/rust-lang/crates.io-index"344source = "registry+https://github.com/rust-lang/crates.io-index"345checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690"345checksum = "06a0daa378f5fd10634e44b0a29b2a87b890657658e072a30d6f26e57ddee182"346dependencies = [346dependencies = [347 "bytes",347 "bytes",348 "futures-sink",348 "futures-sink",595 "funty 2.0.0",595 "funty 2.0.0",596 "radium 0.7.0",596 "radium 0.7.0",597 "tap",597 "tap",598 "wyz 0.5.0",598 "wyz 0.5.1",599]599]600600601[[package]]601[[package]]602name = "blake2"602name = "blake2"603version = "0.10.4"603version = "0.10.5"604source = "registry+https://github.com/rust-lang/crates.io-index"604source = "registry+https://github.com/rust-lang/crates.io-index"605checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388"605checksum = "b12e5fd123190ce1c2e559308a94c9bacad77907d4c6005d9e58fe1a0689e55e"606dependencies = [606dependencies = [607 "digest 0.10.5",607 "digest 0.10.6",608]608]609609610[[package]]610[[package]]614checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"614checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"615dependencies = [615dependencies = [616 "arrayvec 0.4.12",616 "arrayvec 0.4.12",617 "constant_time_eq",617 "constant_time_eq 0.1.5",618]618]619619620[[package]]620[[package]]625dependencies = [625dependencies = [626 "arrayref",626 "arrayref",627 "arrayvec 0.7.2",627 "arrayvec 0.7.2",628 "constant_time_eq",628 "constant_time_eq 0.1.5",629]629]630630631[[package]]631[[package]]636dependencies = [636dependencies = [637 "arrayref",637 "arrayref",638 "arrayvec 0.7.2",638 "arrayvec 0.7.2",639 "constant_time_eq",639 "constant_time_eq 0.1.5",640]640]641641642[[package]]642[[package]]643name = "blake3"643name = "blake3"644version = "1.3.1"644version = "1.3.2"645source = "registry+https://github.com/rust-lang/crates.io-index"645source = "registry+https://github.com/rust-lang/crates.io-index"646checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f"646checksum = "895adc16c8b3273fbbc32685a7d55227705eda08c01e77704020f3491924b44b"647dependencies = [647dependencies = [648 "arrayref",648 "arrayref",649 "arrayvec 0.7.2",649 "arrayvec 0.7.2",650 "cc",650 "cc",651 "cfg-if 1.0.0",651 "cfg-if 1.0.0",652 "constant_time_eq",652 "constant_time_eq 0.2.4",653 "digest 0.10.5",653 "digest 0.10.6",654]654]655655656[[package]]656[[package]]769769770[[package]]770[[package]]771name = "byte-slice-cast"771name = "byte-slice-cast"772version = "1.2.1"772version = "1.2.2"773source = "registry+https://github.com/rust-lang/crates.io-index"773source = "registry+https://github.com/rust-lang/crates.io-index"774checksum = "87c5fdd0166095e1d463fc6cc01aa8ce547ad77a4e84d42eb6762b084e28067e"774checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c"775775776[[package]]776[[package]]777name = "byte-tools"777name = "byte-tools"787787788[[package]]788[[package]]789name = "bytes"789name = "bytes"790version = "1.2.1"790version = "1.3.0"791source = "registry+https://github.com/rust-lang/crates.io-index"791source = "registry+https://github.com/rust-lang/crates.io-index"792checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"792checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c"793793794[[package]]794[[package]]795name = "bzip2-sys"795name = "bzip2-sys"841841842[[package]]842[[package]]843name = "cc"843name = "cc"844version = "1.0.73"844version = "1.0.77"845source = "registry+https://github.com/rust-lang/crates.io-index"845source = "registry+https://github.com/rust-lang/crates.io-index"846checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"846checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"847dependencies = [847dependencies = [848 "jobserver",848 "jobserver",849]849]911911912[[package]]912[[package]]913name = "chrono"913name = "chrono"914version = "0.4.22"914version = "0.4.23"915source = "registry+https://github.com/rust-lang/crates.io-index"915source = "registry+https://github.com/rust-lang/crates.io-index"916checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"916checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"917dependencies = [917dependencies = [918 "iana-time-zone",918 "iana-time-zone",919 "js-sys",919 "js-sys",973dependencies = [973dependencies = [974 "glob",974 "glob",975 "libc",975 "libc",976 "libloading 0.7.3",976 "libloading 0.7.4",977]977]978978979[[package]]979[[package]]101710171018[[package]]1018[[package]]1019name = "cmake"1019name = "cmake"1020version = "0.1.48"1020version = "0.1.49"1021source = "registry+https://github.com/rust-lang/crates.io-index"1021source = "registry+https://github.com/rust-lang/crates.io-index"1022checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a"1022checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"1023dependencies = [1023dependencies = [1024 "cc",1024 "cc",1025]1025]104810481049[[package]]1049[[package]]1050name = "comfy-table"1050name = "comfy-table"1051version = "6.1.1"1051version = "6.1.3"1052source = "registry+https://github.com/rust-lang/crates.io-index"1052source = "registry+https://github.com/rust-lang/crates.io-index"1053checksum = "7b3d16bb3da60be2f7c7acfc438f2ae6f3496897ce68c291d0509bb67b4e248e"1053checksum = "e621e7e86c46fd8a14c32c6ae3cb95656621b4743a27d0cffedb831d46e7ad21"1054dependencies = [1054dependencies = [1055 "strum",1055 "strum",1056 "strum_macros",1056 "strum_macros",1057 "unicode-width",1057 "unicode-width",1058]1058]10591060[[package]]1061name = "concat-idents"1062version = "1.1.3"1063source = "registry+https://github.com/rust-lang/crates.io-index"1064checksum = "4b6f90860248d75014b7b103db8fee4f291c07bfb41306cdf77a0a5ab7a10d2f"1065dependencies = [1066 "quote",1067 "syn",1068]106910591070[[package]]1060[[package]]1071name = "concurrent-queue"1061name = "concurrent-queue"1076 "cache-padded",1066 "cache-padded",1077]1067]10681069[[package]]1070name = "concurrent-queue"1071version = "2.0.0"1072source = "registry+https://github.com/rust-lang/crates.io-index"1073checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b"1074dependencies = [1075 "crossbeam-utils",1076]107810771079[[package]]1078[[package]]1080name = "console"1079name = "console"1101source = "registry+https://github.com/rust-lang/crates.io-index"1100source = "registry+https://github.com/rust-lang/crates.io-index"1102checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"1101checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"11021103[[package]]1104name = "constant_time_eq"1105version = "0.2.4"1106source = "registry+https://github.com/rust-lang/crates.io-index"1107checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"110311081104[[package]]1109[[package]]1105name = "convert_case"1110name = "convert_case"115211571153[[package]]1158[[package]]1154name = "cranelift-bforest"1159name = "cranelift-bforest"1155version = "0.88.1"1160version = "0.88.2"1156source = "registry+https://github.com/rust-lang/crates.io-index"1161source = "registry+https://github.com/rust-lang/crates.io-index"1157checksum = "44409ccf2d0f663920cab563d2b79fcd6b2e9a2bcc6e929fef76c8f82ad6c17a"1162checksum = "52056f6d0584484b57fa6c1a65c1fcb15f3780d8b6a758426d9e3084169b2ddd"1158dependencies = [1163dependencies = [1159 "cranelift-entity",1164 "cranelift-entity",1160]1165]116111661162[[package]]1167[[package]]1163name = "cranelift-codegen"1168name = "cranelift-codegen"1164version = "0.88.1"1169version = "0.88.2"1165source = "registry+https://github.com/rust-lang/crates.io-index"1170source = "registry+https://github.com/rust-lang/crates.io-index"1166checksum = "98de2018ad96eb97f621f7d6b900a0cc661aec8d02ea4a50e56ecb48e5a2fcaf"1171checksum = "18fed94c8770dc25d01154c3ffa64ed0b3ba9d583736f305fed7beebe5d9cf74"1167dependencies = [1172dependencies = [1168 "arrayvec 0.7.2",1173 "arrayvec 0.7.2",1169 "bumpalo",1174 "bumpalo",118111861182[[package]]1187[[package]]1183name = "cranelift-codegen-meta"1188name = "cranelift-codegen-meta"1184version = "0.88.1"1189version = "0.88.2"1185source = "registry+https://github.com/rust-lang/crates.io-index"1190source = "registry+https://github.com/rust-lang/crates.io-index"1186checksum = "5287ce36e6c4758fbaf298bd1a8697ad97a4f2375a3d1b61142ea538db4877e5"1191checksum = "1c451b81faf237d11c7e4f3165eeb6bac61112762c5cfe7b4c0fb7241474358f"1187dependencies = [1192dependencies = [1188 "cranelift-codegen-shared",1193 "cranelift-codegen-shared",1189]1194]119011951191[[package]]1196[[package]]1192name = "cranelift-codegen-shared"1197name = "cranelift-codegen-shared"1193version = "0.88.1"1198version = "0.88.2"1194source = "registry+https://github.com/rust-lang/crates.io-index"1199source = "registry+https://github.com/rust-lang/crates.io-index"1195checksum = "2855c24219e2f08827f3f4ffb2da92e134ae8d8ecc185b11ec8f9878cf5f588e"1200checksum = "e7c940133198426d26128f08be2b40b0bd117b84771fd36798969c4d712d81fc"119612011197[[package]]1202[[package]]1198name = "cranelift-entity"1203name = "cranelift-entity"1199version = "0.88.1"1204version = "0.88.2"1200source = "registry+https://github.com/rust-lang/crates.io-index"1205source = "registry+https://github.com/rust-lang/crates.io-index"1201checksum = "0b65673279d75d34bf11af9660ae2dbd1c22e6d28f163f5c72f4e1dc56d56103"1206checksum = "87a0f1b2fdc18776956370cf8d9b009ded3f855350c480c1c52142510961f352"1202dependencies = [1207dependencies = [1203 "serde",1208 "serde",1204]1209]120512101206[[package]]1211[[package]]1207name = "cranelift-frontend"1212name = "cranelift-frontend"1208version = "0.88.1"1213version = "0.88.2"1209source = "registry+https://github.com/rust-lang/crates.io-index"1214source = "registry+https://github.com/rust-lang/crates.io-index"1210checksum = "3ed2b3d7a4751163f6c4a349205ab1b7d9c00eecf19dcea48592ef1f7688eefc"1215checksum = "34897538b36b216cc8dd324e73263596d51b8cf610da6498322838b2546baf8a"1211dependencies = [1216dependencies = [1212 "cranelift-codegen",1217 "cranelift-codegen",1213 "log",1218 "log",121712221218[[package]]1223[[package]]1219name = "cranelift-isle"1224name = "cranelift-isle"1220version = "0.88.1"1225version = "0.88.2"1221source = "registry+https://github.com/rust-lang/crates.io-index"1226source = "registry+https://github.com/rust-lang/crates.io-index"1222checksum = "3be64cecea9d90105fc6a2ba2d003e98c867c1d6c4c86cc878f97ad9fb916293"1227checksum = "1b2629a569fae540f16a76b70afcc87ad7decb38dc28fa6c648ac73b51e78470"122312281224[[package]]1229[[package]]1225name = "cranelift-native"1230name = "cranelift-native"1226version = "0.88.1"1231version = "0.88.2"1227source = "registry+https://github.com/rust-lang/crates.io-index"1232source = "registry+https://github.com/rust-lang/crates.io-index"1228checksum = "c4a03a6ac1b063e416ca4b93f6247978c991475e8271465340caa6f92f3c16a4"1233checksum = "20937dab4e14d3e225c5adfc9c7106bafd4ac669bdb43027b911ff794c6fb318"1229dependencies = [1234dependencies = [1230 "cranelift-codegen",1235 "cranelift-codegen",1231 "libc",1236 "libc",123412391235[[package]]1240[[package]]1236name = "cranelift-wasm"1241name = "cranelift-wasm"1237version = "0.88.1"1242version = "0.88.2"1238source = "registry+https://github.com/rust-lang/crates.io-index"1243source = "registry+https://github.com/rust-lang/crates.io-index"1239checksum = "c699873f7b30bc5f20dd03a796b4183e073a46616c91704792ec35e45d13f913"1244checksum = "80fc2288957a94fd342a015811479de1837850924166d1f1856d8406e6f3609b"1240dependencies = [1245dependencies = [1241 "cranelift-codegen",1246 "cranelift-codegen",1242 "cranelift-entity",1247 "cranelift-entity",128012851281[[package]]1286[[package]]1282name = "crossbeam-epoch"1287name = "crossbeam-epoch"1283version = "0.9.11"1288version = "0.9.13"1284source = "registry+https://github.com/rust-lang/crates.io-index"1289source = "registry+https://github.com/rust-lang/crates.io-index"1285checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"1290checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"1286dependencies = [1291dependencies = [1287 "autocfg",1292 "autocfg",1288 "cfg-if 1.0.0",1293 "cfg-if 1.0.0",1289 "crossbeam-utils",1294 "crossbeam-utils",1290 "memoffset",1295 "memoffset 0.7.1",1291 "scopeguard",1296 "scopeguard",1292]1297]129312981294[[package]]1299[[package]]1295name = "crossbeam-queue"1300name = "crossbeam-queue"1296version = "0.3.6"1301version = "0.3.8"1297source = "registry+https://github.com/rust-lang/crates.io-index"1302source = "registry+https://github.com/rust-lang/crates.io-index"1298checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7"1303checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"1299dependencies = [1304dependencies = [1300 "cfg-if 1.0.0",1305 "cfg-if 1.0.0",1301 "crossbeam-utils",1306 "crossbeam-utils",1302]1307]130313081304[[package]]1309[[package]]1305name = "crossbeam-utils"1310name = "crossbeam-utils"1306version = "0.8.12"1311version = "0.8.14"1307source = "registry+https://github.com/rust-lang/crates.io-index"1312source = "registry+https://github.com/rust-lang/crates.io-index"1308checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"1313checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"1309dependencies = [1314dependencies = [1310 "cfg-if 1.0.0",1315 "cfg-if 1.0.0",1311]1316]187218771873[[package]]1878[[package]]1874name = "cxx"1879name = "cxx"1875version = "1.0.80"1880version = "1.0.82"1876source = "registry+https://github.com/rust-lang/crates.io-index"1881source = "registry+https://github.com/rust-lang/crates.io-index"1877checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a"1882checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453"1878dependencies = [1883dependencies = [1879 "cc",1884 "cc",1880 "cxxbridge-flags",1885 "cxxbridge-flags",188418891885[[package]]1890[[package]]1886name = "cxx-build"1891name = "cxx-build"1887version = "1.0.80"1892version = "1.0.82"1888source = "registry+https://github.com/rust-lang/crates.io-index"1893source = "registry+https://github.com/rust-lang/crates.io-index"1889checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827"1894checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0"1890dependencies = [1895dependencies = [1891 "cc",1896 "cc",1892 "codespan-reporting",1897 "codespan-reporting",189919041900[[package]]1905[[package]]1901name = "cxxbridge-flags"1906name = "cxxbridge-flags"1902version = "1.0.80"1907version = "1.0.82"1903source = "registry+https://github.com/rust-lang/crates.io-index"1908source = "registry+https://github.com/rust-lang/crates.io-index"1904checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a"1909checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71"190519101906[[package]]1911[[package]]1907name = "cxxbridge-macro"1912name = "cxxbridge-macro"1908version = "1.0.80"1913version = "1.0.82"1909source = "registry+https://github.com/rust-lang/crates.io-index"1914source = "registry+https://github.com/rust-lang/crates.io-index"1910checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7"1915checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470"1911dependencies = [1916dependencies = [1912 "proc-macro2",1917 "proc-macro2",1913 "quote",1918 "quote",199319981994[[package]]1999[[package]]1995name = "digest"2000name = "digest"1996version = "0.10.5"2001version = "0.10.6"1997source = "registry+https://github.com/rust-lang/crates.io-index"2002source = "registry+https://github.com/rust-lang/crates.io-index"1998checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"2003checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"1999dependencies = [2004dependencies = [2000 "block-buffer 0.10.3",2005 "block-buffer 0.10.3",2001 "crypto-common",2006 "crypto-common",221622212217[[package]]2222[[package]]2218name = "env_logger"2223name = "env_logger"2219version = "0.9.1"2224version = "0.9.3"2220source = "registry+https://github.com/rust-lang/crates.io-index"2225source = "registry+https://github.com/rust-lang/crates.io-index"2221checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272"2226checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"2222dependencies = [2227dependencies = [2223 "atty",2228 "atty",2224 "humantime",2229 "humantime",233223372333[[package]]2338[[package]]2334name = "evm-coder"2339name = "evm-coder"2335version = "0.1.4"2340version = "0.1.5"2336dependencies = [2341dependencies = [2337 "concat-idents",2338 "ethereum",2342 "ethereum",2339 "evm-coder-procedural",2343 "evm-coder-procedural",2340 "evm-core",2344 "evm-core",235223562353[[package]]2357[[package]]2354name = "evm-coder-procedural"2358name = "evm-coder-procedural"2355version = "0.2.1"2359version = "0.2.2"2356dependencies = [2360dependencies = [2357 "Inflector",2361 "Inflector",2358 "hex",2362 "hex",2479[[package]]2483[[package]]2480name = "fc-consensus"2484name = "fc-consensus"2481version = "2.0.0-dev"2485version = "2.0.0-dev"2482source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2486source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2483dependencies = [2487dependencies = [2484 "async-trait",2488 "async-trait",2485 "fc-db",2489 "fc-db",2498[[package]]2502[[package]]2499name = "fc-db"2503name = "fc-db"2500version = "2.0.0-dev"2504version = "2.0.0-dev"2501source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2505source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2502dependencies = [2506dependencies = [2503 "fp-storage",2507 "fp-storage",2504 "kvdb-rocksdb",2508 "kvdb-rocksdb",2509 "log",2505 "parity-db",2510 "parity-db",2506 "parity-scale-codec 3.2.1",2511 "parity-scale-codec 3.2.1",2507 "parking_lot 0.12.1",2512 "parking_lot 0.12.1",2508 "sc-client-db",2513 "sc-client-db",2514 "sp-blockchain",2509 "sp-core",2515 "sp-core",2510 "sp-database",2516 "sp-database",2511 "sp-runtime",2517 "sp-runtime",2514[[package]]2520[[package]]2515name = "fc-mapping-sync"2521name = "fc-mapping-sync"2516version = "2.0.0-dev"2522version = "2.0.0-dev"2517source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2523source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2518dependencies = [2524dependencies = [2519 "fc-db",2525 "fc-db",2520 "fp-consensus",2526 "fp-consensus",2531[[package]]2537[[package]]2532name = "fc-rpc"2538name = "fc-rpc"2533version = "2.0.0-dev"2539version = "2.0.0-dev"2534source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2540source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2535dependencies = [2541dependencies = [2536 "ethereum",2542 "ethereum",2537 "ethereum-types",2543 "ethereum-types",2538 "evm",2544 "evm",2539 "fc-db",2545 "fc-db",2540 "fc-rpc-core",2546 "fc-rpc-core",2547 "fp-ethereum",2548 "fp-evm",2541 "fp-rpc",2549 "fp-rpc",2542 "fp-storage",2550 "fp-storage",2543 "futures 0.3.25",2551 "futures 0.3.25",2544 "hex",2552 "hex",2545 "jsonrpsee",2553 "jsonrpsee",2546 "libsecp256k1",2554 "libsecp256k1",2547 "log",2555 "log",2548 "lru 0.7.8",2556 "lru 0.8.1",2549 "parity-scale-codec 3.2.1",2557 "parity-scale-codec 3.2.1",2550 "prometheus",2558 "prometheus",2551 "rand 0.8.5",2559 "rand 0.8.5",2552 "rlp",2560 "rlp",2553 "rustc-hex",2554 "sc-client-api",2561 "sc-client-api",2555 "sc-network",2562 "sc-network",2556 "sc-network-common",2563 "sc-network-common",2573[[package]]2580[[package]]2574name = "fc-rpc-core"2581name = "fc-rpc-core"2575version = "1.1.0-dev"2582version = "1.1.0-dev"2576source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2583source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2577dependencies = [2584dependencies = [2578 "ethereum",2585 "ethereum",2579 "ethereum-types",2586 "ethereum-types",2713[[package]]2720[[package]]2714name = "fp-consensus"2721name = "fp-consensus"2715version = "2.0.0-dev"2722version = "2.0.0-dev"2716source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2723source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2717dependencies = [2724dependencies = [2718 "ethereum",2725 "ethereum",2719 "parity-scale-codec 3.2.1",2726 "parity-scale-codec 3.2.1",2722 "sp-std",2729 "sp-std",2723]2730]27312732[[package]]2733name = "fp-ethereum"2734version = "1.0.0-dev"2735source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2736dependencies = [2737 "ethereum",2738 "ethereum-types",2739 "fp-evm",2740 "frame-support",2741 "num_enum",2742 "parity-scale-codec 3.2.1",2743 "sp-core",2744 "sp-std",2745]272427462725[[package]]2747[[package]]2726name = "fp-evm"2748name = "fp-evm"2727version = "3.0.0-dev"2749version = "3.0.0-dev"2728source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2750source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2729dependencies = [2751dependencies = [2730 "evm",2752 "evm",2731 "frame-support",2753 "frame-support",2739[[package]]2761[[package]]2740name = "fp-evm-mapping"2762name = "fp-evm-mapping"2741version = "0.1.0"2763version = "0.1.0"2742source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2764source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2743dependencies = [2765dependencies = [2744 "frame-support",2766 "frame-support",2745 "sp-core",2767 "sp-core",2748[[package]]2770[[package]]2749name = "fp-rpc"2771name = "fp-rpc"2750version = "3.0.0-dev"2772version = "3.0.0-dev"2751source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2773source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2752dependencies = [2774dependencies = [2753 "ethereum",2775 "ethereum",2754 "ethereum-types",2776 "ethereum-types",2765[[package]]2787[[package]]2766name = "fp-self-contained"2788name = "fp-self-contained"2767version = "1.0.0-dev"2789version = "1.0.0-dev"2768source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2790source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2769dependencies = [2791dependencies = [2770 "ethereum",2792 "ethereum",2771 "frame-support",2793 "frame-support",2772 "parity-scale-codec 3.2.1",2794 "parity-scale-codec 3.2.1",2773 "parity-util-mem",2795 "parity-util-mem",2774 "scale-info",2796 "scale-info",2775 "serde",2797 "serde",2776 "sp-debug-derive",2777 "sp-io",2778 "sp-runtime",2798 "sp-runtime",2779]2799]278028002781[[package]]2801[[package]]2782name = "fp-storage"2802name = "fp-storage"2783version = "2.0.0"2803version = "2.0.0"2784source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"2804source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"2785dependencies = [2805dependencies = [2786 "parity-scale-codec 3.2.1",2806 "parity-scale-codec 3.2.1",2807 "serde",2787]2808]278828092789[[package]]2810[[package]]304030613041[[package]]3062[[package]]3042name = "fs-err"3063name = "fs-err"3043version = "2.8.1"3064version = "2.9.0"3044source = "registry+https://github.com/rust-lang/crates.io-index"3065source = "registry+https://github.com/rust-lang/crates.io-index"3045checksum = "64db3e262960f0662f43a6366788d5f10f7f244b8f7d7d987f560baf5ded5c50"3066checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541"304630673047[[package]]3068[[package]]3048name = "fs-swap"3069name = "fs-swap"351235333513[[package]]3534[[package]]3514name = "hyper"3535name = "hyper"3515version = "0.14.20"3536version = "0.14.23"3516source = "registry+https://github.com/rust-lang/crates.io-index"3537source = "registry+https://github.com/rust-lang/crates.io-index"3517checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac"3538checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c"3518dependencies = [3539dependencies = [3519 "bytes",3540 "bytes",3520 "futures-channel",3541 "futures-channel",353635573537[[package]]3558[[package]]3538name = "hyper-rustls"3559name = "hyper-rustls"3539version = "0.23.0"3560version = "0.23.1"3540source = "registry+https://github.com/rust-lang/crates.io-index"3561source = "registry+https://github.com/rust-lang/crates.io-index"3541checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac"3562checksum = "59df7c4e19c950e6e0e868dcc0a300b09a9b88e9ec55bd879ca819087a77355d"3542dependencies = [3563dependencies = [3543 "http",3564 "http",3544 "hyper",3565 "hyper",355135723552[[package]]3573[[package]]3553name = "iana-time-zone"3574name = "iana-time-zone"3554version = "0.1.51"3575version = "0.1.53"3555source = "registry+https://github.com/rust-lang/crates.io-index"3576source = "registry+https://github.com/rust-lang/crates.io-index"3556checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed"3577checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"3557dependencies = [3578dependencies = [3558 "android_system_properties",3579 "android_system_properties",3559 "core-foundation-sys",3580 "core-foundation-sys",366236833663[[package]]3684[[package]]3664name = "indexmap"3685name = "indexmap"3665version = "1.9.1"3686version = "1.9.2"3666source = "registry+https://github.com/rust-lang/crates.io-index"3687source = "registry+https://github.com/rust-lang/crates.io-index"3667checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"3688checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"3668dependencies = [3689dependencies = [3669 "autocfg",3690 "autocfg",3670 "hashbrown",3691 "hashbrown",370637273707[[package]]3728[[package]]3708name = "io-lifetimes"3729name = "io-lifetimes"3709version = "0.7.4"3730version = "0.7.5"3710source = "registry+https://github.com/rust-lang/crates.io-index"3731source = "registry+https://github.com/rust-lang/crates.io-index"3711checksum = "e6e481ccbe3dea62107216d0d1138bb8ad8e5e5c43009a098bd1990272c497b0"3732checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074"37333734[[package]]3735name = "io-lifetimes"3736version = "1.0.1"3737source = "registry+https://github.com/rust-lang/crates.io-index"3738checksum = "a7d367024b3f3414d8e01f437f704f41a9f64ab36f9067fa73e526ad4c763c87"3739dependencies = [3740 "libc",3741 "windows-sys 0.42.0",3742]371237433713[[package]]3744[[package]]3714name = "ip_network"3745name = "ip_network"371837493719[[package]]3750[[package]]3720name = "ipconfig"3751name = "ipconfig"3721version = "0.3.0"3752version = "0.3.1"3722source = "registry+https://github.com/rust-lang/crates.io-index"3753source = "registry+https://github.com/rust-lang/crates.io-index"3723checksum = "723519edce41262b05d4143ceb95050e4c614f483e78e9fd9e39a8275a84ad98"3754checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be"3724dependencies = [3755dependencies = [3725 "socket2",3756 "socket2",3726 "widestring",3757 "widestring",373037613731[[package]]3762[[package]]3732name = "ipnet"3763name = "ipnet"3733version = "2.5.0"3764version = "2.5.1"3734source = "registry+https://github.com/rust-lang/crates.io-index"3765source = "registry+https://github.com/rust-lang/crates.io-index"3735checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b"3766checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745"373637673737[[package]]3768[[package]]3738name = "itertools"3769name = "itertools"392539563926[[package]]3957[[package]]3927name = "keccak"3958name = "keccak"3928version = "0.1.2"3959version = "0.1.3"3929source = "registry+https://github.com/rust-lang/crates.io-index"3960source = "registry+https://github.com/rust-lang/crates.io-index"3930checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838"3961checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768"3962dependencies = [3963 "cpufeatures",3964]393139653932[[package]]3966[[package]]3933name = "kusama-runtime"3967name = "kusama-runtime"411341474114[[package]]4148[[package]]4115name = "libloading"4149name = "libloading"4116version = "0.7.3"4150version = "0.7.4"4117source = "registry+https://github.com/rust-lang/crates.io-index"4151source = "registry+https://github.com/rust-lang/crates.io-index"4118checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"4152checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"4119dependencies = [4153dependencies = [4120 "cfg-if 1.0.0",4154 "cfg-if 1.0.0",4121 "winapi",4155 "winapi",4122]4156]412341574124[[package]]4158[[package]]4125name = "libm"4159name = "libm"4126version = "0.2.5"4160version = "0.2.6"4127source = "registry+https://github.com/rust-lang/crates.io-index"4161source = "registry+https://github.com/rust-lang/crates.io-index"4128checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565"4162checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"412941634130[[package]]4164[[package]]4131name = "libp2p"4165name = "libp2p"4756source = "registry+https://github.com/rust-lang/crates.io-index"4790source = "registry+https://github.com/rust-lang/crates.io-index"4757checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d"4791checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d"47924793[[package]]4794name = "linux-raw-sys"4795version = "0.1.2"4796source = "registry+https://github.com/rust-lang/crates.io-index"4797checksum = "bb68f22743a3fb35785f1e7f844ca5a3de2dde5bd0c0ef5b372065814699b121"475847984759[[package]]4799[[package]]4760name = "lock_api"4800name = "lock_api"488049204881[[package]]4921[[package]]4882name = "memfd"4922name = "memfd"4883version = "0.6.1"4923version = "0.6.2"4884source = "registry+https://github.com/rust-lang/crates.io-index"4924source = "registry+https://github.com/rust-lang/crates.io-index"4885checksum = "480b5a5de855d11ff13195950bdc8b98b5e942ef47afc447f6615cdcc4e15d80"4925checksum = "b20a59d985586e4a5aef64564ac77299f8586d8be6cf9106a5a40207e8908efb"4886dependencies = [4926dependencies = [4887 "rustix",4927 "rustix 0.36.2",4888]4928]488949294890[[package]]4930[[package]]4891name = "memmap2"4931name = "memmap2"4892version = "0.5.7"4932version = "0.5.8"4893source = "registry+https://github.com/rust-lang/crates.io-index"4933source = "registry+https://github.com/rust-lang/crates.io-index"4894checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498"4934checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc"4895dependencies = [4935dependencies = [4896 "libc",4936 "libc",4897]4937]4905 "autocfg",4945 "autocfg",4906]4946]49474948[[package]]4949name = "memoffset"4950version = "0.7.1"4951source = "registry+https://github.com/rust-lang/crates.io-index"4952checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"4953dependencies = [4954 "autocfg",4955]490749564908[[package]]4957[[package]]4909name = "memory-db"4958name = "memory-db"5020 "blake2s_simd",5069 "blake2s_simd",5021 "blake3",5070 "blake3",5022 "core2",5071 "core2",5023 "digest 0.10.5",5072 "digest 0.10.6",5024 "multihash-derive",5073 "multihash-derive",5025 "sha2 0.10.6",5074 "sha2 0.10.6",5026 "sha3",5075 "sha3",529153405292[[package]]5341[[package]]5293name = "num_cpus"5342name = "num_cpus"5294version = "1.13.1"5343version = "1.14.0"5295source = "registry+https://github.com/rust-lang/crates.io-index"5344source = "registry+https://github.com/rust-lang/crates.io-index"5296checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"5345checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"5297dependencies = [5346dependencies = [5298 "hermit-abi",5347 "hermit-abi",5299 "libc",5348 "libc",5300]5349]53505351[[package]]5352name = "num_enum"5353version = "0.5.7"5354source = "registry+https://github.com/rust-lang/crates.io-index"5355checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"5356dependencies = [5357 "num_enum_derive",5358]53595360[[package]]5361name = "num_enum_derive"5362version = "0.5.7"5363source = "registry+https://github.com/rust-lang/crates.io-index"5364checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"5365dependencies = [5366 "proc-macro-crate",5367 "proc-macro2",5368 "quote",5369 "syn",5370]530153715302[[package]]5372[[package]]5303name = "num_threads"5373name = "num_threads"532253925323[[package]]5393[[package]]5324name = "once_cell"5394name = "once_cell"5325version = "1.15.0"5395version = "1.16.0"5326source = "registry+https://github.com/rust-lang/crates.io-index"5396source = "registry+https://github.com/rust-lang/crates.io-index"5327checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"5397checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"532853985329[[package]]5399[[package]]5330name = "opal-runtime"5400name = "opal-runtime"557756475578[[package]]5648[[package]]5579name = "os_str_bytes"5649name = "os_str_bytes"5580version = "6.3.0"5650version = "6.4.1"5581source = "registry+https://github.com/rust-lang/crates.io-index"5651source = "registry+https://github.com/rust-lang/crates.io-index"5582checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"5652checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"558356535584[[package]]5654[[package]]5585name = "owning_ref"5655name = "owning_ref"5724[[package]]5794[[package]]5725name = "pallet-base-fee"5795name = "pallet-base-fee"5726version = "1.0.0"5796version = "1.0.0"5727source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"5797source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"5728dependencies = [5798dependencies = [5729 "fp-evm",5799 "fp-evm",5730 "frame-support",5800 "frame-support",583159015832[[package]]5902[[package]]5833name = "pallet-common"5903name = "pallet-common"5834version = "0.1.11"5904version = "0.1.12"5835dependencies = [5905dependencies = [5836 "ethereum",5906 "ethereum",5837 "evm-coder",5907 "evm-coder",5940[[package]]6010[[package]]5941name = "pallet-ethereum"6011name = "pallet-ethereum"5942version = "4.0.0-dev"6012version = "4.0.0-dev"5943source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"6013source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"5944dependencies = [6014dependencies = [5945 "ethereum",6015 "ethereum",5946 "ethereum-types",6016 "ethereum-types",5947 "evm",6017 "evm",5948 "fp-consensus",6018 "fp-consensus",6019 "fp-ethereum",5949 "fp-evm",6020 "fp-evm",5950 "fp-evm-mapping",6021 "fp-evm-mapping",5951 "fp-rpc",6022 "fp-rpc",5952 "fp-self-contained",6023 "fp-self-contained",5953 "fp-storage",6024 "fp-storage",5954 "frame-support",6025 "frame-support",5955 "frame-system",6026 "frame-system",5956 "log",5957 "pallet-evm",6027 "pallet-evm",5958 "pallet-timestamp",6028 "pallet-timestamp",5959 "parity-scale-codec 3.2.1",6029 "parity-scale-codec 3.2.1",5960 "rlp",6030 "rlp",5961 "scale-info",6031 "scale-info",5962 "serde",6032 "serde",5963 "sha3",5964 "sp-io",6033 "sp-io",5965 "sp-runtime",6034 "sp-runtime",5966 "sp-std",6035 "sp-std",5969[[package]]6038[[package]]5970name = "pallet-evm"6039name = "pallet-evm"5971version = "6.0.0-dev"6040version = "6.0.0-dev"5972source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30#65930cb2982258bee67b73a1f017711f6f4aa0a4"6041source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.30-2#6fce4a7f9c3591f4090dd1db39fe71f6562804d0"5973dependencies = [6042dependencies = [6043 "environmental",5974 "evm",6044 "evm",5975 "fp-evm",6045 "fp-evm",5976 "fp-evm-mapping",6046 "fp-evm-mapping",5986 "rlp",6056 "rlp",5987 "scale-info",6057 "scale-info",5988 "serde",6058 "serde",5989 "sha3",5990 "sp-core",6059 "sp-core",5991 "sp-io",6060 "sp-io",5992 "sp-runtime",6061 "sp-runtime",716372327164[[package]]7233[[package]]7165name = "pest"7234name = "pest"7166version = "2.4.0"7235version = "2.4.1"7167source = "registry+https://github.com/rust-lang/crates.io-index"7236source = "registry+https://github.com/rust-lang/crates.io-index"7168checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a"7237checksum = "a528564cc62c19a7acac4d81e01f39e53e25e17b934878f4c6d25cc2836e62f8"7169dependencies = [7238dependencies = [7170 "thiserror",7239 "thiserror",7171 "ucd-trie",7240 "ucd-trie",7172]7241]717372427174[[package]]7243[[package]]7175name = "pest_derive"7244name = "pest_derive"7176version = "2.4.0"7245version = "2.4.1"7177source = "registry+https://github.com/rust-lang/crates.io-index"7246source = "registry+https://github.com/rust-lang/crates.io-index"7178checksum = "60b75706b9642ebcb34dab3bc7750f811609a0eb1dd8b88c2d15bf628c1c65b2"7247checksum = "d5fd9bc6500181952d34bd0b2b0163a54d794227b498be0b7afa7698d0a7b18f"7179dependencies = [7248dependencies = [7180 "pest",7249 "pest",7181 "pest_generator",7250 "pest_generator",7182]7251]718372527184[[package]]7253[[package]]7185name = "pest_generator"7254name = "pest_generator"7186version = "2.4.0"7255version = "2.4.1"7187source = "registry+https://github.com/rust-lang/crates.io-index"7256source = "registry+https://github.com/rust-lang/crates.io-index"7188checksum = "f4f9272122f5979a6511a749af9db9bfc810393f63119970d7085fed1c4ea0db"7257checksum = "d2610d5ac5156217b4ff8e46ddcef7cdf44b273da2ac5bca2ecbfa86a330e7c4"7189dependencies = [7258dependencies = [7190 "pest",7259 "pest",7191 "pest_meta",7260 "pest_meta",719672657197[[package]]7266[[package]]7198name = "pest_meta"7267name = "pest_meta"7199version = "2.4.0"7268version = "2.4.1"7200source = "registry+https://github.com/rust-lang/crates.io-index"7269source = "registry+https://github.com/rust-lang/crates.io-index"7201checksum = "4c8717927f9b79515e565a64fe46c38b8cd0427e64c40680b14a7365ab09ac8d"7270checksum = "824749bf7e21dd66b36fbe26b3f45c713879cccd4a009a917ab8e045ca8246fe"7202dependencies = [7271dependencies = [7203 "once_cell",7272 "once_cell",7204 "pest",7273 "pest",855686258557[[package]]8626[[package]]8558name = "ppv-lite86"8627name = "ppv-lite86"8559version = "0.2.16"8628version = "0.2.17"8560source = "registry+https://github.com/rust-lang/crates.io-index"8629source = "registry+https://github.com/rust-lang/crates.io-index"8561checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"8630checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"86318632[[package]]8633name = "prettyplease"8634version = "0.1.21"8635source = "registry+https://github.com/rust-lang/crates.io-index"8636checksum = "c142c0e46b57171fe0c528bee8c5b7569e80f0c17e377cd0e30ea57dbc11bb51"8637dependencies = [8638 "proc-macro2",8639 "syn",8640]856286418563[[package]]8642[[package]]8564name = "primitive-types"8643name = "primitive-types"868287618683[[package]]8762[[package]]8684name = "prost"8763name = "prost"8685version = "0.11.0"8764version = "0.11.2"8686source = "registry+https://github.com/rust-lang/crates.io-index"8765source = "registry+https://github.com/rust-lang/crates.io-index"8687checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7"8766checksum = "a0841812012b2d4a6145fae9a6af1534873c32aa67fff26bd09f8fa42c83f95a"8688dependencies = [8767dependencies = [8689 "bytes",8768 "bytes",8690 "prost-derive 0.11.0",8769 "prost-derive 0.11.2",8691]8770]869287718693[[package]]8772[[package]]871487938715[[package]]8794[[package]]8716name = "prost-build"8795name = "prost-build"8717version = "0.11.1"8796version = "0.11.2"8718source = "registry+https://github.com/rust-lang/crates.io-index"8797source = "registry+https://github.com/rust-lang/crates.io-index"8719checksum = "7f835c582e6bd972ba8347313300219fed5bfa52caf175298d860b61ff6069bb"8798checksum = "1d8b442418ea0822409d9e7d047cbf1e7e9e1760b172bf9982cf29d517c93511"8720dependencies = [8799dependencies = [8721 "bytes",8800 "bytes",8722 "heck",8801 "heck",8725 "log",8804 "log",8726 "multimap",8805 "multimap",8727 "petgraph",8806 "petgraph",8807 "prettyplease",8728 "prost 0.11.0",8808 "prost 0.11.2",8729 "prost-types 0.11.1",8809 "prost-types 0.11.2",8730 "regex",8810 "regex",8811 "syn",8731 "tempfile",8812 "tempfile",8732 "which",8813 "which",8733]8814]876088418761[[package]]8842[[package]]8762name = "prost-derive"8843name = "prost-derive"8763version = "0.11.0"8844version = "0.11.2"8764source = "registry+https://github.com/rust-lang/crates.io-index"8845source = "registry+https://github.com/rust-lang/crates.io-index"8765checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364"8846checksum = "164ae68b6587001ca506d3bf7f1000bfa248d0e1217b618108fba4ec1d0cc306"8766dependencies = [8847dependencies = [8767 "anyhow",8848 "anyhow",8768 "itertools",8849 "itertools",878388648784[[package]]8865[[package]]8785name = "prost-types"8866name = "prost-types"8786version = "0.11.1"8867version = "0.11.2"8787source = "registry+https://github.com/rust-lang/crates.io-index"8868source = "registry+https://github.com/rust-lang/crates.io-index"8788checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e"8869checksum = "747761bc3dc48f9a34553bf65605cf6cb6288ba219f3450b4275dbd81539551a"8789dependencies = [8870dependencies = [8790 "bytes",8871 "bytes",8791 "prost 0.11.0",8872 "prost 0.11.2",8792]8873]879388748794[[package]]8875[[package]]903991209040[[package]]9121[[package]]9041name = "rayon"9122name = "rayon"9042version = "1.5.3"9123version = "1.6.0"9043source = "registry+https://github.com/rust-lang/crates.io-index"9124source = "registry+https://github.com/rust-lang/crates.io-index"9044checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"9125checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b"9045dependencies = [9126dependencies = [9046 "autocfg",9047 "crossbeam-deque",9127 "crossbeam-deque",9048 "either",9128 "either",9049 "rayon-core",9129 "rayon-core",9050]9130]905191319052[[package]]9132[[package]]9053name = "rayon-core"9133name = "rayon-core"9054version = "1.9.3"9134version = "1.10.1"9055source = "registry+https://github.com/rust-lang/crates.io-index"9135source = "registry+https://github.com/rust-lang/crates.io-index"9056checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"9136checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3"9057dependencies = [9137dependencies = [9058 "crossbeam-channel",9138 "crossbeam-channel",9059 "crossbeam-deque",9139 "crossbeam-deque",909691769097[[package]]9177[[package]]9098name = "ref-cast"9178name = "ref-cast"9099version = "1.0.12"9179version = "1.0.13"9100source = "registry+https://github.com/rust-lang/crates.io-index"9180source = "registry+https://github.com/rust-lang/crates.io-index"9101checksum = "12a733f1746c929b4913fe48f8697fcf9c55e3304ba251a79ffb41adfeaf49c2"9181checksum = "53b15debb4f9d60d767cd8ca9ef7abb2452922f3214671ff052defc7f3502c44"9102dependencies = [9182dependencies = [9103 "ref-cast-impl",9183 "ref-cast-impl",9104]9184]910591859106[[package]]9186[[package]]9107name = "ref-cast-impl"9187name = "ref-cast-impl"9108version = "1.0.12"9188version = "1.0.13"9109source = "registry+https://github.com/rust-lang/crates.io-index"9189source = "registry+https://github.com/rust-lang/crates.io-index"9110checksum = "5887de4a01acafd221861463be6113e6e87275e79804e56779f4cdc131c60368"9190checksum = "abfa8511e9e94fd3de6585a3d3cd00e01ed556dc9814829280af0e8dc72a8f36"9111dependencies = [9191dependencies = [9112 "proc-macro2",9192 "proc-macro2",9113 "quote",9193 "quote",912892089129[[package]]9209[[package]]9130name = "regex"9210name = "regex"9131version = "1.6.0"9211version = "1.7.0"9132source = "registry+https://github.com/rust-lang/crates.io-index"9212source = "registry+https://github.com/rust-lang/crates.io-index"9133checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"9213checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"9134dependencies = [9214dependencies = [9135 "aho-corasick",9215 "aho-corasick",9136 "memchr",9216 "memchr",914892289149[[package]]9229[[package]]9150name = "regex-syntax"9230name = "regex-syntax"9151version = "0.6.27"9231version = "0.6.28"9152source = "registry+https://github.com/rust-lang/crates.io-index"9232source = "registry+https://github.com/rust-lang/crates.io-index"9153checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"9233checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"915492349155[[package]]9235[[package]]9156name = "remote-externalities"9236name = "remote-externalities"942695069427[[package]]9507[[package]]9428name = "rustix"9508name = "rustix"9429version = "0.35.12"9509version = "0.35.13"9430source = "registry+https://github.com/rust-lang/crates.io-index"9510source = "registry+https://github.com/rust-lang/crates.io-index"9431checksum = "985947f9b6423159c4726323f373be0a21bdb514c5af06a849cb3d2dce2d01e8"9511checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9"9432dependencies = [9512dependencies = [9433 "bitflags",9513 "bitflags",9434 "errno",9514 "errno",9435 "io-lifetimes",9515 "io-lifetimes 0.7.5",9436 "libc",9516 "libc",9437 "linux-raw-sys",9517 "linux-raw-sys 0.0.46",9438 "windows-sys 0.36.1",9518 "windows-sys 0.42.0",9439]9519]95209521[[package]]9522name = "rustix"9523version = "0.36.2"9524source = "registry+https://github.com/rust-lang/crates.io-index"9525checksum = "203974af07ea769452490ee8de3e5947971efc3a090dca8a779dd432d3fa46a7"9526dependencies = [9527 "bitflags",9528 "errno",9529 "io-lifetimes 1.0.1",9530 "libc",9531 "linux-raw-sys 0.1.2",9532 "windows-sys 0.42.0",9533]944095349441[[package]]9535[[package]]9442name = "rustls"9536name = "rustls"9976 "once_cell",10070 "once_cell",9977 "parity-scale-codec 3.2.1",10071 "parity-scale-codec 3.2.1",9978 "parity-wasm 0.45.0",10072 "parity-wasm 0.45.0",9979 "rustix",10073 "rustix 0.35.13",9980 "sc-allocator",10074 "sc-allocator",9981 "sc-executor-common",10075 "sc-executor-common",9982 "sp-runtime-interface",10076 "sp-runtime-interface",10135 "futures 0.3.25",10229 "futures 0.3.25",10136 "libp2p",10230 "libp2p",10137 "log",10231 "log",10138 "prost 0.11.0",10232 "prost 0.11.2",10139 "prost-build 0.11.1",10233 "prost-build 0.11.2",10140 "sc-client-api",10234 "sc-client-api",10141 "sc-network-common",10235 "sc-network-common",10142 "sp-blockchain",10236 "sp-blockchain",106121070610613[[package]]10707[[package]]10614name = "scale-info"10708name = "scale-info"10615version = "2.2.0"10709version = "2.3.0"10616source = "registry+https://github.com/rust-lang/crates.io-index"10710source = "registry+https://github.com/rust-lang/crates.io-index"10617checksum = "333af15b02563b8182cd863f925bd31ef8fa86a0e095d30c091956057d436153"10711checksum = "88d8a765117b237ef233705cc2cc4c6a27fccd46eea6ef0c8c6dae5f3ef407f8"10618dependencies = [10712dependencies = [10619 "bitvec 1.0.1",10713 "bitvec 1.0.1",10620 "cfg-if 1.0.0",10714 "cfg-if 1.0.0",106261072010627[[package]]10721[[package]]10628name = "scale-info-derive"10722name = "scale-info-derive"10629version = "2.2.0"10723version = "2.3.0"10630source = "registry+https://github.com/rust-lang/crates.io-index"10724source = "registry+https://github.com/rust-lang/crates.io-index"10631checksum = "53f56acbd0743d29ffa08f911ab5397def774ad01bab3786804cf6ee057fb5e1"10725checksum = "cdcd47b380d8c4541044e341dcd9475f55ba37ddc50c908d945fc036a8642496"10632dependencies = [10726dependencies = [10633 "proc-macro-crate",10727 "proc-macro-crate",10634 "proc-macro2",10728 "proc-macro2",108041089810805[[package]]10899[[package]]10806name = "serde_json"10900name = "serde_json"10807version = "1.0.87"10901version = "1.0.89"10808source = "registry+https://github.com/rust-lang/crates.io-index"10902source = "registry+https://github.com/rust-lang/crates.io-index"10809checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45"10903checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"10810dependencies = [10904dependencies = [10811 "itoa",10905 "itoa",10812 "ryu",10906 "ryu",10843dependencies = [10937dependencies = [10844 "cfg-if 1.0.0",10938 "cfg-if 1.0.0",10845 "cpufeatures",10939 "cpufeatures",10846 "digest 0.10.5",10940 "digest 0.10.6",10847]10941]108481094210849[[package]]10943[[package]]10879dependencies = [10973dependencies = [10880 "cfg-if 1.0.0",10974 "cfg-if 1.0.0",10881 "cpufeatures",10975 "cpufeatures",10882 "digest 0.10.5",10976 "digest 0.10.6",10883]10977]108841097810885[[package]]10979[[package]]10888source = "registry+https://github.com/rust-lang/crates.io-index"10982source = "registry+https://github.com/rust-lang/crates.io-index"10889checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9"10983checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9"10890dependencies = [10984dependencies = [10891 "digest 0.10.5",10985 "digest 0.10.6",10892 "keccak",10986 "keccak",10893]10987]1089410988109561105010957[[package]]11051[[package]]10958name = "similar"11052name = "similar"10959version = "2.2.0"11053version = "2.2.1"10960source = "registry+https://github.com/rust-lang/crates.io-index"11054source = "registry+https://github.com/rust-lang/crates.io-index"10961checksum = "62ac7f900db32bf3fd12e0117dd3dc4da74bc52ebaac97f39668446d89694803"11055checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"10962dependencies = [11056dependencies = [10963 "bstr",11057 "bstr",10964 "unicode-segmentation",11058 "unicode-segmentation",110181111211019[[package]]11113[[package]]11020name = "snap"11114name = "snap"11021version = "1.0.5"11115version = "1.1.0"11022source = "registry+https://github.com/rust-lang/crates.io-index"11116source = "registry+https://github.com/rust-lang/crates.io-index"11023checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451"11117checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"110241111811025[[package]]11119[[package]]11026name = "snow"11120name = "snow"11318dependencies = [11412dependencies = [11319 "blake2",11413 "blake2",11320 "byteorder",11414 "byteorder",11321 "digest 0.10.5",11415 "digest 0.10.6",11322 "sha2 0.10.6",11416 "sha2 0.10.6",11323 "sha3",11417 "sha3",11324 "sp-std",11418 "sp-std",118161191011817[[package]]11911[[package]]11818name = "ss58-registry"11912name = "ss58-registry"11819version = "1.33.0"11913version = "1.35.0"11820source = "registry+https://github.com/rust-lang/crates.io-index"11914source = "registry+https://github.com/rust-lang/crates.io-index"11821checksum = "3ab7554f8a8b6f8d71cd5a8e6536ef116e2ce0504cf97ebf16311d58065dc8a6"11915checksum = "fa0813c10b9dbdc842c2305f949f724c64866e4ef4d09c9151e96f6a2106773c"11822dependencies = [11916dependencies = [11823 "Inflector",11917 "Inflector",11824 "num-format",11918 "num-format",121411223512142[[package]]12236[[package]]12143name = "target-lexicon"12237name = "target-lexicon"12144version = "0.12.4"12238version = "0.12.5"12145source = "registry+https://github.com/rust-lang/crates.io-index"12239source = "registry+https://github.com/rust-lang/crates.io-index"12146checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1"12240checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d"121471224112148[[package]]12242[[package]]12149name = "tempfile"12243name = "tempfile"123681246212369[[package]]12463[[package]]12370name = "tokio"12464name = "tokio"12371version = "1.21.2"12465version = "1.22.0"12372source = "registry+https://github.com/rust-lang/crates.io-index"12466source = "registry+https://github.com/rust-lang/crates.io-index"12373checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099"12467checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3"12374dependencies = [12468dependencies = [12375 "autocfg",12469 "autocfg",12376 "bytes",12470 "bytes",12694checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"12788checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"12695dependencies = [12789dependencies = [12696 "cfg-if 1.0.0",12790 "cfg-if 1.0.0",12697 "digest 0.10.5",12791 "digest 0.10.6",12698 "rand 0.8.5",12792 "rand 0.8.5",12699 "static_assertions",12793 "static_assertions",12700]12794]133401343413341[[package]]13435[[package]]13342name = "wasmtime"13436name = "wasmtime"13343version = "1.0.1"13437version = "1.0.2"13344source = "registry+https://github.com/rust-lang/crates.io-index"13438source = "registry+https://github.com/rust-lang/crates.io-index"13345checksum = "f1f511c4917c83d04da68333921107db75747c4e11a2f654a8e909cc5e0520dc"13439checksum = "4ad5af6ba38311282f2a21670d96e78266e8c8e2f38cbcd52c254df6ccbc7731"13346dependencies = [13440dependencies = [13347 "anyhow",13441 "anyhow",13348 "bincode",13442 "bincode",133681346213369[[package]]13463[[package]]13370name = "wasmtime-asm-macros"13464name = "wasmtime-asm-macros"13371version = "1.0.1"13465version = "1.0.2"13372source = "registry+https://github.com/rust-lang/crates.io-index"13466source = "registry+https://github.com/rust-lang/crates.io-index"13373checksum = "39bf3debfe744bf19dd3732990ce6f8c0ced7439e2370ba4e1d8f5a3660a3178"13467checksum = "45de63ddfc8b9223d1adc8f7b2ee5f35d1f6d112833934ad7ea66e4f4339e597"13374dependencies = [13468dependencies = [13375 "cfg-if 1.0.0",13469 "cfg-if 1.0.0",13376]13470]133771347113378[[package]]13472[[package]]13379name = "wasmtime-cache"13473name = "wasmtime-cache"13380version = "1.0.1"13474version = "1.0.2"13381source = "registry+https://github.com/rust-lang/crates.io-index"13475source = "registry+https://github.com/rust-lang/crates.io-index"13382checksum = "ece42fa4676a263f7558cdaaf5a71c2592bebcbac22a0580e33cf3406c103da2"13476checksum = "bcd849399d17d2270141cfe47fa0d91ee52d5f8ea9b98cf7ddde0d53e5f79882"13383dependencies = [13477dependencies = [13384 "anyhow",13478 "anyhow",13385 "base64",13479 "base64",13386 "bincode",13480 "bincode",13387 "directories-next",13481 "directories-next",13388 "file-per-thread-logger",13482 "file-per-thread-logger",13389 "log",13483 "log",13390 "rustix",13484 "rustix 0.35.13",13391 "serde",13485 "serde",13392 "sha2 0.9.9",13486 "sha2 0.9.9",13393 "toml",13487 "toml",133971349113398[[package]]13492[[package]]13399name = "wasmtime-cranelift"13493name = "wasmtime-cranelift"13400version = "1.0.1"13494version = "1.0.2"13401source = "registry+https://github.com/rust-lang/crates.io-index"13495source = "registry+https://github.com/rust-lang/crates.io-index"13402checksum = "058217e28644b012bdcdf0e445f58d496d78c2e0b6a6dd93558e701591dad705"13496checksum = "4bd91339b742ff20bfed4532a27b73c86b5bcbfedd6bea2dcdf2d64471e1b5c6"13403dependencies = [13497dependencies = [13404 "anyhow",13498 "anyhow",13405 "cranelift-codegen",13499 "cranelift-codegen",134181351213419[[package]]13513[[package]]13420name = "wasmtime-environ"13514name = "wasmtime-environ"13421version = "1.0.1"13515version = "1.0.2"13422source = "registry+https://github.com/rust-lang/crates.io-index"13516source = "registry+https://github.com/rust-lang/crates.io-index"13423checksum = "c7af06848df28b7661471d9a80d30a973e0f401f2e3ed5396ad7e225ed217047"13517checksum = "ebb881c61f4f627b5d45c54e629724974f8a8890d455bcbe634330cc27309644"13424dependencies = [13518dependencies = [13425 "anyhow",13519 "anyhow",13426 "cranelift-entity",13520 "cranelift-entity",134371353113438[[package]]13532[[package]]13439name = "wasmtime-jit"13533name = "wasmtime-jit"13440version = "1.0.1"13534version = "1.0.2"13441source = "registry+https://github.com/rust-lang/crates.io-index"13535source = "registry+https://github.com/rust-lang/crates.io-index"13442checksum = "9028fb63a54185b3c192b7500ef8039c7bb8d7f62bfc9e7c258483a33a3d13bb"13536checksum = "1985c628011fe26adf5e23a5301bdc79b245e0e338f14bb58b39e4e25e4d8681"13443dependencies = [13537dependencies = [13444 "addr2line",13538 "addr2line",13445 "anyhow",13539 "anyhow",13450 "log",13544 "log",13451 "object",13545 "object",13452 "rustc-demangle",13546 "rustc-demangle",13453 "rustix",13547 "rustix 0.35.13",13454 "serde",13548 "serde",13455 "target-lexicon",13549 "target-lexicon",13456 "thiserror",13550 "thiserror",134621355613463[[package]]13557[[package]]13464name = "wasmtime-jit-debug"13558name = "wasmtime-jit-debug"13465version = "1.0.1"13559version = "1.0.2"13466source = "registry+https://github.com/rust-lang/crates.io-index"13560source = "registry+https://github.com/rust-lang/crates.io-index"13467checksum = "25e82d4ef93296785de7efca92f7679dc67fe68a13b625a5ecc8d7503b377a37"13561checksum = "f671b588486f5ccec8c5a3dba6b4c07eac2e66ab8c60e6f4e53717c77f709731"13468dependencies = [13562dependencies = [13469 "object",13563 "object",13470 "once_cell",13564 "once_cell",13471 "rustix",13565 "rustix 0.35.13",13472]13566]134731356713474[[package]]13568[[package]]13475name = "wasmtime-runtime"13569name = "wasmtime-runtime"13476version = "1.0.1"13570version = "1.0.2"13477source = "registry+https://github.com/rust-lang/crates.io-index"13571source = "registry+https://github.com/rust-lang/crates.io-index"13478checksum = "9f0e9bea7d517d114fe66b930b2124ee086516ee93eeebfd97f75f366c5b0553"13572checksum = "ee8f92ad4b61736339c29361da85769ebc200f184361959d1792832e592a1afd"13479dependencies = [13573dependencies = [13480 "anyhow",13574 "anyhow",13481 "cc",13575 "cc",13485 "log",13579 "log",13486 "mach",13580 "mach",13487 "memfd",13581 "memfd",13488 "memoffset",13582 "memoffset 0.6.5",13489 "paste",13583 "paste",13490 "rand 0.8.5",13584 "rand 0.8.5",13491 "rustix",13585 "rustix 0.35.13",13492 "thiserror",13586 "thiserror",13493 "wasmtime-asm-macros",13587 "wasmtime-asm-macros",13494 "wasmtime-environ",13588 "wasmtime-environ",134981359213499[[package]]13593[[package]]13500name = "wasmtime-types"13594name = "wasmtime-types"13501version = "1.0.1"13595version = "1.0.2"13502source = "registry+https://github.com/rust-lang/crates.io-index"13596source = "registry+https://github.com/rust-lang/crates.io-index"13503checksum = "69b83e93ed41b8fdc936244cfd5e455480cf1eca1fd60c78a0040038b4ce5075"13597checksum = "d23d61cb4c46e837b431196dd06abb11731541021916d03476a178b54dc07aeb"13504dependencies = [13598dependencies = [13505 "cranelift-entity",13599 "cranelift-entity",13506 "serde",13600 "serde",138411393513842[[package]]13936[[package]]13843name = "winreg"13937name = "winreg"13844version = "0.7.0"13938version = "0.10.1"13845source = "registry+https://github.com/rust-lang/crates.io-index"13939source = "registry+https://github.com/rust-lang/crates.io-index"13846checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"13940checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"13847dependencies = [13941dependencies = [13848 "winapi",13942 "winapi",13849]13943]138561395013857[[package]]13951[[package]]13858name = "wyz"13952name = "wyz"13859version = "0.5.0"13953version = "0.5.1"13860source = "registry+https://github.com/rust-lang/crates.io-index"13954source = "registry+https://github.com/rust-lang/crates.io-index"13861checksum = "30b31594f29d27036c383b53b59ed3476874d518f0efb151b27a4c275141390e"13955checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"13862dependencies = [13956dependencies = [13863 "tap",13957 "tap",13864]13958]client/rpc/Cargo.tomldiffbeforeafterboth19sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }20sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }20sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }21sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }21sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }2323crates/evm-coder/CHANGELOG.mddiffbeforeafterboth3All notable changes to this project will be documented in this file.3All notable changes to this project will be documented in this file.445<!-- bureaucrate goes here -->5<!-- bureaucrate goes here -->6## [v0.1.5] - 2022-11-30678### Added9- Derive macro to support structures and enums.107## [v0.1.4] - 2022-11-0211## [v0.1.4] - 2022-11-028129### Added13### Addedcrates/evm-coder/Cargo.tomldiffbeforeafterboth1[package]1[package]2name = "evm-coder"2name = "evm-coder"3version = "0.1.4"3version = "0.1.5"4license = "GPLv3"4license = "GPLv3"5edition = "2021"5edition = "2021"6619# We have tuple-heavy code in solidity.rs19# We have tuple-heavy code in solidity.rs20impl-trait-for-tuples = "0.2.2"20impl-trait-for-tuples = "0.2.2"212122pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }232324[dev-dependencies]24[dev-dependencies]25# We want to assert some large binary blobs equality in tests25# We want to assert some large binary blobs equality in tests26hex = "0.4.3"26hex = "0.4.3"27hex-literal = "0.3.4"27hex-literal = "0.3.4"28similar-asserts = "1.4.2"28similar-asserts = "1.4.2"29concat-idents = "1.1.3"30trybuild = "1.0"29trybuild = "1.0"313032[features]31[features]crates/evm-coder/procedural/Cargo.tomldiffbeforeafterboth1[package]1[package]2name = "evm-coder-procedural"2name = "evm-coder-procedural"3version = "0.2.1"3version = "0.2.2"4license = "GPLv3"4license = "GPLv3"5edition = "2021"5edition = "2021"66crates/evm-coder/procedural/src/abi_derive/derive_enum.rsdiffbeforeafterbothno changes
crates/evm-coder/procedural/src/abi_derive/derive_struct.rsdiffbeforeafterbothno changes
crates/evm-coder/procedural/src/abi_derive/mod.rsdiffbeforeafterbothno changes
crates/evm-coder/procedural/src/lib.rsdiffbeforeafterboth25 parse_macro_input, spanned::Spanned,25 parse_macro_input, spanned::Spanned,26};26};272728mod abi_derive;28mod solidity_interface;29mod solidity_interface;29mod to_log;30mod to_log;3031243 .into()244 .into()244}245}246247#[proc_macro_derive(AbiCoder)]248pub fn abi_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {249 let ast = syn::parse(input).unwrap();250 let ts = match abi_derive::impl_abi_macro(&ast) {251 Ok(e) => e,252 Err(e) => e.to_compile_error(),253 };254 ts.into()255}245256crates/evm-coder/procedural/src/solidity_interface.rsdiffbeforeafterboth404 let name = &self.name;404 let name = &self.name;405 let ty = &self.ty;405 let ty = &self.ty;406 quote! {406 quote! {407 #name: <#ty>::abi_read(reader)?407 #name: {408 let value = <#ty as ::evm_coder::abi::AbiRead>::abi_read(reader)?;409 if !is_dynamic {reader.bytes_read(<#ty as ::evm_coder::abi::AbiType>::size())};410 value411 }408 }412 }409 }413 }410414630 let pascal_name = &self.pascal_name;634 let pascal_name = &self.pascal_name;631 let screaming_name = &self.screaming_name;635 let screaming_name = &self.screaming_name;632 if self.has_normal_args {636 if self.has_normal_args {633 let parsers = self637 let args_iter = self.args.iter().filter(|a| !a.is_special());634 .args638 let arg_type = args_iter.clone().map(|a| &a.ty);635 .iter()636 .filter(|a| !a.is_special())637 .map(|a| a.expand_parse());639 let parsers = args_iter.map(|a| a.expand_parse());638 quote! {640 quote! {639 Self::#screaming_name => return Ok(Some(Self::#pascal_name {641 Self::#screaming_name => {642 let is_dynamic = false #(|| <#arg_type as ::evm_coder::abi::AbiType>::is_dynamic())*;643 return Ok(Some(Self::#pascal_name {640 #(644 #(641 #parsers,645 #parsers,642 )*646 )*643 }))647 }))648 }644 }649 }645 } else {650 } else {646 quote! { Self::#screaming_name => return Ok(Some(Self::#pascal_name)) }651 quote! { Self::#screaming_name => return Ok(Some(Self::#pascal_name)) }crates/evm-coder/src/abi/impls.rsdiffbeforeafterboth1use crate::{1use crate::{2 custom_signature::SignatureUnit,2 execution::{Result, ResultWithPostInfo, WithPostDispatchInfo},3 execution::{Result, ResultWithPostInfo, WithPostDispatchInfo},4 make_signature, sealed,3 types::*,5 types::*,4 make_signature,5 custom_signature::SignatureUnit,6};6};7use super::{traits::*, ABI_ALIGNMENT, AbiReader, AbiWriter};7use super::{traits::*, ABI_ALIGNMENT, AbiReader, AbiWriter};8use primitive_types::{U256, H160};8use primitive_types::{U256, H160};9910#[cfg(not(feature = "std"))]10#[cfg(not(feature = "std"))]11use alloc::vec::Vec;11use alloc::vec::Vec;121213macro_rules! impl_abi_readable {13macro_rules! impl_abi_type {14 ($ty:ty, $method:ident, $dynamic:literal) => {14 ($ty:ty, $name:ident, $dynamic:literal) => {15 impl sealed::CanBePlacedInVec for $ty {}15 impl sealed::CanBePlacedInVec for $ty {}161617 impl AbiType for $ty {17 impl AbiType for $ty {18 const SIGNATURE: SignatureUnit = make_signature!(new fixed(stringify!($ty)));18 const SIGNATURE: SignatureUnit = make_signature!(new fixed(stringify!($name)));191920 fn is_dynamic() -> bool {20 fn is_dynamic() -> bool {21 $dynamic21 $dynamic26 }26 }27 }27 }2829 impl AbiRead for $ty {30 fn abi_read(reader: &mut AbiReader) -> Result<$ty> {31 reader.$method()32 }33 }34 };28 };35}29}363031macro_rules! impl_abi_readable {32 ($ty:ty, $method:ident) => {33 impl AbiRead for $ty {34 fn abi_read(reader: &mut AbiReader) -> Result<$ty> {35 reader.$method()36 }37 }38 };39}4041macro_rules! impl_abi_writeable {42 ($ty:ty, $method:ident) => {43 impl AbiWrite for $ty {44 fn abi_write(&self, writer: &mut AbiWriter) {45 writer.$method(&self)46 }47 }48 };49}5051macro_rules! impl_abi {52 ($ty:ty, $method:ident, $dynamic:literal) => {53 impl_abi_type!($ty, $method, $dynamic);37impl_abi_readable!(uint32, uint32, false);54 impl_abi_readable!($ty, $method);55 impl_abi_writeable!($ty, $method);56 };57}5838impl_abi_readable!(uint64, uint64, false);59impl_abi!(bool, bool, false);39impl_abi_readable!(uint128, uint128, false);60impl_abi!(u8, uint8, false);40impl_abi_readable!(uint256, uint256, false);61impl_abi!(u32, uint32, false);41impl_abi_readable!(bytes4, bytes4, false);62impl_abi!(u64, uint64, false);42impl_abi_readable!(address, address, false);63impl_abi!(u128, uint128, false);43impl_abi_readable!(string, string, true);64impl_abi!(U256, uint256, false);4445impl sealed::CanBePlacedInVec for bool {}4647impl AbiType for bool {48 const SIGNATURE: SignatureUnit = make_signature!(new fixed("bool"));65impl_abi!(H160, address, false);4950 fn is_dynamic() -> bool {51 false52 }53 fn size() -> usize {54 ABI_ALIGNMENT55 }56}57impl AbiRead for bool {58 fn abi_read(reader: &mut AbiReader) -> Result<bool> {59 reader.bool()60 }61}6263impl AbiType for uint8 {64 const SIGNATURE: SignatureUnit = make_signature!(new fixed("uint8"));66impl_abi!(string, string, true);656766 fn is_dynamic() -> bool {67 false68 }69 fn size() -> usize {70 ABI_ALIGNMENT71 }72}73impl AbiRead for uint8 {74 fn abi_read(reader: &mut AbiReader) -> Result<uint8> {68impl_abi_writeable!(&str, string);75 reader.uint8()6976 }77}7879impl AbiType for bytes {80 const SIGNATURE: SignatureUnit = make_signature!(new fixed("bytes"));70impl_abi_type!(bytes, bytes, true);817182 fn is_dynamic() -> bool {83 true84 }85 fn size() -> usize {86 ABI_ALIGNMENT87 }88}89impl AbiRead for bytes {72impl AbiRead for bytes {90 fn abi_read(reader: &mut AbiReader) -> Result<bytes> {73 fn abi_read(reader: &mut AbiReader) -> Result<bytes> {91 Ok(bytes(reader.bytes()?))74 Ok(bytes(reader.bytes()?))92 }75 }93}76}7778impl AbiWrite for bytes {79 fn abi_write(&self, writer: &mut AbiWriter) {80 writer.bytes(self.0.as_slice())81 }82}8384impl_abi_type!(bytes4, bytes4, false);85impl AbiRead for bytes4 {86 fn abi_read(reader: &mut AbiReader) -> Result<bytes4> {87 reader.bytes4()88 }89}9091impl<T: AbiWrite> AbiWrite for &T {92 fn abi_write(&self, writer: &mut AbiWriter) {93 T::abi_write(self, writer);94 }95}9697impl<T: AbiType> AbiType for &T {98 const SIGNATURE: SignatureUnit = T::SIGNATURE;99100 fn is_dynamic() -> bool {101 T::is_dynamic()102 }103104 fn size() -> usize {105 T::size()106 }107}9410895impl<R: AbiRead + sealed::CanBePlacedInVec> AbiRead for Vec<R> {109impl<T: AbiType + AbiRead + sealed::CanBePlacedInVec> AbiRead for Vec<T> {96 fn abi_read(reader: &mut AbiReader) -> Result<Vec<R>> {110 fn abi_read(reader: &mut AbiReader) -> Result<Vec<T>> {97 let mut sub = reader.subresult(None)?;111 let mut sub = reader.subresult(None)?;98 let size = sub.uint32()? as usize;112 let size = sub.uint32()? as usize;99 sub.subresult_offset = sub.offset;113 sub.subresult_offset = sub.offset;114 let is_dynamic = <T as AbiType>::is_dynamic();100 let mut out = Vec::with_capacity(size);115 let mut out = Vec::with_capacity(size);101 for _ in 0..size {116 for _ in 0..size {102 out.push(<R>::abi_read(&mut sub)?);117 out.push(<T as AbiRead>::abi_read(&mut sub)?);118 if !is_dynamic {119 sub.bytes_read(<T as AbiType>::size());120 };103 }121 }104 Ok(out)122 Ok(out)105 }123 }106}124}107125108impl<R: AbiType> AbiType for Vec<R> {126impl<T: AbiType> AbiType for Vec<T> {109 const SIGNATURE: SignatureUnit = make_signature!(new nameof(R::SIGNATURE) fixed("[]"));127 const SIGNATURE: SignatureUnit = make_signature!(new nameof(T::SIGNATURE) fixed("[]"));110128111 fn is_dynamic() -> bool {129 fn is_dynamic() -> bool {112 true130 true117 }135 }118}136}119120impl sealed::CanBePlacedInVec for EthCrossAccount {}121122impl AbiType for EthCrossAccount {123 const SIGNATURE: SignatureUnit = make_signature!(new fixed("(address,uint256)"));124125 fn is_dynamic() -> bool {126 address::is_dynamic() || uint256::is_dynamic()127 }128129 fn size() -> usize {130 <address as AbiType>::size() + <uint256 as AbiType>::size()131 }132}133134impl AbiRead for EthCrossAccount {135 fn abi_read(reader: &mut AbiReader) -> Result<EthCrossAccount> {136 let size = if !EthCrossAccount::is_dynamic() {137 Some(<EthCrossAccount as AbiType>::size())138 } else {139 None140 };141 let mut subresult = reader.subresult(size)?;142 let eth = <address>::abi_read(&mut subresult)?;143 let sub = <uint256>::abi_read(&mut subresult)?;144145 Ok(EthCrossAccount { eth, sub })146 }147}148149impl AbiWrite for EthCrossAccount {150 fn abi_write(&self, writer: &mut AbiWriter) {151 self.eth.abi_write(writer);152 self.sub.abi_write(writer);153 }154}155137156impl sealed::CanBePlacedInVec for Property {}138impl sealed::CanBePlacedInVec for Property {}157139188 }170 }189}171}190191macro_rules! impl_abi_writeable {192 ($ty:ty, $method:ident) => {193 impl AbiWrite for $ty {194 fn abi_write(&self, writer: &mut AbiWriter) {195 writer.$method(&self)196 }197 }198 };199}200201impl_abi_writeable!(u8, uint8);202impl_abi_writeable!(u32, uint32);203impl_abi_writeable!(u128, uint128);204impl_abi_writeable!(U256, uint256);205impl_abi_writeable!(H160, address);206impl_abi_writeable!(bool, bool);207impl_abi_writeable!(&str, string);208209impl AbiWrite for string {210 fn abi_write(&self, writer: &mut AbiWriter) {211 writer.string(self)212 }213}214215impl AbiWrite for bytes {216 fn abi_write(&self, writer: &mut AbiWriter) {217 writer.bytes(self.0.as_slice())218 }219}220172221impl<T: AbiWrite + AbiType> AbiWrite for Vec<T> {173impl<T: AbiWrite + AbiType> AbiWrite for Vec<T> {222 fn abi_write(&self, writer: &mut AbiWriter) {174 fn abi_write(&self, writer: &mut AbiWriter) {295247296 impl<$($ident),+> AbiRead for ($($ident,)+)248 impl<$($ident),+> AbiRead for ($($ident,)+)297 where249 where250 Self: AbiType,298 $($ident: AbiRead,)+251 $($ident: AbiRead + AbiType,)+299 ($($ident,)+): AbiType,300 {252 {301 fn abi_read(reader: &mut AbiReader) -> Result<($($ident,)+)> {253 fn abi_read(reader: &mut AbiReader) -> Result<($($ident,)+)> {302 let size = if !<($($ident,)+)>::is_dynamic() { Some(<($($ident,)+)>::size()) } else { None };254 let is_dynamic = <Self>::is_dynamic();255 let size = if !is_dynamic { Some(<Self>::size()) } else { None };303 let mut subresult = reader.subresult(size)?;256 let mut subresult = reader.subresult(size)?;304 Ok((257 Ok((305 $(<$ident>::abi_read(&mut subresult)?,)+258 $({259 let value = <$ident>::abi_read(&mut subresult)?;260 if !is_dynamic {subresult.bytes_read(<$ident as AbiType>::size())};261 value262 },)+306 ))263 ))307 }264 }308 }265 }309266310 #[allow(non_snake_case)]267 #[allow(non_snake_case)]311 impl<$($ident),+> AbiWrite for ($($ident,)+)268 impl<$($ident),+> AbiWrite for ($($ident,)+)312 where269 where313 $($ident: AbiWrite,)+270 $($ident: AbiWrite + AbiType,)+314 {271 {315 fn abi_write(&self, writer: &mut AbiWriter) {272 fn abi_write(&self, writer: &mut AbiWriter) {316 let ($($ident,)+) = self;273 let ($($ident,)+) = self;317 if writer.is_dynamic {274 if <Self as AbiType>::is_dynamic() {318 let mut sub = AbiWriter::new();275 let mut sub = AbiWriter::new();319 $($ident.abi_write(&mut sub);)+276 $($ident.abi_write(&mut sub);)+320 writer.write_subresult(sub);277 writer.write_subresult(sub);crates/evm-coder/src/abi/mod.rsdiffbeforeafterboth75 buf: &[u8],75 buf: &[u8],76 offset: usize,76 offset: usize,77 pad_start: usize,77 pad_start: usize,78 pad_size: usize,78 pad_end: usize,79 block_start: usize,79 block_start: usize,80 block_size: usize,80 block_end: usize,81 ) -> Result<[u8; S]> {81 ) -> Result<[u8; S]> {82 if buf.len() - offset < ABI_ALIGNMENT {82 if buf.len() - offset < ABI_ALIGNMENT {83 return Err(Error::Error(ExitError::OutOfOffset));83 return Err(Error::Error(ExitError::OutOfOffset));84 }84 }85 let mut block = [0; S];85 let mut block = [0; S];86 let is_pad_zeroed = buf[pad_start..pad_size].iter().all(|&v| v == 0);86 let is_pad_zeroed = buf[pad_start..pad_end].iter().all(|&v| v == 0);87 if !is_pad_zeroed {87 if !is_pad_zeroed {88 return Err(Error::Error(ExitError::InvalidRange));88 return Err(Error::Error(ExitError::InvalidRange));89 }89 }90 block.copy_from_slice(&buf[block_start..block_size]);90 block.copy_from_slice(&buf[block_start..block_end]);91 Ok(block)91 Ok(block)92 }92 }9393186186187 /// Slice recursive buffer, advance one word for buffer offset187 /// Slice recursive buffer, advance one word for buffer offset188 /// If `size` is [`None`] then [`Self::offset`] and [`Self::subresult_offset`] evals from [`Self::buf`].188 /// If `size` is [`None`] then [`Self::offset`] and [`Self::subresult_offset`] evals from [`Self::buf`].189 fn subresult(&mut self, size: Option<usize>) -> Result<AbiReader<'i>> {189 pub fn subresult(&mut self, size: Option<usize>) -> Result<AbiReader<'i>> {190 let subresult_offset = self.subresult_offset;190 let subresult_offset = self.subresult_offset;191 let offset = if let Some(size) = size {191 let offset = if let Some(size) = size {192 self.offset += size;192 self.offset += size;193 self.subresult_offset += size;194 0193 0195 } else {194 } else {196 self.uint32()? as usize195 self.uint32()? as usize208 })207 })209 }208 }209210 /// Notify about readed data portion.211 pub fn bytes_read(&mut self, size: usize) {212 self.subresult_offset += size;213 }210214211 /// Is this parser reached end of buffer?215 /// Is this parser reached end of buffer?212 pub fn is_finished(&self) -> bool {216 pub fn is_finished(&self) -> bool {277 self.write_padleft(&u32::to_be_bytes(*value))281 self.write_padleft(&u32::to_be_bytes(*value))278 }282 }283284 /// Write [`u64`] to end of buffer285 pub fn uint64(&mut self, value: &u64) {286 self.write_padleft(&u64::to_be_bytes(*value))287 }279288280 /// Write [`u128`] to end of buffer289 /// Write [`u128`] to end of buffer281 pub fn uint128(&mut self, value: &u128) {290 pub fn uint128(&mut self, value: &u128) {crates/evm-coder/src/abi/test.rsdiffbeforeafterboth6use super::{AbiReader, AbiWriter};6use super::{AbiReader, AbiWriter};7use hex_literal::hex;7use hex_literal::hex;8use primitive_types::{H160, U256};8use primitive_types::{H160, U256};9use concat_idents::concat_idents;10911macro_rules! test_impl {10fn test_impl<T>(function_identifier: u32, decoded_data: T, encoded_data: &[u8])11where12 ($name:ident, $type:ty, $function_identifier:expr, $decoded_data:expr, $encoded_data:expr) => {12 T: AbiWrite + AbiRead + std::cmp::PartialEq + std::fmt::Debug,13 concat_idents!(test_name = encode_decode_, $name {13{14 #[test]15 fn test_name() {16 let function_identifier: u32 = $function_identifier;17 let decoded_data = $decoded_data;18 let encoded_data = $encoded_data;1920 let (call, mut decoder) = AbiReader::new_call(encoded_data).unwrap();14 let (call, mut decoder) = AbiReader::new_call(encoded_data).unwrap();21 assert_eq!(call, u32::to_be_bytes(function_identifier));15 assert_eq!(call, u32::to_be_bytes(function_identifier));22 let data = <$type>::abi_read(&mut decoder).unwrap();16 let data = <T>::abi_read(&mut decoder).unwrap();23 assert_eq!(data, decoded_data);17 assert_eq!(data, decoded_data);241825 let mut writer = AbiWriter::new_call(function_identifier);19 let mut writer = AbiWriter::new_call(function_identifier);26 decoded_data.abi_write(&mut writer);20 decoded_data.abi_write(&mut writer);27 let ed = writer.finish();21 let ed = writer.finish();28 similar_asserts::assert_eq!(encoded_data, ed.as_slice());22 similar_asserts::assert_eq!(encoded_data, ed.as_slice());29 }30 });31 };23}32}332434macro_rules! test_impl_uint {25macro_rules! test_impl_uint {35 ($type:ident) => {26 ($type:ident) => {36 test_impl!(27 test_impl::<$type>(37 $type,38 $type,39 0xdeadbeef,28 0xdeadbeef,40 255 as $type,29 255 as $type,41 &hex!(30 &hex!(42 "31 "43 deadbeef32 deadbeef44 00000000000000000000000000000000000000000000000000000000000000ff33 00000000000000000000000000000000000000000000000000000000000000ff45 "34 "46 )35 ),47 );36 );48 };37 };49}38}503940#[test]41fn encode_decode_uint8() {51test_impl_uint!(uint8);42 test_impl_uint!(uint8);43}4445#[test]46fn encode_decode_uint32() {52test_impl_uint!(uint32);47 test_impl_uint!(uint32);48}4950#[test]51fn encode_decode_uint128() {53test_impl_uint!(uint128);52 test_impl_uint!(uint128);5453}5455#[test]56fn encode_decode_uint256() {55test_impl!(57 test_impl::<uint256>(56 uint256,57 uint256,58 0xdeadbeef,58 0xdeadbeef,59 U256([255, 0, 0, 0]),59 U256([255, 0, 0, 0]),60 &hex!(60 &hex!(61 "61 "62 deadbeef62 deadbeef63 00000000000000000000000000000000000000000000000000000000000000ff63 00000000000000000000000000000000000000000000000000000000000000ff64 "64 "65 )65 ),66);66 );6767}6869#[test]70fn encode_decode_string() {71 test_impl::<String>(72 0xdeadbeef,73 "some string".to_string(),74 &hex!(75 "76 deadbeef77 000000000000000000000000000000000000000000000000000000000000002078 000000000000000000000000000000000000000000000000000000000000000b79 736f6d6520737472696e6700000000000000000000000000000000000000000080 "81 ),82 );83}8485#[test]86fn encode_decode_tuple_string() {87 test_impl::<(String,)>(88 0xdeadbeef,89 ("some string".to_string(),),90 &hex!(91 "92 deadbeef93 000000000000000000000000000000000000000000000000000000000000002094 000000000000000000000000000000000000000000000000000000000000002095 000000000000000000000000000000000000000000000000000000000000000b96 736f6d6520737472696e6700000000000000000000000000000000000000000097 "98 ),99 );100}101102#[test]103fn encode_decode_vec_tuple_address_uint256() {68test_impl!(104 test_impl::<Vec<(address, uint256)>>(69 vec_tuple_address_uint256,70 Vec<(address, uint256)>,71 0x1ACF2D55,105 0x1ACF2D55,72 vec![106 vec![73 (107 (84 ),118 ),85 ],119 ],86 &hex!(120 &hex!(87 "121 "88 1ACF2D55122 1ACF2D5589 0000000000000000000000000000000000000000000000000000000000000020 // offset of (address, uint256)[]123 0000000000000000000000000000000000000000000000000000000000000020 // offset of (address, uint256)[]90 0000000000000000000000000000000000000000000000000000000000000003 // length of (address, uint256)[]124 0000000000000000000000000000000000000000000000000000000000000003 // length of (address, uint256)[]9112592 0000000000000000000000002D2FF76104B7BACB2E8F6731D5BFC184EBECDDBC // address126 0000000000000000000000002D2FF76104B7BACB2E8F6731D5BFC184EBECDDBC // address93 000000000000000000000000000000000000000000000000000000000000000A // uint256127 000000000000000000000000000000000000000000000000000000000000000A // uint2569412895 000000000000000000000000AB8E3D9134955566483B11E6825C9223B6737B10 // address129 000000000000000000000000AB8E3D9134955566483B11E6825C9223B6737B10 // address96 0000000000000000000000000000000000000000000000000000000000000014 // uint256130 0000000000000000000000000000000000000000000000000000000000000014 // uint2569713198 0000000000000000000000008C582BDF2953046705FC56F189385255EFC1BE18 // address132 0000000000000000000000008C582BDF2953046705FC56F189385255EFC1BE18 // address99 000000000000000000000000000000000000000000000000000000000000001E // uint256133 000000000000000000000000000000000000000000000000000000000000001E // uint256100 "134 "101 )135 )102);136 );103137}138139#[test]140fn encode_decode_vec_tuple_uint256_string() {104test_impl!(141 test_impl::<Vec<(uint256, string)>>(105 vec_tuple_uint256_string,106 Vec<(uint256, string)>,107 0xdeadbeef,142 0xdeadbeef,108 vec![143 vec![109 (1.into(), "Test URI 0".to_string()),144 (1.into(), "Test URI 0".to_string()),110 (11.into(), "Test URI 1".to_string()),145 (11.into(), "Test URI 1".to_string()),111 (12.into(), "Test URI 2".to_string()),146 (12.into(), "Test URI 2".to_string()),112 ],147 ],113 &hex!(148 &hex!(114 "149 "115 deadbeef150 deadbeef116 0000000000000000000000000000000000000000000000000000000000000020 // offset of (uint256, string)[]151 0000000000000000000000000000000000000000000000000000000000000020 // offset of (uint256, string)[]117 0000000000000000000000000000000000000000000000000000000000000003 // length of (uint256, string)[]152 0000000000000000000000000000000000000000000000000000000000000003 // length of (uint256, string)[]118153119 0000000000000000000000000000000000000000000000000000000000000060 // offset of first elem154 0000000000000000000000000000000000000000000000000000000000000060 // offset of first elem120 00000000000000000000000000000000000000000000000000000000000000e0 // offset of second elem155 00000000000000000000000000000000000000000000000000000000000000e0 // offset of second elem121 0000000000000000000000000000000000000000000000000000000000000160 // offset of third elem156 0000000000000000000000000000000000000000000000000000000000000160 // offset of third elem122157123 0000000000000000000000000000000000000000000000000000000000000001 // first token id? #60158 0000000000000000000000000000000000000000000000000000000000000001 // first token id? #60124 0000000000000000000000000000000000000000000000000000000000000040 // offset of string159 0000000000000000000000000000000000000000000000000000000000000040 // offset of string125 000000000000000000000000000000000000000000000000000000000000000a // size of string160 000000000000000000000000000000000000000000000000000000000000000a // size of string126 5465737420555249203000000000000000000000000000000000000000000000 // string161 5465737420555249203000000000000000000000000000000000000000000000 // string127162128 000000000000000000000000000000000000000000000000000000000000000b // second token id? Why ==11? #e0163 000000000000000000000000000000000000000000000000000000000000000b // second token id? Why ==11? #e0129 0000000000000000000000000000000000000000000000000000000000000040 // offset of string164 0000000000000000000000000000000000000000000000000000000000000040 // offset of string130 000000000000000000000000000000000000000000000000000000000000000a // size of string165 000000000000000000000000000000000000000000000000000000000000000a // size of string131 5465737420555249203100000000000000000000000000000000000000000000 // string166 5465737420555249203100000000000000000000000000000000000000000000 // string132167133 000000000000000000000000000000000000000000000000000000000000000c // third token id? Why ==12? #160168 000000000000000000000000000000000000000000000000000000000000000c // third token id? Why ==12? #160134 0000000000000000000000000000000000000000000000000000000000000040 // offset of string169 0000000000000000000000000000000000000000000000000000000000000040 // offset of string135 000000000000000000000000000000000000000000000000000000000000000a // size of string170 000000000000000000000000000000000000000000000000000000000000000a // size of string136 5465737420555249203200000000000000000000000000000000000000000000 // string171 5465737420555249203200000000000000000000000000000000000000000000 // string137 "172 "138 )173 )139);174 );175}140176141#[test]177#[test]142fn dynamic_after_static() {178fn dynamic_after_static() {235 similar_asserts::assert_eq!(encoded_data, ed.as_slice());271 similar_asserts::assert_eq!(encoded_data, ed.as_slice());236}272}237273274#[test]275fn encode_decode_vec_tuple_string_bytes() {238test_impl!(276 test_impl::<Vec<(string, bytes)>>(239 vec_tuple_string_bytes,240 Vec<(string, bytes)>,241 0xdeadbeef,277 0xdeadbeef,242 vec![278 vec![243 (279 (261 ("Test URI 2".to_string(), bytes(vec![0x33, 0x33])),297 ("Test URI 2".to_string(), bytes(vec![0x33, 0x33])),262 ],298 ],263 &hex!(299 &hex!(264 "300 "265 deadbeef301 deadbeef266 0000000000000000000000000000000000000000000000000000000000000020302 0000000000000000000000000000000000000000000000000000000000000020267 0000000000000000000000000000000000000000000000000000000000000003303 0000000000000000000000000000000000000000000000000000000000000003304268 305 0000000000000000000000000000000000000000000000000000000000000060269 0000000000000000000000000000000000000000000000000000000000000060306 0000000000000000000000000000000000000000000000000000000000000140270 0000000000000000000000000000000000000000000000000000000000000140307 0000000000000000000000000000000000000000000000000000000000000220271 0000000000000000000000000000000000000000000000000000000000000220308272309 0000000000000000000000000000000000000000000000000000000000000040273 0000000000000000000000000000000000000000000000000000000000000040310 0000000000000000000000000000000000000000000000000000000000000080274 0000000000000000000000000000000000000000000000000000000000000080311 000000000000000000000000000000000000000000000000000000000000000a275 000000000000000000000000000000000000000000000000000000000000000a312 5465737420555249203000000000000000000000000000000000000000000000276 5465737420555249203000000000000000000000000000000000000000000000313 0000000000000000000000000000000000000000000000000000000000000030277 0000000000000000000000000000000000000000000000000000000000000030314 1111111111111111111111111111111111111111111111111111111111111111278 1111111111111111111111111111111111111111111111111111111111111111315 1111111111111111111111111111111100000000000000000000000000000000279 1111111111111111111111111111111100000000000000000000000000000000316280317 0000000000000000000000000000000000000000000000000000000000000040281 0000000000000000000000000000000000000000000000000000000000000040318 0000000000000000000000000000000000000000000000000000000000000080282 0000000000000000000000000000000000000000000000000000000000000080319 000000000000000000000000000000000000000000000000000000000000000a283 000000000000000000000000000000000000000000000000000000000000000a320 5465737420555249203100000000000000000000000000000000000000000000284 5465737420555249203100000000000000000000000000000000000000000000321 000000000000000000000000000000000000000000000000000000000000002f285 000000000000000000000000000000000000000000000000000000000000002f322 2222222222222222222222222222222222222222222222222222222222222222286 2222222222222222222222222222222222222222222222222222222222222222323 2222222222222222222222222222220000000000000000000000000000000000287 2222222222222222222222222222220000000000000000000000000000000000324288325 0000000000000000000000000000000000000000000000000000000000000040289 0000000000000000000000000000000000000000000000000000000000000040326 0000000000000000000000000000000000000000000000000000000000000080290 0000000000000000000000000000000000000000000000000000000000000080327 000000000000000000000000000000000000000000000000000000000000000a291 000000000000000000000000000000000000000000000000000000000000000a328 5465737420555249203200000000000000000000000000000000000000000000292 5465737420555249203200000000000000000000000000000000000000000000329 0000000000000000000000000000000000000000000000000000000000000002293 0000000000000000000000000000000000000000000000000000000000000002330 3333000000000000000000000000000000000000000000000000000000000000294 3333000000000000000000000000000000000000000000000000000000000000331 "295 "296 )332 ),297);333 );334}335336#[test]337// #[ignore = "reason"]338fn encode_decode_tuple0_tuple1_uint8_tuple1_string_bytes_tuple1_uint8_bytes() {339 let int = 0xff;340 let by = bytes(vec![0x11, 0x22, 0x33]);341 let string = "some string".to_string();342343 test_impl::<((u8,), (String, bytes), (u8, bytes))>(344 0xdeadbeef,345 ((int,), (string.clone(), by.clone()), (int, by)),346 &hex!(347 "348 deadbeef349 0000000000000000000000000000000000000000000000000000000000000020350 00000000000000000000000000000000000000000000000000000000000000ff351 0000000000000000000000000000000000000000000000000000000000000060352 0000000000000000000000000000000000000000000000000000000000000120353 0000000000000000000000000000000000000000000000000000000000000040354 0000000000000000000000000000000000000000000000000000000000000080355 000000000000000000000000000000000000000000000000000000000000000b356 736f6d6520737472696e67000000000000000000000000000000000000000000357 0000000000000000000000000000000000000000000000000000000000000003358 1122330000000000000000000000000000000000000000000000000000000000359 00000000000000000000000000000000000000000000000000000000000000ff360 0000000000000000000000000000000000000000000000000000000000000040361 0000000000000000000000000000000000000000000000000000000000000003362 1122330000000000000000000000000000000000000000000000000000000000363 "364 ),365 );366}367368#[test]369fn encode_decode_tuple0_tuple1_uint8_tuple1_uint8_uint8_tuple1_uint8_uint8() {370 test_impl::<((u8,), (u8, u8), (u8, u8))>(371 0xdeadbeef,372 ((43,), (44, 45), (46, 47)),373 &hex!(374 "375 deadbeef376 000000000000000000000000000000000000000000000000000000000000002b377 000000000000000000000000000000000000000000000000000000000000002c378 000000000000000000000000000000000000000000000000000000000000002d379 000000000000000000000000000000000000000000000000000000000000002e380 000000000000000000000000000000000000000000000000000000000000002f381 "382 ),383 );384}385386#[test]387fn encode_decode_tuple0_tuple1_uint8_tuple1_uint8() {388 test_impl::<((u8,), (u8,))>(389 0xdeadbeef,390 ((43,), (44,)),391 &hex!(392 "393 deadbeef394 000000000000000000000000000000000000000000000000000000000000002b395 000000000000000000000000000000000000000000000000000000000000002c396 "397 ),398 );399}400401#[test]402fn encode_decode_tuple0_tuple1_uint8_uint8() {403 test_impl::<((u8, u8),)>(404 0xdeadbeef,405 ((43, 44),),406 &hex!(407 "408 deadbeef409 000000000000000000000000000000000000000000000000000000000000002b410 000000000000000000000000000000000000000000000000000000000000002c411 "412 ),413 );414}415416#[test]417fn encode_decode_tuple_uint8_uint8() {418 test_impl::<(u8, u8)>(419 0xdeadbeef,420 (43, 44),421 &hex!(422 "423 deadbeef424 000000000000000000000000000000000000000000000000000000000000002b425 000000000000000000000000000000000000000000000000000000000000002c426 "427 ),428 );429}430431#[test]432fn encode_decode_tuple0_tuple1_uint8_uint8_tuple1_uint8_uint8_and_uint8() {433 test_impl::<((u8, u8), (u8, u8), u8)>(434 0xdeadbeef,435 ((10, 11), (12, 13), 14),436 &hex!(437 "438 deadbeef439 000000000000000000000000000000000000000000000000000000000000000a440 000000000000000000000000000000000000000000000000000000000000000b441 000000000000000000000000000000000000000000000000000000000000000c442 000000000000000000000000000000000000000000000000000000000000000d443 000000000000000000000000000000000000000000000000000000000000000e444 "445 ),446 );447}448449#[test]450fn encode_decode_tuple0_tuple1_string() {451 test_impl::<((String,),)>(452 0xdeadbeef,453 (("some string".to_string(),),),454 &hex!(455 "456 deadbeef457 0000000000000000000000000000000000000000000000000000000000000020458 0000000000000000000000000000000000000000000000000000000000000020459 0000000000000000000000000000000000000000000000000000000000000020460 000000000000000000000000000000000000000000000000000000000000000b461 736f6d6520737472696e67000000000000000000000000000000000000000000462 "463 ),464 );465}466467#[test]468fn encode_decode_tuple0_tuple1_uint8_string() {469 test_impl::<((u8, String),)>(470 0xdeadbeef,471 ((0xff, "some string".to_string()),),472 &hex!(473 "474 deadbeef475 0000000000000000000000000000000000000000000000000000000000000020476 0000000000000000000000000000000000000000000000000000000000000020477 00000000000000000000000000000000000000000000000000000000000000ff478 0000000000000000000000000000000000000000000000000000000000000040479 000000000000000000000000000000000000000000000000000000000000000b480 736f6d6520737472696e67000000000000000000000000000000000000000000481 "482 ),483 );484}485486#[test]487fn encode_decode_tuple0_tuple1_string_bytes() {488 test_impl::<((String, bytes),)>(489 0xdeadbeef,490 (("some string".to_string(), bytes(vec![1, 2, 3])),),491 &hex!(492 "493 deadbeef494 0000000000000000000000000000000000000000000000000000000000000020495 0000000000000000000000000000000000000000000000000000000000000020496 0000000000000000000000000000000000000000000000000000000000000040497 0000000000000000000000000000000000000000000000000000000000000080498 000000000000000000000000000000000000000000000000000000000000000b499 736f6d6520737472696e67000000000000000000000000000000000000000000500 0000000000000000000000000000000000000000000000000000000000000003501 0102030000000000000000000000000000000000000000000000000000000000502 "503 ),504 );505}506507#[test]508fn encode_decode_tuple0_tuple1_uint8_tuple1_string() {509 test_impl::<((u8,), (String,))>(510 0xdeadbeef,511 ((0xff,), ("some string".to_string(),)),512 &hex!(513 "514 deadbeef515 0000000000000000000000000000000000000000000000000000000000000020516 00000000000000000000000000000000000000000000000000000000000000ff517 0000000000000000000000000000000000000000000000000000000000000040518 0000000000000000000000000000000000000000000000000000000000000020519 000000000000000000000000000000000000000000000000000000000000000b520 736f6d6520737472696e67000000000000000000000000000000000000000000521 "522 ),523 );524}525526#[test]527fn parse_multiple_params() {528 let encoded_data = hex!(529 "530 deadbeef531 000000000000000000000000000000000000000000000000000000000000000a532 000000000000000000000000000000000000000000000000000000000000000b533 "534 );535 let (_, mut decoder) = AbiReader::new_call(&encoded_data).unwrap();536 let p1 = <u8>::abi_read(&mut decoder).unwrap();537 let p2 = <u8>::abi_read(&mut decoder).unwrap();538 assert_eq!(p1, 0x0a);539 assert_eq!(p2, 0x0b);540}298541crates/evm-coder/src/abi/traits.rsdiffbeforeafterboth22 fn size() -> usize;22 fn size() -> usize;23}23}2425/// Sealed traits.26pub mod sealed {27 /// Not all types can be placed in vec, i.e `Vec<u8>` is restricted, `bytes` should be used instead28 pub trait CanBePlacedInVec {}29}302431/// [`AbiReader`] implements reading of many types.25/// [`AbiReader`] implements reading of many types.32pub trait AbiRead {26pub trait AbiRead {50 }44 }51}45}5253impl<T: AbiWrite> AbiWrite for &T {54 fn abi_write(&self, writer: &mut AbiWriter) {55 T::abi_write(self, writer);56 }57}5846crates/evm-coder/src/lib.rsdiffbeforeafterboth93pub use evm_coder_procedural::solidity;93pub use evm_coder_procedural::solidity;94/// See [`solidity_interface`]94/// See [`solidity_interface`]95pub use evm_coder_procedural::weight;95pub use evm_coder_procedural::weight;96pub use evm_coder_procedural::AbiCoder;96pub use sha3_const;97pub use sha3_const;979898/// Derives [`ToLog`] for enum99/// Derives [`ToLog`] for enum111#[cfg(feature = "stubgen")]112#[cfg(feature = "stubgen")]112pub mod solidity;113pub mod solidity;114115/// Sealed traits.116pub mod sealed {117 /// Not every type should be directly placed in vec.118 /// Vec encoding is not memory efficient, as every item will be padded119 /// to 32 bytes.120 /// Instead you should use specialized types (`bytes` in case of `Vec<u8>`)121 pub trait CanBePlacedInVec {}122}113123114/// Solidity type definitions (aliases from solidity name to rust type)124/// Solidity type definitions (aliases from solidity name to rust type)115/// To be used in [`solidity_interface`] definitions, to make sure there is no125/// To be used in [`solidity_interface`] definitions, to make sure there is no119129120 #[cfg(not(feature = "std"))]130 #[cfg(not(feature = "std"))]121 use alloc::{vec::Vec};131 use alloc::{vec::Vec};122 use pallet_evm::account::CrossAccountId;123 use primitive_types::{U256, H160, H256};132 use primitive_types::{U256, H160, H256};124133125 pub type address = H160;134 pub type address = H160;137 #[cfg(feature = "std")]146 #[cfg(feature = "std")]138 pub type string = ::std::string::String;147 pub type string = ::std::string::String;139148140 #[derive(Default, Debug, PartialEq)]149 #[derive(Default, Debug, PartialEq, Eq, Clone)]141 pub struct bytes(pub Vec<u8>);150 pub struct bytes(pub Vec<u8>);142151143 /// Solidity doesn't have `void` type, however we have special implementation152 /// Solidity doesn't have `void` type, however we have special implementation188 }197 }189 }198 }190191 #[derive(Debug, Default)]192 pub struct EthCrossAccount {193 pub(crate) eth: address,194 pub(crate) sub: uint256,195 }196197 impl EthCrossAccount {198 pub fn from_sub_cross_account<T>(cross_account_id: &T::CrossAccountId) -> Self199 where200 T: pallet_evm::account::Config,201 T::AccountId: AsRef<[u8; 32]>,202 {203 if cross_account_id.is_canonical_substrate() {204 Self {205 eth: Default::default(),206 sub: convert_cross_account_to_uint256::<T>(cross_account_id),207 }208 } else {209 Self {210 eth: *cross_account_id.as_eth(),211 sub: Default::default(),212 }213 }214 }215216 pub fn into_sub_cross_account<T>(&self) -> crate::execution::Result<T::CrossAccountId>217 where218 T: pallet_evm::account::Config,219 T::AccountId: From<[u8; 32]>,220 {221 if self.eth == Default::default() && self.sub == Default::default() {222 Err("All fields of cross account is zeroed".into())223 } else if self.eth == Default::default() {224 Ok(convert_uint256_to_cross_account::<T>(self.sub))225 } else if self.sub == Default::default() {226 Ok(T::CrossAccountId::from_eth(self.eth))227 } else {228 Err("All fields of cross account is non zeroed".into())229 }230 }231 }232233 /// Convert `CrossAccountId` to `uint256`.234 pub fn convert_cross_account_to_uint256<T: pallet_evm::account::Config>(235 from: &T::CrossAccountId,236 ) -> uint256237 where238 T::AccountId: AsRef<[u8; 32]>,239 {240 let slice = from.as_sub().as_ref();241 uint256::from_big_endian(slice)242 }243244 /// Convert `uint256` to `CrossAccountId`.245 pub fn convert_uint256_to_cross_account<T: pallet_evm::account::Config>(246 from: uint256,247 ) -> T::CrossAccountId248 where249 T::AccountId: From<[u8; 32]>,250 {251 let mut new_admin_arr = [0_u8; 32];252 from.to_big_endian(&mut new_admin_arr);253 let account_id = T::AccountId::from(new_admin_arr);254 T::CrossAccountId::from_sub(account_id)255 }256199257 #[derive(Debug, Default)]200 #[derive(Debug, Default)]258 pub struct Property {201 pub struct Property {crates/evm-coder/src/solidity.rsdiffbeforeafterbothno changes
crates/evm-coder/src/solidity/impls.rsdiffbeforeafterbothno changes
crates/evm-coder/src/solidity/mod.rsdiffbeforeafterbothno changes
crates/evm-coder/src/solidity/traits.rsdiffbeforeafterbothno changes
crates/evm-coder/tests/abi_derive_generation.rsdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_enum_generation.rsdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_enum_generation.stderrdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_struct_generation.rsdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_struct_generation.stderrdiffbeforeafterbothno changes
node/cli/Cargo.tomldiffbeforeafterboth309jsonrpsee = { version = "0.15.1", features = ["server", "macros"] }309jsonrpsee = { version = "0.15.1", features = ["server", "macros"] }310tokio = { version = "1.19.2", features = ["time"] }310tokio = { version = "1.19.2", features = ["time"] }311311312fc-rpc-core = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }312fc-rpc-core = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }313fc-consensus = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }313fc-consensus = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }314fc-mapping-sync = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }314fc-mapping-sync = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }315fc-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }315fc-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }316fc-db = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }316fc-db = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }317fp-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }317fp-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }318pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }318pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }319319320unique-rpc = { default-features = false, path = "../rpc" }320unique-rpc = { default-features = false, path = "../rpc" }321app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }321app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }335 'quartz-runtime?/try-runtime',335 'quartz-runtime?/try-runtime',336 'opal-runtime?/try-runtime',336 'opal-runtime?/try-runtime',337]337]338sapphire-runtime = [339 'opal-runtime',340 'opal-runtime/become-sapphire',341]338342node/cli/src/chain_spec.rsdiffbeforeafterboth66}66}676768#[cfg(not(feature = "unique-runtime"))]68#[cfg(not(feature = "unique-runtime"))]69/// PARA_ID for Opal/Quartz69/// PARA_ID for Opal/Sapphire/Quartz70const PARA_ID: u32 = 2095;70const PARA_ID: u32 = 2095;717172#[cfg(feature = "unique-runtime")]72#[cfg(feature = "unique-runtime")]90 }90 }919192 if self.id().starts_with("opal") || self.id() == "dev" || self.id() == "local_testnet" {92 if self.id().starts_with("opal")93 || self.id().starts_with("sapphire")94 || self.id() == "dev"95 || self.id() == "local_testnet"96 {node/cli/src/cli.rsdiffbeforeafterboth101 "Unique"101 "Unique"102 } else if cfg!(feature = "quartz-runtime") {102 } else if cfg!(feature = "quartz-runtime") {103 "Quartz"103 "Quartz"104 } else {104 } else if cfg!(feature = "sapphire-runtime") {105 "Sapphire"106 } else {105 "Opal"107 "Opal"106 }108 }107 }109 }node/cli/src/service.rsdiffbeforeafterboth46use cumulus_relay_chain_rpc_interface::{RelayChainRpcInterface, create_client_and_start_worker};46use cumulus_relay_chain_rpc_interface::{RelayChainRpcInterface, create_client_and_start_worker};474748// Substrate Imports48// Substrate Imports49use sp_api::BlockT;49use sc_executor::NativeElseWasmExecutor;50use sc_executor::NativeElseWasmExecutor;50use sc_executor::NativeExecutionDispatch;51use sc_executor::NativeExecutionDispatch;51use sc_network::{NetworkService, NetworkBlock};52use sc_network::{NetworkService, NetworkBlock};159 }160 }160}161}161162162pub fn open_frontier_backend(config: &Configuration) -> Result<Arc<fc_db::Backend<Block>>, String> {163pub fn open_frontier_backend<Block: BlockT, C: sp_blockchain::HeaderBackend<Block>>(164 client: Arc<C>,165 config: &Configuration,166) -> Result<Arc<fc_db::Backend<Block>>, String> {163 let config_dir = config167 let config_dir = config164 .base_path168 .base_path170 let database_dir = config_dir.join("frontier").join("db");174 let database_dir = config_dir.join("frontier").join("db");171175172 Ok(Arc::new(fc_db::Backend::<Block>::new(176 Ok(Arc::new(fc_db::Backend::<Block>::new(177 client,173 &fc_db::DatabaseSettings {178 &fc_db::DatabaseSettings {174 source: fc_db::DatabaseSource::RocksDb {179 source: fc_db::DatabaseSource::RocksDb {175 path: database_dir,180 path: database_dir,285290286 let filter_pool: Option<FilterPool> = Some(Arc::new(Mutex::new(BTreeMap::new())));291 let filter_pool: Option<FilterPool> = Some(Arc::new(Mutex::new(BTreeMap::new())));287292288 let frontier_backend = open_frontier_backend(config)?;293 let frontier_backend = open_frontier_backend(client.clone(), config)?;289294290 let import_queue = build_import_queue(295 let import_queue = build_import_queue(291 client.clone(),296 client.clone(),node/rpc/Cargo.tomldiffbeforeafterboth40substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }40substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }41tokio = { version = "1.19.2", features = ["macros", "sync"] }41tokio = { version = "1.19.2", features = ["macros", "sync"] }424243pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }43pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }44fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }44fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }45fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }45fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }46fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }46fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }47fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }47fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }48fc-db = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }48fc-db = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }49fc-mapping-sync = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }49fc-mapping-sync = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }505051pallet-common = { default-features = false, path = "../../pallets/common" }51pallet-common = { default-features = false, path = "../../pallets/common" }52up-common = { path = "../../primitives/common" }52up-common = { path = "../../primitives/common" }node/rpc/src/lib.rsdiffbeforeafterboth216216217 let overrides = overrides_handle::<_, _, R>(client.clone());217 let overrides = overrides_handle::<_, _, R>(client.clone());218218219 let execute_gas_limit_multiplier = 10;219 io.merge(220 io.merge(220 Eth::new(221 Eth::new(221 client.clone(),222 client.clone(),230 block_data_cache.clone(),231 block_data_cache.clone(),231 fee_history_cache,232 fee_history_cache,232 fee_history_limit,233 fee_history_limit,234 execute_gas_limit_multiplier,233 )235 )234 .into_rpc(),236 .into_rpc(),235 )?;237 )?;pallets/app-promotion/Cargo.tomldiffbeforeafterboth54pallet-balances ={ default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }56pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }55pallet-timestamp ={ default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }57pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }56pallet-randomness-collective-flip ={ default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }58pallet-randomness-collective-flip = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }57pallet-evm ={ default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }59pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }58sp-std ={ default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }60sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }59sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }61sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }60sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }62sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }pallets/app-promotion/src/lib.rsdiffbeforeafterboth102 use frame_system::pallet_prelude::*;102 use frame_system::pallet_prelude::*;103103104 #[pallet::config]104 #[pallet::config]105 pub trait Config: frame_system::Config + pallet_evm::account::Config {105 pub trait Config: frame_system::Config + pallet_evm::Config {106 /// Type to interact with the native token106 /// Type to interact with the native token107 type Currency: ExtendedLockableCurrency<Self::AccountId>107 type Currency: ExtendedLockableCurrency<Self::AccountId>108 + ReservableCurrency<Self::AccountId>;108 + ReservableCurrency<Self::AccountId>;274274275 if !block_pending.is_empty() {275 if !block_pending.is_empty() {276 block_pending.into_iter().for_each(|(staker, amount)| {276 block_pending.into_iter().for_each(|(staker, amount)| {277 <T::Currency as ReservableCurrency<T::AccountId>>::unreserve(&staker, amount);277 <<T as Config>::Currency as ReservableCurrency<T::AccountId>>::unreserve(278 &staker, amount,279 );278 });280 });279 }281 }280282281 T::WeightInfo::on_initialize(counter)283 <T as Config>::WeightInfo::on_initialize(counter)282 }284 }283 }285 }284286297 /// # Arguments299 /// # Arguments298 ///300 ///299 /// * `admin`: account of the new admin.301 /// * `admin`: account of the new admin.300 #[pallet::weight(T::WeightInfo::set_admin_address())]302 #[pallet::weight(<T as Config>::WeightInfo::set_admin_address())]301 pub fn set_admin_address(origin: OriginFor<T>, admin: T::CrossAccountId) -> DispatchResult {303 pub fn set_admin_address(origin: OriginFor<T>, admin: T::CrossAccountId) -> DispatchResult {302 ensure_root(origin)?;304 ensure_root(origin)?;303305315 /// # Arguments317 /// # Arguments316 ///318 ///317 /// * `amount`: in native tokens.319 /// * `amount`: in native tokens.318 #[pallet::weight(T::WeightInfo::stake())]320 #[pallet::weight(<T as Config>::WeightInfo::stake())]319 pub fn stake(staker: OriginFor<T>, amount: BalanceOf<T>) -> DispatchResult {321 pub fn stake(staker: OriginFor<T>, amount: BalanceOf<T>) -> DispatchResult {320 let staker_id = ensure_signed(staker)?;322 let staker_id = ensure_signed(staker)?;321323388 /// Moves the sum of all stakes to the `reserved` state.390 /// Moves the sum of all stakes to the `reserved` state.389 /// After the end of `PendingInterval` this sum becomes completely391 /// After the end of `PendingInterval` this sum becomes completely390 /// free for further use.392 /// free for further use.391 #[pallet::weight(T::WeightInfo::unstake())]393 #[pallet::weight(<T as Config>::WeightInfo::unstake())]392 pub fn unstake(staker: OriginFor<T>) -> DispatchResultWithPostInfo {394 pub fn unstake(staker: OriginFor<T>) -> DispatchResultWithPostInfo {393 let staker_id = ensure_signed(staker)?;395 let staker_id = ensure_signed(staker)?;394396421423422 Self::unlock_balance(&staker_id, total_staked)?;424 Self::unlock_balance(&staker_id, total_staked)?;423425424 <T::Currency as ReservableCurrency<T::AccountId>>::reserve(&staker_id, total_staked)?;426 <<T as Config>::Currency as ReservableCurrency<T::AccountId>>::reserve(427 &staker_id,428 total_staked,429 )?;445 /// # Arguments450 /// # Arguments446 ///451 ///447 /// * `collection_id`: ID of the collection that will be sponsored by `pallet_id`452 /// * `collection_id`: ID of the collection that will be sponsored by `pallet_id`448 #[pallet::weight(T::WeightInfo::sponsor_collection())]453 #[pallet::weight(<T as Config>::WeightInfo::sponsor_collection())]449 pub fn sponsor_collection(454 pub fn sponsor_collection(450 admin: OriginFor<T>,455 admin: OriginFor<T>,451 collection_id: CollectionId,456 collection_id: CollectionId,470 /// # Arguments475 /// # Arguments471 ///476 ///472 /// * `collection_id`: ID of the collection that is sponsored by `pallet_id`477 /// * `collection_id`: ID of the collection that is sponsored by `pallet_id`473 #[pallet::weight(T::WeightInfo::stop_sponsoring_collection())]478 #[pallet::weight(<T as Config>::WeightInfo::stop_sponsoring_collection())]474 pub fn stop_sponsoring_collection(479 pub fn stop_sponsoring_collection(475 admin: OriginFor<T>,480 admin: OriginFor<T>,476 collection_id: CollectionId,481 collection_id: CollectionId,499 /// # Arguments504 /// # Arguments500 ///505 ///501 /// * `contract_id`: the contract address that will be sponsored by `pallet_id`506 /// * `contract_id`: the contract address that will be sponsored by `pallet_id`502 #[pallet::weight(T::WeightInfo::sponsor_contract())]507 #[pallet::weight(<T as Config>::WeightInfo::sponsor_contract())]503 pub fn sponsor_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {508 pub fn sponsor_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {504 let admin_id = ensure_signed(admin)?;509 let admin_id = ensure_signed(admin)?;505510525 /// # Arguments530 /// # Arguments526 ///531 ///527 /// * `contract_id`: the contract address that is sponsored by `pallet_id`532 /// * `contract_id`: the contract address that is sponsored by `pallet_id`528 #[pallet::weight(T::WeightInfo::stop_sponsoring_contract())]533 #[pallet::weight(<T as Config>::WeightInfo::stop_sponsoring_contract())]529 pub fn stop_sponsoring_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {534 pub fn stop_sponsoring_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {530 let admin_id = ensure_signed(admin)?;535 let admin_id = ensure_signed(admin)?;531536555 /// # Arguments560 /// # Arguments556 ///561 ///557 /// * `stakers_number`: the number of stakers for which recalculation will be performed562 /// * `stakers_number`: the number of stakers for which recalculation will be performed558 #[pallet::weight(T::WeightInfo::payout_stakers(stakers_number.unwrap_or(20) as u32))]563 #[pallet::weight(<T as Config>::WeightInfo::payout_stakers(stakers_number.unwrap_or(20) as u32))]559 pub fn payout_stakers(admin: OriginFor<T>, stakers_number: Option<u8>) -> DispatchResult {564 pub fn payout_stakers(admin: OriginFor<T>, stakers_number: Option<u8>) -> DispatchResult {560 let admin_id = ensure_signed(admin)?;565 let admin_id = ensure_signed(admin)?;561566589 let flush_stake = || -> DispatchResult {594 let flush_stake = || -> DispatchResult {590 if let Some(last_id) = &*last_id.borrow() {595 if let Some(last_id) = &*last_id.borrow() {591 if !income_acc.borrow().is_zero() {596 if !income_acc.borrow().is_zero() {592 <T::Currency as Currency<T::AccountId>>::transfer(597 <<T as Config>::Currency as Currency<T::AccountId>>::transfer(593 &T::TreasuryAccountId::get(),598 &T::TreasuryAccountId::get(),594 last_id,599 last_id,595 *income_acc.borrow(),600 *income_acc.borrow(),700 /// - `amount`: amount of locked funds.705 /// - `amount`: amount of locked funds.701 fn set_lock_unchecked(staker: &T::AccountId, amount: BalanceOf<T>) {706 fn set_lock_unchecked(staker: &T::AccountId, amount: BalanceOf<T>) {702 if amount.is_zero() {707 if amount.is_zero() {703 <T::Currency as LockableCurrency<T::AccountId>>::remove_lock(LOCK_IDENTIFIER, &staker);708 <<T as Config>::Currency as LockableCurrency<T::AccountId>>::remove_lock(709 LOCK_IDENTIFIER,710 &staker,711 );704 } else {712 } else {705 <T::Currency as LockableCurrency<T::AccountId>>::set_lock(713 <<T as Config>::Currency as LockableCurrency<T::AccountId>>::set_lock(706 LOCK_IDENTIFIER,714 LOCK_IDENTIFIER,707 staker,715 staker,708 amount,716 amount,717 pub fn get_locked_balance(725 pub fn get_locked_balance(718 staker: impl EncodeLike<T::AccountId>,726 staker: impl EncodeLike<T::AccountId>,719 ) -> Option<BalanceLock<BalanceOf<T>>> {727 ) -> Option<BalanceLock<BalanceOf<T>>> {720 <T::Currency as ExtendedLockableCurrency<T::AccountId>>::locks(staker)728 <<T as Config>::Currency as ExtendedLockableCurrency<T::AccountId>>::locks(staker)721 .into_iter()729 .into_iter()722 .find(|l| l.id == LOCK_IDENTIFIER)730 .find(|l| l.id == LOCK_IDENTIFIER)723 }731 }pallets/common/CHANGELOG.mddiffbeforeafterboth445<!-- bureaucrate goes here -->5<!-- bureaucrate goes here -->667## [0.1.11] - 2022-11-167## [0.1.12] - 2022-11-16889### Changed9### Changed101011- Behavior of the `setCollectionLimit` method.11- Behavior of the `setCollectionLimit` method.12 Removed method overload: single signature `(string, uint256)`12 Removed method overload: single signature `(string, uint256)`13 is used for both cases.13 is used for both cases.141415## [0.1.11] - 2022-11-121617### Changed1819- In the `Collection` solidity interface,20 the `allowed` function has been renamed to `allow_listed_cross`.21 Also `EthCrossAccount` type is now used as `user` arg.2215## [0.1.10] - 2022-11-0223## [0.1.10] - 2022-11-02162417### Changed25### Changedpallets/common/Cargo.tomldiffbeforeafterboth1[package]1[package]2name = "pallet-common"2name = "pallet-common"3version = "0.1.11"3version = "0.1.12"4license = "GPLv3"4license = "GPLv3"5edition = "2021"5edition = "2021"6617sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }20fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }20fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }22pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }23evm-coder = { default-features = false, path = '../../crates/evm-coder' }23evm-coder = { default-features = false, path = '../../crates/evm-coder' }24ethereum = { version = "0.12.0", default-features = false }24ethereum = { version = "0.12.0", default-features = false }25pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }25pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }262627serde = { version = "1.0.130", default-features = false }27serde = { version = "1.0.130", default-features = false }28scale-info = { version = "2.0.1", default-features = false, features = [28scale-info = { version = "2.0.1", default-features = false, features = [pallets/common/src/erc.rsdiffbeforeafterboth161617//! This module contains the implementation of pallet methods for evm.17//! This module contains the implementation of pallet methods for evm.181819use evm_coder::{20 abi::AbiType,21 solidity_interface, solidity, ToLog,22 types::*,23 types::Property as PropertyStruct,24 execution::{Result, Error},25 weight,26};27pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId};19pub use pallet_evm::{PrecompileOutput, PrecompileResult, PrecompileHandle, account::CrossAccountId};20use evm_coder::{21 abi::AbiType,22 solidity_interface, solidity, ToLog,23 types::*,24 types::Property as PropertyStruct,25 execution::{Result, Error},26 weight,27};28use pallet_evm_coder_substrate::dispatch_to_evm;28use pallet_evm_coder_substrate::dispatch_to_evm;29use sp_std::vec::Vec;29use sp_std::vec::Vec;30use up_data_structs::{30use up_data_structs::{353536use crate::{36use crate::{37 Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf,37 Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf,38 eth::convert_cross_account_to_uint256, weights::WeightInfo,38 eth::{EthCrossAccount, convert_cross_account_to_uint256},39 weights::WeightInfo,39};40};4041529 /// Checks that user allowed to operate with collection.530 /// Checks that user allowed to operate with collection.530 ///531 ///531 /// @param user User address to check.532 /// @param user User address to check.532 fn allowed(&self, user: address) -> Result<bool> {533 fn allowlisted_cross(&self, user: EthCrossAccount) -> Result<bool> {534 let user = user.into_sub_cross_account::<T>()?;533 Ok(Pallet::<T>::allowed(535 Ok(Pallet::<T>::allowed(self.id, user))534 self.id,535 T::CrossAccountId::from_eth(user),536 ))537 }536 }538537pallets/common/src/eth.rsdiffbeforeafterboth161617//! The module contains a number of functions for converting and checking ethereum identifiers.17//! The module contains a number of functions for converting and checking ethereum identifiers.181819use evm_coder::types::{uint256, address};19use evm_coder::{20 AbiCoder,21 types::{uint256, address},22};20pub use pallet_evm::account::{Config, CrossAccountId};23pub use pallet_evm::{Config, account::CrossAccountId};21use sp_core::H160;24use sp_core::H160;22use up_data_structs::CollectionId;25use up_data_structs::CollectionId;2326110 }113 }111}114}115116/// Cross account struct117#[derive(Debug, Default, AbiCoder)]118pub struct EthCrossAccount {119 pub(crate) eth: address,120 pub(crate) sub: uint256,121}122123impl EthCrossAccount {124 pub fn from_sub_cross_account<T>(cross_account_id: &T::CrossAccountId) -> Self125 where126 T: pallet_evm::Config,127 T::AccountId: AsRef<[u8; 32]>,128 {129 if cross_account_id.is_canonical_substrate() {130 Self {131 eth: Default::default(),132 sub: convert_cross_account_to_uint256::<T>(cross_account_id),133 }134 } else {135 Self {136 eth: *cross_account_id.as_eth(),137 sub: Default::default(),138 }139 }140 }141142 pub fn into_sub_cross_account<T>(&self) -> evm_coder::execution::Result<T::CrossAccountId>143 where144 T: pallet_evm::Config,145 T::AccountId: From<[u8; 32]>,146 {147 if self.eth == Default::default() && self.sub == Default::default() {148 Err("All fields of cross account is zeroed".into())149 } else if self.eth == Default::default() {150 Ok(convert_uint256_to_cross_account::<T>(self.sub))151 } else if self.sub == Default::default() {152 Ok(T::CrossAccountId::from_eth(self.eth))153 } else {154 Err("All fields of cross account is non zeroed".into())155 }156 }157}112158pallets/common/src/lib.rsdiffbeforeafterboth342#[frame_support::pallet]342#[frame_support::pallet]343pub mod pallet {343pub mod pallet {344 use super::*;344 use super::*;345 use pallet_evm::account;346 use dispatch::CollectionDispatch;345 use dispatch::CollectionDispatch;347 use frame_support::{Blake2_128Concat, pallet_prelude::*, storage::Key, traits::StorageVersion};346 use frame_support::{Blake2_128Concat, pallet_prelude::*, storage::Key, traits::StorageVersion};348 use frame_system::pallet_prelude::*;347 use frame_system::pallet_prelude::*;357 + pallet_evm_coder_substrate::Config358 + pallet_evm::Config359 + TypeInfo360 + account::Config361 {356 {362 /// Weight information for functions of this pallet.357 /// Weight information for functions of this pallet.363 type WeightInfo: WeightInfo;358 type WeightInfo: WeightInfo;381 type TreasuryAccountId: Get<Self::AccountId>;376 type TreasuryAccountId: Get<Self::AccountId>;382377383 /// Address under which the CollectionHelper contract would be available.378 /// Address under which the CollectionHelper contract would be available.379 #[pallet::constant]384 type ContractAddress: Get<H160>;380 type ContractAddress: Get<H160>;385381386 /// Mapper for token addresses to Ethereum addresses.382 /// Mapper for token addresses to Ethereum addresses.pallets/configuration/Cargo.tomldiffbeforeafterboth16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }19fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }20smallvec = "1.6.1"20smallvec = "1.6.1"212122[features]22[features]pallets/evm-coder-substrate/Cargo.tomldiffbeforeafterboth12sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }12sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }13ethereum = { version = "0.12.0", default-features = false }13ethereum = { version = "0.12.0", default-features = false }14evm-coder = { default-features = false, path = "../../crates/evm-coder" }14evm-coder = { default-features = false, path = "../../crates/evm-coder" }15pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }15pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }16pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }16pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }17frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }pallets/evm-contract-helpers/Cargo.tomldiffbeforeafterboth19sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }202021# Unique21# Unique22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }23fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }23fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }24up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.30" }24up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.30" }252526# Locals26# Localspallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth414142 #[pallet::config]42 #[pallet::config]43 pub trait Config:43 pub trait Config:44 frame_system::Config + pallet_evm_coder_substrate::Config + pallet_evm::account::Config44 frame_system::Config + pallet_evm_coder_substrate::Config + pallet_evm::Config45 {45 {46 /// Overarching event type.46 /// Overarching event type.47 type RuntimeEvent: IsType<<Self as frame_system::Config>::RuntimeEvent> + From<Event<Self>>;47 type RuntimeEvent: IsType<<Self as frame_system::Config>::RuntimeEvent> + From<Event<Self>>;484849 /// Address, under which magic contract will be available49 /// Address, under which magic contract will be available50 #[pallet::constant]50 type ContractAddress: Get<H160>;51 type ContractAddress: Get<H160>;515252 /// In case of enabled sponsoring, but no sponsoring rate limit set,53 /// In case of enabled sponsoring, but no sponsoring rate limit set,pallets/evm-migration/Cargo.tomldiffbeforeafterboth16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }20fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }20fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }212122[dependencies.codec]22[dependencies.codec]23default-features = false23default-features = falsepallets/evm-transaction-payment/Cargo.tomldiffbeforeafterboth14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }15sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }15sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }18fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }18fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }19pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }19pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }20up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.30" }20up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.30" }21fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }21fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }222223[dependencies.codec]23[dependencies.codec]24default-features = false24default-features = falsepallets/evm-transaction-payment/src/lib.rsdiffbeforeafterboth44 }44 }454546 #[pallet::config]46 #[pallet::config]47 pub trait Config: frame_system::Config + pallet_evm::account::Config {47 pub trait Config: frame_system::Config + pallet_evm::Config {48 /// Loosly-coupled handlers for evm call sponsoring48 /// Loosly-coupled handlers for evm call sponsoring49 type EvmSponsorshipHandler: SponsorshipHandler<Self::CrossAccountId, CallContext>;49 type EvmSponsorshipHandler: SponsorshipHandler<Self::CrossAccountId, CallContext>;50 }50 }pallets/fungible/Cargo.tomldiffbeforeafterboth23pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }23pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }24ethereum = { version = "0.12.0", default-features = false }24ethereum = { version = "0.12.0", default-features = false }25frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }25frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }26pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }26pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }27scale-info = { version = "2.0.1", default-features = false, features = [27scale-info = { version = "2.0.1", default-features = false, features = [28 "derive",28 "derive",29] }29] }pallets/fungible/src/erc.rsdiffbeforeafterboth24 weight,24 weight,25};25};26use up_data_structs::CollectionMode;26use up_data_structs::CollectionMode;27use pallet_common::erc::{CommonEvmHandler, PrecompileResult};27use pallet_common::{28 CollectionHandle,29 erc::{CommonEvmHandler, PrecompileResult, CollectionCall},30 eth::EthCrossAccount,31};28use sp_std::vec::Vec;32use sp_std::vec::Vec;29use pallet_evm::{account::CrossAccountId, PrecompileHandle};33use pallet_evm::{account::CrossAccountId, PrecompileHandle};30use pallet_evm_coder_substrate::{call, dispatch_to_evm};34use pallet_evm_coder_substrate::{call, dispatch_to_evm};31use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};35use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};32use pallet_common::{CollectionHandle, erc::CollectionCall};36use sp_core::Get;333734use crate::{38use crate::{35 Allowance, Balance, Config, FungibleHandle, Pallet, SelfWeightOf, TotalSupply,39 Allowance, Balance, Config, FungibleHandle, Pallet, SelfWeightOf, TotalSupply,133 Ok(<Allowance<T>>::get((self.id, owner, spender)).into())137 Ok(<Allowance<T>>::get((self.id, owner, spender)).into())134 }138 }139140 /// @notice Returns collection helper contract address141 fn collection_helper_address(&self) -> Result<address> {142 Ok(T::ContractAddress::get())143 }135}144}136145137#[solidity_interface(name = ERC20Mintable)]146#[solidity_interface(name = ERC20Mintable)]pallets/fungible/src/lib.rsdiffbeforeafterboth106pub mod erc;106pub mod erc;107pub mod weights;107pub mod weights;108108109pub type CreateItemData<T> = (<T as pallet_evm::account::Config>::CrossAccountId, u128);109pub type CreateItemData<T> = (<T as pallet_evm::Config>::CrossAccountId, u128);110pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;110pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;111111112#[frame_support::pallet]112#[frame_support::pallet]379 let balance_from = <Balance<T>>::get((collection.id, from))379 let balance_from = <Balance<T>>::get((collection.id, from))380 .checked_sub(amount)380 .checked_sub(amount)381 .ok_or(<CommonError<T>>::TokenValueTooLow)?;381 .ok_or(<CommonError<T>>::TokenValueTooLow)?;382 let balance_to = if from != to {382 let balance_to = if from != to && amount != 0 {383 Some(383 Some(384 <Balance<T>>::get((collection.id, to))384 <Balance<T>>::get((collection.id, to))385 .checked_add(amount)385 .checked_add(amount)391391392 // =========392 // =========393394 if let Some(balance_to) = balance_to {395 // from != to && amount != 0393396394 <PalletStructure<T>>::nest_if_sent_to_token(397 <PalletStructure<T>>::nest_if_sent_to_token(395 from.clone(),398 from.clone(),399 nesting_budget,402 nesting_budget,400 )?;403 )?;401404402 if let Some(balance_to) = balance_to {403 // from != to404 if balance_from == 0 {405 if balance_from == 0 {405 <Balance<T>>::remove((collection.id, from));406 <Balance<T>>::remove((collection.id, from));406 <PalletStructure<T>>::unnest_if_nested(from, collection.id, TokenId::default());407 <PalletStructure<T>>::unnest_if_nested(from, collection.id, TokenId::default());407 } else {408 } else {408 <Balance<T>>::insert((collection.id, from), balance_from);409 <Balance<T>>::insert((collection.id, from), balance_from);409 }410 }410 <Balance<T>>::insert((collection.id, to), balance_to);411 <Balance<T>>::insert((collection.id, to), balance_to);411 }412 }412413413 <PalletEvm<T>>::deposit_log(414 <PalletEvm<T>>::deposit_log(414 ERC20Events::Transfer {415 ERC20Events::Transfer {pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth18}18}191920/// @title A contract that allows you to work with collections.20/// @title A contract that allows you to work with collections.21/// @dev the ERC-165 identifier for this interface is 0x8b91d19221/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca22contract Collection is Dummy, ERC165 {22contract Collection is Dummy, ERC165 {23 // /// Set collection property.23 // /// Set collection property.24 // ///24 // ///269 /// Checks that user allowed to operate with collection.269 /// Checks that user allowed to operate with collection.270 ///270 ///271 /// @param user User address to check.271 /// @param user User address to check.272 /// @dev EVM selector for this function is: 0xd63a8e11,272 /// @dev EVM selector for this function is: 0x91b6df49,273 /// or in textual repr: allowed(address)273 /// or in textual repr: allowlistedCross((address,uint256))274 function allowed(address user) public view returns (bool) {274 function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {275 require(false, stub_error);275 require(false, stub_error);276 user;276 user;277 dummy;277 dummy;547 event Approval(address indexed owner, address indexed spender, uint256 value);547 event Approval(address indexed owner, address indexed spender, uint256 value);548}548}549549550/// @dev the ERC-165 identifier for this interface is 0x942e8b22550/// @dev the ERC-165 identifier for this interface is 0x8cb847c4551contract ERC20 is Dummy, ERC165, ERC20Events {551contract ERC20 is Dummy, ERC165, ERC20Events {552 /// @dev EVM selector for this function is: 0x06fdde03,552 /// @dev EVM selector for this function is: 0x06fdde03,553 /// or in textual repr: name()553 /// or in textual repr: name()635 return 0;635 return 0;636 }636 }637638 /// @notice Returns collection helper contract address639 /// @dev EVM selector for this function is: 0x1896cce6,640 /// or in textual repr: collectionHelperAddress()641 function collectionHelperAddress() public view returns (address) {642 require(false, stub_error);643 dummy;644 return 0x0000000000000000000000000000000000000000;645 }637}646}638647639contract UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}648contract UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}pallets/nonfungible/Cargo.tomldiffbeforeafterboth16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }20pallet-common = { default-features = false, path = '../common' }20pallet-common = { default-features = false, path = '../common' }21pallet-structure = { default-features = false, path = '../structure' }21pallet-structure = { default-features = false, path = '../structure' }22up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22up-data-structs = { default-features = false, path = '../../primitives/data-structs' }pallets/nonfungible/src/common.rsdiffbeforeafterboth291 <CommonWeights<T>>::burn_item(),291 <CommonWeights<T>>::burn_item(),292 )292 )293 } else {293 } else {294 <Pallet<T>>::check_token_immediate_ownership(self, token, &sender)?;294 Ok(().into())295 Ok(().into())295 }296 }296 }297 }320 <CommonWeights<T>>::transfer(),321 <CommonWeights<T>>::transfer(),321 )322 )322 } else {323 } else {324 <Pallet<T>>::check_token_immediate_ownership(self, token, &from)?;323 Ok(().into())325 Ok(().into())324 }326 }325 }327 }360 <CommonWeights<T>>::transfer_from(),362 <CommonWeights<T>>::transfer_from(),361 )363 )362 } else {364 } else {365 <Pallet<T>>::check_allowed(self, &sender, &from, token, nesting_budget)?;366363 Ok(().into())367 Ok(().into())364 }368 }380 <CommonWeights<T>>::burn_from(),384 <CommonWeights<T>>::burn_from(),381 )385 )382 } else {386 } else {387 <Pallet<T>>::check_allowed(self, &sender, &from, token, nesting_budget)?;388383 Ok(().into())389 Ok(().into())384 }390 }pallets/nonfungible/src/erc.rsdiffbeforeafterboth36use pallet_evm_coder_substrate::dispatch_to_evm;36use pallet_evm_coder_substrate::dispatch_to_evm;37use sp_std::vec::Vec;37use sp_std::vec::Vec;38use pallet_common::{38use pallet_common::{39 CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations,39 erc::{CommonEvmHandler, PrecompileResult, CollectionCall, static_property::key},40 erc::{CommonEvmHandler, PrecompileResult, CollectionCall, static_property::key},40 CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations,41 eth::EthCrossAccount,41};42};42use pallet_evm::{account::CrossAccountId, PrecompileHandle};43use pallet_evm::{account::CrossAccountId, PrecompileHandle};43use pallet_evm_coder_substrate::call;44use pallet_evm_coder_substrate::call;44use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};45use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};46use sp_core::Get;454746use crate::{48use crate::{47 AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,49 AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,490 Err("not implemented".into())492 Err("not implemented".into())491 }493 }494495 /// @notice Returns collection helper contract address496 fn collection_helper_address(&self) -> Result<address> {497 Ok(T::ContractAddress::get())498 }492}499}493500494/// @title ERC721 Token that can be irreversibly burned (destroyed).501/// @title ERC721 Token that can be irreversibly burned (destroyed).721 /// @param tokenId Id for the token.728 /// @param tokenId Id for the token.722 /// @param keys Properties keys. Empty keys for all propertyes.729 /// @param keys Properties keys. Empty keys for all propertyes.723 /// @return Vector of properties key/value pairs.730 /// @return Vector of properties key/value pairs.724 fn token_properties(731 fn properties(&self, token_id: uint256, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {725 &self,726 token_id: uint256,727 keys: Vec<string>,pallets/nonfungible/src/lib.rsdiffbeforeafterboth127pub mod erc;127pub mod erc;128pub mod weights;128pub mod weights;129129130pub type CreateItemData<T> = CreateNftExData<<T as pallet_evm::account::Config>::CrossAccountId>;130pub type CreateItemData<T> = CreateNftExData<<T as pallet_evm::Config>::CrossAccountId>;131pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;131pub(crate) type SelfWeightOf<T> = <T as Config>::WeightInfo;132132133/// Token data, stored independently from other data used to describe it133/// Token data, stored independently from other data used to describe it814 <PalletCommon<T>>::set_property_permission(collection, sender, permission)814 <PalletCommon<T>>::set_property_permission(collection, sender, permission)815 }815 }816817 pub fn check_token_immediate_ownership(818 collection: &NonfungibleHandle<T>,819 token: TokenId,820 possible_owner: &T::CrossAccountId,821 ) -> DispatchResult {822 let token_data =823 <TokenData<T>>::get((collection.id, token)).ok_or(<CommonError<T>>::TokenNotFound)?;824 ensure!(825 &token_data.owner == possible_owner,826 <CommonError<T>>::NoPermission827 );828 Ok(())829 }816830817 /// Transfer NFT token from one account to another.831 /// Transfer NFT token from one account to another.818 ///832 ///pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth119}119}120120121/// @title A contract that allows you to work with collections.121/// @title A contract that allows you to work with collections.122/// @dev the ERC-165 identifier for this interface is 0x8b91d192122/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca123contract Collection is Dummy, ERC165 {123contract Collection is Dummy, ERC165 {124 // /// Set collection property.124 // /// Set collection property.125 // ///125 // ///370 /// Checks that user allowed to operate with collection.370 /// Checks that user allowed to operate with collection.371 ///371 ///372 /// @param user User address to check.372 /// @param user User address to check.373 /// @dev EVM selector for this function is: 0xd63a8e11,373 /// @dev EVM selector for this function is: 0x91b6df49,374 /// or in textual repr: allowed(address)374 /// or in textual repr: allowlistedCross((address,uint256))375 function allowed(address user) public view returns (bool) {375 function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {376 require(false, stub_error);376 require(false, stub_error);377 user;377 user;378 dummy;378 dummy;676}676}677677678/// @title Unique extensions for ERC721.678/// @title Unique extensions for ERC721.679/// @dev the ERC-165 identifier for this interface is 0xb8f094a0679/// @dev the ERC-165 identifier for this interface is 0xb74c26b7680contract ERC721UniqueExtensions is Dummy, ERC165 {680contract ERC721UniqueExtensions is Dummy, ERC165 {681 /// @notice A descriptive name for a collection of NFTs in this contract681 /// @notice A descriptive name for a collection of NFTs in this contract682 /// @dev EVM selector for this function is: 0x06fdde03,682 /// @dev EVM selector for this function is: 0x06fdde03,722 /// @param tokenId Id for the token.722 /// @param tokenId Id for the token.723 /// @param keys Properties keys. Empty keys for all propertyes.723 /// @param keys Properties keys. Empty keys for all propertyes.724 /// @return Vector of properties key/value pairs.724 /// @return Vector of properties key/value pairs.725 /// @dev EVM selector for this function is: 0xefc26c69,725 /// @dev EVM selector for this function is: 0xe07ede7e,726 /// or in textual repr: tokenProperties(uint256,string[])726 /// or in textual repr: properties(uint256,string[])727 function tokenProperties(uint256 tokenId, string[] memory keys) public view returns (Property[] memory) {727 function properties(uint256 tokenId, string[] memory keys) public view returns (Property[] memory) {728 require(false, stub_error);728 require(false, stub_error);729 tokenId;729 tokenId;730 keys;730 keys;920920921/// @title ERC-721 Non-Fungible Token Standard921/// @title ERC-721 Non-Fungible Token Standard922/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md922/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md923/// @dev the ERC-165 identifier for this interface is 0x80ac58cd923/// @dev the ERC-165 identifier for this interface is 0x983a942b924contract ERC721 is Dummy, ERC165, ERC721Events {924contract ERC721 is Dummy, ERC165, ERC721Events {925 /// @notice Count all NFTs assigned to an owner925 /// @notice Count all NFTs assigned to an owner926 /// @dev NFTs assigned to the zero address are considered invalid, and this926 /// @dev NFTs assigned to the zero address are considered invalid, and this1051 return 0x0000000000000000000000000000000000000000;1051 return 0x0000000000000000000000000000000000000000;1052 }1052 }10531054 /// @notice Returns collection helper contract address1055 /// @dev EVM selector for this function is: 0x1896cce6,1056 /// or in textual repr: collectionHelperAddress()1057 function collectionHelperAddress() public view returns (address) {1058 require(false, stub_error);1059 dummy;1060 return 0x0000000000000000000000000000000000000000;1061 }1053}1062}105410631055contract UniqueNFT is1064contract UniqueNFT ispallets/proxy-rmrk-core/Cargo.tomldiffbeforeafterboth20pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }20pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }21pallet-structure = { default-features = false, path = "../../pallets/structure" }21pallet-structure = { default-features = false, path = "../../pallets/structure" }22up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22up-data-structs = { default-features = false, path = '../../primitives/data-structs' }23pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }23pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }24frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }24frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }25rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }25rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }26scale-info = { version = "2.0.1", default-features = false, features = [26scale-info = { version = "2.0.1", default-features = false, features = [pallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterboth178178179use RmrkProperty::*;179use RmrkProperty::*;180180181/// Maximum number of levels of depth in the token nesting tree.181/// A maximum number of levels of depth in the token nesting tree.182pub const NESTING_BUDGET: u32 = 5;182pub const NESTING_BUDGET: u32 = 5;183183184type PendingTarget = (CollectionId, TokenId);184type PendingTarget = (CollectionId, TokenId);190#[frame_support::pallet]190#[frame_support::pallet]191pub mod pallet {191pub mod pallet {192 use super::*;192 use super::*;193 use pallet_evm::account;194193195 #[pallet::config]194 #[pallet::config]196 pub trait Config:195 pub trait Config:197 frame_system::Config + pallet_common::Config + pallet_nonfungible::Config + account::Config196 frame_system::Config197 + pallet_common::Config198 + pallet_nonfungible::Config199 + pallet_evm::Config198 {200 {199 /// Overarching event type.201 /// Overarching event type.200 type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;202 type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;pallets/proxy-rmrk-equip/Cargo.tomldiffbeforeafterboth19pallet-common = { default-features = false, path = '../common' }19pallet-common = { default-features = false, path = '../common' }20pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }20pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }23frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }23frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }24rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }24rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }25scale-info = { version = "2.0.1", default-features = false, features = [25scale-info = { version = "2.0.1", default-features = false, features = [pallets/refungible/Cargo.tomldiffbeforeafterboth16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }20evm-coder = { default-features = false, path = '../../crates/evm-coder' }20evm-coder = { default-features = false, path = '../../crates/evm-coder' }21pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }21pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }22pallet-common = { default-features = false, path = '../common' }22pallet-common = { default-features = false, path = '../common' }pallets/refungible/src/erc.rsdiffbeforeafterboth31};31};32use frame_support::{BoundedBTreeMap, BoundedVec};32use frame_support::{BoundedBTreeMap, BoundedVec};33use pallet_common::{33use pallet_common::{34 CollectionHandle, CollectionPropertyPermissions,34 CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations,35 erc::{CommonEvmHandler, CollectionCall, static_property::key},35 erc::{CommonEvmHandler, CollectionCall, static_property::key},36 CommonCollectionOperations,36 eth::EthCrossAccount,37 Error as CommonError,37};38};38use pallet_evm::{account::CrossAccountId, PrecompileHandle};39use pallet_evm::{account::CrossAccountId, PrecompileHandle};39use pallet_evm_coder_substrate::{call, dispatch_to_evm};40use pallet_evm_coder_substrate::{call, dispatch_to_evm};40use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};41use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};41use sp_core::H160;42use sp_core::{H160, Get};42use sp_std::{collections::btree_map::BTreeMap, vec::Vec, vec};43use sp_std::{collections::btree_map::BTreeMap, vec::Vec, vec};43use up_data_structs::{44use up_data_structs::{44 CollectionId, CollectionPropertiesVec, mapping::TokenAddressMapping, Property, PropertyKey,45 CollectionId, CollectionPropertiesVec, mapping::TokenAddressMapping, Property, PropertyKey,483 Err("not implemented".into())484 Err("not implemented".into())484 }485 }486487 /// @notice Returns collection helper contract address488 fn collection_helper_address(&self) -> Result<address> {489 Ok(T::ContractAddress::get())490 }485}491}486492487/// Returns amount of pieces of `token` that `owner` have493/// Returns amount of pieces of `token` that `owner` have504 collection.consume_store_reads(1)?;510 collection.consume_store_reads(1)?;505 let total_supply = <TotalSupply<T>>::get((collection.id, token));511 let total_supply = <TotalSupply<T>>::get((collection.id, token));512513 if owner_balance == 0 {514 return Err(dispatch_to_evm::<T>(515 <CommonError<T>>::MustBeTokenOwner.into(),516 ));517 }518506 if total_supply != owner_balance {519 if total_supply != owner_balance {507 return Err("token has multiple owners".into());520 return Err("token has multiple owners".into());749 /// @param tokenId Id for the token.762 /// @param tokenId Id for the token.750 /// @param keys Properties keys. Empty keys for all propertyes.763 /// @param keys Properties keys. Empty keys for all propertyes.751 /// @return Vector of properties key/value pairs.764 /// @return Vector of properties key/value pairs.752 fn token_properties(765 fn properties(&self, token_id: uint256, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {753 &self,754 token_id: uint256,755 keys: Vec<string>,pallets/refungible/src/lib.rsdiffbeforeafterboth452 token: TokenId,452 token: TokenId,453 amount: u128,453 amount: u128,454 ) -> DispatchResult {454 ) -> DispatchResult {455 if <Balance<T>>::get((collection.id, token, owner)) == 0 {456 return Err(<CommonError<T>>::TokenValueTooLow.into());457 }458455 let total_supply = <TotalSupply<T>>::get((collection.id, token))459 let total_supply = <TotalSupply<T>>::get((collection.id, token))456 .checked_sub(amount)460 .checked_sub(amount)740744741 let initial_balance_from = <Balance<T>>::get((collection.id, token, from));745 let initial_balance_from = <Balance<T>>::get((collection.id, token, from));746747 if initial_balance_from == 0 {748 return Err(<CommonError<T>>::TokenValueTooLow.into());749 }750742 let updated_balance_from = initial_balance_from751 let updated_balance_from = initial_balance_from743 .checked_sub(amount)752 .checked_sub(amount)744 .ok_or(<CommonError<T>>::TokenValueTooLow)?;753 .ok_or(<CommonError<T>>::TokenValueTooLow)?;745 let mut create_target = false;754 let mut create_target = false;746 let from_to_differ = from != to;755 let from_to_differ = from != to;747 let updated_balance_to = if from != to {756 let updated_balance_to = if from != to && amount != 0 {748 let old_balance = <Balance<T>>::get((collection.id, token, to));757 let old_balance = <Balance<T>>::get((collection.id, token, to));749 if old_balance == 0 {758 if old_balance == 0 {750 create_target = true;759 create_target = true;786795787 // =========796 // =========797798 if let Some(updated_balance_to) = updated_balance_to {799 // from != to && amount != 0788800789 <PalletStructure<T>>::nest_if_sent_to_token(801 <PalletStructure<T>>::nest_if_sent_to_token(790 from.clone(),802 from.clone(),794 nesting_budget,806 nesting_budget,795 )?;807 )?;796808797 if let Some(updated_balance_to) = updated_balance_to {798 // from != to799 if updated_balance_from == 0 {809 if updated_balance_from == 0 {800 <Balance<T>>::remove((collection.id, token, from));810 <Balance<T>>::remove((collection.id, token, from));801 <PalletStructure<T>>::unnest_if_nested(from, collection.id, token);811 <PalletStructure<T>>::unnest_if_nested(from, collection.id, token);811 <AccountBalance<T>>::insert((collection.id, to), account_balance_to);821 <AccountBalance<T>>::insert((collection.id, to), account_balance_to);812 <Owned<T>>::insert((collection.id, to, token), true);822 <Owned<T>>::insert((collection.id, to, token), true);813 }823 }814 }824 }815825816 <PalletEvm<T>>::deposit_log(826 <PalletEvm<T>>::deposit_log(817 ERC20Events::Transfer {827 ERC20Events::Transfer {pallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth119}119}120120121/// @title A contract that allows you to work with collections.121/// @title A contract that allows you to work with collections.122/// @dev the ERC-165 identifier for this interface is 0x8b91d192122/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca123contract Collection is Dummy, ERC165 {123contract Collection is Dummy, ERC165 {124 // /// Set collection property.124 // /// Set collection property.125 // ///125 // ///370 /// Checks that user allowed to operate with collection.370 /// Checks that user allowed to operate with collection.371 ///371 ///372 /// @param user User address to check.372 /// @param user User address to check.373 /// @dev EVM selector for this function is: 0xd63a8e11,373 /// @dev EVM selector for this function is: 0x91b6df49,374 /// or in textual repr: allowed(address)374 /// or in textual repr: allowlistedCross((address,uint256))375 function allowed(address user) public view returns (bool) {375 function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {376 require(false, stub_error);376 require(false, stub_error);377 user;377 user;378 dummy;378 dummy;674}674}675675676/// @title Unique extensions for ERC721.676/// @title Unique extensions for ERC721.677/// @dev the ERC-165 identifier for this interface is 0x1d4b64d6677/// @dev the ERC-165 identifier for this interface is 0x12f7d6c1678contract ERC721UniqueExtensions is Dummy, ERC165 {678contract ERC721UniqueExtensions is Dummy, ERC165 {679 /// @notice A descriptive name for a collection of NFTs in this contract679 /// @notice A descriptive name for a collection of NFTs in this contract680 /// @dev EVM selector for this function is: 0x06fdde03,680 /// @dev EVM selector for this function is: 0x06fdde03,720 /// @param tokenId Id for the token.720 /// @param tokenId Id for the token.721 /// @param keys Properties keys. Empty keys for all propertyes.721 /// @param keys Properties keys. Empty keys for all propertyes.722 /// @return Vector of properties key/value pairs.722 /// @return Vector of properties key/value pairs.723 /// @dev EVM selector for this function is: 0xefc26c69,723 /// @dev EVM selector for this function is: 0xe07ede7e,724 /// or in textual repr: tokenProperties(uint256,string[])724 /// or in textual repr: properties(uint256,string[])725 function tokenProperties(uint256 tokenId, string[] memory keys) public view returns (Property[] memory) {725 function properties(uint256 tokenId, string[] memory keys) public view returns (Property[] memory) {726 require(false, stub_error);726 require(false, stub_error);727 tokenId;727 tokenId;728 keys;728 keys;919919920/// @title ERC-721 Non-Fungible Token Standard920/// @title ERC-721 Non-Fungible Token Standard921/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md921/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md922/// @dev the ERC-165 identifier for this interface is 0x58800161922/// @dev the ERC-165 identifier for this interface is 0x4016cd87923contract ERC721 is Dummy, ERC165, ERC721Events {923contract ERC721 is Dummy, ERC165, ERC721Events {924 /// @notice Count all RFTs assigned to an owner924 /// @notice Count all RFTs assigned to an owner925 /// @dev RFTs assigned to the zero address are considered invalid, and this925 /// @dev RFTs assigned to the zero address are considered invalid, and this1048 return 0x0000000000000000000000000000000000000000;1048 return 0x0000000000000000000000000000000000000000;1049 }1049 }10501051 /// @notice Returns collection helper contract address1052 /// @dev EVM selector for this function is: 0x1896cce6,1053 /// or in textual repr: collectionHelperAddress()1054 function collectionHelperAddress() public view returns (address) {1055 require(false, stub_error);1056 dummy;1057 return 0x0000000000000000000000000000000000000000;1058 }1050}1059}105110601052contract UniqueRefungible is1061contract UniqueRefungible ispallets/structure/Cargo.tomldiffbeforeafterboth16 "derive",16 "derive",17] }17] }18up-data-structs = { path = "../../primitives/data-structs", default-features = false }18up-data-structs = { path = "../../primitives/data-structs", default-features = false }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }202021[features]21[features]22default = ["std"]22default = ["std"]pallets/unique/Cargo.tomldiffbeforeafterboth100scale-info = { version = "2.0.1", default-features = false, features = [100scale-info = { version = "2.0.1", default-features = false, features = [101 "derive",101 "derive",102] }102] }103pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }103pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }104pallet-common = { default-features = false, path = "../common" }104pallet-common = { default-features = false, path = "../common" }105evm-coder = { default-features = false, path = '../../crates/evm-coder' }105evm-coder = { default-features = false, path = '../../crates/evm-coder' }106pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }106pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }pallets/unique/src/eth/mod.rsdiffbeforeafterboth28 CollectionById,28 CollectionById,29 dispatch::CollectionDispatch,29 dispatch::CollectionDispatch,30 erc::{CollectionHelpersEvents, static_property::key},30 erc::{CollectionHelpersEvents, static_property::key},31 eth::{map_eth_to_id, collection_id_to_address},31 Pallet as PalletCommon,32 Pallet as PalletCommon,32};33};33use pallet_evm::{account::CrossAccountId, OnMethodCall, PrecompileHandle, PrecompileResult};34use pallet_evm::{account::CrossAccountId, OnMethodCall, PrecompileHandle, PrecompileResult};34use pallet_evm_coder_substrate::{dispatch_to_evm, SubstrateRecorder, WithRecorder};35use pallet_evm_coder_substrate::{dispatch_to_evm, SubstrateRecorder, WithRecorder};35use sp_std::vec;36use sp_std::vec;36use up_data_structs::{37use up_data_structs::{37 CollectionDescription, CollectionMode, CollectionName, CollectionTokenPrefix,38 CollectionDescription, CollectionMode, CollectionName, CollectionTokenPrefix,38 CreateCollectionData,39 CreateCollectionData, CollectionId,39};40};404141use crate::{weights::WeightInfo, Config, SelfWeightOf};42use crate::{weights::WeightInfo, Config, SelfWeightOf};362 Ok(price.into())363 Ok(price.into())363 }364 }365366 /// Returns address of a collection.367 /// @param collectionId - CollectionId of the collection368 /// @return eth mirror address of the collection369 fn collection_address(&self, collection_id: uint32) -> Result<address> {370 Ok(collection_id_to_address(collection_id.into()))371 }372373 /// Returns collectionId of a collection.374 /// @param collectionAddress - Eth address of the collection375 /// @return collectionId of the collection376 fn collection_id(&self, collection_address: address) -> Result<uint32> {377 map_eth_to_id(&collection_address)378 .map(|id| id.0)379 .ok_or(Error::Revert(format!(380 "failed to convert address {} into collectionId.",381 collection_address382 )))383 }364}384}365385366/// Implements [`OnMethodCall`], which delegates call to [`EvmCollectionHelpers`]386/// Implements [`OnMethodCall`], which delegates call to [`EvmCollectionHelpers`]pallets/unique/src/eth/stubs/CollectionHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/unique/src/eth/stubs/CollectionHelpers.soldiffbeforeafterboth24}24}252526/// @title Contract, which allows users to operate with collections26/// @title Contract, which allows users to operate with collections27/// @dev the ERC-165 identifier for this interface is 0x7dea03b127/// @dev the ERC-165 identifier for this interface is 0xe65011aa28contract CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {28contract CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {29 /// Create an NFT collection29 /// Create an NFT collection30 /// @param name Name of the collection30 /// @param name Name of the collection131 return 0;131 return 0;132 }132 }133134 /// Returns address of a collection.135 /// @param collectionId - CollectionId of the collection136 /// @return eth mirror address of the collection137 /// @dev EVM selector for this function is: 0x2e716683,138 /// or in textual repr: collectionAddress(uint32)139 function collectionAddress(uint32 collectionId) public view returns (address) {140 require(false, stub_error);141 collectionId;142 dummy;143 return 0x0000000000000000000000000000000000000000;144 }145146 /// Returns collectionId of a collection.147 /// @param collectionAddress - Eth address of the collection148 /// @return collectionId of the collection149 /// @dev EVM selector for this function is: 0xb5cb7498,150 /// or in textual repr: collectionId(address)151 function collectionId(address collectionAddress) public view returns (uint32) {152 require(false, stub_error);153 collectionAddress;154 dummy;155 return 0;156 }133}157}134158pallets/unique/src/lib.rsdiffbeforeafterboth86use sp_std::{vec, vec::Vec};86use sp_std::{vec, vec::Vec};87use up_data_structs::{87use up_data_structs::{88 MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,88 MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,89 MAX_PROPERTIES_PER_ITEM, MAX_PROPERTY_KEY_LENGTH, MAX_PROPERTY_VALUE_LENGTH,90 MAX_COLLECTION_PROPERTIES_SIZE, COLLECTION_ADMINS_LIMIT, MAX_TOKEN_PROPERTIES_SIZE,89 CreateItemData, CollectionLimits, CollectionPermissions, CollectionId, CollectionMode, TokenId,91 CreateItemData, CollectionLimits, CollectionPermissions, CollectionId, CollectionMode, TokenId,90 SponsorshipState, CreateCollectionData, CreateItemExData, budget, Property, PropertyKey,92 SponsorshipState, CreateCollectionData, CreateItemExData, budget, Property, PropertyKey,91 PropertyKeyPermission,93 PropertyKeyPermission,102pub mod weights;104pub mod weights;103use weights::WeightInfo;105use weights::WeightInfo;104106105/// Maximum number of levels of depth in the token nesting tree.107/// A maximum number of levels of depth in the token nesting tree.106pub const NESTING_BUDGET: u32 = 5;108pub const NESTING_BUDGET: u32 = 5;107109108decl_error! {110decl_error! {138 pub enum Event<T>140 pub enum Event<T>139 where141 where140 <T as frame_system::Config>::AccountId,142 <T as frame_system::Config>::AccountId,141 <T as pallet_evm::account::Config>::CrossAccountId,143 <T as pallet_evm::Config>::CrossAccountId,142 {144 {143 /// Collection sponsor was removed145 /// Collection sponsor was removed144 ///146 ///277 {279 {278 type Error = Error<T>;280 type Error = Error<T>;281282 #[doc = "A maximum number of levels of depth in the token nesting tree."]283 const NESTING_BUDGET: u32 = NESTING_BUDGET;284285 #[doc = "Maximal length of a collection name."]286 const MAX_COLLECTION_NAME_LENGTH: u32 = MAX_COLLECTION_NAME_LENGTH;287288 #[doc = "Maximal length of a collection description."]289 const MAX_COLLECTION_DESCRIPTION_LENGTH: u32 = MAX_COLLECTION_DESCRIPTION_LENGTH;290291 #[doc = "Maximal length of a token prefix."]292 const MAX_TOKEN_PREFIX_LENGTH: u32 = MAX_TOKEN_PREFIX_LENGTH;293294 #[doc = "Maximum admins per collection."]295 const COLLECTION_ADMINS_LIMIT: u32 = COLLECTION_ADMINS_LIMIT;296297 #[doc = "Maximal length of a property key."]298 const MAX_PROPERTY_KEY_LENGTH: u32 = MAX_PROPERTY_KEY_LENGTH;299300 #[doc = "Maximal length of a property value."]301 const MAX_PROPERTY_VALUE_LENGTH: u32 = MAX_PROPERTY_VALUE_LENGTH;302303 #[doc = "A maximum number of token properties."]304 const MAX_PROPERTIES_PER_ITEM: u32 = MAX_PROPERTIES_PER_ITEM;305306 #[doc = "Maximum size for all collection properties."]307 const MAX_COLLECTION_PROPERTIES_SIZE: u32 = MAX_COLLECTION_PROPERTIES_SIZE;308309 #[doc = "Maximum size of all token properties."]310 const MAX_TOKEN_PROPERTIES_SIZE: u32 = MAX_TOKEN_PROPERTIES_SIZE;311312 #[doc = "Default NFT collection limit."]313 const NFT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::NFT);314315 #[doc = "Default RFT collection limit."]316 const RFT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::ReFungible);317318 #[doc = "Default FT collection limit."]319 const FT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::Fungible(0));320279321280 pub fn deposit_event() = default;322 pub fn deposit_event() = default;primitives/app_promotion_rpc/Cargo.tomldiffbeforeafterboth14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }15sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }15sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }181819[features]19[features]20default = ["std"]20default = ["std"]primitives/common/Cargo.tomldiffbeforeafterboth48[dependencies.fp-rpc]48[dependencies.fp-rpc]49default-features = false49default-features = false50git = "https://github.com/uniquenetwork/frontier"50git = "https://github.com/uniquenetwork/frontier"51branch = "unique-polkadot-v0.9.30"51branch = "unique-polkadot-v0.9.30-2"525253[dependencies.pallet-evm]53[dependencies.pallet-evm]54default-features = false54default-features = false55git = "https://github.com/uniquenetwork/frontier"55git = "https://github.com/uniquenetwork/frontier"56branch = "unique-polkadot-v0.9.30"56branch = "unique-polkadot-v0.9.30-2"5757primitives/data-structs/CHANGELOG.mddiffbeforeafterboth3All notable changes to this project will be documented in this file.3All notable changes to this project will be documented in this file.445<!-- bureaucrate goes here -->5<!-- bureaucrate goes here -->66## [v0.2.2] 2022-08-167## [v0.2.2] 2022-08-16788### Other changes9### Other changes28multiple users into `RefungibleMultipleItems` call.29multiple users into `RefungibleMultipleItems` call.293030## [v0.2.0] - 2022-08-0131## [v0.2.0] - 2022-08-013231### Deprecated33### Deprecated3432- `CreateReFungibleData::const_data`35- `CreateReFungibleData::const_data`333634## [v0.1.2] - 2022-07-2537## [v0.1.2] - 2022-07-253835### Added39### Added4036- Type aliases `CollectionName`, `CollectionDescription`, `CollectionTokenPrefix`41- Type aliases `CollectionName`, `CollectionDescription`, `CollectionTokenPrefix`4237## [v0.1.1] - 2022-07-2243## [v0.1.1] - 2022-07-224438### Added45### Added4639- Аields with properties to `CreateReFungibleData` and `CreateRefungibleExData`.47- Fields with properties to `CreateReFungibleData` and `CreateRefungibleExData`.48primitives/data-structs/Cargo.tomldiffbeforeafterboth25sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }25sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }26derivative = { version = "2.2.0", features = ["use_core"] }26derivative = { version = "2.2.0", features = ["use_core"] }27struct-versioning = { path = "../../crates/struct-versioning" }27struct-versioning = { path = "../../crates/struct-versioning" }28pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }28pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }29rmrk-traits = { default-features = false, path = "../rmrk-traits" }29rmrk-traits = { default-features = false, path = "../rmrk-traits" }30bondrewd = { version = "0.1.14", features = ["derive"], default-features = false }30bondrewd = { version = "0.1.14", features = [31 "derive",primitives/data-structs/src/lib.rsdiffbeforeafterboth120// TODO: not used. Delete?120// TODO: not used. Delete?121pub const COLLECTION_FIELD_LIMIT: u32 = CONST_ON_CHAIN_SCHEMA_LIMIT;121pub const COLLECTION_FIELD_LIMIT: u32 = CONST_ON_CHAIN_SCHEMA_LIMIT;122122123/// Maximum length for collection name.123/// Maximal length of a collection name.124pub const MAX_COLLECTION_NAME_LENGTH: u32 = 64;124pub const MAX_COLLECTION_NAME_LENGTH: u32 = 64;125125126/// Maximum length for collection description.126/// Maximal length of a collection description.127pub const MAX_COLLECTION_DESCRIPTION_LENGTH: u32 = 256;127pub const MAX_COLLECTION_DESCRIPTION_LENGTH: u32 = 256;128128129/// Maximal token prefix length.129/// Maximal length of a token prefix.130pub const MAX_TOKEN_PREFIX_LENGTH: u32 = 16;130pub const MAX_TOKEN_PREFIX_LENGTH: u32 = 16;131131132/// Maximal lenght of property key.132/// Maximal length of a property key.133pub const MAX_PROPERTY_KEY_LENGTH: u32 = 256;133pub const MAX_PROPERTY_KEY_LENGTH: u32 = 256;134134135/// Maximal lenght of property value.135/// Maximal length of a property value.136pub const MAX_PROPERTY_VALUE_LENGTH: u32 = 32768;136pub const MAX_PROPERTY_VALUE_LENGTH: u32 = 32768;137137138/// Maximum properties that can be assigned to token.138/// A maximum number of token properties.139pub const MAX_PROPERTIES_PER_ITEM: u32 = 64;139pub const MAX_PROPERTIES_PER_ITEM: u32 = 64;140140141/// Maximal lenght of extended property value.141/// Maximal lenght of extended property value.144/// Maximum size for all collection properties.144/// Maximum size for all collection properties.145pub const MAX_COLLECTION_PROPERTIES_SIZE: u32 = 40960;145pub const MAX_COLLECTION_PROPERTIES_SIZE: u32 = 40960;146146147/// Maximum size for all token properties.147/// Maximum size of all token properties.148pub const MAX_TOKEN_PROPERTIES_SIZE: u32 = 32768;148pub const MAX_TOKEN_PROPERTIES_SIZE: u32 = 32768;149149150/// How much items can be created per single150/// How much items can be created per single609}609}610610611impl CollectionLimits {611impl CollectionLimits {612 pub fn with_default_limits(collection_type: CollectionMode) -> Self {613 CollectionLimits {614 account_token_ownership_limit: Some(ACCOUNT_TOKEN_OWNERSHIP_LIMIT),615 sponsored_data_size: Some(CUSTOM_DATA_LIMIT),616 sponsored_data_rate_limit: Some(SponsoringRateLimit::SponsoringDisabled),617 token_limit: Some(COLLECTION_TOKEN_LIMIT),618 sponsor_transfer_timeout: match collection_type {619 CollectionMode::NFT => Some(NFT_SPONSOR_TRANSFER_TIMEOUT),620 CollectionMode::ReFungible => Some(REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT),621 CollectionMode::Fungible(_) => Some(FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT),622 },623 sponsor_approve_timeout: Some(SPONSOR_APPROVE_TIMEOUT),624 owner_can_transfer: Some(false),625 owner_can_destroy: Some(true),626 transfers_enabled: Some(true),627 }628 }629612 /// Get effective value for [`account_token_ownership_limit`](self.account_token_ownership_limit).630 /// Get effective value for [`account_token_ownership_limit`](self.account_token_ownership_limit).613 pub fn account_token_ownership_limit(&self) -> u32 {631 pub fn account_token_ownership_limit(&self) -> u32 {962 use scale_info::{980 use scale_info::{963 Type, Path,981 Type, Path,964 build::{FieldsBuilder, UnnamedFields},982 build::{FieldsBuilder, UnnamedFields},983 form::MetaForm,965 type_params,984 type_params,966 };985 };967 Type::builder()986 Type::builder()968 .path(Path::new("up_data_structs", "PhantomType"))987 .path(Path::new("up_data_structs", "PhantomType"))969 .type_params(type_params!(T))988 .type_params(type_params!(T))970 .composite(<FieldsBuilder<UnnamedFields>>::default().field(|b| b.ty::<[T; 0]>()))989 .composite(990 <FieldsBuilder<MetaForm, UnnamedFields>>::default().field(|b| b.ty::<[T; 0]>()),991 )971 }992 }972}993}primitives/rpc/Cargo.tomldiffbeforeafterboth14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }15sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }15sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }181819[features]19[features]20default = ["std"]20default = ["std"]runtime/common/config/ethereum.rsdiffbeforeafterboth171718pub type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;18pub type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;1920impl pallet_evm::account::Config for Runtime {21 type CrossAccountId = CrossAccountId;22 type EvmAddressMapping = pallet_evm::HashedAddressMapping<Self::Hashing>;23 type EvmBackwardsAddressMapping = fp_evm_mapping::MapBackwardsAddressTruncated;24}251926// Assuming slowest ethereum opcode is SSTORE, with gas price of 20000 as our worst case20// Assuming slowest ethereum opcode is SSTORE, with gas price of 20000 as our worst case27// (contract, which only writes a lot of data),21// (contract, which only writes a lot of data),28// approximating on top of our real store write weight22// approximating on top of our real store write weight29parameter_types! {23parameter_types! {30 pub const WritesPerSecond: u64 = WEIGHT_PER_SECOND.ref_time() / <Runtime as frame_system::Config>::DbWeight::get().write;24 pub const WritesPerSecond: u64 = WEIGHT_PER_SECOND.ref_time() / <Runtime as frame_system::Config>::DbWeight::get().write;31 pub const GasPerSecond: u64 = WritesPerSecond::get() * 20000;25 pub const GasPerSecond: u64 = WritesPerSecond::get() * 20000;32 pub const WeightPerGas: u64 = WEIGHT_PER_SECOND.ref_time() / GasPerSecond::get();26 pub const WeightTimePerGas: u64 = WEIGHT_PER_SECOND.ref_time() / GasPerSecond::get();2728 pub const WeightPerGas: Weight = Weight::from_ref_time(WeightTimePerGas::get());33}29}343035/// Limiting EVM execution to 50% of block for substrate users and management tasks31/// Limiting EVM execution to 50% of block for substrate users and management tasks36/// EVM transaction consumes more weight than substrate's, so we can't rely on them being32/// EVM transaction consumes more weight than substrate's, so we can't rely on them being37/// scheduled fairly33/// scheduled fairly38const EVM_DISPATCH_RATIO: Perbill = Perbill::from_percent(50);34const EVM_DISPATCH_RATIO: Perbill = Perbill::from_percent(50);39parameter_types! {35parameter_types! {40 pub BlockGasLimit: U256 = U256::from((NORMAL_DISPATCH_RATIO * EVM_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT / WeightPerGas::get()).ref_time());36 pub BlockGasLimit: U256 = U256::from((NORMAL_DISPATCH_RATIO * EVM_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT / WeightTimePerGas::get()).ref_time());41}37}4243pub enum FixedGasWeightMapping {}44impl pallet_evm::GasWeightMapping for FixedGasWeightMapping {45 fn gas_to_weight(gas: u64) -> Weight {46 Weight::from_ref_time(gas).saturating_mul(WeightPerGas::get())47 }48 fn weight_to_gas(weight: Weight) -> u64 {49 (weight / WeightPerGas::get()).ref_time()50 }51}523853pub struct EthereumFindAuthor<F>(core::marker::PhantomData<F>);39pub struct EthereumFindAuthor<F>(core::marker::PhantomData<F>);54impl<F: FindAuthor<u32>> FindAuthor<H160> for EthereumFindAuthor<F> {40impl<F: FindAuthor<u32>> FindAuthor<H160> for EthereumFindAuthor<F> {65}51}665267impl pallet_evm::Config for Runtime {53impl pallet_evm::Config for Runtime {54 type CrossAccountId = CrossAccountId;55 type EvmAddressMapping = pallet_evm::HashedAddressMapping<Self::Hashing>;56 type EvmBackwardsAddressMapping = fp_evm_mapping::MapBackwardsAddressTruncated;68 type BlockGasLimit = BlockGasLimit;57 type BlockGasLimit = BlockGasLimit;69 type FeeCalculator = pallet_configuration::FeeCalculator<Self>;58 type FeeCalculator = pallet_configuration::FeeCalculator<Self>;70 type GasWeightMapping = FixedGasWeightMapping;59 type GasWeightMapping = pallet_evm::FixedGasWeightMapping<Self>;60 type WeightPerGas = WeightPerGas;71 type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping<Self>;61 type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping<Self>;72 type CallOrigin = EnsureAddressTruncated<Self>;62 type CallOrigin = EnsureAddressTruncated<Self>;73 type WithdrawOrigin = EnsureAddressTruncated<Self>;63 type WithdrawOrigin = EnsureAddressTruncated<Self>;runtime/common/config/pallets/app_promotion.rsdiffbeforeafterboth22use frame_support::{parameter_types, PalletId};22use frame_support::{parameter_types, PalletId};23use sp_arithmetic::Perbill;23use sp_arithmetic::Perbill;24use up_common::{24use up_common::{25 constants::{UNIQUE, RELAY_DAYS},25 constants::{UNIQUE, RELAY_DAYS, DAYS},26 types::Balance,26 types::Balance,27};27};282832 pub const RecalculationInterval: BlockNumber = 8;32 pub const RecalculationInterval: BlockNumber = 8;33 pub const PendingInterval: BlockNumber = 4;33 pub const PendingInterval: BlockNumber = 4;34 pub const Nominal: Balance = UNIQUE;34 pub const Nominal: Balance = UNIQUE;35 // pub const Day: BlockNumber = DAYS;36 pub IntervalIncome: Perbill = Perbill::from_rational(RecalculationInterval::get(), RELAY_DAYS) * Perbill::from_rational(5u32, 10_000);35 pub IntervalIncome: Perbill = Perbill::from_rational(RecalculationInterval::get(), RELAY_DAYS) * Perbill::from_rational(5u32, 10_000);37}36}383739#[cfg(any(feature = "unique-runtime", feature = "quartz-runtime"))]38#[cfg(any(feature = "unique-runtime", feature = "quartz-runtime"))]40parameter_types! {39parameter_types! {41 pub const AppPromotionId: PalletId = PalletId(*b"appstake");40 pub const AppPromotionId: PalletId = PalletId(*b"appstake");42 pub const RecalculationInterval: BlockNumber = RELAY_DAYS;41 pub const RecalculationInterval: BlockNumber = RELAY_DAYS;43 pub const PendingInterval: BlockNumber = 7 * RELAY_DAYS;42 pub const PendingInterval: BlockNumber = 7 * DAYS;44 pub const Nominal: Balance = UNIQUE;43 pub const Nominal: Balance = UNIQUE;45 // pub const Day: BlockNumber = RELAY_DAYS;46 pub IntervalIncome: Perbill = Perbill::from_rational(5u32, 10_000);44 pub IntervalIncome: Perbill = Perbill::from_rational(5u32, 10_000);47}45}484656 type RelayBlockNumberProvider = RelayChainBlockNumberProvider<Runtime>;54 type RelayBlockNumberProvider = RelayChainBlockNumberProvider<Runtime>;57 type RecalculationInterval = RecalculationInterval;55 type RecalculationInterval = RecalculationInterval;58 type PendingInterval = PendingInterval;56 type PendingInterval = PendingInterval;59 // type Day = Day;60 type Nominal = Nominal;57 type Nominal = Nominal;61 type IntervalIncome = IntervalIncome;58 type IntervalIncome = IntervalIncome;62 type RuntimeEvent = RuntimeEvent;59 type RuntimeEvent = RuntimeEvent;runtime/common/ethereum/self_contained_call.rsdiffbeforeafterboth69 fn pre_dispatch_self_contained(69 fn pre_dispatch_self_contained(70 &self,70 &self,71 info: &Self::SignedInfo,71 info: &Self::SignedInfo,72 dispatch_info: &DispatchInfoOf<RuntimeCall>,73 len: usize,72 ) -> Option<Result<(), TransactionValidityError>> {74 ) -> Option<Result<(), TransactionValidityError>> {73 match self {75 match self {74 RuntimeCall::Ethereum(call) => call.pre_dispatch_self_contained(info),76 RuntimeCall::Ethereum(call) => {77 call.pre_dispatch_self_contained(info, dispatch_info, len)78 }75 _ => None,79 _ => None,76 }80 }77 }81 }runtime/common/runtime_apis.rsdiffbeforeafterboth482 };482 };483483484 let is_transactional = false;484 let is_transactional = false;485 let validate = false;485 <Runtime as pallet_evm::Config>::Runner::call(486 <Runtime as pallet_evm::Config>::Runner::call(486 CrossAccountId::from_eth(from),487 CrossAccountId::from_eth(from),487 to,488 to,493 nonce,494 nonce,494 access_list.unwrap_or_default(),495 access_list.unwrap_or_default(),495 is_transactional,496 is_transactional,497 validate,496 config.as_ref().unwrap_or_else(|| <Runtime as pallet_evm::Config>::config()),498 config.as_ref().unwrap_or_else(|| <Runtime as pallet_evm::Config>::config()),497 ).map_err(|err| err.error.into())499 ).map_err(|err| err.error.into())498 }500 }518 };520 };519521520 let is_transactional = false;522 let is_transactional = false;523 let validate = false;521 <Runtime as pallet_evm::Config>::Runner::create(524 <Runtime as pallet_evm::Config>::Runner::create(522 CrossAccountId::from_eth(from),525 CrossAccountId::from_eth(from),523 data,526 data,528 nonce,531 nonce,529 access_list.unwrap_or_default(),532 access_list.unwrap_or_default(),530 is_transactional,533 is_transactional,534 validate,531 config.as_ref().unwrap_or_else(|| <Runtime as pallet_evm::Config>::config()),535 config.as_ref().unwrap_or_else(|| <Runtime as pallet_evm::Config>::config()),532 ).map_err(|err| err.error.into())536 ).map_err(|err| err.error.into())533 }537 }runtime/opal/Cargo.tomldiffbeforeafterboth82 'pallet-proxy-rmrk-equip/try-runtime',82 'pallet-proxy-rmrk-equip/try-runtime',83 'pallet-app-promotion/try-runtime',83 'pallet-app-promotion/try-runtime',84 'pallet-foreign-assets/try-runtime',84 'pallet-foreign-assets/try-runtime',85 'pallet-evm/try-runtime',86 'pallet-ethereum/try-runtime',85 'pallet-ethereum/try-runtime',87 'pallet-evm-coder-substrate/try-runtime',86 'pallet-evm-coder-substrate/try-runtime',88 'pallet-evm-contract-helpers/try-runtime',87 'pallet-evm-contract-helpers/try-runtime',181 'foreign-assets',182 'pallet-test-utils',183]184become-sapphire = []178185179refungible = []186refungible = []180scheduler = []187scheduler = []461up-rpc = { path = "../../primitives/rpc", default-features = false }468up-rpc = { path = "../../primitives/rpc", default-features = false }462app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }469app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }463rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }470rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }464fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }471fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }465pallet-inflation = { path = '../../pallets/inflation', default-features = false }472pallet-inflation = { path = '../../pallets/inflation', default-features = false }466pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }473pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }467up-data-structs = { path = '../../primitives/data-structs', default-features = false }474up-data-structs = { path = '../../primitives/data-structs', default-features = false }479pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }486pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }480pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }487pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }481pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }488pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }482pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }489pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }483pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }490pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }484pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }491pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }485fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }492fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }486fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }493fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }487evm-coder = { default-features = false, path = '../../crates/evm-coder' }494evm-coder = { default-features = false, path = '../../crates/evm-coder' }488up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }495up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }489pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }496pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }runtime/opal/src/lib.rsdiffbeforeafterboth424243pub use runtime_common::*;43pub use runtime_common::*;444445#[cfg(feature = "become-sapphire")]46pub const RUNTIME_NAME: &str = "sapphire";47#[cfg(feature = "become-sapphire")]48pub const TOKEN_SYMBOL: &str = "QTZ";4950#[cfg(not(feature = "become-sapphire"))]45pub const RUNTIME_NAME: &str = "opal";51pub const RUNTIME_NAME: &str = "opal";52#[cfg(not(feature = "become-sapphire"))]46pub const TOKEN_SYMBOL: &str = "OPL";53pub const TOKEN_SYMBOL: &str = "OPL";475448/// This runtime version.55/// This runtime version.57 state_version: 0,64 state_version: 0,58};65};596660parameter_types! {67parameter_types! {61 pub const Version: RuntimeVersion = VERSION;68 pub const Version: RuntimeVersion = VERSION;69}70#[cfg(feature = "become-sapphire")]71parameter_types! {62 pub const SS58Prefix: u8 = 42;72 pub const SS58Prefix: u16 = 8883;73 pub const ChainId: u64 = 8883;74}7576#[cfg(not(feature = "become-sapphire"))]77parameter_types! {78 pub const SS58Prefix: u16 = 42;63 pub const ChainId: u64 = 8882;79 pub const ChainId: u64 = 8882;64}80}658166construct_runtime!(opal);82construct_runtime!(opal);6783runtime/quartz/Cargo.tomldiffbeforeafterboth80 'pallet-proxy-rmrk-equip/try-runtime',80 'pallet-proxy-rmrk-equip/try-runtime',81 'pallet-app-promotion/try-runtime',81 'pallet-app-promotion/try-runtime',82 'pallet-foreign-assets/try-runtime',82 'pallet-foreign-assets/try-runtime',83 'pallet-evm/try-runtime',84 'pallet-ethereum/try-runtime',83 'pallet-ethereum/try-runtime',85 'pallet-evm-coder-substrate/try-runtime',84 'pallet-evm-coder-substrate/try-runtime',86 'pallet-evm-contract-helpers/try-runtime',85 'pallet-evm-contract-helpers/try-runtime',460pallet-unique = { path = '../../pallets/unique', default-features = false }459pallet-unique = { path = '../../pallets/unique', default-features = false }461up-rpc = { path = "../../primitives/rpc", default-features = false }460up-rpc = { path = "../../primitives/rpc", default-features = false }462app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }461app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }463fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }462fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }464pallet-inflation = { path = '../../pallets/inflation', default-features = false }463pallet-inflation = { path = '../../pallets/inflation', default-features = false }465pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }464pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }466up-data-structs = { path = '../../primitives/data-structs', default-features = false }465up-data-structs = { path = '../../primitives/data-structs', default-features = false }478pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }477pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }479pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }478pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }480pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }479pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }481pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }480pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }482pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }481pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }483pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }482pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }484fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }483fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }485fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }484fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }486evm-coder = { default-features = false, path = '../../crates/evm-coder' }485evm-coder = { default-features = false, path = '../../crates/evm-coder' }487up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }486up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }488pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }487pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }runtime/tests/Cargo.tomldiffbeforeafterboth16sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }16sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }17sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }181819fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }19fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }202021frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }21frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }22frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }22frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }25pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }25pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }26pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }26pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }272728pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }28pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }29pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }29pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }303031pallet-common = { path = '../../pallets/common' }31pallet-common = { path = '../../pallets/common' }32pallet-structure = { path = '../../pallets/structure' }32pallet-structure = { path = '../../pallets/structure' }runtime/tests/src/lib.rsdiffbeforeafterboth21 parameter_types,21 parameter_types,22 traits::{Everything, ConstU32, ConstU64},22 traits::{Everything, ConstU32, ConstU64},23 weights::IdentityFee,23 weights::IdentityFee,24 pallet_prelude::Weight,24};25};25use sp_runtime::{26use sp_runtime::{26 traits::{BlakeTwo256, IdentityLookup},27 traits::{BlakeTwo256, IdentityLookup},202203203parameter_types! {204parameter_types! {204 pub BlockGasLimit: U256 = 0u32.into();205 pub BlockGasLimit: U256 = 0u32.into();206 pub WeightPerGas: Weight = Weight::from_ref_time(20);205}207}206208207impl pallet_ethereum::Config for Test {209impl pallet_ethereum::Config for Test {210}212}211213212impl pallet_evm::Config for Test {214impl pallet_evm::Config for Test {215 type CrossAccountId = TestCrossAccountId;216 type EvmAddressMapping = TestEvmAddressMapping;217 type EvmBackwardsAddressMapping = TestEvmBackwardsAddressMapping;213 type RuntimeEvent = RuntimeEvent;218 type RuntimeEvent = RuntimeEvent;214 type FeeCalculator = ();219 type FeeCalculator = ();215 type GasWeightMapping = ();220 type GasWeightMapping = pallet_evm::FixedGasWeightMapping<Self>;221 type WeightPerGas = WeightPerGas;216 type CallOrigin = EnsureAddressNever<Self::CrossAccountId>;222 type CallOrigin = EnsureAddressNever<Self>;217 type WithdrawOrigin = EnsureAddressNever<Self::CrossAccountId>;223 type WithdrawOrigin = EnsureAddressNever<Self>;218 type AddressMapping = TestEvmAddressMapping;224 type AddressMapping = TestEvmAddressMapping;219 type Currency = Balances;225 type Currency = Balances;220 type PrecompilesType = ();226 type PrecompilesType = ();244 type ContractAddress = EvmCollectionHelpersAddress;250 type ContractAddress = EvmCollectionHelpersAddress;245}251}246247impl pallet_evm::account::Config for Test {248 type CrossAccountId = TestCrossAccountId;249 type EvmAddressMapping = TestEvmAddressMapping;250 type EvmBackwardsAddressMapping = TestEvmBackwardsAddressMapping;251}252252253impl pallet_structure::Config for Test {253impl pallet_structure::Config for Test {254 type WeightInfo = ();254 type WeightInfo = ();runtime/unique/Cargo.tomldiffbeforeafterboth81 'pallet-proxy-rmrk-equip/try-runtime',81 'pallet-proxy-rmrk-equip/try-runtime',82 'pallet-app-promotion/try-runtime',82 'pallet-app-promotion/try-runtime',83 'pallet-foreign-assets/try-runtime',83 'pallet-foreign-assets/try-runtime',84 'pallet-evm/try-runtime',85 'pallet-ethereum/try-runtime',84 'pallet-ethereum/try-runtime',86 'pallet-evm-coder-substrate/try-runtime',85 'pallet-evm-coder-substrate/try-runtime',87 'pallet-evm-contract-helpers/try-runtime',86 'pallet-evm-contract-helpers/try-runtime',472pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }471pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }473pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }472pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }474pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }473pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }475pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }474pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }476pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }475pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }477pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }476pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }478fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }477fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }479fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }478fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }480fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30" }479fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.30-2" }481evm-coder = { default-features = false, path = '../../crates/evm-coder' }480evm-coder = { default-features = false, path = '../../crates/evm-coder' }482up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }481up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }483pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }482pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }tests/package.jsondiffbeforeafterboth102 "testXcmTransferStatemine": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferStatemine.test.ts statemineId=1000 uniqueId=5000",102 "testXcmTransferStatemine": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferStatemine.test.ts statemineId=1000 uniqueId=5000",103 "testXcmTransferMoonbeam": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferMoonbeam.test.ts",103 "testXcmTransferMoonbeam": "mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmTransferMoonbeam.test.ts",104 "benchMintingFee": "ts-node src/benchmarks/mintFee/benchmark.ts",104 "benchMintingFee": "ts-node src/benchmarks/mintFee/benchmark.ts",105 "testApiConsts": "mocha --timeout 9999999 -r ts-node/register ./**/apiConsts.test.ts",105 "load": "mocha --timeout 9999999 -r ts-node/register './**/*.load.ts'",106 "load": "mocha --timeout 9999999 -r ts-node/register './**/*.load.ts'",106 "loadTransfer": "ts-node src/transfer.nload.ts",107 "loadTransfer": "ts-node src/transfer.nload.ts",107 "polkadot-types-fetch-metadata": "curl -H 'Content-Type: application/json' -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' http://localhost:9933 > src/interfaces/metadata.json",108 "polkadot-types-fetch-metadata": "curl -H 'Content-Type: application/json' -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' http://localhost:9933 > src/interfaces/metadata.json",tests/scripts/functions.shdiffbeforeafterbothno changes
tests/scripts/generate_types_package.shdiffbeforeafterbothno changes
tests/scripts/types_template/.gitignorediffbeforeafterbothno changes
tests/scripts/types_template/.npmignorediffbeforeafterbothno changes
tests/scripts/types_template/README.mddiffbeforeafterbothno changes
tests/scripts/types_template/package.jsondiffbeforeafterbothno changes
tests/scripts/types_template/tsconfig.jsondiffbeforeafterbothno changes
tests/scripts/wait_for_first_block.shdiffbeforeafterboth1#!/usr/bin/env bash1#!/usr/bin/env bash223function do_rpc {3DIR=$(dirname "$0")4 curl -s --header "Content-Type: application/json" -XPOST --data "{\"id\":1,\"jsonrpc\":\"2.0\",\"method\":\"$1\",\"params\":[$2]}" $RPC_URL45}5. $DIR/functions.sh667function is_started {7function is_started {8 block_hash_rpc=$(do_rpc chain_getFinalizedHead)9 echo Rpc response = $block_hash_rpc10 block_hash=$(echo $block_hash_rpc | jq -r .result)11 echo Head = $block_hash12 block_id_hex=$(do_rpc chain_getHeader "\"$block_hash\"" | jq -r .result.number)8 block_id_hex=$(do_rpc chain_getHeader | jq -r .result.number)13 block_id=$((${block_id_hex}))9 block_id=$((${block_id_hex}))14 echo Id = $block_id10 echo Id = $block_id15 if (( $block_id > 1 )); then11 if (( $block_id > 1 )); thentests/src/apiConsts.test.tsdiffbeforeafterbothno changes
tests/src/burnItem.test.tsdiffbeforeafterboth140 await expect(token.burn(bob)).to.be.rejectedWith('common.NoPermission');140 await expect(token.burn(bob)).to.be.rejectedWith('common.NoPermission');141 });141 });142143 itSub.ifWithPallets('RFT: cannot burn non-owned token pieces', [Pallets.ReFungible], async ({helper}) => {144 const collection = await helper.rft.mintCollection(alice);145 const aliceToken = await collection.mintToken(alice, 10n, {Substrate: alice.address});146 const bobToken = await collection.mintToken(alice, 10n, {Substrate: bob.address});147148 // 1. Cannot burn non-owned token:149 await expect(bobToken.burn(alice, 0n)).to.be.rejectedWith('common.TokenValueTooLow');150 await expect(bobToken.burn(alice, 5n)).to.be.rejectedWith('common.TokenValueTooLow');151 // 2. Cannot burn non-existing token:152 await expect(helper.rft.burnToken(alice, 99999, 10)).to.be.rejectedWith('common.CollectionNotFound');153 await expect(helper.rft.burnToken(alice, collection.collectionId, 99999)).to.be.rejectedWith('common.TokenValueTooLow');154 // 3. Can burn zero amount of owned tokens (EIP-20)155 await aliceToken.burn(alice, 0n);156157 // 4. Storage is not corrupted:158 expect(await aliceToken.getTop10Owners()).to.deep.eq([{Substrate: alice.address}]);159 expect(await bobToken.getTop10Owners()).to.deep.eq([{Substrate: bob.address}]);160161 // 4.1 Tokens can be transfered:162 await aliceToken.transfer(alice, {Substrate: bob.address}, 10n);163 await bobToken.transfer(bob, {Substrate: alice.address}, 10n);164 expect(await aliceToken.getTop10Owners()).to.deep.eq([{Substrate: bob.address}]);165 expect(await bobToken.getTop10Owners()).to.deep.eq([{Substrate: alice.address}]);166 });142167143 itSub('Transfer a burned token', async ({helper}) => {168 itSub('Transfer a burned token', async ({helper}) => {144 const collection = await helper.nft.mintCollection(alice);169 const collection = await helper.nft.mintCollection(alice);156 expect(await collection.getBalance({Substrate: alice.address})).to.eq(10n);181 expect(await collection.getBalance({Substrate: alice.address})).to.eq(10n);157 });182 });183184 itSub('Zero burn NFT', async ({helper}) => {185 const collection = await helper.nft.mintCollection(alice, {name: 'Coll', description: 'Desc', tokenPrefix: 'T'});186 const tokenAlice = await collection.mintToken(alice, {Substrate: alice.address});187 const tokenBob = await collection.mintToken(alice, {Substrate: bob.address});188 189 // 1. Zero burn of own tokens allowed:190 await helper.executeExtrinsic(alice, 'api.tx.unique.burnItem', [collection.collectionId, tokenAlice.tokenId, 0]);191 // 2. Zero burn of non-owned tokens not allowed:192 await expect(helper.executeExtrinsic(alice, 'api.tx.unique.burnItem', [collection.collectionId, tokenBob.tokenId, 0])).to.be.rejectedWith('common.NoPermission');193 // 3. Zero burn of non-existing tokens not allowed:194 await expect(helper.executeExtrinsic(alice, 'api.tx.unique.burnItem', [collection.collectionId, 9999, 0])).to.be.rejectedWith('common.TokenNotFound');195 expect(await tokenAlice.doesExist()).to.be.true;196 expect(await tokenAlice.getOwner()).to.deep.eq({Substrate: alice.address});197 expect(await tokenBob.getOwner()).to.deep.eq({Substrate: bob.address});198 // 4. Storage is not corrupted:199 await tokenAlice.transfer(alice, {Substrate: bob.address});200 await tokenBob.transfer(bob, {Substrate: alice.address});201 expect(await tokenAlice.getOwner()).to.deep.eq({Substrate: bob.address});202 expect(await tokenBob.getOwner()).to.deep.eq({Substrate: alice.address});203 });204205 itSub('zero burnFrom NFT', async ({helper}) => {206 const collection = await helper.nft.mintCollection(alice, {name: 'Zero', description: 'Zero transfer', tokenPrefix: 'TF'});207 const notApprovedNft = await collection.mintToken(alice, {Substrate: bob.address});208 const approvedNft = await collection.mintToken(alice, {Substrate: bob.address});209 await approvedNft.approve(bob, {Substrate: alice.address});210211 // 1. Zero burnFrom of non-existing tokens not allowed:212 await expect(helper.executeExtrinsic(alice, 'api.tx.unique.burnFrom', [collection.collectionId, {Substrate: bob.address}, 9999, 0])).to.be.rejectedWith('common.ApprovedValueTooLow');213 // 2. Zero burnFrom of not approved tokens not allowed:214 await expect(helper.executeExtrinsic(alice, 'api.tx.unique.burnFrom', [collection.collectionId, {Substrate: bob.address}, notApprovedNft.tokenId, 0])).to.be.rejectedWith('common.ApprovedValueTooLow');215 // 3. Zero burnFrom of approved tokens allowed:216 await helper.executeExtrinsic(alice, 'api.tx.unique.burnFrom', [collection.collectionId, {Substrate: bob.address}, approvedNft.tokenId, 0]);217218 // 4.1 approvedNft still approved:219 expect(await approvedNft.isApproved({Substrate: alice.address})).to.be.true;220 // 4.2 bob is still the owner:221 expect(await approvedNft.getOwner()).to.deep.eq({Substrate: bob.address});222 expect(await notApprovedNft.getOwner()).to.deep.eq({Substrate: bob.address});223 // 4.3 Alice can burn approved nft:224 await approvedNft.burnFrom(alice, {Substrate: bob.address});225 expect(await approvedNft.doesExist()).to.be.false;226 });158});227});159228tests/src/eth/abi/collectionHelpers.jsondiffbeforeafterboth31 "name": "CollectionDestroyed",31 "name": "CollectionDestroyed",32 "type": "event"32 "type": "event"33 },33 },34 {35 "inputs": [36 { "internalType": "uint32", "name": "collectionId", "type": "uint32" }37 ],38 "name": "collectionAddress",39 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],40 "stateMutability": "view",41 "type": "function"42 },34 {43 {35 "inputs": [],44 "inputs": [],36 "name": "collectionCreationFee",45 "name": "collectionCreationFee",37 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],46 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],38 "stateMutability": "view",47 "stateMutability": "view",39 "type": "function"48 "type": "function"40 },49 },50 {51 "inputs": [52 {53 "internalType": "address",54 "name": "collectionAddress",55 "type": "address"56 }57 ],58 "name": "collectionId",59 "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }],60 "stateMutability": "view",61 "type": "function"62 },41 {63 {42 "inputs": [64 "inputs": [43 { "internalType": "string", "name": "name", "type": "string" },65 { "internalType": "string", "name": "name", "type": "string" },tests/src/eth/abi/fungible.jsondiffbeforeafterboth95 },95 },96 {96 {97 "inputs": [97 "inputs": [98 { "internalType": "address", "name": "user", "type": "address" }98 {99 "components": [100 { "internalType": "address", "name": "eth", "type": "address" },101 { "internalType": "uint256", "name": "sub", "type": "uint256" }102 ],103 "internalType": "struct EthCrossAccount",104 "name": "user",105 "type": "tuple"106 }99 ],107 ],100 "name": "allowed",108 "name": "allowlistedCross",101 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],109 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],102 "stateMutability": "view",110 "stateMutability": "view",103 "type": "function"111 "type": "function"191 "stateMutability": "view",199 "stateMutability": "view",192 "type": "function"200 "type": "function"193 },201 },202 {203 "inputs": [],204 "name": "collectionHelperAddress",205 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],206 "stateMutability": "view",207 "type": "function"208 },194 {209 {195 "inputs": [],210 "inputs": [],196 "name": "collectionOwner",211 "name": "collectionOwner",tests/src/eth/abi/nonFungible.jsondiffbeforeafterboth116 },116 },117 {117 {118 "inputs": [118 "inputs": [119 { "internalType": "address", "name": "user", "type": "address" }119 {120 "components": [121 { "internalType": "address", "name": "eth", "type": "address" },122 { "internalType": "uint256", "name": "sub", "type": "uint256" }123 ],124 "internalType": "struct EthCrossAccount",125 "name": "user",126 "type": "tuple"127 }120 ],128 ],121 "name": "allowed",129 "name": "allowlistedCross",122 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],130 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],123 "stateMutability": "view",131 "stateMutability": "view",124 "type": "function"132 "type": "function"221 "stateMutability": "view",229 "stateMutability": "view",222 "type": "function"230 "type": "function"223 },231 },232 {233 "inputs": [],234 "name": "collectionHelperAddress",235 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],236 "stateMutability": "view",237 "type": "function"238 },224 {239 {225 "inputs": [],240 "inputs": [],226 "name": "collectionOwner",241 "name": "collectionOwner",437 "stateMutability": "view",452 "stateMutability": "view",438 "type": "function"453 "type": "function"439 },454 },455 {456 "inputs": [457 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },458 { "internalType": "string[]", "name": "keys", "type": "string[]" }459 ],460 "name": "properties",461 "outputs": [462 {463 "components": [464 { "internalType": "string", "name": "key", "type": "string" },465 { "internalType": "bytes", "name": "value", "type": "bytes" }466 ],467 "internalType": "struct Property[]",468 "name": "",469 "type": "tuple[]"470 }471 ],472 "stateMutability": "view",473 "type": "function"474 },440 {475 {441 "inputs": [476 "inputs": [442 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },477 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },665 "stateMutability": "view",700 "stateMutability": "view",666 "type": "function"701 "type": "function"667 },702 },668 {669 "inputs": [670 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },671 { "internalType": "string[]", "name": "keys", "type": "string[]" }672 ],673 "name": "tokenProperties",674 "outputs": [675 {676 "components": [677 { "internalType": "string", "name": "key", "type": "string" },678 { "internalType": "bytes", "name": "value", "type": "bytes" }679 ],680 "internalType": "struct Property[]",681 "name": "",682 "type": "tuple[]"683 }684 ],685 "stateMutability": "view",686 "type": "function"687 },688 {703 {689 "inputs": [704 "inputs": [690 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }705 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }tests/src/eth/abi/reFungible.jsondiffbeforeafterboth116 },116 },117 {117 {118 "inputs": [118 "inputs": [119 { "internalType": "address", "name": "user", "type": "address" }119 {120 "components": [121 { "internalType": "address", "name": "eth", "type": "address" },122 { "internalType": "uint256", "name": "sub", "type": "uint256" }123 ],124 "internalType": "struct EthCrossAccount",125 "name": "user",126 "type": "tuple"127 }120 ],128 ],121 "name": "allowed",129 "name": "allowlistedCross",122 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],130 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],123 "stateMutability": "view",131 "stateMutability": "view",124 "type": "function"132 "type": "function"203 "stateMutability": "view",211 "stateMutability": "view",204 "type": "function"212 "type": "function"205 },213 },214 {215 "inputs": [],216 "name": "collectionHelperAddress",217 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],218 "stateMutability": "view",219 "type": "function"220 },206 {221 {207 "inputs": [],222 "inputs": [],208 "name": "collectionOwner",223 "name": "collectionOwner",419 "stateMutability": "view",434 "stateMutability": "view",420 "type": "function"435 "type": "function"421 },436 },437 {438 "inputs": [439 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },440 { "internalType": "string[]", "name": "keys", "type": "string[]" }441 ],442 "name": "properties",443 "outputs": [444 {445 "components": [446 { "internalType": "string", "name": "key", "type": "string" },447 { "internalType": "bytes", "name": "value", "type": "bytes" }448 ],449 "internalType": "struct Property[]",450 "name": "",451 "type": "tuple[]"452 }453 ],454 "stateMutability": "view",455 "type": "function"456 },422 {457 {423 "inputs": [458 "inputs": [424 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },459 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },656 "stateMutability": "view",691 "stateMutability": "view",657 "type": "function"692 "type": "function"658 },693 },659 {660 "inputs": [661 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },662 { "internalType": "string[]", "name": "keys", "type": "string[]" }663 ],664 "name": "tokenProperties",665 "outputs": [666 {667 "components": [668 { "internalType": "string", "name": "key", "type": "string" },669 { "internalType": "bytes", "name": "value", "type": "bytes" }670 ],671 "internalType": "struct Property[]",672 "name": "",673 "type": "tuple[]"674 }675 ],676 "stateMutability": "view",677 "type": "function"678 },679 {694 {680 "inputs": [695 "inputs": [681 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }696 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }tests/src/eth/allowlist.test.tsdiffbeforeafterboth78 itEth('Collection allowlist can be added and removed by [eth] address', async ({helper}) => {78 itEth('Collection allowlist can be added and removed by [eth] address', async ({helper}) => {79 const owner = await helper.eth.createAccountWithBalance(donor);79 const owner = await helper.eth.createAccountWithBalance(donor);80 const user = helper.eth.createAccount();80 const user = helper.eth.createAccount();8181 const crossUser = helper.ethCrossAccount.fromAddress(user);82 82 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');83 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');83 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);84 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);848585 expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;86 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;86 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});87 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});87 expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.true;88 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.true;888989 await collectionEvm.methods.removeFromCollectionAllowList(user).send({from: owner});90 await collectionEvm.methods.removeFromCollectionAllowList(user).send({from: owner});90 expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;91 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;91 });92 });929393 itEth('Collection allowlist can be added and removed by [cross] address', async ({helper}) => {94 itEth('Collection allowlist can be added and removed by [cross] address', async ({helper}) => {94 const owner = await helper.eth.createAccountWithBalance(donor);95 const owner = (await helper.eth.createAccountWithBalance(donor)).toLowerCase();95 const user = donor;96 const [userSub] = await helper.arrange.createAccounts([10n], donor);96 97 const userEth = await helper.eth.createAccountWithBalance(donor);98 97 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');99 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');98 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);100 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);99 const userCross = helper.ethCrossAccount.fromKeyringPair(user);101 const userCrossSub = helper.ethCrossAccount.fromKeyringPair(userSub);100 102 const userCrossEth = helper.ethCrossAccount.fromAddress(userEth);103 const ownerCrossEth = helper.ethCrossAccount.fromAddress(owner);104 105 // Can addToCollectionAllowListCross:101 expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;106 expect(await helper.collection.allowed(collectionId, {Substrate: userSub.address})).to.be.false;102 await collectionEvm.methods.addToCollectionAllowListCross(userCross).send({from: owner});107 await collectionEvm.methods.addToCollectionAllowListCross(userCrossSub).send({from: owner});108 await collectionEvm.methods.addToCollectionAllowListCross(userCrossEth).send({from: owner});109 await collectionEvm.methods.addToCollectionAllowListCross(ownerCrossEth).send({from: owner});103 expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;110 expect(await helper.collection.allowed(collectionId, {Substrate: userSub.address})).to.be.true;104 111 expect(await helper.collection.allowed(collectionId, {Ethereum: userEth})).to.be.true;112 expect(await collectionEvm.methods.allowlistedCross(userCrossSub).call({from: owner})).to.be.true;113 expect(await collectionEvm.methods.allowlistedCross(userCrossEth).call({from: owner})).to.be.true;114115 await collectionEvm.methods.mint(userEth).send(); // token #1116 await collectionEvm.methods.mint(userEth).send(); // token #2117 await collectionEvm.methods.setCollectionAccess(1).send();118 119 // allowlisted account can transfer and transferCross:120 await collectionEvm.methods.transfer(owner, 1).send({from: userEth});121 await collectionEvm.methods.transferCross(userCrossSub, 2).send({from: userEth});122 expect(await helper.nft.getTokenOwner(collectionId, 1)).to.deep.eq({Ethereum: owner});123 expect(await helper.nft.getTokenOwner(collectionId, 2)).to.deep.eq({Substrate: userSub.address});124 125 // can removeFromCollectionAllowListCross:105 await collectionEvm.methods.removeFromCollectionAllowListCross(userCross).send({from: owner});126 await collectionEvm.methods.removeFromCollectionAllowListCross(userCrossSub).send({from: owner});127 await collectionEvm.methods.removeFromCollectionAllowListCross(userCrossEth).send({from: owner});106 expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;128 expect(await helper.collection.allowed(collectionId, {Substrate: userSub.address})).to.be.false;129 expect(await helper.collection.allowed(collectionId, {Ethereum: userEth})).to.be.false;130 expect(await collectionEvm.methods.allowlistedCross(userCrossSub).call({from: owner})).to.be.false;131 expect(await collectionEvm.methods.allowlistedCross(userCrossEth).call({from: owner})).to.be.false;132133 // cannot transfer anymore134 await collectionEvm.methods.mint(userEth).send();135 await expect(collectionEvm.methods.transfer(owner, 2).send({from: userEth})).to.be.rejectedWith(/Transaction has been reverted/);107 });136 });108137109 // Soft-deprecated138 // Soft-deprecated110 itEth('Collection allowlist can not be add and remove [eth] address by not owner', async ({helper}) => {139 itEth('Collection allowlist can not be add and remove [eth] address by not owner', async ({helper}) => {111 const owner = await helper.eth.createAccountWithBalance(donor);140 const owner = await helper.eth.createAccountWithBalance(donor);112 const notOwner = await helper.eth.createAccountWithBalance(donor);141 const notOwner = await helper.eth.createAccountWithBalance(donor);113 const user = helper.eth.createAccount();142 const user = helper.eth.createAccount();143 const crossUser = helper.ethCrossAccount.fromAddress(user);114144115 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');145 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');116 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);146 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);117147118 expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;148 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;119 await expect(collectionEvm.methods.addToCollectionAllowList(user).call({from: notOwner})).to.be.rejectedWith('NoPermission');149 await expect(collectionEvm.methods.addToCollectionAllowList(user).call({from: notOwner})).to.be.rejectedWith('NoPermission');120 expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;150 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;121 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});151 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});122 expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.true;152 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.true;123 await expect(collectionEvm.methods.removeFromCollectionAllowList(user).call({from: notOwner})).to.be.rejectedWith('NoPermission');153 await expect(collectionEvm.methods.removeFromCollectionAllowList(user).call({from: notOwner})).to.be.rejectedWith('NoPermission');124 expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.true;154 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.true;125 });155 });126156127 itEth('Collection allowlist can not be add and remove [cross] address by not owner', async ({helper}) => {157 itEth('Collection allowlist can not be add and remove [cross] address by not owner', async ({helper}) => {tests/src/eth/api/CollectionHelpers.soldiffbeforeafterboth19}19}202021/// @title Contract, which allows users to operate with collections21/// @title Contract, which allows users to operate with collections22/// @dev the ERC-165 identifier for this interface is 0x7dea03b122/// @dev the ERC-165 identifier for this interface is 0xe65011aa23interface CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {23interface CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {24 /// Create an NFT collection24 /// Create an NFT collection25 /// @param name Name of the collection25 /// @param name Name of the collection79 /// or in textual repr: collectionCreationFee()79 /// or in textual repr: collectionCreationFee()80 function collectionCreationFee() external view returns (uint256);80 function collectionCreationFee() external view returns (uint256);8182 /// Returns address of a collection.83 /// @param collectionId - CollectionId of the collection84 /// @return eth mirror address of the collection85 /// @dev EVM selector for this function is: 0x2e716683,86 /// or in textual repr: collectionAddress(uint32)87 function collectionAddress(uint32 collectionId) external view returns (address);8889 /// Returns collectionId of a collection.90 /// @param collectionAddress - Eth address of the collection91 /// @return collectionId of the collection92 /// @dev EVM selector for this function is: 0xb5cb7498,93 /// or in textual repr: collectionId(address)94 function collectionId(address collectionAddress) external view returns (uint32);81}95}8296tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth13}13}141415/// @title A contract that allows you to work with collections.15/// @title A contract that allows you to work with collections.16/// @dev the ERC-165 identifier for this interface is 0x8b91d19216/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca17interface Collection is Dummy, ERC165 {17interface Collection is Dummy, ERC165 {18 // /// Set collection property.18 // /// Set collection property.19 // ///19 // ///177 /// Checks that user allowed to operate with collection.177 /// Checks that user allowed to operate with collection.178 ///178 ///179 /// @param user User address to check.179 /// @param user User address to check.180 /// @dev EVM selector for this function is: 0xd63a8e11,180 /// @dev EVM selector for this function is: 0x91b6df49,181 /// or in textual repr: allowed(address)181 /// or in textual repr: allowlistedCross((address,uint256))182 function allowed(address user) external view returns (bool);182 function allowlistedCross(EthCrossAccount memory user) external view returns (bool);183183184 // /// Add the user to the allowed list.184 // /// Add the user to the allowed list.185 // ///185 // ///354 event Approval(address indexed owner, address indexed spender, uint256 value);354 event Approval(address indexed owner, address indexed spender, uint256 value);355}355}356356357/// @dev the ERC-165 identifier for this interface is 0x942e8b22357/// @dev the ERC-165 identifier for this interface is 0x8cb847c4358interface ERC20 is Dummy, ERC165, ERC20Events {358interface ERC20 is Dummy, ERC165, ERC20Events {359 /// @dev EVM selector for this function is: 0x06fdde03,359 /// @dev EVM selector for this function is: 0x06fdde03,360 /// or in textual repr: name()360 /// or in textual repr: name()396 /// or in textual repr: allowance(address,address)396 /// or in textual repr: allowance(address,address)397 function allowance(address owner, address spender) external view returns (uint256);397 function allowance(address owner, address spender) external view returns (uint256);398399 /// @notice Returns collection helper contract address400 /// @dev EVM selector for this function is: 0x1896cce6,401 /// or in textual repr: collectionHelperAddress()402 function collectionHelperAddress() external view returns (address);398}403}399404400interface UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}405interface UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth80}80}818182/// @title A contract that allows you to work with collections.82/// @title A contract that allows you to work with collections.83/// @dev the ERC-165 identifier for this interface is 0x8b91d19283/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca84interface Collection is Dummy, ERC165 {84interface Collection is Dummy, ERC165 {85 // /// Set collection property.85 // /// Set collection property.86 // ///86 // ///244 /// Checks that user allowed to operate with collection.244 /// Checks that user allowed to operate with collection.245 ///245 ///246 /// @param user User address to check.246 /// @param user User address to check.247 /// @dev EVM selector for this function is: 0xd63a8e11,247 /// @dev EVM selector for this function is: 0x91b6df49,248 /// or in textual repr: allowed(address)248 /// or in textual repr: allowlistedCross((address,uint256))249 function allowed(address user) external view returns (bool);249 function allowlistedCross(EthCrossAccount memory user) external view returns (bool);250250251 // /// Add the user to the allowed list.251 // /// Add the user to the allowed list.252 // ///252 // ///446}446}447447448/// @title Unique extensions for ERC721.448/// @title Unique extensions for ERC721.449/// @dev the ERC-165 identifier for this interface is 0xb8f094a0449/// @dev the ERC-165 identifier for this interface is 0xb74c26b7450interface ERC721UniqueExtensions is Dummy, ERC165 {450interface ERC721UniqueExtensions is Dummy, ERC165 {451 /// @notice A descriptive name for a collection of NFTs in this contract451 /// @notice A descriptive name for a collection of NFTs in this contract452 /// @dev EVM selector for this function is: 0x06fdde03,452 /// @dev EVM selector for this function is: 0x06fdde03,475 /// @param tokenId Id for the token.475 /// @param tokenId Id for the token.476 /// @param keys Properties keys. Empty keys for all propertyes.476 /// @param keys Properties keys. Empty keys for all propertyes.477 /// @return Vector of properties key/value pairs.477 /// @return Vector of properties key/value pairs.478 /// @dev EVM selector for this function is: 0xefc26c69,478 /// @dev EVM selector for this function is: 0xe07ede7e,479 /// or in textual repr: tokenProperties(uint256,string[])479 /// or in textual repr: properties(uint256,string[])480 function tokenProperties(uint256 tokenId, string[] memory keys) external view returns (Property[] memory);480 function properties(uint256 tokenId, string[] memory keys) external view returns (Property[] memory);481481482 /// @notice Set or reaffirm the approved address for an NFT482 /// @notice Set or reaffirm the approved address for an NFT483 /// @dev The zero address indicates there is no approved address.483 /// @dev The zero address indicates there is no approved address.605605606/// @title ERC-721 Non-Fungible Token Standard606/// @title ERC-721 Non-Fungible Token Standard607/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md607/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md608/// @dev the ERC-165 identifier for this interface is 0x80ac58cd608/// @dev the ERC-165 identifier for this interface is 0x983a942b609interface ERC721 is Dummy, ERC165, ERC721Events {609interface ERC721 is Dummy, ERC165, ERC721Events {610 /// @notice Count all NFTs assigned to an owner610 /// @notice Count all NFTs assigned to an owner611 /// @dev NFTs assigned to the zero address are considered invalid, and this611 /// @dev NFTs assigned to the zero address are considered invalid, and this686 /// or in textual repr: isApprovedForAll(address,address)686 /// or in textual repr: isApprovedForAll(address,address)687 function isApprovedForAll(address owner, address operator) external view returns (address);687 function isApprovedForAll(address owner, address operator) external view returns (address);688689 /// @notice Returns collection helper contract address690 /// @dev EVM selector for this function is: 0x1896cce6,691 /// or in textual repr: collectionHelperAddress()692 function collectionHelperAddress() external view returns (address);688}693}689694690interface UniqueNFT is695interface UniqueNFT istests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth80}80}818182/// @title A contract that allows you to work with collections.82/// @title A contract that allows you to work with collections.83/// @dev the ERC-165 identifier for this interface is 0x8b91d19283/// @dev the ERC-165 identifier for this interface is 0xcc1d80ca84interface Collection is Dummy, ERC165 {84interface Collection is Dummy, ERC165 {85 // /// Set collection property.85 // /// Set collection property.86 // ///86 // ///244 /// Checks that user allowed to operate with collection.244 /// Checks that user allowed to operate with collection.245 ///245 ///246 /// @param user User address to check.246 /// @param user User address to check.247 /// @dev EVM selector for this function is: 0xd63a8e11,247 /// @dev EVM selector for this function is: 0x91b6df49,248 /// or in textual repr: allowed(address)248 /// or in textual repr: allowlistedCross((address,uint256))249 function allowed(address user) external view returns (bool);249 function allowlistedCross(EthCrossAccount memory user) external view returns (bool);250250251 // /// Add the user to the allowed list.251 // /// Add the user to the allowed list.252 // ///252 // ///444}444}445445446/// @title Unique extensions for ERC721.446/// @title Unique extensions for ERC721.447/// @dev the ERC-165 identifier for this interface is 0x1d4b64d6447/// @dev the ERC-165 identifier for this interface is 0x12f7d6c1448interface ERC721UniqueExtensions is Dummy, ERC165 {448interface ERC721UniqueExtensions is Dummy, ERC165 {449 /// @notice A descriptive name for a collection of NFTs in this contract449 /// @notice A descriptive name for a collection of NFTs in this contract450 /// @dev EVM selector for this function is: 0x06fdde03,450 /// @dev EVM selector for this function is: 0x06fdde03,473 /// @param tokenId Id for the token.473 /// @param tokenId Id for the token.474 /// @param keys Properties keys. Empty keys for all propertyes.474 /// @param keys Properties keys. Empty keys for all propertyes.475 /// @return Vector of properties key/value pairs.475 /// @return Vector of properties key/value pairs.476 /// @dev EVM selector for this function is: 0xefc26c69,476 /// @dev EVM selector for this function is: 0xe07ede7e,477 /// or in textual repr: tokenProperties(uint256,string[])477 /// or in textual repr: properties(uint256,string[])478 function tokenProperties(uint256 tokenId, string[] memory keys) external view returns (Property[] memory);478 function properties(uint256 tokenId, string[] memory keys) external view returns (Property[] memory);479479480 /// @notice Transfer ownership of an RFT480 /// @notice Transfer ownership of an RFT481 /// @dev Throws unless `msg.sender` is the current owner. Throws if `to`481 /// @dev Throws unless `msg.sender` is the current owner. Throws if `to`604604605/// @title ERC-721 Non-Fungible Token Standard605/// @title ERC-721 Non-Fungible Token Standard606/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md606/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md607/// @dev the ERC-165 identifier for this interface is 0x58800161607/// @dev the ERC-165 identifier for this interface is 0x4016cd87608interface ERC721 is Dummy, ERC165, ERC721Events {608interface ERC721 is Dummy, ERC165, ERC721Events {609 /// @notice Count all RFTs assigned to an owner609 /// @notice Count all RFTs assigned to an owner610 /// @dev RFTs assigned to the zero address are considered invalid, and this610 /// @dev RFTs assigned to the zero address are considered invalid, and this683 /// or in textual repr: isApprovedForAll(address,address)683 /// or in textual repr: isApprovedForAll(address,address)684 function isApprovedForAll(address owner, address operator) external view returns (address);684 function isApprovedForAll(address owner, address operator) external view returns (address);685686 /// @notice Returns collection helper contract address687 /// @dev EVM selector for this function is: 0x1896cce6,688 /// or in textual repr: collectionHelperAddress()689 function collectionHelperAddress() external view returns (address);685}690}686691687interface UniqueRefungible is692interface UniqueRefungible istests/src/eth/base.test.tsdiffbeforeafterboth117 });117 });118118119 itEth('ERC721UniqueExtensions support', async ({helper}) => {119 itEth('ERC721UniqueExtensions support', async ({helper}) => {120 await checkInterface(helper, '0xb8f094a0', true, true);120 await checkInterface(helper, '0xb74c26b7', true, true);121 });121 });122122123 itEth('ERC721Burnable - 0x42966c68 - support', async ({helper}) => {123 itEth('ERC721Burnable - 0x42966c68 - support', async ({helper}) => {tests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth39 });39 });40 });40 });4142 // Soft-deprecated43 itEth('Add admin by owner', async ({helper}) => {44 const owner = await helper.eth.createAccountWithBalance(donor);45 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');46 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);4748 const newAdmin = helper.eth.createAccount();4950 await collectionEvm.methods.addCollectionAdmin(newAdmin).send();51 const adminList = await helper.callRpc('api.rpc.unique.adminlist', [collectionId]);52 expect(adminList[0].asEthereum.toString().toLocaleLowerCase())53 .to.be.eq(newAdmin.toLocaleLowerCase());54 });554156 itEth('Add cross account admin by owner', async ({helper, privateKey}) => {42 itEth('can add account admin by owner', async ({helper, privateKey}) => {43 // arrange57 const owner = await helper.eth.createAccountWithBalance(donor);44 const owner = await helper.eth.createAccountWithBalance(donor);58 45 const adminSub = await privateKey('//admin2');46 const adminEth = helper.eth.createAccount().toLowerCase();4748 const adminDeprecated = helper.eth.createAccount().toLowerCase();49 const adminCrossSub = helper.ethCrossAccount.fromKeyringPair(adminSub);50 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);51 59 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');52 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');60 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);53 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);61 5455 // Soft-deprecated: can addCollectionAdmin 62 const newAdmin = await privateKey('//Bob');56 await collectionEvm.methods.addCollectionAdmin(adminDeprecated).send();57 // Can addCollectionAdminCross for substrate and ethereum address63 const newAdminCross = helper.ethCrossAccount.fromKeyringPair(newAdmin);58 await collectionEvm.methods.addCollectionAdminCross(adminCrossSub).send();64 await collectionEvm.methods.addCollectionAdminCross(newAdminCross).send();59 await collectionEvm.methods.addCollectionAdminCross(adminCrossEth).send();656061 // 1. Expect api.rpc.unique.adminlist returns admins:66 const adminList = await helper.collection.getAdmins(collectionId);62 const adminListRpc = await helper.collection.getAdmins(collectionId);63 expect(adminListRpc).to.has.length(3);67 expect(adminList).to.be.like([{Substrate: newAdmin.address}]);64 expect(adminListRpc).to.be.deep.contain.members([{Substrate: adminSub.address}, {Ethereum: adminEth}, {Ethereum: adminDeprecated}]);6566 // 2. Expect methods.collectionAdmins == api.rpc.unique.adminlist67 let adminListEth = await collectionEvm.methods.collectionAdmins().call();68 adminListEth = adminListEth.map((element: IEthCrossAccountId) => {69 return helper.address.convertCrossAccountFromEthCrossAccount(element);70 });71 expect(adminListRpc).to.be.like(adminListEth);68 });72 });697370 itEth('Check adminlist', async ({helper, privateKey}) => {74 itEth('cross account admin can mint', async ({helper}) => {75 // arrange: create collection and accounts71 const owner = await helper.eth.createAccountWithBalance(donor);76 const owner = await helper.eth.createAccountWithBalance(donor);72 73 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');77 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Mint collection', 'a', 'b', 'uri');74 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);78 const adminEth = (await helper.eth.createAccountWithBalance(donor)).toLowerCase();7576 const admin1 = helper.eth.createAccount();79 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);77 const admin2 = await privateKey('admin');80 const [adminSub] = await helper.arrange.createAccounts([100n], donor);78 const admin2Cross = helper.ethCrossAccount.fromKeyringPair(admin2);81 const adminCrossSub = helper.ethCrossAccount.fromKeyringPair(adminSub);79 82 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);80 // Soft-deprecated83 84 // cannot mint while not admin81 await collectionEvm.methods.addCollectionAdmin(admin1).send();85 await expect(collectionEvm.methods.mint(owner).send({from: adminEth})).to.be.rejected;86 await expect(helper.nft.mintToken(adminSub, {collectionId, owner: {Ethereum: owner}})).to.be.rejectedWith(/common.PublicMintingNotAllowed/);87 88 // admin (sub and eth) can mint token:82 await collectionEvm.methods.addCollectionAdminCross(admin2Cross).send();89 await collectionEvm.methods.addCollectionAdminCross(adminCrossEth).send();8384 const adminListRpc = await helper.collection.getAdmins(collectionId);90 await collectionEvm.methods.addCollectionAdminCross(adminCrossSub).send();85 let adminListEth = await collectionEvm.methods.collectionAdmins().call();91 await collectionEvm.methods.mint(owner).send({from: adminEth});86 adminListEth = adminListEth.map((element: IEthCrossAccountId) => {92 await helper.nft.mintToken(adminSub, {collectionId, owner: {Ethereum: owner}});87 return helper.address.convertCrossAccountFromEthCrossAcoount(element);9388 });89 expect(adminListRpc).to.be.like(adminListEth);94 expect(await helper.collection.getLastTokenId(collectionId)).to.eq(2);90 });95 });919692 // Soft-deprecated93 itEth('Verify owner or admin', async ({helper}) => {97 itEth('cannot add invalid cross account admin', async ({helper}) => {94 const owner = await helper.eth.createAccountWithBalance(donor);98 const owner = await helper.eth.createAccountWithBalance(donor);99 const [admin] = await helper.arrange.createAccounts([100n, 100n], donor);10095 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');101 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');9697 const newAdmin = helper.eth.createAccount();98 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);102 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);99 103100 expect(await collectionEvm.methods.isOwnerOrAdmin(newAdmin).call()).to.be.false;104 const adminCross = {101 await collectionEvm.methods.addCollectionAdmin(newAdmin).send();105 eth: helper.address.substrateToEth(admin.address),106 sub: admin.addressRaw,107 };102 expect(await collectionEvm.methods.isOwnerOrAdmin(newAdmin).call()).to.be.true;108 await expect(collectionEvm.methods.addCollectionAdminCross(adminCross).send()).to.be.rejected;103 });109 });104110105 itEth('Verify owner or admin cross', async ({helper, privateKey}) => {111 itEth('can verify owner with methods.isOwnerOrAdmin[Cross]', async ({helper, privateKey}) => {106 const owner = await helper.eth.createAccountWithBalance(donor);112 const owner = await helper.eth.createAccountWithBalance(donor);107 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');113 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');108114115 const adminDeprecated = helper.eth.createAccount();109 const newAdmin = await privateKey('admin');116 const admin1Cross = helper.ethCrossAccount.fromKeyringPair(await privateKey('admin'));110 const newAdminCross = helper.ethCrossAccount.fromKeyringPair(newAdmin);117 const admin2Cross = helper.ethCrossAccount.fromAddress(helper.address.substrateToEth((await privateKey('admin3')).address));111 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);118 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);112 119 120 // Soft-deprecated:121 expect(await collectionEvm.methods.isOwnerOrAdmin(adminDeprecated).call()).to.be.false;113 expect(await collectionEvm.methods.isOwnerOrAdminCross(newAdminCross).call()).to.be.false;122 expect(await collectionEvm.methods.isOwnerOrAdminCross(admin1Cross).call()).to.be.false;123 expect(await collectionEvm.methods.isOwnerOrAdminCross(admin2Cross).call()).to.be.false;124125 await collectionEvm.methods.addCollectionAdmin(adminDeprecated).send();114 await collectionEvm.methods.addCollectionAdminCross(newAdminCross).send();126 await collectionEvm.methods.addCollectionAdminCross(admin1Cross).send();127 await collectionEvm.methods.addCollectionAdminCross(admin2Cross).send();128129 // Soft-deprecated: isOwnerOrAdmin returns true130 expect(await collectionEvm.methods.isOwnerOrAdmin(adminDeprecated).call()).to.be.true;131 // Expect isOwnerOrAdminCross return true115 expect(await collectionEvm.methods.isOwnerOrAdminCross(newAdminCross).call()).to.be.true;132 expect(await collectionEvm.methods.isOwnerOrAdminCross(admin1Cross).call()).to.be.true;133 expect(await collectionEvm.methods.isOwnerOrAdminCross(admin2Cross).call()).to.be.true;116 });134 });117135118 // Soft-deprecated136 // Soft-deprecated154 const owner = await helper.eth.createAccountWithBalance(donor);172 const owner = await helper.eth.createAccountWithBalance(donor);155 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');173 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');156174157 const [admin] = await helper.arrange.createAccounts([10n], donor);175 const [admin, notAdmin] = await helper.arrange.createAccounts([10n, 10n], donor);158 const adminCross = helper.ethCrossAccount.fromKeyringPair(admin);176 const adminCross = helper.ethCrossAccount.fromKeyringPair(admin);159 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);177 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);160 await collectionEvm.methods.addCollectionAdminCross(adminCross).send();178 await collectionEvm.methods.addCollectionAdminCross(adminCross).send();161179162 const [notAdmin] = await helper.arrange.createAccounts([10n], donor);163 const notAdminCross = helper.ethCrossAccount.fromKeyringPair(notAdmin);180 const notAdminCross = helper.ethCrossAccount.fromKeyringPair(notAdmin);164 await expect(collectionEvm.methods.addCollectionAdminCross(notAdminCross).call({from: adminCross.eth}))181 await expect(collectionEvm.methods.addCollectionAdminCross(notAdminCross).call({from: adminCross.eth}))165 .to.be.rejectedWith('NoPermission');182 .to.be.rejectedWith('NoPermission');222 const owner = await helper.eth.createAccountWithBalance(donor);239 const owner = await helper.eth.createAccountWithBalance(donor);223 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');240 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');224241225 const [newAdmin] = await helper.arrange.createAccounts([10n], donor);242 const [adminSub] = await helper.arrange.createAccounts([10n], donor);243 const adminEth = (await helper.eth.createAccountWithBalance(donor)).toLowerCase();226 const newAdminCross = helper.ethCrossAccount.fromKeyringPair(newAdmin);244 const adminCrossSub = helper.ethCrossAccount.fromKeyringPair(adminSub);245 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);246227 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);247 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);228 await collectionEvm.methods.addCollectionAdminCross(newAdminCross).send();248 await collectionEvm.methods.addCollectionAdminCross(adminCrossSub).send();249 await collectionEvm.methods.addCollectionAdminCross(adminCrossEth).send();250229 {251 {230 const adminList = await helper.callRpc('api.rpc.unique.adminlist', [collectionId]);252 const adminList = await helper.collection.getAdmins(collectionId);231 expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())253 expect(adminList).to.deep.include({Substrate: adminSub.address});232 .to.be.eq(newAdmin.address.toLocaleLowerCase());254 expect(adminList).to.deep.include({Ethereum: adminEth});233 }255 }234256235 await collectionEvm.methods.removeCollectionAdminCross(newAdminCross).send();257 await collectionEvm.methods.removeCollectionAdminCross(adminCrossSub).send();258 await collectionEvm.methods.removeCollectionAdminCross(adminCrossEth).send();236 const adminList = await helper.callRpc('api.rpc.unique.adminlist', [collectionId]);259 const adminList = await helper.collection.getAdmins(collectionId);237 expect(adminList.length).to.be.eq(0);260 expect(adminList.length).to.be.eq(0);261262 // Non admin cannot mint:263 await expect(helper.nft.mintToken(adminSub, {collectionId, owner: {Substrate: adminSub.address}})).to.be.rejectedWith(/common.PublicMintingNotAllowed/);264 await expect(collectionEvm.methods.mint(adminEth).send({from: adminEth})).to.be.rejected;238 });265 });239266240 // Soft-deprecated267 // Soft-deprecated378405379 itEth('Change owner [cross]', async ({helper}) => {406 itEth('Change owner [cross]', async ({helper}) => {380 const owner = await helper.eth.createAccountWithBalance(donor);407 const owner = await helper.eth.createAccountWithBalance(donor);408 const ownerEth = await helper.eth.createAccountWithBalance(donor);409 const ownerCrossEth = helper.ethCrossAccount.fromAddress(ownerEth);381 const [newOwner] = await helper.arrange.createAccounts([10n], donor);410 const [ownerSub] = await helper.arrange.createAccounts([10n], donor);382 const newOwnerCross = helper.ethCrossAccount.fromKeyringPair(newOwner);411 const ownerCrossSub = helper.ethCrossAccount.fromKeyringPair(ownerSub);412383 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');413 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');384 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);414 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);385415386 expect(await collectionEvm.methods.isOwnerOrAdminCross(newOwnerCross).call()).to.be.false;416 expect(await collectionEvm.methods.isOwnerOrAdminCross(ownerCrossSub).call()).to.be.false;387417418 // Can set ethereum owner:388 await collectionEvm.methods.changeCollectionOwnerCross(newOwnerCross).send();419 await collectionEvm.methods.changeCollectionOwnerCross(ownerCrossEth).send({from: owner});389390 expect(await collectionEvm.methods.isOwnerOrAdminCross(newOwnerCross).call()).to.be.true;420 expect(await collectionEvm.methods.isOwnerOrAdminCross(ownerCrossEth).call()).to.be.true;421 expect(await helper.collection.getData(collectionId))422 .to.have.property('normalizedOwner').that.is.eq(helper.address.ethToSubstrate(ownerEth));423 424 // Can set Substrate owner:425 await collectionEvm.methods.changeCollectionOwnerCross(ownerCrossSub).send({from: ownerEth});426 expect(await collectionEvm.methods.isOwnerOrAdminCross(ownerCrossSub).call()).to.be.true;427 expect(await helper.collection.getData(collectionId))428 .to.have.property('normalizedOwner').that.is.eq(helper.address.normalizeSubstrate(ownerSub.address));391 });429 });392430393 itEth.skip('change owner call fee', async ({helper}) => {431 itEth.skip('change owner call fee', async ({helper}) => {tests/src/eth/collectionHelperAddress.test.tsdiffbeforeafterbothno changes
tests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth372 const originalFlipperBalance = await helper.balance.getEthereum(flipper.options.address);372 const originalFlipperBalance = await helper.balance.getEthereum(flipper.options.address);373 expect(originalFlipperBalance).to.be.not.equal('0');373 expect(originalFlipperBalance).to.be.not.equal('0');374374375 await expect(flipper.methods.flip().send({from: caller})).to.be.rejectedWith(/InvalidTransaction::Payment/);375 await expect(flipper.methods.flip().send({from: caller})).to.be.rejectedWith(/Returned error: insufficient funds for gas \* price \+ value/);376 expect(await flipper.methods.getValue().call()).to.be.false;376 expect(await flipper.methods.getValue().call()).to.be.false;377377378 // Balance should be taken from flipper instead of caller378 // Balance should be taken from flipper instead of callertests/src/eth/createFTCollection.test.tsdiffbeforeafterboth144 144 145 itEth('destroyCollection', async ({helper}) => {145 itEth('destroyCollection', async ({helper}) => {146 const owner = await helper.eth.createAccountWithBalance(donor);146 const owner = await helper.eth.createAccountWithBalance(donor);147 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Exister', DECIMALS, 'absolutely anything', 'WIWT');147 const {collectionAddress, collectionId} = await helper.eth.createFungibleCollection(owner, 'Exister', DECIMALS, 'absolutely anything', 'WIWT');148 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);148 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);149149150 const result = await collectionHelper.methods150 const result = await collectionHelper.methods166 expect(await collectionHelper.methods166 expect(await collectionHelper.methods167 .isCollectionExist(collectionAddress)167 .isCollectionExist(collectionAddress)168 .call()).to.be.false;168 .call()).to.be.false;169 expect(await helper.collection.getData(collectionId)).to.be.null;169 });170 });170});171});171172214 }215 }215 });216 });216 217 217 itEth('(!negative test!) Create collection (no funds)', async ({helper}) => {218 itEth('(!negative test!) cannot create collection if value !== 2', async ({helper}) => {218 const owner = await helper.eth.createAccountWithBalance(donor);219 const owner = await helper.eth.createAccountWithBalance(donor);219 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);220 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);221 const expects = [0n, 1n, 30n].map(async value => {220 await expect(collectionHelper.methods222 await expect(collectionHelper.methods221 .createFTCollection('Peasantry', DECIMALS, 'absolutely anything', 'TWIW')223 .createFTCollection('Peasantry', DECIMALS, 'absolutely anything', 'TWIW')222 .call({value: Number(1n * nominal)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');224 .call({value: Number(value * nominal)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');225 });226 await Promise.all(expects);223 });227 });224228225 // Soft-deprecated229 // Soft-deprecatedtests/src/eth/createNFTCollection.test.tsdiffbeforeafterboth308308309 itEth('destroyCollection', async ({helper}) => {309 itEth('destroyCollection', async ({helper}) => {310 const owner = await helper.eth.createAccountWithBalance(donor);310 const owner = await helper.eth.createAccountWithBalance(donor);311 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');311 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');312 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);312 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);313313314314331 expect(await collectionHelper.methods331 expect(await collectionHelper.methods332 .isCollectionExist(collectionAddress)332 .isCollectionExist(collectionAddress)333 .call()).to.be.false;333 .call()).to.be.false;334 expect(await helper.collection.getData(collectionId)).to.be.null;334 });335 });335});336});tests/src/eth/createRFTCollection.test.tsdiffbeforeafterboth340 340 341 itEth('destroyCollection', async ({helper}) => {341 itEth('destroyCollection', async ({helper}) => {342 const owner = await helper.eth.createAccountWithBalance(donor);342 const owner = await helper.eth.createAccountWithBalance(donor);343 const {collectionAddress} = await helper.eth.createRFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');343 const {collectionAddress, collectionId} = await helper.eth.createRFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');344 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);344 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);345 345 346 await expect(collectionHelper.methods346 await expect(collectionHelper.methods350 expect(await collectionHelper.methods350 expect(await collectionHelper.methods351 .isCollectionExist(collectionAddress)351 .isCollectionExist(collectionAddress)352 .call()).to.be.false; 352 .call()).to.be.false;353 expect(await helper.collection.getData(collectionId)).to.be.null;353 });354 });354});355});355356tests/src/eth/destroyCollection.test.tsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import {IKeyringPair} from '@polkadot/types/types';17import {IKeyringPair} from '@polkadot/types/types';18import {Pallets, requirePalletsOrSkip} from '../util';18import {Pallets} from '../util';19import {expect, itEth, usingEthPlaygrounds} from './util';19import {expect, itEth, usingEthPlaygrounds} from './util';20212022describe('Destroy Collection from EVM', () => {21describe('Destroy Collection from EVM', function() {23 let donor: IKeyringPair;22 let donor: IKeyringPair;23 const testCases = [24 {method: 'createRFTCollection' as const, params: ['Limits', 'absolutely anything', 'OLF'], requiredPallets: [Pallets.ReFungible]},25 {method: 'createNFTCollection' as const, params: ['Limits', 'absolutely anything', 'OLF'], requiredPallets: [Pallets.NFT]},26 {method: 'createFTCollection' as const, params: ['Limits', 'absolutely anything', 'OLF', 18], requiredPallets: [Pallets.Fungible]},27 ];242825 before(async function() {29 before(async function() {26 await usingEthPlaygrounds(async (helper, privateKey) => {30 await usingEthPlaygrounds(async (_, privateKey) => {27 requirePalletsOrSkip(this, helper, [Pallets.ReFungible, Pallets.NFT]);28 donor = await privateKey({filename: __filename});31 donor = await privateKey({filename: __filename});29 });32 });30 });33 });313432 35 testCases.map((testCase) => 33 itEth('(!negative test!) RFT', async ({helper}) => {36 itEth.ifWithPallets(`Cannot burn non-owned or non-existing collection ${testCase.method}`, testCase.requiredPallets, async ({helper}) => {34 const owner = await helper.eth.createAccountWithBalance(donor);37 const owner = await helper.eth.createAccountWithBalance(donor);35 const signer = await helper.eth.createAccountWithBalance(donor);38 const signer = await helper.eth.createAccountWithBalance(donor);36 39 37 const unexistedCollection = helper.ethAddress.fromCollectionId(1000000);40 const unexistedCollection = helper.ethAddress.fromCollectionId(1000000);38 41 39 const {collectionAddress} = await helper.eth.createRFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');42 const collectionHelpers = helper.ethNativeContract.collectionHelpers(signer);40 const collectionHelper = helper.ethNativeContract.collectionHelpers(signer);43 const {collectionAddress} = await helper.eth.createCollecion(testCase.method, owner, ...testCase.params as [string, string, string, number?]);41 4445 // cannot burn collec42 await expect(collectionHelper.methods46 await expect(collectionHelpers.methods43 .destroyCollection(collectionAddress)47 .destroyCollection(collectionAddress)44 .send({from: signer})).to.be.rejected;48 .send({from: signer})).to.be.rejected;45 49 46 await expect(collectionHelper.methods50 await expect(collectionHelpers.methods47 .destroyCollection(unexistedCollection)51 .destroyCollection(unexistedCollection)48 .send({from: signer})).to.be.rejected;52 .send({from: signer})).to.be.rejected;49 53 50 expect(await collectionHelper.methods54 expect(await collectionHelpers.methods51 .isCollectionExist(unexistedCollection)55 .isCollectionExist(unexistedCollection)52 .call()).to.be.false;56 .call()).to.be.false;57 58 expect(await collectionHelpers.methods59 .isCollectionExist(collectionAddress)60 .call()).to.be.true;53 });61 }));54 55 itEth('(!negative test!) NFT', async ({helper}) => {56 const owner = await helper.eth.createAccountWithBalance(donor);57 const signer = await helper.eth.createAccountWithBalance(donor);58 59 const unexistedCollection = helper.ethAddress.fromCollectionId(1000000);60 61 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');62 const collectionHelper = helper.ethNativeContract.collectionHelpers(signer);63 64 await expect(collectionHelper.methods65 .destroyCollection(collectionAddress)66 .send({from: signer})).to.be.rejected;67 68 await expect(collectionHelper.methods69 .destroyCollection(unexistedCollection)70 .send({from: signer})).to.be.rejected;71 72 expect(await collectionHelper.methods73 .isCollectionExist(unexistedCollection)74 .call()).to.be.false;75 });76});62});7763tests/src/eth/fungible.test.tsdiffbeforeafterboth232 });232 });233233234 itEth('Can perform transferCross()', async ({helper}) => {234 itEth('Can perform transferCross()', async ({helper}) => {235 const owner = await helper.eth.createAccountWithBalance(donor);235 const sender = await helper.eth.createAccountWithBalance(donor);236 const receiver = await helper.eth.createAccountWithBalance(donor);236 const receiverEth = await helper.eth.createAccountWithBalance(donor);237 const to = helper.ethCrossAccount.fromAddress(receiver);237 const receiverCrossEth = helper.ethCrossAccount.fromAddress(receiverEth);238 const toSubstrate = helper.ethCrossAccount.fromKeyringPair(donor);238 const receiverCrossSub = helper.ethCrossAccount.fromKeyringPair(donor);239 const collection = await helper.ft.mintCollection(alice);239 const collection = await helper.ft.mintCollection(alice);240 await collection.mint(alice, 200n, {Ethereum: owner});240 await collection.mint(alice, 200n, {Ethereum: sender});241241242 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);242 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);243 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);243 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'ft', sender);244244245 {245 {246 // Can transferCross to ethereum address:246 const result = await contract.methods.transferCross(to, 50).send({from: owner});247 const result = await collectionEvm.methods.transferCross(receiverCrossEth, 50).send({from: sender});247 248 // Check events:248 const event = result.events.Transfer;249 const event = result.events.Transfer;249 expect(event.address).to.be.equal(collectionAddress);250 expect(event.address).to.be.equal(collectionAddress);250 expect(event.returnValues.from).to.be.equal(owner);251 expect(event.returnValues.from).to.be.equal(sender);251 expect(event.returnValues.to).to.be.equal(receiver);252 expect(event.returnValues.to).to.be.equal(receiverEth);252 expect(event.returnValues.value).to.be.equal('50');253 expect(event.returnValues.value).to.be.equal('50');254 // Sender's balance decreased:255 const ownerBalance = await collectionEvm.methods.balanceOf(sender).call();256 expect(+ownerBalance).to.equal(150);257 // Receiver's balance increased:258 const receiverBalance = await collectionEvm.methods.balanceOf(receiverEth).call();259 expect(+receiverBalance).to.equal(50);253 }260 }254261 255 {262 {256 const balance = await contract.methods.balanceOf(owner).call();263 // Can transferCross to substrate address:257 expect(+balance).to.equal(150);258 }259260 {264 const result = await collectionEvm.methods.transferCross(receiverCrossSub, 50).send({from: sender});261 const balance = await contract.methods.balanceOf(receiver).call();265 // Check events:262 expect(+balance).to.equal(50);263 }264 265 {266 const result = await contract.methods.transferCross(toSubstrate, 50).send({from: owner});267 268 const event = result.events.Transfer;266 const event = result.events.Transfer;269 expect(event.address).to.be.equal(collectionAddress);267 expect(event.address).to.be.equal(collectionAddress);270 expect(event.returnValues.from).to.be.equal(owner);268 expect(event.returnValues.from).to.be.equal(sender);271 expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(donor.address));269 expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(donor.address));272 expect(event.returnValues.value).to.be.equal('50');270 expect(event.returnValues.value).to.be.equal('50');273 }271 // Sender's balance decreased:274275 {276 const balance = await collection.getBalance({Ethereum: owner});272 const senderBalance = await collection.getBalance({Ethereum: sender});277 expect(balance).to.equal(100n);273 expect(senderBalance).to.equal(100n);278 }274 // Receiver's balance increased:279280 {281 const balance = await collection.getBalance({Substrate: donor.address});275 const balance = await collection.getBalance({Substrate: donor.address});282 expect(balance).to.equal(50n);276 expect(balance).to.equal(50n);283 }277 }284 285 });278 });286 279280 ['transfer', 'transferCross'].map(testCase => itEth(`Cannot ${testCase} incorrect amount`, async ({helper}) => {281 const sender = await helper.eth.createAccountWithBalance(donor);282 const receiverEth = await helper.eth.createAccountWithBalance(donor);283 const receiverCrossEth = helper.ethCrossAccount.fromAddress(receiverEth);284 const BALANCE = 200n;285 const BALANCE_TO_TRANSFER = BALANCE + 100n;286287 const collection = await helper.ft.mintCollection(alice);288 await collection.mint(alice, BALANCE, {Ethereum: sender});289 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);290 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'ft', sender);291292 // 1. Cannot transfer more than have293 const receiver = testCase === 'transfer' ? receiverEth : receiverCrossEth;294 await expect(collectionEvm.methods[testCase](receiver, BALANCE_TO_TRANSFER).send({from: sender})).to.be.rejected;295 // 2. Zero transfer allowed (EIP-20):296 await collectionEvm.methods[testCase](receiver, 0n).send({from: sender});297 }));298 299 287 itEth('Can perform transfer()', async ({helper}) => {300 itEth('Can perform transfer()', async ({helper}) => {314 }327 }315 });328 });316329317 itEth('Can perform transferFromCross()', async ({helper, privateKey}) => {330 itEth('Can perform transferFromCross()', async ({helper}) => {318 const sender = await helper.eth.createAccountWithBalance(donor, 100n);331 const sender = await helper.eth.createAccountWithBalance(donor, 100n);319332320 const collection = await helper.ft.mintCollection(owner, {name: 'A', description: 'B', tokenPrefix: 'C'}, 0);333 const collection = await helper.ft.mintCollection(owner, {name: 'A', description: 'B', tokenPrefix: 'C'}, 0);508 expect(event.returnValues.value).to.be.equal('51');521 expect(event.returnValues.value).to.be.equal('51');509 });522 });510523511 itEth('Events emitted for transferFromCross()', async ({helper, privateKey}) => {524 itEth('Events emitted for transferFromCross()', async ({helper}) => {512 const sender = await helper.eth.createAccountWithBalance(donor, 100n);525 const sender = await helper.eth.createAccountWithBalance(donor, 100n);513526514 const collection = await helper.ft.mintCollection(owner, {name: 'A', description: 'B', tokenPrefix: 'C'}, 0);527 const collection = await helper.ft.mintCollection(owner, {name: 'A', description: 'B', tokenPrefix: 'C'}, 0);tests/src/eth/nonFungible.test.tsdiffbeforeafterboth17import {itEth, usingEthPlaygrounds, expect, EthUniqueHelper} from './util';17import {itEth, usingEthPlaygrounds, expect, EthUniqueHelper} from './util';18import {IKeyringPair} from '@polkadot/types/types';18import {IKeyringPair} from '@polkadot/types/types';19import {Contract} from 'web3-eth-contract';19import {Contract} from 'web3-eth-contract';20import exp from 'constants';2120222123describe('NFT: Information getting', () => {22describe('NFT: Information getting', () => {253 itEth('Can perform burnFromCross()', async ({helper}) => {252 itEth('Can perform burnFromCross()', async ({helper}) => {254 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});253 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});255256 const owner = bob;254 const ownerSub = bob;255 const ownerCrossSub = helper.ethCrossAccount.fromKeyringPair(ownerSub);257 const spender = await helper.eth.createAccountWithBalance(donor, 100n);256 const ownerEth = await helper.eth.createAccountWithBalance(donor, 100n);257 const ownerCrossEth = helper.ethCrossAccount.fromAddress(ownerEth);258259 const burnerEth = await helper.eth.createAccountWithBalance(donor, 100n);260 const burnerCrossEth = helper.ethCrossAccount.fromAddress(burnerEth);258261259 const token = await collection.mintToken(minter, {Substrate: owner.address});262 const token1 = await collection.mintToken(minter, {Substrate: ownerSub.address});263 const token2 = await collection.mintToken(minter, {Ethereum: ownerEth});260264261 const address = helper.ethAddress.fromCollectionId(collection.collectionId);265 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);262 const contract = helper.ethNativeContract.collection(address, 'nft');266 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft');263267264 {268 // Approve tokens from substrate and ethereum:265 await token.approve(owner, {Ethereum: spender});269 await token1.approve(ownerSub, {Ethereum: burnerEth});270 await collectionEvm.methods.approveCross(burnerCrossEth, token2.tokenId).send({from: ownerEth});271272 // can burnFromCross:266 const ownerCross = helper.ethCrossAccount.fromKeyringPair(owner);273 const result1 = await collectionEvm.methods.burnFromCross(ownerCrossSub, token1.tokenId).send({from: burnerEth});267 const result = await contract.methods.burnFromCross(ownerCross, token.tokenId).send({from: spender});274 const result2 = await collectionEvm.methods.burnFromCross(ownerCrossEth, token2.tokenId).send({from: burnerEth});268 const events = result.events.Transfer;275 const events1 = result1.events.Transfer;269276 const events2 = result2.events.Transfer;277278 // Check events for burnFromCross (substrate and ethereum):279 [270 expect(events).to.be.like({280 [events1, token1, helper.address.substrateToEth(ownerSub.address)], 281 [events2, token2, ownerEth],282 ].map(burnData => {283 expect(burnData[0]).to.be.like({271 address,284 address: collectionAddress,272 event: 'Transfer',285 event: 'Transfer',273 returnValues: {286 returnValues: {274 from: helper.address.substrateToEth(owner.address),287 from: burnData[2],275 to: '0x0000000000000000000000000000000000000000',288 to: '0x0000000000000000000000000000000000000000',276 tokenId: token.tokenId.toString(),289 tokenId: burnData[1].tokenId.toString(),277 },290 },278 });291 });279 }292 });293294 expect(await token1.doesExist()).to.be.false;295 expect(await token2.doesExist()).to.be.false;280 });296 });281297282 itEth('Can perform approveCross()', async ({helper}) => {298 itEth('Can perform approveCross()', async ({helper}) => {299 // arrange: create accounts300 const owner = await helper.eth.createAccountWithBalance(donor, 100n);301 const ownerCross = helper.ethCrossAccount.fromAddress(owner);302 const receiverSub = charlie;303 const recieverCrossSub = helper.ethCrossAccount.fromKeyringPair(receiverSub);304 const receiverEth = await helper.eth.createAccountWithBalance(donor, 100n);305 const receiverCrossEth = helper.ethCrossAccount.fromAddress(receiverEth);306307 // arrange: create collection and tokens:283 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});308 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});284285 const owner = await helper.eth.createAccountWithBalance(donor, 100n);309 const token1 = await collection.mintToken(minter, {Ethereum: owner});286 const receiver = charlie;287288 const token = await collection.mintToken(minter, {Ethereum: owner});310 const token2 = await collection.mintToken(minter, {Ethereum: owner});289311290 const address = helper.ethAddress.fromCollectionId(collection.collectionId);312 const collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');291 const contract = helper.ethNativeContract.collection(address, 'nft');313292314 // Can approveCross substrate and ethereum address:293 {294 const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);315 const resultSub = await collectionEvm.methods.approveCross(recieverCrossSub, token1.tokenId).send({from: owner});295 const result = await contract.methods.approveCross(recieverCross, token.tokenId).send({from: owner});316 const resultEth = await collectionEvm.methods.approveCross(receiverCrossEth, token2.tokenId).send({from: owner});296 const event = result.events.Approval;317 const eventSub = resultSub.events.Approval;318 const eventEth = resultEth.events.Approval;297 expect(event).to.be.like({319 expect(eventSub).to.be.like({298 address: helper.ethAddress.fromCollectionId(collection.collectionId),320 address: helper.ethAddress.fromCollectionId(collection.collectionId),299 event: 'Approval',321 event: 'Approval',300 returnValues: {322 returnValues: {301 owner,323 owner,302 approved: helper.address.substrateToEth(receiver.address),324 approved: helper.address.substrateToEth(receiverSub.address),303 tokenId: token.tokenId.toString(),325 tokenId: token1.tokenId.toString(),304 },326 },305 });327 });306 }328 expect(eventEth).to.be.like({329 address: helper.ethAddress.fromCollectionId(collection.collectionId),330 event: 'Approval',331 returnValues: {332 owner,333 approved: receiverEth,334 tokenId: token2.tokenId.toString(),335 },336 });337338 // Substrate address can transferFrom approved tokens:339 await helper.nft.transferTokenFrom(receiverSub, collection.collectionId, token1.tokenId, {Ethereum: owner}, {Substrate: receiverSub.address});340 expect(await helper.nft.getTokenOwner(collection.collectionId, token1.tokenId)).to.deep.eq({Substrate: receiverSub.address});341 // Ethereum address can transferFromCross approved tokens:342 await collectionEvm.methods.transferFromCross(ownerCross, receiverCrossEth, token2.tokenId).send({from: receiverEth});343 expect(await helper.nft.getTokenOwner(collection.collectionId, token2.tokenId)).to.deep.eq({Ethereum: receiverEth.toLowerCase()});307 });344 });345346 itEth('Can reaffirm approved address', async ({helper}) => {347 const owner = await helper.eth.createAccountWithBalance(donor, 100n);348 const ownerCrossEth = helper.ethCrossAccount.fromAddress(owner);349 const [receiver1, receiver2] = await helper.arrange.createAccounts([100n, 100n], donor);350 const receiver1Cross = helper.ethCrossAccount.fromKeyringPair(receiver1);351 const receiver2Cross = helper.ethCrossAccount.fromKeyringPair(receiver2);352 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});353 const token1 = await collection.mintToken(minter, {Ethereum: owner});354 const token2 = await collection.mintToken(minter, {Ethereum: owner});355 const collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');356357 // Can approve and reaffirm approved address:358 await collectionEvm.methods.approveCross(receiver1Cross, token1.tokenId).send({from: owner});359 await collectionEvm.methods.approveCross(receiver2Cross, token1.tokenId).send({from: owner});360361 // receiver1 cannot transferFrom:362 await expect(helper.nft.transferTokenFrom(receiver1, collection.collectionId, token1.tokenId, {Ethereum: owner}, {Substrate: receiver1.address})).to.be.rejected;363 // receiver2 can transferFrom:364 await helper.nft.transferTokenFrom(receiver2, collection.collectionId, token1.tokenId, {Ethereum: owner}, {Substrate: receiver2.address});365366 // can set approved address to self address to remove approval:367 await collectionEvm.methods.approveCross(receiver1Cross, token2.tokenId).send({from: owner});368 await collectionEvm.methods.approveCross(ownerCrossEth, token2.tokenId).send({from: owner});369370 // receiver1 cannot transfer token anymore:371 await expect(helper.nft.transferTokenFrom(receiver1, collection.collectionId, token2.tokenId, {Ethereum: owner}, {Substrate: receiver1.address})).to.be.rejected;372 });308373309 itEth('Can perform transferFrom()', async ({helper}) => {374 itEth('Can perform transferFrom()', async ({helper}) => {310 const owner = await helper.eth.createAccountWithBalance(donor);375 const owner = await helper.eth.createAccountWithBalance(donor);340 }405 }341 });406 });342407343 itEth('Can perform transferFromCross()', async ({helper, privateKey}) => {408 itEth('Can perform transferFromCross()', async ({helper}) => {344 const minter = await privateKey('//Alice');345 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});409 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});346410347 const owner = await privateKey('//Bob');411 const [owner, receiver] = await helper.arrange.createAccounts([100n, 100n], donor);348 const spender = await helper.eth.createAccountWithBalance(donor);412 const spender = await helper.eth.createAccountWithBalance(donor);349 const receiver = await privateKey('//Charlie');350413351 const token = await collection.mintToken(minter, {Substrate: owner.address});414 const token = await collection.mintToken(minter, {Substrate: owner.address});352415408 itEth('Can perform transferCross()', async ({helper}) => {471 itEth('Can perform transferCross()', async ({helper}) => {409 const collection = await helper.nft.mintCollection(minter, {});472 const collection = await helper.nft.mintCollection(minter, {});410 const owner = await helper.eth.createAccountWithBalance(donor);473 const owner = await helper.eth.createAccountWithBalance(donor);411 const receiver = await helper.eth.createAccountWithBalance(donor);474 const receiverEth = await helper.eth.createAccountWithBalance(donor);412 const to = helper.ethCrossAccount.fromAddress(receiver);475 const receiverCrossEth = helper.ethCrossAccount.fromAddress(receiverEth);413 const toSubstrate = helper.ethCrossAccount.fromKeyringPair(minter);476 const receiverCrossSub = helper.ethCrossAccount.fromKeyringPair(minter);414 477 415 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});478 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});416479417 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);480 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);418 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);481 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);419482420 {483 {421 const result = await contract.methods.transferCross(to, tokenId).send({from: owner});484 // Can transferCross to ethereum address:422485 const result = await collectionEvm.methods.transferCross(receiverCrossEth, tokenId).send({from: owner});486 // Check events:423 const event = result.events.Transfer;487 const event = result.events.Transfer;424 expect(event.address).to.be.equal(collectionAddress);488 expect(event.address).to.be.equal(collectionAddress);425 expect(event.returnValues.from).to.be.equal(owner);489 expect(event.returnValues.from).to.be.equal(owner);426 expect(event.returnValues.to).to.be.equal(receiver);490 expect(event.returnValues.to).to.be.equal(receiverEth);427 expect(event.returnValues.tokenId).to.be.equal(`${tokenId}`);491 expect(event.returnValues.tokenId).to.be.equal(`${tokenId}`);428 }492 429493 // owner has balance = 0:430 {431 const balance = await contract.methods.balanceOf(owner).call();494 const ownerBalance = await collectionEvm.methods.balanceOf(owner).call();432 expect(+balance).to.equal(0);495 expect(+ownerBalance).to.equal(0);433 }496 // receiver owns token:434435 {436 const balance = await contract.methods.balanceOf(receiver).call();497 const receiverBalance = await collectionEvm.methods.balanceOf(receiverEth).call();437 expect(+balance).to.equal(1);498 expect(+receiverBalance).to.equal(1);438 }439 440 {441 const substrateResult = await contract.methods.transferCross(toSubstrate, tokenId).send({from: receiver});499 expect(await helper.nft.getTokenOwner(collection.collectionId, tokenId)).to.deep.eq({Ethereum: receiverEth.toLowerCase()});442 500 }443501 502 {503 // Can transferCross to substrate address:504 const substrateResult = await collectionEvm.methods.transferCross(receiverCrossSub, tokenId).send({from: receiverEth});505 // Check events:444 const event = substrateResult.events.Transfer;506 const event = substrateResult.events.Transfer;445 expect(event.address).to.be.equal(collectionAddress);507 expect(event.address).to.be.equal(collectionAddress);446 expect(event.returnValues.from).to.be.equal(receiver);508 expect(event.returnValues.from).to.be.equal(receiverEth);447 expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(minter.address));509 expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(minter.address));448 expect(event.returnValues.tokenId).to.be.equal(`${tokenId}`);510 expect(event.returnValues.tokenId).to.be.equal(`${tokenId}`);449 }511 450512 // owner has balance = 0:451 {452 const balance = await contract.methods.balanceOf(receiver).call();513 const ownerBalance = await collectionEvm.methods.balanceOf(receiverEth).call();453 expect(+balance).to.equal(0);514 expect(+ownerBalance).to.equal(0);454 }515 // receiver owns token:455456 {457 const balance = await helper.nft.getTokensByAddress(collection.collectionId, {Substrate: minter.address});516 const receiverBalance = await helper.nft.getTokensByAddress(collection.collectionId, {Substrate: minter.address});458 expect(balance).to.be.contain(tokenId);517 expect(receiverBalance).to.contain(tokenId);459 }518 }460 });519 });520521 ['transfer', 'transferCross'].map(testCase => itEth(`Cannot ${testCase} non-owned token`, async ({helper}) => {522 const sender = await helper.eth.createAccountWithBalance(donor);523 const tokenOwner = await helper.eth.createAccountWithBalance(donor);524 const receiverSub = minter;525 const receiverCrossSub = helper.ethCrossAccount.fromKeyringPair(minter);526527 const collection = await helper.nft.mintCollection(minter, {});528 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);529 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', sender);530531 await collection.mintToken(minter, {Ethereum: sender});532 const nonSendersToken = await collection.mintToken(minter, {Ethereum: tokenOwner});533534 // Cannot transferCross someone else's token:535 const receiver = testCase === 'transfer' ? helper.address.substrateToEth(receiverSub.address) : receiverCrossSub;536 await expect(collectionEvm.methods[testCase](receiver, nonSendersToken.tokenId).send({from: sender})).to.be.rejected;537 // Cannot transfer token if it does not exist:538 await expect(collectionEvm.methods[testCase](receiver, 999999).send({from: sender})).to.be.rejected;539 }));461});540});462541463describe('NFT: Fees', () => {542describe('NFT: Fees', () => {501 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));580 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));502 });581 });503582504 itEth('Can perform transferFromCross()', async ({helper, privateKey}) => {583 itEth('Can perform transferFromCross()', async ({helper}) => {505 const collectionMinter = alice;584 const collectionMinter = alice;506 const owner = bob;585 const owner = bob;507 const receiver = charlie;586 const receiver = charlie;tests/src/eth/reFungible.test.tsdiffbeforeafterboth363 });363 });364 364 365 itEth('Can perform transferCross()', async ({helper}) => {365 itEth('Can perform transferCross()', async ({helper}) => {366 const caller = await helper.eth.createAccountWithBalance(donor);366 const sender = await helper.eth.createAccountWithBalance(donor);367 const receiver = await helper.eth.createAccountWithBalance(donor);367 const receiverEth = await helper.eth.createAccountWithBalance(donor);368 const to = helper.ethCrossAccount.fromAddress(receiver);368 const receiverCrossEth = helper.ethCrossAccount.fromAddress(receiverEth);369 const toSubstrate = helper.ethCrossAccount.fromKeyringPair(minter);369 const receiverCrossSub = helper.ethCrossAccount.fromKeyringPair(minter);370370 const collection = await helper.rft.mintCollection(minter, {});371 const collection = await helper.rft.mintCollection(minter, {});371 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);372 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);372 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);373 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'rft', sender);373374374 const {tokenId} = await collection.mintToken(minter, 1n, {Ethereum: caller});375 const token = await collection.mintToken(minter, 50n, {Ethereum: sender});375376376 {377 {378 // Can transferCross to ethereum address:377 const result = await contract.methods.transferCross(to, tokenId).send({from: caller});379 const result = await collectionEvm.methods.transferCross(receiverCrossEth, token.tokenId).send({from: sender});378380 // Check events:379 const event = result.events.Transfer;381 const event = result.events.Transfer;380 expect(event.address).to.equal(collectionAddress);382 expect(event.address).to.equal(collectionAddress);381 expect(event.returnValues.from).to.equal(caller);383 expect(event.returnValues.from).to.equal(sender);382 expect(event.returnValues.to).to.equal(receiver);384 expect(event.returnValues.to).to.equal(receiverEth);383 expect(event.returnValues.tokenId).to.equal(tokenId.toString());385 expect(event.returnValues.tokenId).to.equal(token.tokenId.toString());386 // Sender's balance decreased:387 const senderBalance = await collectionEvm.methods.balanceOf(sender).call();388 expect(+senderBalance).to.equal(0);389 expect(await token.getBalance({Ethereum: sender})).to.eq(0n);390 // Receiver's balance increased:391 const receiverBalance = await collectionEvm.methods.balanceOf(receiverEth).call();392 expect(+receiverBalance).to.equal(1);393 expect(await token.getBalance({Ethereum: receiverEth})).to.eq(50n);384 }394 }385395 386 {396 {387 const balance = await contract.methods.balanceOf(caller).call();397 // Can transferCross to substrate address:388 expect(+balance).to.equal(0);389 }390391 {398 const substrateResult = await collectionEvm.methods.transferCross(receiverCrossSub, token.tokenId).send({from: receiverEth});392 const balance = await contract.methods.balanceOf(receiver).call();399 // Check events:393 expect(+balance).to.equal(1);394 }395 396 {397 const substrateResult = await contract.methods.transferCross(toSubstrate, tokenId).send({from: receiver});398 399400 const event = substrateResult.events.Transfer;400 const event = substrateResult.events.Transfer;401 expect(event.address).to.be.equal(collectionAddress);401 expect(event.address).to.be.equal(collectionAddress);402 expect(event.returnValues.from).to.be.equal(receiver);402 expect(event.returnValues.from).to.be.equal(receiverEth);403 expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(minter.address));403 expect(event.returnValues.to).to.be.equal(helper.address.substrateToEth(minter.address));404 expect(event.returnValues.tokenId).to.be.equal(`${tokenId}`);404 expect(event.returnValues.tokenId).to.be.equal(`${token.tokenId}`);405 }405 // Sender's balance decreased:406407 {408 const balance = await contract.methods.balanceOf(receiver).call();406 const senderBalance = await collectionEvm.methods.balanceOf(receiverEth).call();409 expect(+balance).to.equal(0);407 expect(+senderBalance).to.equal(0);410 }408 expect(await token.getBalance({Ethereum: receiverEth})).to.eq(0n);411409 // Receiver's balance increased:412 {413 const balance = await helper.nft.getTokensByAddress(collection.collectionId, {Substrate: minter.address});410 const receiverBalance = await helper.nft.getTokensByAddress(collection.collectionId, {Substrate: minter.address});414 expect(balance).to.be.contain(tokenId);411 expect(receiverBalance).to.contain(token.tokenId);415 }412 expect(await token.getBalance({Substrate: minter.address})).to.eq(50n);413 }416 });414 });415416 ['transfer', 'transferCross'].map(testCase => itEth(`Cannot ${testCase} non-owned token`, async ({helper}) => {417 const sender = await helper.eth.createAccountWithBalance(donor);418 const tokenOwner = await helper.eth.createAccountWithBalance(donor);419 const receiverSub = minter;420 const receiverCrossSub = helper.ethCrossAccount.fromKeyringPair(minter);421422 const collection = await helper.rft.mintCollection(minter, {});423 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);424 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'rft', sender);425426 await collection.mintToken(minter, 50n, {Ethereum: sender});427 const nonSendersToken = await collection.mintToken(minter, 50n, {Ethereum: tokenOwner});428429 // Cannot transferCross someone else's token:430 const receiver = testCase === 'transfer' ? helper.address.substrateToEth(receiverSub.address) : receiverCrossSub;431 await expect(collectionEvm.methods[testCase](receiver, nonSendersToken.tokenId).send({from: sender})).to.be.rejected;432 // Cannot transfer token if it does not exist:433 await expect(collectionEvm.methods[testCase](receiver, 999999).send({from: sender})).to.be.rejected;434 }));417435418 itEth('transfer event on transfer from partial ownership to full ownership', async ({helper}) => {436 itEth('transfer event on transfer from partial ownership to full ownership', async ({helper}) => {419 const caller = await helper.eth.createAccountWithBalance(donor);437 const caller = await helper.eth.createAccountWithBalance(donor);tests/src/eth/reFungibleToken.test.tsdiffbeforeafterboth227 }227 }228 });228 });229230 [231 'transfer',232 // 'transferCross', // TODO233 ].map(testCase => 234 itEth(`Cannot ${testCase}() non-owned token`, async ({helper}) => {235 const owner = await helper.eth.createAccountWithBalance(donor);236 const receiver = await helper.eth.createAccountWithBalance(donor);237 const collection = await helper.rft.mintCollection(alice);238 const rftOwner = await collection.mintToken(alice, 10n, {Ethereum: owner});239 const rftReceiver = await collection.mintToken(alice, 10n, {Ethereum: receiver});240 const tokenIdNonExist = 9999999;241 242 const tokenAddress1 = helper.ethAddress.fromTokenId(collection.collectionId, rftOwner.tokenId);243 const tokenAddress2 = helper.ethAddress.fromTokenId(collection.collectionId, rftReceiver.tokenId);244 const tokenAddressNonExist = helper.ethAddress.fromTokenId(collection.collectionId, tokenIdNonExist);245 const tokenEvmOwner = helper.ethNativeContract.rftToken(tokenAddress1, owner);246 const tokenEvmReceiver = helper.ethNativeContract.rftToken(tokenAddress2, owner);247 const tokenEvmNonExist = helper.ethNativeContract.rftToken(tokenAddressNonExist, owner);248 249 // 1. Can transfer zero amount (EIP-20):250 await tokenEvmOwner.methods[testCase](receiver, 0).send({from: owner});251 // 2. Cannot transfer non-owned token:252 await expect(tokenEvmReceiver.methods[testCase](owner, 0).send({from: owner})).to.be.rejected;253 await expect(tokenEvmReceiver.methods[testCase](owner, 5).send({from: owner})).to.be.rejected;254 // 3. Cannot transfer non-existing token:255 await expect(tokenEvmNonExist.methods[testCase](owner, 0).send({from: owner})).to.be.rejected;256 await expect(tokenEvmNonExist.methods[testCase](owner, 5).send({from: owner})).to.be.rejected;257258 // 4. Storage is not corrupted:259 expect(await rftOwner.getTop10Owners()).to.deep.eq([{Ethereum: owner.toLowerCase()}]);260 expect(await rftReceiver.getTop10Owners()).to.deep.eq([{Ethereum: receiver.toLowerCase()}]);261 expect(await helper.rft.getTokenTop10Owners(collection.collectionId, tokenIdNonExist)).to.deep.eq([]); // TODO262263 // 4.1 Tokens can be transferred:264 await tokenEvmOwner.methods[testCase](receiver, 10).send({from: owner});265 await tokenEvmReceiver.methods[testCase](owner, 10).send({from: receiver});266 expect(await rftOwner.getTop10Owners()).to.deep.eq([{Ethereum: receiver.toLowerCase()}]);267 expect(await rftReceiver.getTop10Owners()).to.deep.eq([{Ethereum: owner.toLowerCase()}]);268 }));229269230 itEth('Can perform repartition()', async ({helper}) => {270 itEth('Can perform repartition()', async ({helper}) => {231 const owner = await helper.eth.createAccountWithBalance(donor);271 const owner = await helper.eth.createAccountWithBalance(donor);tests/src/eth/tokenProperties.test.tsdiffbeforeafterboth120 const address = helper.ethAddress.fromCollectionId(collection.collectionId);120 const address = helper.ethAddress.fromCollectionId(collection.collectionId);121 const contract = helper.ethNativeContract.collection(address, mode, caller);121 const contract = helper.ethNativeContract.collection(address, mode, caller);122 122 123 expect(await contract.methods.tokenProperties(token.tokenId, []).call()).to.be.deep.equal([]);123 expect(await contract.methods.properties(token.tokenId, []).call()).to.be.deep.equal([]);124124125 await contract.methods.setProperties(token.tokenId, properties).send({from: caller});125 await contract.methods.setProperties(token.tokenId, properties).send({from: caller});126126127 const values = await token.getProperties(properties.map(p => p.key));127 const values = await token.getProperties(properties.map(p => p.key));128 expect(values).to.be.deep.equal(properties.map(p => { return {key: p.key, value: p.value.toString()}; }));128 expect(values).to.be.deep.equal(properties.map(p => { return {key: p.key, value: p.value.toString()}; }));129 129 130 expect(await contract.methods.tokenProperties(token.tokenId, []).call()).to.be.like(properties130 expect(await contract.methods.properties(token.tokenId, []).call()).to.be.like(properties131 .map(p => { return helper.ethProperty.property(p.key, p.value.toString()); }));131 .map(p => { return helper.ethProperty.property(p.key, p.value.toString()); }));132 132 133 expect(await contract.methods.tokenProperties(token.tokenId, [properties[0].key]).call())133 expect(await contract.methods.properties(token.tokenId, [properties[0].key]).call())134 .to.be.like([helper.ethProperty.property(properties[0].key, properties[0].value.toString())]);134 .to.be.like([helper.ethProperty.property(properties[0].key, properties[0].value.toString())]);135 }135 }136 136 tests/src/eth/util/playgrounds/unique.dev.tsdiffbeforeafterboth103103104 contractHelpers(caller: string): Contract {104 contractHelpers(caller: string): Contract {105 const web3 = this.helper.getWeb3();105 const web3 = this.helper.getWeb3();106 return new web3.eth.Contract(contractHelpersAbi as any, '0x842899ECF380553E8a4de75bF534cdf6fBF64049', {from: caller, gas: this.helper.eth.DEFAULT_GAS});106 return new web3.eth.Contract(contractHelpersAbi as any, this.helper.getApi().consts.evmContractHelpers.contractAddress.toString(), {from: caller, gas: this.helper.eth.DEFAULT_GAS});107 }107 }108108109 collectionHelpers(caller: string) {109 collectionHelpers(caller: string) {110 const web3 = this.helper.getWeb3();110 const web3 = this.helper.getWeb3();111 return new web3.eth.Contract(collectionHelpersAbi as any, '0x6c4e9fe1ae37a41e93cee429e8e1881abdcbb54f', {from: caller, gas: this.helper.eth.DEFAULT_GAS});111 return new web3.eth.Contract(collectionHelpersAbi as any, this.helper.getApi().consts.common.contractAddress.toString(), {from: caller, gas: this.helper.eth.DEFAULT_GAS});112 }112 }113113114 collection(address: string, mode: TCollectionMode, caller?: string, mergeDeprecated = false): Contract {114 collection(address: string, mode: TCollectionMode, caller?: string, mergeDeprecated = false): Contract {186 return await this.helper.callRpc('api.rpc.eth.call', [{from: signer, to: contractAddress, data: abi}]);186 return await this.helper.callRpc('api.rpc.eth.call', [{from: signer, to: contractAddress, data: abi}]);187 }187 }188188189 async createCollecion(functionName: string, signer: string, name: string, description: string, tokenPrefix: string): Promise<{ collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {189 async createCollecion(functionName: 'createNFTCollection' | 'createRFTCollection' | 'createFTCollection', signer: string, name: string, description: string, tokenPrefix: string, decimals?: number): Promise<{ collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {190 const collectionCreationPrice = this.helper.balance.getCollectionCreationPrice();190 const collectionCreationPrice = this.helper.balance.getCollectionCreationPrice();191 const collectionHelper = this.helper.ethNativeContract.collectionHelpers(signer);191 const collectionHelper = this.helper.ethNativeContract.collectionHelpers(signer);192192193 const functionParams = functionName === 'createFTCollection' ? [name, decimals, description, tokenPrefix] : [name, description, tokenPrefix];193 const result = await collectionHelper.methods[functionName](name, description, tokenPrefix).send({value: Number(collectionCreationPrice)});194 const result = await collectionHelper.methods[functionName](...functionParams).send({value: Number(collectionCreationPrice)});194195195 const collectionAddress = this.helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);196 const collectionAddress = this.helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);196 const collectionId = this.helper.ethAddress.extractCollectionId(collectionAddress);197 const collectionId = this.helper.ethAddress.extractCollectionId(collectionAddress);217 return this.createCollecion('createRFTCollection', signer, name, description, tokenPrefix);218 return this.createCollecion('createRFTCollection', signer, name, description, tokenPrefix);218 }219 }219220220 async createFungibleCollection(signer: string, name: string, decimals: number, description: string, tokenPrefix: string): Promise<{ collectionId: number, collectionAddress: string, events: NormalizedEvent[]}> {221 createFungibleCollection(signer: string, name: string, decimals: number, description: string, tokenPrefix: string): Promise<{ collectionId: number, collectionAddress: string, events: NormalizedEvent[]}> {221 const collectionCreationPrice = this.helper.balance.getCollectionCreationPrice();222 const collectionHelper = this.helper.ethNativeContract.collectionHelpers(signer);223224 const result = await collectionHelper.methods.createFTCollection(name, decimals, description, tokenPrefix).send({value: Number(collectionCreationPrice)});222 return this.createCollecion('createFTCollection', signer, name, description, tokenPrefix, decimals);225 const collectionAddress = this.helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);226 const collectionId = this.helper.ethAddress.extractCollectionId(collectionAddress);227228 const events = this.helper.eth.normalizeEvents(result.events);229230 return {collectionId, collectionAddress, events};231 }223 }232224233 async createERC721MetadataCompatibleRFTCollection(signer: string, name: string, description: string, tokenPrefix: string, baseUri: string): Promise<{collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {225 async createERC721MetadataCompatibleRFTCollection(signer: string, name: string, description: string, tokenPrefix: string, baseUri: string): Promise<{collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {tests/src/fungible.test.tsdiffbeforeafterboth15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.161617import {IKeyringPair} from '@polkadot/types/types';17import {IKeyringPair} from '@polkadot/types/types';18import {itSub, usingPlaygrounds, expect} from './util';18import {itSub, usingPlaygrounds, expect, requirePalletsOrSkip, Pallets} from './util';191920const U128_MAX = (1n << 128n) - 1n;20const U128_MAX = (1n << 128n) - 1n;2121146 });146 });147});147});148149describe('Fungible negative tests', () => {150 let donor: IKeyringPair;151 let alice: IKeyringPair;152 let bob: IKeyringPair;153 let charlie: IKeyringPair;154155 before(async function() {156 await usingPlaygrounds(async (helper, privateKey) => {157 requirePalletsOrSkip(this, helper, [Pallets.Fungible]);158159 donor = await privateKey({filename: __filename});160 [alice, bob, charlie] = await helper.arrange.createAccounts([100n, 100n, 100n], donor);161 });162 });163164 itSub('Cannot transfer incorrect amount of tokens', async ({helper}) => {165 const collection = await helper.ft.mintCollection(alice, {name: 'test', description: 'test', tokenPrefix: 'test'});166 const nonExistingCollection = helper.ft.getCollectionObject(99999);167 await collection.mint(alice, 10n, {Substrate: bob.address});168169 // 1. Alice cannot transfer more than 0 tokens if balance low:170 await expect(collection.transfer(alice, {Substrate: charlie.address}, 1n)).to.be.rejectedWith('common.TokenValueTooLow');171 await expect(collection.transfer(alice, {Substrate: charlie.address}, 100n)).to.be.rejectedWith('common.TokenValueTooLow');172 173 // 2. Alice cannot transfer non-existing token:174 await expect(nonExistingCollection.transfer(alice, {Substrate: charlie.address}, 0n)).to.be.rejectedWith('common.CollectionNotFound');175 await expect(nonExistingCollection.transfer(alice, {Substrate: charlie.address}, 1n)).to.be.rejectedWith('common.CollectionNotFound');176 177 // 3. Zero transfer allowed (EIP-20):178 await collection.transfer(bob, {Substrate: charlie.address}, 0n);179 // 3.1 even if the balance = 0180 await collection.transfer(alice, {Substrate: charlie.address}, 0n);181182 expect(await collection.getBalance({Substrate: alice.address})).to.eq(0n);183 expect(await collection.getBalance({Substrate: bob.address})).to.eq(10n);184 expect(await collection.getBalance({Substrate: charlie.address})).to.eq(0n);185 });186});148187tests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth8import type { ApiTypes, AugmentedConst } from '@polkadot/api-base/types';8import type { ApiTypes, AugmentedConst } from '@polkadot/api-base/types';9import type { Option, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';9import type { Option, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { Codec } from '@polkadot/types-codec/types';10import type { Codec } from '@polkadot/types-codec/types';11import type { Perbill, Permill, Weight } from '@polkadot/types/interfaces/runtime';11import type { H160, Perbill, Permill, Weight } from '@polkadot/types/interfaces/runtime';12import type { FrameSupportPalletId, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, XcmV1MultiLocation } from '@polkadot/types/lookup';12import type { FrameSupportPalletId, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsCollectionLimits, XcmV1MultiLocation } from '@polkadot/types/lookup';131314export type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;14export type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;151569 * Set price to create a collection.69 * Set price to create a collection.70 **/70 **/71 collectionCreationPrice: u128 & AugmentedConst<ApiType>;71 collectionCreationPrice: u128 & AugmentedConst<ApiType>;72 /**73 * Address under which the CollectionHelper contract would be available.74 **/75 contractAddress: H160 & AugmentedConst<ApiType>;72 /**76 /**73 * Generic const77 * Generic const74 **/78 **/82 **/86 **/83 [key: string]: Codec;87 [key: string]: Codec;84 };88 };89 evmContractHelpers: {90 /**91 * Address, under which magic contract will be available92 **/93 contractAddress: H160 & AugmentedConst<ApiType>;94 /**95 * Generic const96 **/97 [key: string]: Codec;98 };85 inflation: {99 inflation: {86 /**100 /**87 * Number of blocks that pass between treasury balance updates due to inflation101 * Number of blocks that pass between treasury balance updates due to inflation93 [key: string]: Codec;107 [key: string]: Codec;94 };108 };95 scheduler: {109 scheduler: {96 /**110 /**97 * The maximum weight that may be scheduled per block for any dispatchables of less111 * The maximum weight that may be scheduled per block for any dispatchables.98 * priority than `schedule::HARD_DEADLINE`.112 **/99 **/100 maximumWeight: Weight & AugmentedConst<ApiType>;113 maximumWeight: Weight & AugmentedConst<ApiType>;101 /**114 /**102 * The maximum number of scheduled calls in the queue for a single block.115 * The maximum number of scheduled calls in the queue for a single block.103 * Not strictly enforced, but used for weight estimation.116 **/104 **/105 maxScheduledPerBlock: u32 & AugmentedConst<ApiType>;117 maxScheduledPerBlock: u32 & AugmentedConst<ApiType>;106 /**118 /**107 * Generic const119 * Generic const233 **/245 **/234 [key: string]: Codec;246 [key: string]: Codec;235 };247 };248 unique: {249 /**250 * Maximum admins per collection.251 **/252 collectionAdminsLimit: u32 & AugmentedConst<ApiType>;253 /**254 * Default FT collection limit.255 **/256 ftDefaultCollectionLimits: UpDataStructsCollectionLimits & AugmentedConst<ApiType>;257 /**258 * Maximal length of a collection description.259 **/260 maxCollectionDescriptionLength: u32 & AugmentedConst<ApiType>;261 /**262 * Maximal length of a collection name.263 **/264 maxCollectionNameLength: u32 & AugmentedConst<ApiType>;265 /**266 * Maximum size for all collection properties.267 **/268 maxCollectionPropertiesSize: u32 & AugmentedConst<ApiType>;269 /**270 * A maximum number of token properties.271 **/272 maxPropertiesPerItem: u32 & AugmentedConst<ApiType>;273 /**274 * Maximal length of a property key.275 **/276 maxPropertyKeyLength: u32 & AugmentedConst<ApiType>;277 /**278 * Maximal length of a property value.279 **/280 maxPropertyValueLength: u32 & AugmentedConst<ApiType>;281 /**282 * Maximal length of a token prefix.283 **/284 maxTokenPrefixLength: u32 & AugmentedConst<ApiType>;285 /**286 * Maximum size of all token properties.287 **/288 maxTokenPropertiesSize: u32 & AugmentedConst<ApiType>;289 /**290 * A maximum number of levels of depth in the token nesting tree.291 **/292 nestingBudget: u32 & AugmentedConst<ApiType>;293 /**294 * Default NFT collection limit.295 **/296 nftDefaultCollectionLimits: UpDataStructsCollectionLimits & AugmentedConst<ApiType>;297 /**298 * Default RFT collection limit.299 **/300 rftDefaultCollectionLimits: UpDataStructsCollectionLimits & AugmentedConst<ApiType>;301 /**302 * Generic const303 **/304 [key: string]: Codec;305 };236 vesting: {306 vesting: {237 /**307 /**238 * The minimum amount transferred to call `vested_transfer`.308 * The minimum amount transferred to call `vested_transfer`.tests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth264 * Calculating total fee overflowed264 * Calculating total fee overflowed265 **/265 **/266 FeeOverflow: AugmentedError<ApiType>;266 FeeOverflow: AugmentedError<ApiType>;267 /**268 * Gas limit is too high.269 **/270 GasLimitTooHigh: AugmentedError<ApiType>;271 /**272 * Gas limit is too low.273 **/274 GasLimitTooLow: AugmentedError<ApiType>;267 /**275 /**268 * Gas price is too low.276 * Gas price is too low.269 **/277 **/276 * Calculating total payment overflowed284 * Calculating total payment overflowed277 **/285 **/278 PaymentOverflow: AugmentedError<ApiType>;286 PaymentOverflow: AugmentedError<ApiType>;287 /**288 * EVM reentrancy289 **/290 Reentrancy: AugmentedError<ApiType>;291 /**292 * Undefined error.293 **/294 Undefined: AugmentedError<ApiType>;279 /**295 /**280 * Withdraw fee failed296 * Withdraw fee failed281 **/297 **/320 * Can only migrate to empty address.336 * Can only migrate to empty address.321 **/337 **/322 AccountNotEmpty: AugmentedError<ApiType>;338 AccountNotEmpty: AugmentedError<ApiType>;339 /**340 * Failed to decode event bytes341 **/342 BadEvent: AugmentedError<ApiType>;323 /**343 /**324 * Generic error344 * Generic error325 **/345 **/643 [key: string]: AugmentedError<ApiType>;663 [key: string]: AugmentedError<ApiType>;644 };664 };645 scheduler: {665 scheduler: {666 /**667 * There is no place for a new task in the agenda668 **/669 AgendaIsExhausted: AugmentedError<ApiType>;646 /**670 /**647 * Failed to schedule a call671 * Failed to schedule a call648 **/672 **/649 FailedToSchedule: AugmentedError<ApiType>;673 FailedToSchedule: AugmentedError<ApiType>;674 /**675 * Attempt to use a non-named function on a named task.676 **/677 Named: AugmentedError<ApiType>;650 /**678 /**651 * Cannot find the scheduled call.679 * Cannot find the scheduled call.652 **/680 **/653 NotFound: AugmentedError<ApiType>;681 NotFound: AugmentedError<ApiType>;654 /**682 /**655 * Reschedule failed because it does not change scheduled time.683 * Scheduled call preimage is not found656 **/684 **/657 RescheduleNoChange: AugmentedError<ApiType>;685 PreimageNotFound: AugmentedError<ApiType>;686 /**687 * Scheduled call is corrupted688 **/689 ScheduledCallCorrupted: AugmentedError<ApiType>;658 /**690 /**659 * Given target block number is in the past.691 * Given target block number is in the past.660 **/692 **/661 TargetBlockNumberInPast: AugmentedError<ApiType>;693 TargetBlockNumberInPast: AugmentedError<ApiType>;694 /**695 * Scheduled call is too big696 **/697 TooBigScheduledCall: AugmentedError<ApiType>;662 /**698 /**663 * Generic error699 * Generic error664 **/700 **/tests/src/interfaces/augment-api-events.tsdiffbeforeafterboth6import '@polkadot/api-base/types/events';6import '@polkadot/api-base/types/events';778import type { ApiTypes, AugmentedEvent } from '@polkadot/api-base/types';8import type { ApiTypes, AugmentedEvent } from '@polkadot/api-base/types';9import type { Bytes, Null, Option, Result, U256, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';9import type { Bytes, Null, Option, Result, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';10import type { ITuple } from '@polkadot/types-codec/types';10import type { ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, H160, H256, Weight } from '@polkadot/types/interfaces/runtime';11import type { AccountId32, H160, H256, Weight } from '@polkadot/types/interfaces/runtime';12import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportDispatchDispatchInfo, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetMultiAssets, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';12import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportDispatchDispatchInfo, FrameSupportTokensMiscBalanceStatus, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetMultiAssets, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';131314export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;14export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;1515203 [key: string]: AugmentedEvent<ApiType>;203 [key: string]: AugmentedEvent<ApiType>;204 };204 };205 ethereum: {205 ethereum: {206 /**206 /**207 * An ethereum transaction was successfully executed. [from, to/contract_address, transaction_hash, exit_reason]207 * An ethereum transaction was successfully executed.208 **/208 **/209 Executed: AugmentedEvent<ApiType, [H160, H160, H256, EvmCoreErrorExitReason]>;209 Executed: AugmentedEvent<ApiType, [from: H160, to: H160, transactionHash: H256, exitReason: EvmCoreErrorExitReason], { from: H160, to: H160, transactionHash: H256, exitReason: EvmCoreErrorExitReason }>;210 /**210 /**211 * Generic event211 * Generic event212 **/212 **/213 [key: string]: AugmentedEvent<ApiType>;213 [key: string]: AugmentedEvent<ApiType>;214 };214 };215 evm: {215 evm: {216 /**217 * A deposit has been made at a given address. \[sender, address, value\]218 **/219 BalanceDeposit: AugmentedEvent<ApiType, [AccountId32, H160, U256]>;220 /**221 * A withdrawal has been made from a given address. \[sender, address, value\]222 **/223 BalanceWithdraw: AugmentedEvent<ApiType, [AccountId32, H160, U256]>;224 /**216 /**225 * A contract has been created at given \[address\].217 * A contract has been created at given address.226 **/218 **/227 Created: AugmentedEvent<ApiType, [H160]>;219 Created: AugmentedEvent<ApiType, [address: H160], { address: H160 }>;228 /**220 /**229 * A \[contract\] was attempted to be created, but the execution failed.221 * A contract was attempted to be created, but the execution failed.230 **/222 **/231 CreatedFailed: AugmentedEvent<ApiType, [H160]>;223 CreatedFailed: AugmentedEvent<ApiType, [address: H160], { address: H160 }>;232 /**224 /**233 * A \[contract\] has been executed successfully with states applied.225 * A contract has been executed successfully with states applied.234 **/226 **/235 Executed: AugmentedEvent<ApiType, [H160]>;227 Executed: AugmentedEvent<ApiType, [address: H160], { address: H160 }>;236 /**228 /**237 * A \[contract\] has been executed with errors. States are reverted with only gas fees applied.229 * A contract has been executed with errors. States are reverted with only gas fees applied.238 **/230 **/239 ExecutedFailed: AugmentedEvent<ApiType, [H160]>;231 ExecutedFailed: AugmentedEvent<ApiType, [address: H160], { address: H160 }>;240 /**232 /**241 * Ethereum events from contracts.233 * Ethereum events from contracts.242 **/234 **/243 Log: AugmentedEvent<ApiType, [EthereumLog]>;235 Log: AugmentedEvent<ApiType, [log: EthereumLog], { log: EthereumLog }>;244 /**236 /**245 * Generic event237 * Generic event246 **/238 **/264 **/256 **/265 [key: string]: AugmentedEvent<ApiType>;257 [key: string]: AugmentedEvent<ApiType>;266 };258 };259 evmMigration: {260 /**261 * This event is used in benchmarking and can be used for tests262 **/263 TestEvent: AugmentedEvent<ApiType, []>;264 /**265 * Generic event266 **/267 [key: string]: AugmentedEvent<ApiType>;268 };267 foreignAssets: {269 foreignAssets: {268 /**270 /**269 * The asset registered.271 * The asset registered.479 /**481 /**480 * The call for the provided hash was not found so the task has been aborted.482 * The call for the provided hash was not found so the task has been aborted.481 **/483 **/482 CallLookupFailed: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError }>;484 CallUnavailable: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed> }>;483 /**485 /**484 * Canceled some task.486 * Canceled some task.485 **/487 **/488 * Dispatched some task.490 * Dispatched some task.489 **/491 **/490 Dispatched: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError> }>;492 Dispatched: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError> }>;493 /**494 * The given task can never be executed since it is overweight.495 **/496 PermanentlyOverweight: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed> }>;491 /**497 /**492 * Scheduled task's priority has changed498 * Scheduled task's priority has changed493 **/499 **/494 PriorityChanged: AugmentedEvent<ApiType, [when: u32, index: u32, priority: u8], { when: u32, index: u32, priority: u8 }>;500 PriorityChanged: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, priority: u8], { task: ITuple<[u32, u32]>, priority: u8 }>;495 /**501 /**496 * Scheduled some task.502 * Scheduled some task.497 **/503 **/560 [key: string]: AugmentedEvent<ApiType>;566 [key: string]: AugmentedEvent<ApiType>;561 };567 };562 testUtils: {568 testUtils: {569 BatchCompleted: AugmentedEvent<ApiType, []>;563 ShouldRollback: AugmentedEvent<ApiType, []>;570 ShouldRollback: AugmentedEvent<ApiType, []>;564 ValueIsSet: AugmentedEvent<ApiType, []>;571 ValueIsSet: AugmentedEvent<ApiType, []>;565 /**572 /**tests/src/interfaces/augment-api-query.tsdiffbeforeafterboth9import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';9import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';10import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, H160, H256, Weight } from '@polkadot/types/interfaces/runtime';11import type { AccountId32, H160, H256, Weight } from '@polkadot/types/interfaces/runtime';12import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';12import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerV2BlockAgenda, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';13import type { Observable } from '@polkadot/types/types';13import type { Observable } from '@polkadot/types/types';141415export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;15export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;681 /**681 /**682 * Items to be executed, indexed by the block number that they should be executed on.682 * Items to be executed, indexed by the block number that they should be executed on.683 **/683 **/684 agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUniqueSchedulerScheduledV3>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;684 agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<PalletUniqueSchedulerV2BlockAgenda>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;685 /**686 * It contains the block number from which we should service tasks.687 * It's used for delaying the servicing of future blocks' agendas if we had overweight tasks.688 **/689 incompleteSince: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>;685 /**690 /**686 * Lookup from identity to the block number and index of the task.691 * Lookup from a name to the block number and index of the task.687 **/692 **/688 lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & QueryableStorageEntry<ApiType, [U8aFixed]>;693 lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & QueryableStorageEntry<ApiType, [U8aFixed]>;689 /**694 /**690 * Generic query695 * Generic querytests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth9import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';9import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';10import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill, Weight } from '@polkadot/types/interfaces/runtime';11import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill, Weight } from '@polkadot/types/interfaces/runtime';12import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';12import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumLog, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';131314export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;14export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;15export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;15export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;294 * after this call.294 * after this call.295 **/295 **/296 finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;296 finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;297 /**298 * Create ethereum events attached to the fake transaction299 **/300 insertEthLogs: AugmentedSubmittable<(logs: Vec<EthereumLog> | (EthereumLog | { address?: any; topics?: any; data?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<EthereumLog>]>;301 /**302 * Create substrate events303 **/304 insertEvents: AugmentedSubmittable<(events: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;297 /**305 /**298 * Insert items into contract storage, this method can be called306 * Insert items into contract storage, this method can be called299 * multiple times307 * multiple times830 [key: string]: SubmittableExtrinsicFunction<ApiType>;838 [key: string]: SubmittableExtrinsicFunction<ApiType>;831 };839 };832 scheduler: {840 scheduler: {833 /**841 /**834 * Cancel a named scheduled task.842 * Cancel an anonymously scheduled task.835 **/843 * 844 * The `T::OriginPrivilegeCmp` decides whether the given origin is allowed to cancel the task or not.845 **/846 cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;847 /**848 * Cancel a named scheduled task.849 * 850 * The `T::OriginPrivilegeCmp` decides whether the given origin is allowed to cancel the task or not.851 **/836 cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;852 cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;853 /**854 * Change a named task's priority.855 * 856 * Only the `T::PrioritySetOrigin` is allowed to change the task's priority.857 **/837 changeNamedPriority: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u8]>;858 changeNamedPriority: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u8]>;838 /**859 /**839 * Schedule a named task.860 * Anonymously schedule a task.840 **/861 * 862 * Only `T::ScheduleOrigin` is allowed to schedule a task.863 * Only `T::PrioritySetOrigin` is allowed to set the task's priority.864 **/865 schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[u32, u32]>>, Option<u8>, Call]>;866 /**867 * Anonymously schedule a task after a delay.868 * 869 * # <weight>870 * Same as [`schedule`].871 * # </weight>872 **/873 scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[u32, u32]>>, Option<u8>, Call]>;874 /**875 * Schedule a named task.876 * 877 * Only `T::ScheduleOrigin` is allowed to schedule a task.878 * Only `T::PrioritySetOrigin` is allowed to set the task's priority.879 **/841 scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, FrameSupportScheduleMaybeHashed]>;880 scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, Call]>;842 /**881 /**843 * Schedule a named task after a delay.882 * Schedule a named task after a delay.844 * 883 * 845 * # <weight>884 * Only `T::ScheduleOrigin` is allowed to schedule a task.885 * Only `T::PrioritySetOrigin` is allowed to set the task's priority.886 * 887 * # <weight>846 * Same as [`schedule_named`](Self::schedule_named).888 * Same as [`schedule_named`](Self::schedule_named).847 * # </weight>889 * # </weight>848 **/890 **/849 scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, FrameSupportScheduleMaybeHashed]>;891 scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, Call]>;850 /**892 /**851 * Generic tx893 * Generic tx852 **/894 **/986 [key: string]: SubmittableExtrinsicFunction<ApiType>;1028 [key: string]: SubmittableExtrinsicFunction<ApiType>;987 };1029 };988 testUtils: {1030 testUtils: {1031 batchAll: AugmentedSubmittable<(calls: Vec<Call> | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Call>]>;989 enable: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1032 enable: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;990 incTestValue: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1033 incTestValue: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;991 justTakeFee: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1034 justTakeFee: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;tests/src/interfaces/augment-types.tsdiffbeforeafterboth5// this is required to allow for ambient/previous definitions5// this is required to allow for ambient/previous definitions6import '@polkadot/types/types/registry';6import '@polkadot/types/types/registry';778import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, 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, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';8import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerV2BlockAgenda, PalletUniqueSchedulerV2Call, PalletUniqueSchedulerV2Error, PalletUniqueSchedulerV2Event, PalletUniqueSchedulerV2Scheduled, PalletUniqueSchedulerV2ScheduledCall, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, 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, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';9import type { Data, StorageKey } from '@polkadot/types';9import type { Data, StorageKey } from '@polkadot/types';10import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';10import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';11import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';11import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';526 FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;526 FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;527 FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;527 FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;528 FrameSupportPalletId: FrameSupportPalletId;528 FrameSupportPalletId: FrameSupportPalletId;529 FrameSupportScheduleLookupError: FrameSupportScheduleLookupError;530 FrameSupportScheduleMaybeHashed: FrameSupportScheduleMaybeHashed;531 FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;529 FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;532 FrameSystemAccountInfo: FrameSystemAccountInfo;530 FrameSystemAccountInfo: FrameSystemAccountInfo;533 FrameSystemCall: FrameSystemCall;531 FrameSystemCall: FrameSystemCall;854 PalletEvmEvent: PalletEvmEvent;852 PalletEvmEvent: PalletEvmEvent;855 PalletEvmMigrationCall: PalletEvmMigrationCall;853 PalletEvmMigrationCall: PalletEvmMigrationCall;856 PalletEvmMigrationError: PalletEvmMigrationError;854 PalletEvmMigrationError: PalletEvmMigrationError;855 PalletEvmMigrationEvent: PalletEvmMigrationEvent;857 PalletForeignAssetsAssetIds: PalletForeignAssetsAssetIds;856 PalletForeignAssetsAssetIds: PalletForeignAssetsAssetIds;858 PalletForeignAssetsModuleAssetMetadata: PalletForeignAssetsModuleAssetMetadata;857 PalletForeignAssetsModuleAssetMetadata: PalletForeignAssetsModuleAssetMetadata;859 PalletForeignAssetsModuleCall: PalletForeignAssetsModuleCall;858 PalletForeignAssetsModuleCall: PalletForeignAssetsModuleCall;902 PalletUniqueCall: PalletUniqueCall;901 PalletUniqueCall: PalletUniqueCall;903 PalletUniqueError: PalletUniqueError;902 PalletUniqueError: PalletUniqueError;904 PalletUniqueRawEvent: PalletUniqueRawEvent;903 PalletUniqueRawEvent: PalletUniqueRawEvent;905 PalletUniqueSchedulerCall: PalletUniqueSchedulerCall;904 PalletUniqueSchedulerV2BlockAgenda: PalletUniqueSchedulerV2BlockAgenda;906 PalletUniqueSchedulerError: PalletUniqueSchedulerError;905 PalletUniqueSchedulerV2Call: PalletUniqueSchedulerV2Call;907 PalletUniqueSchedulerEvent: PalletUniqueSchedulerEvent;906 PalletUniqueSchedulerV2Error: PalletUniqueSchedulerV2Error;908 PalletUniqueSchedulerScheduledV3: PalletUniqueSchedulerScheduledV3;907 PalletUniqueSchedulerV2Event: PalletUniqueSchedulerV2Event;908 PalletUniqueSchedulerV2Scheduled: PalletUniqueSchedulerV2Scheduled;909 PalletUniqueSchedulerV2ScheduledCall: PalletUniqueSchedulerV2ScheduledCall;909 PalletVersion: PalletVersion;910 PalletVersion: PalletVersion;910 PalletXcmCall: PalletXcmCall;911 PalletXcmCall: PalletXcmCall;911 PalletXcmError: PalletXcmError;912 PalletXcmError: PalletXcmError;tests/src/interfaces/default/types.tsdiffbeforeafterboth556/** @name FrameSupportPalletId */556/** @name FrameSupportPalletId */557export interface FrameSupportPalletId extends U8aFixed {}557export interface FrameSupportPalletId extends U8aFixed {}558559/** @name FrameSupportScheduleLookupError */560export interface FrameSupportScheduleLookupError extends Enum {561 readonly isUnknown: boolean;562 readonly isBadFormat: boolean;563 readonly type: 'Unknown' | 'BadFormat';564}565566/** @name FrameSupportScheduleMaybeHashed */567export interface FrameSupportScheduleMaybeHashed extends Enum {568 readonly isValue: boolean;569 readonly asValue: Call;570 readonly isHash: boolean;571 readonly asHash: H256;572 readonly type: 'Value' | 'Hash';573}574558575/** @name FrameSupportTokensMiscBalanceStatus */559/** @name FrameSupportTokensMiscBalanceStatus */576export interface FrameSupportTokensMiscBalanceStatus extends Enum {560export interface FrameSupportTokensMiscBalanceStatus extends Enum {1347/** @name PalletEthereumEvent */1331/** @name PalletEthereumEvent */1348export interface PalletEthereumEvent extends Enum {1332export interface PalletEthereumEvent extends Enum {1349 readonly isExecuted: boolean;1333 readonly isExecuted: boolean;1350 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;1334 readonly asExecuted: {1335 readonly from: H160;1336 readonly to: H160;1337 readonly transactionHash: H256;1338 readonly exitReason: EvmCoreErrorExitReason;1339 } & Struct;1351 readonly type: 'Executed';1340 readonly type: 'Executed';1352}1341}135313421457 readonly isWithdrawFailed: boolean;1446 readonly isWithdrawFailed: boolean;1458 readonly isGasPriceTooLow: boolean;1447 readonly isGasPriceTooLow: boolean;1459 readonly isInvalidNonce: boolean;1448 readonly isInvalidNonce: boolean;1449 readonly isGasLimitTooLow: boolean;1450 readonly isGasLimitTooHigh: boolean;1451 readonly isUndefined: boolean;1452 readonly isReentrancy: boolean;1460 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';1453 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce' | 'GasLimitTooLow' | 'GasLimitTooHigh' | 'Undefined' | 'Reentrancy';1461}1454}146214551463/** @name PalletEvmEvent */1456/** @name PalletEvmEvent */1464export interface PalletEvmEvent extends Enum {1457export interface PalletEvmEvent extends Enum {1465 readonly isLog: boolean;1458 readonly isLog: boolean;1466 readonly asLog: EthereumLog;1459 readonly asLog: {1460 readonly log: EthereumLog;1461 } & Struct;1467 readonly isCreated: boolean;1462 readonly isCreated: boolean;1468 readonly asCreated: H160;1463 readonly asCreated: {1464 readonly address: H160;1465 } & Struct;1469 readonly isCreatedFailed: boolean;1466 readonly isCreatedFailed: boolean;1470 readonly asCreatedFailed: H160;1467 readonly asCreatedFailed: {1468 readonly address: H160;1469 } & Struct;1471 readonly isExecuted: boolean;1470 readonly isExecuted: boolean;1472 readonly asExecuted: H160;1471 readonly asExecuted: {1472 readonly address: H160;1473 } & Struct;1473 readonly isExecutedFailed: boolean;1474 readonly isExecutedFailed: boolean;1474 readonly asExecutedFailed: H160;1475 readonly isBalanceDeposit: boolean;1475 readonly asExecutedFailed: {1476 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;1476 readonly address: H160;1477 readonly isBalanceWithdraw: boolean;1477 } & Struct;1478 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;1479 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1478 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed';1480}1479}148114801482/** @name PalletEvmMigrationCall */1481/** @name PalletEvmMigrationCall */1495 readonly address: H160;1494 readonly address: H160;1496 readonly code: Bytes;1495 readonly code: Bytes;1497 } & Struct;1496 } & Struct;1497 readonly isInsertEthLogs: boolean;1498 readonly asInsertEthLogs: {1499 readonly logs: Vec<EthereumLog>;1500 } & Struct;1501 readonly isInsertEvents: boolean;1502 readonly asInsertEvents: {1503 readonly events: Vec<Bytes>;1504 } & Struct;1498 readonly type: 'Begin' | 'SetData' | 'Finish';1505 readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents';1499}1506}150015071501/** @name PalletEvmMigrationError */1508/** @name PalletEvmMigrationError */1502export interface PalletEvmMigrationError extends Enum {1509export interface PalletEvmMigrationError extends Enum {1503 readonly isAccountNotEmpty: boolean;1510 readonly isAccountNotEmpty: boolean;1504 readonly isAccountIsNotMigrating: boolean;1511 readonly isAccountIsNotMigrating: boolean;1512 readonly isBadEvent: boolean;1505 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';1513 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating' | 'BadEvent';1506}1514}15151516/** @name PalletEvmMigrationEvent */1517export interface PalletEvmMigrationEvent extends Enum {1518 readonly isTestEvent: boolean;1519 readonly type: 'TestEvent';1520}150715211508/** @name PalletForeignAssetsAssetIds */1522/** @name PalletForeignAssetsAssetIds */1509export interface PalletForeignAssetsAssetIds extends Enum {1523export interface PalletForeignAssetsAssetIds extends Enum {2004 readonly maxTestValue: u32;2018 readonly maxTestValue: u32;2005 } & Struct;2019 } & Struct;2006 readonly isJustTakeFee: boolean;2020 readonly isJustTakeFee: boolean;2021 readonly isBatchAll: boolean;2022 readonly asBatchAll: {2023 readonly calls: Vec<Call>;2024 } & Struct;2007 readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee';2025 readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee' | 'BatchAll';2008}2026}200920272010/** @name PalletTestUtilsError */2028/** @name PalletTestUtilsError */2018export interface PalletTestUtilsEvent extends Enum {2036export interface PalletTestUtilsEvent extends Enum {2019 readonly isValueIsSet: boolean;2037 readonly isValueIsSet: boolean;2020 readonly isShouldRollback: boolean;2038 readonly isShouldRollback: boolean;2039 readonly isBatchCompleted: boolean;2021 readonly type: 'ValueIsSet' | 'ShouldRollback';2040 readonly type: 'ValueIsSet' | 'ShouldRollback' | 'BatchCompleted';2022}2041}202320422024/** @name PalletTimestampCall */2043/** @name PalletTimestampCall */2327 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';2346 readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';2328}2347}23482349/** @name PalletUniqueSchedulerV2BlockAgenda */2350export interface PalletUniqueSchedulerV2BlockAgenda extends Struct {2351 readonly agenda: Vec<Option<PalletUniqueSchedulerV2Scheduled>>;2352 readonly freePlaces: u32;2353}232923542330/** @name PalletUniqueSchedulerCall */2355/** @name PalletUniqueSchedulerV2Call */2331export interface PalletUniqueSchedulerCall extends Enum {2356export interface PalletUniqueSchedulerV2Call extends Enum {2357 readonly isSchedule: boolean;2358 readonly asSchedule: {2359 readonly when: u32;2360 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2361 readonly priority: Option<u8>;2362 readonly call: Call;2363 } & Struct;2364 readonly isCancel: boolean;2365 readonly asCancel: {2366 readonly when: u32;2367 readonly index: u32;2368 } & Struct;2332 readonly isScheduleNamed: boolean;2369 readonly isScheduleNamed: boolean;2333 readonly asScheduleNamed: {2370 readonly asScheduleNamed: {2334 readonly id: U8aFixed;2371 readonly id: U8aFixed;2335 readonly when: u32;2372 readonly when: u32;2336 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2373 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2337 readonly priority: Option<u8>;2374 readonly priority: Option<u8>;2338 readonly call: FrameSupportScheduleMaybeHashed;2375 readonly call: Call;2339 } & Struct;2376 } & Struct;2340 readonly isCancelNamed: boolean;2377 readonly isCancelNamed: boolean;2341 readonly asCancelNamed: {2378 readonly asCancelNamed: {2342 readonly id: U8aFixed;2379 readonly id: U8aFixed;2343 } & Struct;2380 } & Struct;2381 readonly isScheduleAfter: boolean;2382 readonly asScheduleAfter: {2383 readonly after: u32;2384 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2385 readonly priority: Option<u8>;2386 readonly call: Call;2387 } & Struct;2344 readonly isScheduleNamedAfter: boolean;2388 readonly isScheduleNamedAfter: boolean;2345 readonly asScheduleNamedAfter: {2389 readonly asScheduleNamedAfter: {2346 readonly id: U8aFixed;2390 readonly id: U8aFixed;2347 readonly after: u32;2391 readonly after: u32;2348 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2392 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2349 readonly priority: Option<u8>;2393 readonly priority: Option<u8>;2350 readonly call: FrameSupportScheduleMaybeHashed;2394 readonly call: Call;2351 } & Struct;2395 } & Struct;2352 readonly isChangeNamedPriority: boolean;2396 readonly isChangeNamedPriority: boolean;2353 readonly asChangeNamedPriority: {2397 readonly asChangeNamedPriority: {2354 readonly id: U8aFixed;2398 readonly id: U8aFixed;2355 readonly priority: u8;2399 readonly priority: u8;2356 } & Struct;2400 } & Struct;2357 readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';2401 readonly type: 'Schedule' | 'Cancel' | 'ScheduleNamed' | 'CancelNamed' | 'ScheduleAfter' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';2358}2402}235924032360/** @name PalletUniqueSchedulerError */2404/** @name PalletUniqueSchedulerV2Error */2361export interface PalletUniqueSchedulerError extends Enum {2405export interface PalletUniqueSchedulerV2Error extends Enum {2362 readonly isFailedToSchedule: boolean;2406 readonly isFailedToSchedule: boolean;2407 readonly isAgendaIsExhausted: boolean;2408 readonly isScheduledCallCorrupted: boolean;2409 readonly isPreimageNotFound: boolean;2410 readonly isTooBigScheduledCall: boolean;2363 readonly isNotFound: boolean;2411 readonly isNotFound: boolean;2364 readonly isTargetBlockNumberInPast: boolean;2412 readonly isTargetBlockNumberInPast: boolean;2365 readonly isRescheduleNoChange: boolean;2413 readonly isNamed: boolean;2366 readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';2414 readonly type: 'FailedToSchedule' | 'AgendaIsExhausted' | 'ScheduledCallCorrupted' | 'PreimageNotFound' | 'TooBigScheduledCall' | 'NotFound' | 'TargetBlockNumberInPast' | 'Named';2367}2415}236824162369/** @name PalletUniqueSchedulerEvent */2417/** @name PalletUniqueSchedulerV2Event */2370export interface PalletUniqueSchedulerEvent extends Enum {2418export interface PalletUniqueSchedulerV2Event extends Enum {2371 readonly isScheduled: boolean;2419 readonly isScheduled: boolean;2372 readonly asScheduled: {2420 readonly asScheduled: {2373 readonly when: u32;2421 readonly when: u32;2378 readonly when: u32;2426 readonly when: u32;2379 readonly index: u32;2427 readonly index: u32;2380 } & Struct;2428 } & Struct;2429 readonly isDispatched: boolean;2430 readonly asDispatched: {2431 readonly task: ITuple<[u32, u32]>;2432 readonly id: Option<U8aFixed>;2433 readonly result: Result<Null, SpRuntimeDispatchError>;2434 } & Struct;2381 readonly isPriorityChanged: boolean;2435 readonly isPriorityChanged: boolean;2382 readonly asPriorityChanged: {2436 readonly asPriorityChanged: {2383 readonly when: u32;2437 readonly task: ITuple<[u32, u32]>;2384 readonly index: u32;2385 readonly priority: u8;2438 readonly priority: u8;2386 } & Struct;2439 } & Struct;2387 readonly isDispatched: boolean;2440 readonly isCallUnavailable: boolean;2388 readonly asDispatched: {2441 readonly asCallUnavailable: {2389 readonly task: ITuple<[u32, u32]>;2442 readonly task: ITuple<[u32, u32]>;2390 readonly id: Option<U8aFixed>;2443 readonly id: Option<U8aFixed>;2391 readonly result: Result<Null, SpRuntimeDispatchError>;2392 } & Struct;2444 } & Struct;2393 readonly isCallLookupFailed: boolean;2445 readonly isPermanentlyOverweight: boolean;2394 readonly asCallLookupFailed: {2446 readonly asPermanentlyOverweight: {2395 readonly task: ITuple<[u32, u32]>;2447 readonly task: ITuple<[u32, u32]>;2396 readonly id: Option<U8aFixed>;2448 readonly id: Option<U8aFixed>;2397 readonly error: FrameSupportScheduleLookupError;2398 } & Struct;2449 } & Struct;2399 readonly type: 'Scheduled' | 'Canceled' | 'PriorityChanged' | 'Dispatched' | 'CallLookupFailed';2450 readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'PriorityChanged' | 'CallUnavailable' | 'PermanentlyOverweight';2400}2451}240124522402/** @name PalletUniqueSchedulerScheduledV3 */2453/** @name PalletUniqueSchedulerV2Scheduled */2403export interface PalletUniqueSchedulerScheduledV3 extends Struct {2454export interface PalletUniqueSchedulerV2Scheduled extends Struct {2404 readonly maybeId: Option<U8aFixed>;2455 readonly maybeId: Option<U8aFixed>;2405 readonly priority: u8;2456 readonly priority: u8;2406 readonly call: FrameSupportScheduleMaybeHashed;2457 readonly call: PalletUniqueSchedulerV2ScheduledCall;2407 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2458 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2408 readonly origin: OpalRuntimeOriginCaller;2459 readonly origin: OpalRuntimeOriginCaller;2409}2460}24612462/** @name PalletUniqueSchedulerV2ScheduledCall */2463export interface PalletUniqueSchedulerV2ScheduledCall extends Enum {2464 readonly isInline: boolean;2465 readonly asInline: Bytes;2466 readonly isPreimageLookup: boolean;2467 readonly asPreimageLookup: {2468 readonly hash_: H256;2469 readonly unboundedLen: u32;2470 } & Struct;2471 readonly type: 'Inline' | 'PreimageLookup';2472}241024732411/** @name PalletXcmCall */2474/** @name PalletXcmCall */2412export interface PalletXcmCall extends Enum {2475export interface PalletXcmCall extends Enum {tests/src/interfaces/lookup.tsdiffbeforeafterboth1003 Ethereum: 'H160'1003 Ethereum: 'H160'1004 }1004 }1005 },1005 },1006 /**1006 /**1007 * Lookup93: pallet_unique_scheduler::pallet::Event<T>1007 * Lookup93: pallet_unique_scheduler_v2::pallet::Event<T>1008 **/1008 **/1009 PalletUniqueSchedulerEvent: {1009 PalletUniqueSchedulerV2Event: {1010 _enum: {1010 _enum: {1011 Scheduled: {1011 Scheduled: {1012 when: 'u32',1012 when: 'u32',1016 when: 'u32',1016 when: 'u32',1017 index: 'u32',1017 index: 'u32',1018 },1018 },1019 Dispatched: {1020 task: '(u32,u32)',1021 id: 'Option<[u8;32]>',1022 result: 'Result<Null, SpRuntimeDispatchError>',1023 },1019 PriorityChanged: {1024 PriorityChanged: {1020 when: 'u32',1025 task: '(u32,u32)',1021 index: 'u32',1022 priority: 'u8',1026 priority: 'u8',1023 },1027 },1024 Dispatched: {1028 CallUnavailable: {1025 task: '(u32,u32)',1029 task: '(u32,u32)',1026 id: 'Option<[u8;16]>',1030 id: 'Option<[u8;32]>',1027 result: 'Result<Null, SpRuntimeDispatchError>',1028 },1031 },1029 CallLookupFailed: {1032 PermanentlyOverweight: {1030 task: '(u32,u32)',1033 task: '(u32,u32)',1031 id: 'Option<[u8;16]>',1034 id: 'Option<[u8;32]>'1032 error: 'FrameSupportScheduleLookupError'1033 }1035 }1034 }1036 }1035 },1037 },1036 /**1037 * Lookup96: frame_support::traits::schedule::LookupError1038 **/1039 FrameSupportScheduleLookupError: {1040 _enum: ['Unknown', 'BadFormat']1041 },1042 /**1038 /**1043 * Lookup97: pallet_common::pallet::Event<T>1039 * Lookup96: pallet_common::pallet::Event<T>1044 **/1040 **/1045 PalletCommonEvent: {1041 PalletCommonEvent: {1046 _enum: {1042 _enum: {1047 CollectionCreated: '(u32,u8,AccountId32)',1043 CollectionCreated: '(u32,u8,AccountId32)',1057 PropertyPermissionSet: '(u32,Bytes)'1053 PropertyPermissionSet: '(u32,Bytes)'1058 }1054 }1059 },1055 },1060 /**1056 /**1061 * Lookup100: pallet_structure::pallet::Event<T>1057 * Lookup99: pallet_structure::pallet::Event<T>1062 **/1058 **/1063 PalletStructureEvent: {1059 PalletStructureEvent: {1064 _enum: {1060 _enum: {1065 Executed: 'Result<Null, SpRuntimeDispatchError>'1061 Executed: 'Result<Null, SpRuntimeDispatchError>'1066 }1062 }1067 },1063 },1068 /**1064 /**1069 * Lookup101: pallet_rmrk_core::pallet::Event<T>1065 * Lookup100: pallet_rmrk_core::pallet::Event<T>1070 **/1066 **/1071 PalletRmrkCoreEvent: {1067 PalletRmrkCoreEvent: {1072 _enum: {1068 _enum: {1073 CollectionCreated: {1069 CollectionCreated: {1142 }1138 }1143 }1139 }1144 },1140 },1145 /**1141 /**1146 * Lookup102: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1142 * Lookup101: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1147 **/1143 **/1148 RmrkTraitsNftAccountIdOrCollectionNftTuple: {1144 RmrkTraitsNftAccountIdOrCollectionNftTuple: {1149 _enum: {1145 _enum: {1150 AccountId: 'AccountId32',1146 AccountId: 'AccountId32',1151 CollectionAndNftTuple: '(u32,u32)'1147 CollectionAndNftTuple: '(u32,u32)'1152 }1148 }1153 },1149 },1154 /**1150 /**1155 * Lookup107: pallet_rmrk_equip::pallet::Event<T>1151 * Lookup106: pallet_rmrk_equip::pallet::Event<T>1156 **/1152 **/1157 PalletRmrkEquipEvent: {1153 PalletRmrkEquipEvent: {1158 _enum: {1154 _enum: {1159 BaseCreated: {1155 BaseCreated: {1166 }1162 }1167 }1163 }1168 },1164 },1169 /**1165 /**1170 * Lookup108: pallet_app_promotion::pallet::Event<T>1166 * Lookup107: pallet_app_promotion::pallet::Event<T>1171 **/1167 **/1172 PalletAppPromotionEvent: {1168 PalletAppPromotionEvent: {1173 _enum: {1169 _enum: {1174 StakingRecalculation: '(AccountId32,u128,u128)',1170 StakingRecalculation: '(AccountId32,u128,u128)',1177 SetAdmin: 'AccountId32'1173 SetAdmin: 'AccountId32'1178 }1174 }1179 },1175 },1180 /**1176 /**1181 * Lookup109: pallet_foreign_assets::module::Event<T>1177 * Lookup108: pallet_foreign_assets::module::Event<T>1182 **/1178 **/1183 PalletForeignAssetsModuleEvent: {1179 PalletForeignAssetsModuleEvent: {1184 _enum: {1180 _enum: {1185 ForeignAssetRegistered: {1181 ForeignAssetRegistered: {1202 }1198 }1203 }1199 }1204 },1200 },1205 /**1201 /**1206 * Lookup110: pallet_foreign_assets::module::AssetMetadata<Balance>1202 * Lookup109: pallet_foreign_assets::module::AssetMetadata<Balance>1207 **/1203 **/1208 PalletForeignAssetsModuleAssetMetadata: {1204 PalletForeignAssetsModuleAssetMetadata: {1209 name: 'Bytes',1205 name: 'Bytes',1210 symbol: 'Bytes',1206 symbol: 'Bytes',1211 decimals: 'u8',1207 decimals: 'u8',1212 minimalBalance: 'u128'1208 minimalBalance: 'u128'1213 },1209 },1214 /**1210 /**1215 * Lookup111: pallet_evm::pallet::Event<T>1211 * Lookup110: pallet_evm::pallet::Event<T>1216 **/1212 **/1217 PalletEvmEvent: {1213 PalletEvmEvent: {1218 _enum: {1214 _enum: {1219 Log: 'EthereumLog',1215 Log: {1216 log: 'EthereumLog',1217 },1220 Created: 'H160',1218 Created: {1219 address: 'H160',1220 },1221 CreatedFailed: 'H160',1221 CreatedFailed: {1222 address: 'H160',1223 },1222 Executed: 'H160',1224 Executed: {1225 address: 'H160',1226 },1223 ExecutedFailed: 'H160',1227 ExecutedFailed: {1224 BalanceDeposit: '(AccountId32,H160,U256)',1225 BalanceWithdraw: '(AccountId32,H160,U256)'1228 address: 'H160'1229 }1226 }1230 }1227 },1231 },1228 /**1232 /**1229 * Lookup112: ethereum::log::Log1233 * Lookup111: ethereum::log::Log1230 **/1234 **/1231 EthereumLog: {1235 EthereumLog: {1232 address: 'H160',1236 address: 'H160',1233 topics: 'Vec<H256>',1237 topics: 'Vec<H256>',1234 data: 'Bytes'1238 data: 'Bytes'1235 },1239 },1236 /**1240 /**1237 * Lookup116: pallet_ethereum::pallet::Event1241 * Lookup113: pallet_ethereum::pallet::Event1238 **/1242 **/1239 PalletEthereumEvent: {1243 PalletEthereumEvent: {1240 _enum: {1244 _enum: {1241 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'1245 Executed: {1246 from: 'H160',1247 to: 'H160',1248 transactionHash: 'H256',1249 exitReason: 'EvmCoreErrorExitReason'1250 }1242 }1251 }1243 },1252 },1244 /**1253 /**1245 * Lookup117: evm_core::error::ExitReason1254 * Lookup114: evm_core::error::ExitReason1246 **/1255 **/1247 EvmCoreErrorExitReason: {1256 EvmCoreErrorExitReason: {1248 _enum: {1257 _enum: {1249 Succeed: 'EvmCoreErrorExitSucceed',1258 Succeed: 'EvmCoreErrorExitSucceed',1252 Fatal: 'EvmCoreErrorExitFatal'1261 Fatal: 'EvmCoreErrorExitFatal'1253 }1262 }1254 },1263 },1255 /**1264 /**1256 * Lookup118: evm_core::error::ExitSucceed1265 * Lookup115: evm_core::error::ExitSucceed1257 **/1266 **/1258 EvmCoreErrorExitSucceed: {1267 EvmCoreErrorExitSucceed: {1259 _enum: ['Stopped', 'Returned', 'Suicided']1268 _enum: ['Stopped', 'Returned', 'Suicided']1260 },1269 },1261 /**1270 /**1262 * Lookup119: evm_core::error::ExitError1271 * Lookup116: evm_core::error::ExitError1263 **/1272 **/1264 EvmCoreErrorExitError: {1273 EvmCoreErrorExitError: {1265 _enum: {1274 _enum: {1266 StackUnderflow: 'Null',1275 StackUnderflow: 'Null',1280 InvalidCode: 'Null'1289 InvalidCode: 'Null'1281 }1290 }1282 },1291 },1283 /**1292 /**1284 * Lookup122: evm_core::error::ExitRevert1293 * Lookup119: evm_core::error::ExitRevert1285 **/1294 **/1286 EvmCoreErrorExitRevert: {1295 EvmCoreErrorExitRevert: {1287 _enum: ['Reverted']1296 _enum: ['Reverted']1288 },1297 },1289 /**1298 /**1290 * Lookup123: evm_core::error::ExitFatal1299 * Lookup120: evm_core::error::ExitFatal1291 **/1300 **/1292 EvmCoreErrorExitFatal: {1301 EvmCoreErrorExitFatal: {1293 _enum: {1302 _enum: {1294 NotSupported: 'Null',1303 NotSupported: 'Null',1297 Other: 'Text'1306 Other: 'Text'1298 }1307 }1299 },1308 },1300 /**1309 /**1301 * Lookup124: pallet_evm_contract_helpers::pallet::Event<T>1310 * Lookup121: pallet_evm_contract_helpers::pallet::Event<T>1302 **/1311 **/1303 PalletEvmContractHelpersEvent: {1312 PalletEvmContractHelpersEvent: {1304 _enum: {1313 _enum: {1305 ContractSponsorSet: '(H160,AccountId32)',1314 ContractSponsorSet: '(H160,AccountId32)',1306 ContractSponsorshipConfirmed: '(H160,AccountId32)',1315 ContractSponsorshipConfirmed: '(H160,AccountId32)',1307 ContractSponsorRemoved: 'H160'1316 ContractSponsorRemoved: 'H160'1308 }1317 }1309 },1318 },1319 /**1320 * Lookup122: pallet_evm_migration::pallet::Event<T>1321 **/1322 PalletEvmMigrationEvent: {1323 _enum: ['TestEvent']1324 },1310 /**1325 /**1311 * Lookup125: pallet_maintenance::pallet::Event<T>1326 * Lookup123: pallet_maintenance::pallet::Event<T>1312 **/1327 **/1313 PalletMaintenanceEvent: {1328 PalletMaintenanceEvent: {1314 _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']1329 _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']1315 },1330 },1316 /**1331 /**1317 * Lookup126: pallet_test_utils::pallet::Event<T>1332 * Lookup124: pallet_test_utils::pallet::Event<T>1318 **/1333 **/1319 PalletTestUtilsEvent: {1334 PalletTestUtilsEvent: {1320 _enum: ['ValueIsSet', 'ShouldRollback']1335 _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted']1321 },1336 },1322 /**1337 /**1323 * Lookup127: frame_system::Phase1338 * Lookup125: frame_system::Phase1324 **/1339 **/1325 FrameSystemPhase: {1340 FrameSystemPhase: {1326 _enum: {1341 _enum: {1327 ApplyExtrinsic: 'u32',1342 ApplyExtrinsic: 'u32',1328 Finalization: 'Null',1343 Finalization: 'Null',1329 Initialization: 'Null'1344 Initialization: 'Null'1330 }1345 }1331 },1346 },1332 /**1347 /**1333 * Lookup129: frame_system::LastRuntimeUpgradeInfo1348 * Lookup127: frame_system::LastRuntimeUpgradeInfo1334 **/1349 **/1335 FrameSystemLastRuntimeUpgradeInfo: {1350 FrameSystemLastRuntimeUpgradeInfo: {1336 specVersion: 'Compact<u32>',1351 specVersion: 'Compact<u32>',1337 specName: 'Text'1352 specName: 'Text'1338 },1353 },1339 /**1354 /**1340 * Lookup130: frame_system::pallet::Call<T>1355 * Lookup128: frame_system::pallet::Call<T>1341 **/1356 **/1342 FrameSystemCall: {1357 FrameSystemCall: {1343 _enum: {1358 _enum: {1344 fill_block: {1359 fill_block: {1374 }1389 }1375 }1390 }1376 },1391 },1377 /**1392 /**1378 * Lookup135: frame_system::limits::BlockWeights1393 * Lookup133: frame_system::limits::BlockWeights1379 **/1394 **/1380 FrameSystemLimitsBlockWeights: {1395 FrameSystemLimitsBlockWeights: {1381 baseBlock: 'Weight',1396 baseBlock: 'Weight',1382 maxBlock: 'Weight',1397 maxBlock: 'Weight',1383 perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'1398 perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'1384 },1399 },1385 /**1400 /**1386 * Lookup136: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>1401 * Lookup134: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>1387 **/1402 **/1388 FrameSupportDispatchPerDispatchClassWeightsPerClass: {1403 FrameSupportDispatchPerDispatchClassWeightsPerClass: {1389 normal: 'FrameSystemLimitsWeightsPerClass',1404 normal: 'FrameSystemLimitsWeightsPerClass',1390 operational: 'FrameSystemLimitsWeightsPerClass',1405 operational: 'FrameSystemLimitsWeightsPerClass',1391 mandatory: 'FrameSystemLimitsWeightsPerClass'1406 mandatory: 'FrameSystemLimitsWeightsPerClass'1392 },1407 },1393 /**1408 /**1394 * Lookup137: frame_system::limits::WeightsPerClass1409 * Lookup135: frame_system::limits::WeightsPerClass1395 **/1410 **/1396 FrameSystemLimitsWeightsPerClass: {1411 FrameSystemLimitsWeightsPerClass: {1397 baseExtrinsic: 'Weight',1412 baseExtrinsic: 'Weight',1398 maxExtrinsic: 'Option<Weight>',1413 maxExtrinsic: 'Option<Weight>',1399 maxTotal: 'Option<Weight>',1414 maxTotal: 'Option<Weight>',1400 reserved: 'Option<Weight>'1415 reserved: 'Option<Weight>'1401 },1416 },1402 /**1417 /**1403 * Lookup139: frame_system::limits::BlockLength1418 * Lookup137: frame_system::limits::BlockLength1404 **/1419 **/1405 FrameSystemLimitsBlockLength: {1420 FrameSystemLimitsBlockLength: {1406 max: 'FrameSupportDispatchPerDispatchClassU32'1421 max: 'FrameSupportDispatchPerDispatchClassU32'1407 },1422 },1408 /**1423 /**1409 * Lookup140: frame_support::dispatch::PerDispatchClass<T>1424 * Lookup138: frame_support::dispatch::PerDispatchClass<T>1410 **/1425 **/1411 FrameSupportDispatchPerDispatchClassU32: {1426 FrameSupportDispatchPerDispatchClassU32: {1412 normal: 'u32',1427 normal: 'u32',1413 operational: 'u32',1428 operational: 'u32',1414 mandatory: 'u32'1429 mandatory: 'u32'1415 },1430 },1416 /**1431 /**1417 * Lookup141: sp_weights::RuntimeDbWeight1432 * Lookup139: sp_weights::RuntimeDbWeight1418 **/1433 **/1419 SpWeightsRuntimeDbWeight: {1434 SpWeightsRuntimeDbWeight: {1420 read: 'u64',1435 read: 'u64',1421 write: 'u64'1436 write: 'u64'1422 },1437 },1423 /**1438 /**1424 * Lookup142: sp_version::RuntimeVersion1439 * Lookup140: sp_version::RuntimeVersion1425 **/1440 **/1426 SpVersionRuntimeVersion: {1441 SpVersionRuntimeVersion: {1427 specName: 'Text',1442 specName: 'Text',1428 implName: 'Text',1443 implName: 'Text',1433 transactionVersion: 'u32',1448 transactionVersion: 'u32',1434 stateVersion: 'u8'1449 stateVersion: 'u8'1435 },1450 },1436 /**1451 /**1437 * Lookup147: frame_system::pallet::Error<T>1452 * Lookup145: frame_system::pallet::Error<T>1438 **/1453 **/1439 FrameSystemError: {1454 FrameSystemError: {1440 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1455 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1441 },1456 },1442 /**1457 /**1443 * Lookup148: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1458 * Lookup146: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1444 **/1459 **/1445 PolkadotPrimitivesV2PersistedValidationData: {1460 PolkadotPrimitivesV2PersistedValidationData: {1446 parentHead: 'Bytes',1461 parentHead: 'Bytes',1447 relayParentNumber: 'u32',1462 relayParentNumber: 'u32',1448 relayParentStorageRoot: 'H256',1463 relayParentStorageRoot: 'H256',1449 maxPovSize: 'u32'1464 maxPovSize: 'u32'1450 },1465 },1451 /**1466 /**1452 * Lookup151: polkadot_primitives::v2::UpgradeRestriction1467 * Lookup149: polkadot_primitives::v2::UpgradeRestriction1453 **/1468 **/1454 PolkadotPrimitivesV2UpgradeRestriction: {1469 PolkadotPrimitivesV2UpgradeRestriction: {1455 _enum: ['Present']1470 _enum: ['Present']1456 },1471 },1457 /**1472 /**1458 * Lookup152: sp_trie::storage_proof::StorageProof1473 * Lookup150: sp_trie::storage_proof::StorageProof1459 **/1474 **/1460 SpTrieStorageProof: {1475 SpTrieStorageProof: {1461 trieNodes: 'BTreeSet<Bytes>'1476 trieNodes: 'BTreeSet<Bytes>'1462 },1477 },1463 /**1478 /**1464 * Lookup154: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1479 * Lookup152: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1465 **/1480 **/1466 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1481 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1467 dmqMqcHead: 'H256',1482 dmqMqcHead: 'H256',1468 relayDispatchQueueSize: '(u32,u32)',1483 relayDispatchQueueSize: '(u32,u32)',1469 ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1484 ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1470 egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1485 egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1471 },1486 },1472 /**1487 /**1473 * Lookup157: polkadot_primitives::v2::AbridgedHrmpChannel1488 * Lookup155: polkadot_primitives::v2::AbridgedHrmpChannel1474 **/1489 **/1475 PolkadotPrimitivesV2AbridgedHrmpChannel: {1490 PolkadotPrimitivesV2AbridgedHrmpChannel: {1476 maxCapacity: 'u32',1491 maxCapacity: 'u32',1477 maxTotalSize: 'u32',1492 maxTotalSize: 'u32',1480 totalSize: 'u32',1495 totalSize: 'u32',1481 mqcHead: 'Option<H256>'1496 mqcHead: 'Option<H256>'1482 },1497 },1483 /**1498 /**1484 * Lookup158: polkadot_primitives::v2::AbridgedHostConfiguration1499 * Lookup156: polkadot_primitives::v2::AbridgedHostConfiguration1485 **/1500 **/1486 PolkadotPrimitivesV2AbridgedHostConfiguration: {1501 PolkadotPrimitivesV2AbridgedHostConfiguration: {1487 maxCodeSize: 'u32',1502 maxCodeSize: 'u32',1488 maxHeadDataSize: 'u32',1503 maxHeadDataSize: 'u32',1494 validationUpgradeCooldown: 'u32',1509 validationUpgradeCooldown: 'u32',1495 validationUpgradeDelay: 'u32'1510 validationUpgradeDelay: 'u32'1496 },1511 },1497 /**1512 /**1498 * Lookup164: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1513 * Lookup162: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1499 **/1514 **/1500 PolkadotCorePrimitivesOutboundHrmpMessage: {1515 PolkadotCorePrimitivesOutboundHrmpMessage: {1501 recipient: 'u32',1516 recipient: 'u32',1502 data: 'Bytes'1517 data: 'Bytes'1503 },1518 },1504 /**1519 /**1505 * Lookup165: cumulus_pallet_parachain_system::pallet::Call<T>1520 * Lookup163: cumulus_pallet_parachain_system::pallet::Call<T>1506 **/1521 **/1507 CumulusPalletParachainSystemCall: {1522 CumulusPalletParachainSystemCall: {1508 _enum: {1523 _enum: {1509 set_validation_data: {1524 set_validation_data: {1520 }1535 }1521 }1536 }1522 },1537 },1523 /**1538 /**1524 * Lookup166: cumulus_primitives_parachain_inherent::ParachainInherentData1539 * Lookup164: cumulus_primitives_parachain_inherent::ParachainInherentData1525 **/1540 **/1526 CumulusPrimitivesParachainInherentParachainInherentData: {1541 CumulusPrimitivesParachainInherentParachainInherentData: {1527 validationData: 'PolkadotPrimitivesV2PersistedValidationData',1542 validationData: 'PolkadotPrimitivesV2PersistedValidationData',1528 relayChainState: 'SpTrieStorageProof',1543 relayChainState: 'SpTrieStorageProof',1529 downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1544 downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1530 horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1545 horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1531 },1546 },1532 /**1547 /**1533 * Lookup168: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1548 * Lookup166: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1534 **/1549 **/1535 PolkadotCorePrimitivesInboundDownwardMessage: {1550 PolkadotCorePrimitivesInboundDownwardMessage: {1536 sentAt: 'u32',1551 sentAt: 'u32',1537 msg: 'Bytes'1552 msg: 'Bytes'1538 },1553 },1539 /**1554 /**1540 * Lookup171: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1555 * Lookup169: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1541 **/1556 **/1542 PolkadotCorePrimitivesInboundHrmpMessage: {1557 PolkadotCorePrimitivesInboundHrmpMessage: {1543 sentAt: 'u32',1558 sentAt: 'u32',1544 data: 'Bytes'1559 data: 'Bytes'1545 },1560 },1546 /**1561 /**1547 * Lookup174: cumulus_pallet_parachain_system::pallet::Error<T>1562 * Lookup172: cumulus_pallet_parachain_system::pallet::Error<T>1548 **/1563 **/1549 CumulusPalletParachainSystemError: {1564 CumulusPalletParachainSystemError: {1550 _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1565 _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1551 },1566 },1552 /**1567 /**1553 * Lookup176: pallet_balances::BalanceLock<Balance>1568 * Lookup174: pallet_balances::BalanceLock<Balance>1554 **/1569 **/1555 PalletBalancesBalanceLock: {1570 PalletBalancesBalanceLock: {1556 id: '[u8;8]',1571 id: '[u8;8]',1557 amount: 'u128',1572 amount: 'u128',1558 reasons: 'PalletBalancesReasons'1573 reasons: 'PalletBalancesReasons'1559 },1574 },1560 /**1575 /**1561 * Lookup177: pallet_balances::Reasons1576 * Lookup175: pallet_balances::Reasons1562 **/1577 **/1563 PalletBalancesReasons: {1578 PalletBalancesReasons: {1564 _enum: ['Fee', 'Misc', 'All']1579 _enum: ['Fee', 'Misc', 'All']1565 },1580 },1566 /**1581 /**1567 * Lookup180: pallet_balances::ReserveData<ReserveIdentifier, Balance>1582 * Lookup178: pallet_balances::ReserveData<ReserveIdentifier, Balance>1568 **/1583 **/1569 PalletBalancesReserveData: {1584 PalletBalancesReserveData: {1570 id: '[u8;16]',1585 id: '[u8;16]',1571 amount: 'u128'1586 amount: 'u128'1572 },1587 },1573 /**1588 /**1574 * Lookup182: pallet_balances::Releases1589 * Lookup180: pallet_balances::Releases1575 **/1590 **/1576 PalletBalancesReleases: {1591 PalletBalancesReleases: {1577 _enum: ['V1_0_0', 'V2_0_0']1592 _enum: ['V1_0_0', 'V2_0_0']1578 },1593 },1579 /**1594 /**1580 * Lookup183: pallet_balances::pallet::Call<T, I>1595 * Lookup181: pallet_balances::pallet::Call<T, I>1581 **/1596 **/1582 PalletBalancesCall: {1597 PalletBalancesCall: {1583 _enum: {1598 _enum: {1584 transfer: {1599 transfer: {1609 }1624 }1610 }1625 }1611 },1626 },1612 /**1627 /**1613 * Lookup186: pallet_balances::pallet::Error<T, I>1628 * Lookup184: pallet_balances::pallet::Error<T, I>1614 **/1629 **/1615 PalletBalancesError: {1630 PalletBalancesError: {1616 _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1631 _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1617 },1632 },1618 /**1633 /**1619 * Lookup188: pallet_timestamp::pallet::Call<T>1634 * Lookup186: pallet_timestamp::pallet::Call<T>1620 **/1635 **/1621 PalletTimestampCall: {1636 PalletTimestampCall: {1622 _enum: {1637 _enum: {1623 set: {1638 set: {1624 now: 'Compact<u64>'1639 now: 'Compact<u64>'1625 }1640 }1626 }1641 }1627 },1642 },1628 /**1643 /**1629 * Lookup190: pallet_transaction_payment::Releases1644 * Lookup188: pallet_transaction_payment::Releases1630 **/1645 **/1631 PalletTransactionPaymentReleases: {1646 PalletTransactionPaymentReleases: {1632 _enum: ['V1Ancient', 'V2']1647 _enum: ['V1Ancient', 'V2']1633 },1648 },1634 /**1649 /**1635 * Lookup191: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1650 * Lookup189: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1636 **/1651 **/1637 PalletTreasuryProposal: {1652 PalletTreasuryProposal: {1638 proposer: 'AccountId32',1653 proposer: 'AccountId32',1639 value: 'u128',1654 value: 'u128',1640 beneficiary: 'AccountId32',1655 beneficiary: 'AccountId32',1641 bond: 'u128'1656 bond: 'u128'1642 },1657 },1643 /**1658 /**1644 * Lookup194: pallet_treasury::pallet::Call<T, I>1659 * Lookup192: pallet_treasury::pallet::Call<T, I>1645 **/1660 **/1646 PalletTreasuryCall: {1661 PalletTreasuryCall: {1647 _enum: {1662 _enum: {1648 propose_spend: {1663 propose_spend: {1664 }1679 }1665 }1680 }1666 },1681 },1667 /**1682 /**1668 * Lookup197: frame_support::PalletId1683 * Lookup195: frame_support::PalletId1669 **/1684 **/1670 FrameSupportPalletId: '[u8;8]',1685 FrameSupportPalletId: '[u8;8]',1671 /**1686 /**1672 * Lookup198: pallet_treasury::pallet::Error<T, I>1687 * Lookup196: pallet_treasury::pallet::Error<T, I>1673 **/1688 **/1674 PalletTreasuryError: {1689 PalletTreasuryError: {1675 _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1690 _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1676 },1691 },1677 /**1692 /**1678 * Lookup199: pallet_sudo::pallet::Call<T>1693 * Lookup197: pallet_sudo::pallet::Call<T>1679 **/1694 **/1680 PalletSudoCall: {1695 PalletSudoCall: {1681 _enum: {1696 _enum: {1682 sudo: {1697 sudo: {1698 }1713 }1699 }1714 }1700 },1715 },1701 /**1716 /**1702 * Lookup201: orml_vesting::module::Call<T>1717 * Lookup199: orml_vesting::module::Call<T>1703 **/1718 **/1704 OrmlVestingModuleCall: {1719 OrmlVestingModuleCall: {1705 _enum: {1720 _enum: {1706 claim: 'Null',1721 claim: 'Null',1717 }1732 }1718 }1733 }1719 },1734 },1720 /**1735 /**1721 * Lookup203: orml_xtokens::module::Call<T>1736 * Lookup201: orml_xtokens::module::Call<T>1722 **/1737 **/1723 OrmlXtokensModuleCall: {1738 OrmlXtokensModuleCall: {1724 _enum: {1739 _enum: {1725 transfer: {1740 transfer: {1760 }1775 }1761 }1776 }1762 },1777 },1763 /**1778 /**1764 * Lookup204: xcm::VersionedMultiAsset1779 * Lookup202: xcm::VersionedMultiAsset1765 **/1780 **/1766 XcmVersionedMultiAsset: {1781 XcmVersionedMultiAsset: {1767 _enum: {1782 _enum: {1768 V0: 'XcmV0MultiAsset',1783 V0: 'XcmV0MultiAsset',1769 V1: 'XcmV1MultiAsset'1784 V1: 'XcmV1MultiAsset'1770 }1785 }1771 },1786 },1772 /**1787 /**1773 * Lookup207: orml_tokens::module::Call<T>1788 * Lookup205: orml_tokens::module::Call<T>1774 **/1789 **/1775 OrmlTokensModuleCall: {1790 OrmlTokensModuleCall: {1776 _enum: {1791 _enum: {1777 transfer: {1792 transfer: {1803 }1818 }1804 }1819 }1805 },1820 },1806 /**1821 /**1807 * Lookup208: cumulus_pallet_xcmp_queue::pallet::Call<T>1822 * Lookup206: cumulus_pallet_xcmp_queue::pallet::Call<T>1808 **/1823 **/1809 CumulusPalletXcmpQueueCall: {1824 CumulusPalletXcmpQueueCall: {1810 _enum: {1825 _enum: {1811 service_overweight: {1826 service_overweight: {1852 }1867 }1853 }1868 }1854 },1869 },1855 /**1870 /**1856 * Lookup209: pallet_xcm::pallet::Call<T>1871 * Lookup207: pallet_xcm::pallet::Call<T>1857 **/1872 **/1858 PalletXcmCall: {1873 PalletXcmCall: {1859 _enum: {1874 _enum: {1860 send: {1875 send: {1906 }1921 }1907 }1922 }1908 },1923 },1909 /**1924 /**1910 * Lookup210: xcm::VersionedXcm<RuntimeCall>1925 * Lookup208: xcm::VersionedXcm<RuntimeCall>1911 **/1926 **/1912 XcmVersionedXcm: {1927 XcmVersionedXcm: {1913 _enum: {1928 _enum: {1914 V0: 'XcmV0Xcm',1929 V0: 'XcmV0Xcm',1915 V1: 'XcmV1Xcm',1930 V1: 'XcmV1Xcm',1916 V2: 'XcmV2Xcm'1931 V2: 'XcmV2Xcm'1917 }1932 }1918 },1933 },1919 /**1934 /**1920 * Lookup211: xcm::v0::Xcm<RuntimeCall>1935 * Lookup209: xcm::v0::Xcm<RuntimeCall>1921 **/1936 **/1922 XcmV0Xcm: {1937 XcmV0Xcm: {1923 _enum: {1938 _enum: {1924 WithdrawAsset: {1939 WithdrawAsset: {1970 }1985 }1971 }1986 }1972 },1987 },1973 /**1988 /**1974 * Lookup213: xcm::v0::order::Order<RuntimeCall>1989 * Lookup211: xcm::v0::order::Order<RuntimeCall>1975 **/1990 **/1976 XcmV0Order: {1991 XcmV0Order: {1977 _enum: {1992 _enum: {1978 Null: 'Null',1993 Null: 'Null',2013 }2028 }2014 }2029 }2015 },2030 },2016 /**2031 /**2017 * Lookup215: xcm::v0::Response2032 * Lookup213: xcm::v0::Response2018 **/2033 **/2019 XcmV0Response: {2034 XcmV0Response: {2020 _enum: {2035 _enum: {2021 Assets: 'Vec<XcmV0MultiAsset>'2036 Assets: 'Vec<XcmV0MultiAsset>'2022 }2037 }2023 },2038 },2024 /**2039 /**2025 * Lookup216: xcm::v1::Xcm<RuntimeCall>2040 * Lookup214: xcm::v1::Xcm<RuntimeCall>2026 **/2041 **/2027 XcmV1Xcm: {2042 XcmV1Xcm: {2028 _enum: {2043 _enum: {2029 WithdrawAsset: {2044 WithdrawAsset: {2080 UnsubscribeVersion: 'Null'2095 UnsubscribeVersion: 'Null'2081 }2096 }2082 },2097 },2083 /**2098 /**2084 * Lookup218: xcm::v1::order::Order<RuntimeCall>2099 * Lookup216: xcm::v1::order::Order<RuntimeCall>2085 **/2100 **/2086 XcmV1Order: {2101 XcmV1Order: {2087 _enum: {2102 _enum: {2088 Noop: 'Null',2103 Noop: 'Null',2125 }2140 }2126 }2141 }2127 },2142 },2128 /**2143 /**2129 * Lookup220: xcm::v1::Response2144 * Lookup218: xcm::v1::Response2130 **/2145 **/2131 XcmV1Response: {2146 XcmV1Response: {2132 _enum: {2147 _enum: {2133 Assets: 'XcmV1MultiassetMultiAssets',2148 Assets: 'XcmV1MultiassetMultiAssets',2134 Version: 'u32'2149 Version: 'u32'2135 }2150 }2136 },2151 },2137 /**2152 /**2138 * Lookup234: cumulus_pallet_xcm::pallet::Call<T>2153 * Lookup232: cumulus_pallet_xcm::pallet::Call<T>2139 **/2154 **/2140 CumulusPalletXcmCall: 'Null',2155 CumulusPalletXcmCall: 'Null',2141 /**2156 /**2142 * Lookup235: cumulus_pallet_dmp_queue::pallet::Call<T>2157 * Lookup233: cumulus_pallet_dmp_queue::pallet::Call<T>2143 **/2158 **/2144 CumulusPalletDmpQueueCall: {2159 CumulusPalletDmpQueueCall: {2145 _enum: {2160 _enum: {2146 service_overweight: {2161 service_overweight: {2149 }2164 }2150 }2165 }2151 },2166 },2152 /**2167 /**2153 * Lookup236: pallet_inflation::pallet::Call<T>2168 * Lookup234: pallet_inflation::pallet::Call<T>2154 **/2169 **/2155 PalletInflationCall: {2170 PalletInflationCall: {2156 _enum: {2171 _enum: {2157 start_inflation: {2172 start_inflation: {2158 inflationStartRelayBlock: 'u32'2173 inflationStartRelayBlock: 'u32'2159 }2174 }2160 }2175 }2161 },2176 },2162 /**2177 /**2163 * Lookup237: pallet_unique::Call<T>2178 * Lookup235: pallet_unique::Call<T>2164 **/2179 **/2165 PalletUniqueCall: {2180 PalletUniqueCall: {2166 _enum: {2181 _enum: {2167 create_collection: {2182 create_collection: {2291 }2306 }2292 }2307 }2293 },2308 },2294 /**2309 /**2295 * Lookup242: up_data_structs::CollectionMode2310 * Lookup240: up_data_structs::CollectionMode2296 **/2311 **/2297 UpDataStructsCollectionMode: {2312 UpDataStructsCollectionMode: {2298 _enum: {2313 _enum: {2299 NFT: 'Null',2314 NFT: 'Null',2300 Fungible: 'u8',2315 Fungible: 'u8',2301 ReFungible: 'Null'2316 ReFungible: 'Null'2302 }2317 }2303 },2318 },2304 /**2319 /**2305 * Lookup243: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2320 * Lookup241: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2306 **/2321 **/2307 UpDataStructsCreateCollectionData: {2322 UpDataStructsCreateCollectionData: {2308 mode: 'UpDataStructsCollectionMode',2323 mode: 'UpDataStructsCollectionMode',2309 access: 'Option<UpDataStructsAccessMode>',2324 access: 'Option<UpDataStructsAccessMode>',2316 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2331 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2317 properties: 'Vec<UpDataStructsProperty>'2332 properties: 'Vec<UpDataStructsProperty>'2318 },2333 },2319 /**2334 /**2320 * Lookup245: up_data_structs::AccessMode2335 * Lookup243: up_data_structs::AccessMode2321 **/2336 **/2322 UpDataStructsAccessMode: {2337 UpDataStructsAccessMode: {2323 _enum: ['Normal', 'AllowList']2338 _enum: ['Normal', 'AllowList']2324 },2339 },2325 /**2340 /**2326 * Lookup247: up_data_structs::CollectionLimits2341 * Lookup245: up_data_structs::CollectionLimits2327 **/2342 **/2328 UpDataStructsCollectionLimits: {2343 UpDataStructsCollectionLimits: {2329 accountTokenOwnershipLimit: 'Option<u32>',2344 accountTokenOwnershipLimit: 'Option<u32>',2330 sponsoredDataSize: 'Option<u32>',2345 sponsoredDataSize: 'Option<u32>',2336 ownerCanDestroy: 'Option<bool>',2351 ownerCanDestroy: 'Option<bool>',2337 transfersEnabled: 'Option<bool>'2352 transfersEnabled: 'Option<bool>'2338 },2353 },2339 /**2354 /**2340 * Lookup249: up_data_structs::SponsoringRateLimit2355 * Lookup247: up_data_structs::SponsoringRateLimit2341 **/2356 **/2342 UpDataStructsSponsoringRateLimit: {2357 UpDataStructsSponsoringRateLimit: {2343 _enum: {2358 _enum: {2344 SponsoringDisabled: 'Null',2359 SponsoringDisabled: 'Null',2345 Blocks: 'u32'2360 Blocks: 'u32'2346 }2361 }2347 },2362 },2348 /**2363 /**2349 * Lookup252: up_data_structs::CollectionPermissions2364 * Lookup250: up_data_structs::CollectionPermissions2350 **/2365 **/2351 UpDataStructsCollectionPermissions: {2366 UpDataStructsCollectionPermissions: {2352 access: 'Option<UpDataStructsAccessMode>',2367 access: 'Option<UpDataStructsAccessMode>',2353 mintMode: 'Option<bool>',2368 mintMode: 'Option<bool>',2354 nesting: 'Option<UpDataStructsNestingPermissions>'2369 nesting: 'Option<UpDataStructsNestingPermissions>'2355 },2370 },2356 /**2371 /**2357 * Lookup254: up_data_structs::NestingPermissions2372 * Lookup252: up_data_structs::NestingPermissions2358 **/2373 **/2359 UpDataStructsNestingPermissions: {2374 UpDataStructsNestingPermissions: {2360 tokenOwner: 'bool',2375 tokenOwner: 'bool',2361 collectionAdmin: 'bool',2376 collectionAdmin: 'bool',2362 restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2377 restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2363 },2378 },2364 /**2379 /**2365 * Lookup256: up_data_structs::OwnerRestrictedSet2380 * Lookup254: up_data_structs::OwnerRestrictedSet2366 **/2381 **/2367 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2382 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2368 /**2383 /**2369 * Lookup261: up_data_structs::PropertyKeyPermission2384 * Lookup259: up_data_structs::PropertyKeyPermission2370 **/2385 **/2371 UpDataStructsPropertyKeyPermission: {2386 UpDataStructsPropertyKeyPermission: {2372 key: 'Bytes',2387 key: 'Bytes',2373 permission: 'UpDataStructsPropertyPermission'2388 permission: 'UpDataStructsPropertyPermission'2374 },2389 },2375 /**2390 /**2376 * Lookup262: up_data_structs::PropertyPermission2391 * Lookup260: up_data_structs::PropertyPermission2377 **/2392 **/2378 UpDataStructsPropertyPermission: {2393 UpDataStructsPropertyPermission: {2379 mutable: 'bool',2394 mutable: 'bool',2380 collectionAdmin: 'bool',2395 collectionAdmin: 'bool',2381 tokenOwner: 'bool'2396 tokenOwner: 'bool'2382 },2397 },2383 /**2398 /**2384 * Lookup265: up_data_structs::Property2399 * Lookup263: up_data_structs::Property2385 **/2400 **/2386 UpDataStructsProperty: {2401 UpDataStructsProperty: {2387 key: 'Bytes',2402 key: 'Bytes',2388 value: 'Bytes'2403 value: 'Bytes'2389 },2404 },2390 /**2405 /**2391 * Lookup268: up_data_structs::CreateItemData2406 * Lookup266: up_data_structs::CreateItemData2392 **/2407 **/2393 UpDataStructsCreateItemData: {2408 UpDataStructsCreateItemData: {2394 _enum: {2409 _enum: {2395 NFT: 'UpDataStructsCreateNftData',2410 NFT: 'UpDataStructsCreateNftData',2396 Fungible: 'UpDataStructsCreateFungibleData',2411 Fungible: 'UpDataStructsCreateFungibleData',2397 ReFungible: 'UpDataStructsCreateReFungibleData'2412 ReFungible: 'UpDataStructsCreateReFungibleData'2398 }2413 }2399 },2414 },2400 /**2415 /**2401 * Lookup269: up_data_structs::CreateNftData2416 * Lookup267: up_data_structs::CreateNftData2402 **/2417 **/2403 UpDataStructsCreateNftData: {2418 UpDataStructsCreateNftData: {2404 properties: 'Vec<UpDataStructsProperty>'2419 properties: 'Vec<UpDataStructsProperty>'2405 },2420 },2406 /**2421 /**2407 * Lookup270: up_data_structs::CreateFungibleData2422 * Lookup268: up_data_structs::CreateFungibleData2408 **/2423 **/2409 UpDataStructsCreateFungibleData: {2424 UpDataStructsCreateFungibleData: {2410 value: 'u128'2425 value: 'u128'2411 },2426 },2412 /**2427 /**2413 * Lookup271: up_data_structs::CreateReFungibleData2428 * Lookup269: up_data_structs::CreateReFungibleData2414 **/2429 **/2415 UpDataStructsCreateReFungibleData: {2430 UpDataStructsCreateReFungibleData: {2416 pieces: 'u128',2431 pieces: 'u128',2417 properties: 'Vec<UpDataStructsProperty>'2432 properties: 'Vec<UpDataStructsProperty>'2418 },2433 },2419 /**2434 /**2420 * Lookup274: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2435 * Lookup272: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2421 **/2436 **/2422 UpDataStructsCreateItemExData: {2437 UpDataStructsCreateItemExData: {2423 _enum: {2438 _enum: {2424 NFT: 'Vec<UpDataStructsCreateNftExData>',2439 NFT: 'Vec<UpDataStructsCreateNftExData>',2427 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2442 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2428 }2443 }2429 },2444 },2430 /**2445 /**2431 * Lookup276: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2446 * Lookup274: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2432 **/2447 **/2433 UpDataStructsCreateNftExData: {2448 UpDataStructsCreateNftExData: {2434 properties: 'Vec<UpDataStructsProperty>',2449 properties: 'Vec<UpDataStructsProperty>',2435 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2450 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2436 },2451 },2437 /**2452 /**2438 * Lookup283: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2453 * Lookup281: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2439 **/2454 **/2440 UpDataStructsCreateRefungibleExSingleOwner: {2455 UpDataStructsCreateRefungibleExSingleOwner: {2441 user: 'PalletEvmAccountBasicCrossAccountIdRepr',2456 user: 'PalletEvmAccountBasicCrossAccountIdRepr',2442 pieces: 'u128',2457 pieces: 'u128',2443 properties: 'Vec<UpDataStructsProperty>'2458 properties: 'Vec<UpDataStructsProperty>'2444 },2459 },2445 /**2460 /**2446 * Lookup285: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2461 * Lookup283: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2447 **/2462 **/2448 UpDataStructsCreateRefungibleExMultipleOwners: {2463 UpDataStructsCreateRefungibleExMultipleOwners: {2449 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2464 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2450 properties: 'Vec<UpDataStructsProperty>'2465 properties: 'Vec<UpDataStructsProperty>'2451 },2466 },2452 /**2467 /**2453 * Lookup286: pallet_unique_scheduler::pallet::Call<T>2468 * Lookup284: pallet_unique_scheduler_v2::pallet::Call<T>2454 **/2469 **/2455 PalletUniqueSchedulerCall: {2470 PalletUniqueSchedulerV2Call: {2456 _enum: {2471 _enum: {2472 schedule: {2473 when: 'u32',2474 maybePeriodic: 'Option<(u32,u32)>',2475 priority: 'Option<u8>',2476 call: 'Call',2477 },2478 cancel: {2479 when: 'u32',2480 index: 'u32',2481 },2457 schedule_named: {2482 schedule_named: {2458 id: '[u8;16]',2483 id: '[u8;32]',2459 when: 'u32',2484 when: 'u32',2460 maybePeriodic: 'Option<(u32,u32)>',2485 maybePeriodic: 'Option<(u32,u32)>',2461 priority: 'Option<u8>',2486 priority: 'Option<u8>',2462 call: 'FrameSupportScheduleMaybeHashed',2487 call: 'Call',2463 },2488 },2464 cancel_named: {2489 cancel_named: {2465 id: '[u8;16]',2490 id: '[u8;32]',2466 },2491 },2492 schedule_after: {2493 after: 'u32',2494 maybePeriodic: 'Option<(u32,u32)>',2495 priority: 'Option<u8>',2496 call: 'Call',2497 },2467 schedule_named_after: {2498 schedule_named_after: {2468 id: '[u8;16]',2499 id: '[u8;32]',2469 after: 'u32',2500 after: 'u32',2470 maybePeriodic: 'Option<(u32,u32)>',2501 maybePeriodic: 'Option<(u32,u32)>',2471 priority: 'Option<u8>',2502 priority: 'Option<u8>',2472 call: 'FrameSupportScheduleMaybeHashed',2503 call: 'Call',2473 },2504 },2474 change_named_priority: {2505 change_named_priority: {2475 id: '[u8;16]',2506 id: '[u8;32]',2476 priority: 'u8'2507 priority: 'u8'2477 }2508 }2478 }2509 }2479 },2510 },2480 /**2481 * Lookup289: frame_support::traits::schedule::MaybeHashed<opal_runtime::RuntimeCall, primitive_types::H256>2482 **/2483 FrameSupportScheduleMaybeHashed: {2484 _enum: {2485 Value: 'Call',2486 Hash: 'H256'2487 }2488 },2489 /**2511 /**2490 * Lookup290: pallet_configuration::pallet::Call<T>2512 * Lookup287: pallet_configuration::pallet::Call<T>2491 **/2513 **/2492 PalletConfigurationCall: {2514 PalletConfigurationCall: {2493 _enum: {2515 _enum: {2494 set_weight_to_fee_coefficient_override: {2516 set_weight_to_fee_coefficient_override: {2499 }2521 }2500 }2522 }2501 },2523 },2502 /**2524 /**2503 * Lookup292: pallet_template_transaction_payment::Call<T>2525 * Lookup289: pallet_template_transaction_payment::Call<T>2504 **/2526 **/2505 PalletTemplateTransactionPaymentCall: 'Null',2527 PalletTemplateTransactionPaymentCall: 'Null',2506 /**2528 /**2507 * Lookup293: pallet_structure::pallet::Call<T>2529 * Lookup290: pallet_structure::pallet::Call<T>2508 **/2530 **/2509 PalletStructureCall: 'Null',2531 PalletStructureCall: 'Null',2510 /**2532 /**2511 * Lookup294: pallet_rmrk_core::pallet::Call<T>2533 * Lookup291: pallet_rmrk_core::pallet::Call<T>2512 **/2534 **/2513 PalletRmrkCoreCall: {2535 PalletRmrkCoreCall: {2514 _enum: {2536 _enum: {2515 create_collection: {2537 create_collection: {2598 }2620 }2599 }2621 }2600 },2622 },2601 /**2623 /**2602 * Lookup300: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2624 * Lookup297: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2603 **/2625 **/2604 RmrkTraitsResourceResourceTypes: {2626 RmrkTraitsResourceResourceTypes: {2605 _enum: {2627 _enum: {2606 Basic: 'RmrkTraitsResourceBasicResource',2628 Basic: 'RmrkTraitsResourceBasicResource',2607 Composable: 'RmrkTraitsResourceComposableResource',2629 Composable: 'RmrkTraitsResourceComposableResource',2608 Slot: 'RmrkTraitsResourceSlotResource'2630 Slot: 'RmrkTraitsResourceSlotResource'2609 }2631 }2610 },2632 },2611 /**2633 /**2612 * Lookup302: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2634 * Lookup299: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2613 **/2635 **/2614 RmrkTraitsResourceBasicResource: {2636 RmrkTraitsResourceBasicResource: {2615 src: 'Option<Bytes>',2637 src: 'Option<Bytes>',2616 metadata: 'Option<Bytes>',2638 metadata: 'Option<Bytes>',2617 license: 'Option<Bytes>',2639 license: 'Option<Bytes>',2618 thumb: 'Option<Bytes>'2640 thumb: 'Option<Bytes>'2619 },2641 },2620 /**2642 /**2621 * Lookup304: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2643 * Lookup301: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2622 **/2644 **/2623 RmrkTraitsResourceComposableResource: {2645 RmrkTraitsResourceComposableResource: {2624 parts: 'Vec<u32>',2646 parts: 'Vec<u32>',2625 base: 'u32',2647 base: 'u32',2628 license: 'Option<Bytes>',2650 license: 'Option<Bytes>',2629 thumb: 'Option<Bytes>'2651 thumb: 'Option<Bytes>'2630 },2652 },2631 /**2653 /**2632 * Lookup305: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2654 * Lookup302: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2633 **/2655 **/2634 RmrkTraitsResourceSlotResource: {2656 RmrkTraitsResourceSlotResource: {2635 base: 'u32',2657 base: 'u32',2636 src: 'Option<Bytes>',2658 src: 'Option<Bytes>',2639 license: 'Option<Bytes>',2661 license: 'Option<Bytes>',2640 thumb: 'Option<Bytes>'2662 thumb: 'Option<Bytes>'2641 },2663 },2642 /**2664 /**2643 * Lookup308: pallet_rmrk_equip::pallet::Call<T>2665 * Lookup305: pallet_rmrk_equip::pallet::Call<T>2644 **/2666 **/2645 PalletRmrkEquipCall: {2667 PalletRmrkEquipCall: {2646 _enum: {2668 _enum: {2647 create_base: {2669 create_base: {2660 }2682 }2661 }2683 }2662 },2684 },2663 /**2685 /**2664 * Lookup311: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2686 * Lookup308: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2665 **/2687 **/2666 RmrkTraitsPartPartType: {2688 RmrkTraitsPartPartType: {2667 _enum: {2689 _enum: {2668 FixedPart: 'RmrkTraitsPartFixedPart',2690 FixedPart: 'RmrkTraitsPartFixedPart',2669 SlotPart: 'RmrkTraitsPartSlotPart'2691 SlotPart: 'RmrkTraitsPartSlotPart'2670 }2692 }2671 },2693 },2672 /**2694 /**2673 * Lookup313: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2695 * Lookup310: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2674 **/2696 **/2675 RmrkTraitsPartFixedPart: {2697 RmrkTraitsPartFixedPart: {2676 id: 'u32',2698 id: 'u32',2677 z: 'u32',2699 z: 'u32',2678 src: 'Bytes'2700 src: 'Bytes'2679 },2701 },2680 /**2702 /**2681 * Lookup314: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2703 * Lookup311: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2682 **/2704 **/2683 RmrkTraitsPartSlotPart: {2705 RmrkTraitsPartSlotPart: {2684 id: 'u32',2706 id: 'u32',2685 equippable: 'RmrkTraitsPartEquippableList',2707 equippable: 'RmrkTraitsPartEquippableList',2686 src: 'Bytes',2708 src: 'Bytes',2687 z: 'u32'2709 z: 'u32'2688 },2710 },2689 /**2711 /**2690 * Lookup315: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2712 * Lookup312: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2691 **/2713 **/2692 RmrkTraitsPartEquippableList: {2714 RmrkTraitsPartEquippableList: {2693 _enum: {2715 _enum: {2694 All: 'Null',2716 All: 'Null',2695 Empty: 'Null',2717 Empty: 'Null',2696 Custom: 'Vec<u32>'2718 Custom: 'Vec<u32>'2697 }2719 }2698 },2720 },2699 /**2721 /**2700 * Lookup317: rmrk_traits::theme::Theme<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>, S>>2722 * Lookup314: rmrk_traits::theme::Theme<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>, S>>2701 **/2723 **/2702 RmrkTraitsTheme: {2724 RmrkTraitsTheme: {2703 name: 'Bytes',2725 name: 'Bytes',2704 properties: 'Vec<RmrkTraitsThemeThemeProperty>',2726 properties: 'Vec<RmrkTraitsThemeThemeProperty>',2705 inherit: 'bool'2727 inherit: 'bool'2706 },2728 },2707 /**2729 /**2708 * Lookup319: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2730 * Lookup316: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2709 **/2731 **/2710 RmrkTraitsThemeThemeProperty: {2732 RmrkTraitsThemeThemeProperty: {2711 key: 'Bytes',2733 key: 'Bytes',2712 value: 'Bytes'2734 value: 'Bytes'2713 },2735 },2714 /**2736 /**2715 * Lookup321: pallet_app_promotion::pallet::Call<T>2737 * Lookup318: pallet_app_promotion::pallet::Call<T>2716 **/2738 **/2717 PalletAppPromotionCall: {2739 PalletAppPromotionCall: {2718 _enum: {2740 _enum: {2719 set_admin_address: {2741 set_admin_address: {2740 }2762 }2741 }2763 }2742 },2764 },2743 /**2765 /**2744 * Lookup322: pallet_foreign_assets::module::Call<T>2766 * Lookup319: pallet_foreign_assets::module::Call<T>2745 **/2767 **/2746 PalletForeignAssetsModuleCall: {2768 PalletForeignAssetsModuleCall: {2747 _enum: {2769 _enum: {2748 register_foreign_asset: {2770 register_foreign_asset: {2757 }2779 }2758 }2780 }2759 },2781 },2760 /**2782 /**2761 * Lookup323: pallet_evm::pallet::Call<T>2783 * Lookup320: pallet_evm::pallet::Call<T>2762 **/2784 **/2763 PalletEvmCall: {2785 PalletEvmCall: {2764 _enum: {2786 _enum: {2765 withdraw: {2787 withdraw: {2800 }2822 }2801 }2823 }2802 },2824 },2803 /**2825 /**2804 * Lookup327: pallet_ethereum::pallet::Call<T>2826 * Lookup326: pallet_ethereum::pallet::Call<T>2805 **/2827 **/2806 PalletEthereumCall: {2828 PalletEthereumCall: {2807 _enum: {2829 _enum: {2808 transact: {2830 transact: {2809 transaction: 'EthereumTransactionTransactionV2'2831 transaction: 'EthereumTransactionTransactionV2'2810 }2832 }2811 }2833 }2812 },2834 },2813 /**2835 /**2814 * Lookup328: ethereum::transaction::TransactionV22836 * Lookup327: ethereum::transaction::TransactionV22815 **/2837 **/2816 EthereumTransactionTransactionV2: {2838 EthereumTransactionTransactionV2: {2817 _enum: {2839 _enum: {2818 Legacy: 'EthereumTransactionLegacyTransaction',2840 Legacy: 'EthereumTransactionLegacyTransaction',2819 EIP2930: 'EthereumTransactionEip2930Transaction',2841 EIP2930: 'EthereumTransactionEip2930Transaction',2820 EIP1559: 'EthereumTransactionEip1559Transaction'2842 EIP1559: 'EthereumTransactionEip1559Transaction'2821 }2843 }2822 },2844 },2823 /**2845 /**2824 * Lookup329: ethereum::transaction::LegacyTransaction2846 * Lookup328: ethereum::transaction::LegacyTransaction2825 **/2847 **/2826 EthereumTransactionLegacyTransaction: {2848 EthereumTransactionLegacyTransaction: {2827 nonce: 'U256',2849 nonce: 'U256',2828 gasPrice: 'U256',2850 gasPrice: 'U256',2832 input: 'Bytes',2854 input: 'Bytes',2833 signature: 'EthereumTransactionTransactionSignature'2855 signature: 'EthereumTransactionTransactionSignature'2834 },2856 },2835 /**2857 /**2836 * Lookup330: ethereum::transaction::TransactionAction2858 * Lookup329: ethereum::transaction::TransactionAction2837 **/2859 **/2838 EthereumTransactionTransactionAction: {2860 EthereumTransactionTransactionAction: {2839 _enum: {2861 _enum: {2840 Call: 'H160',2862 Call: 'H160',2841 Create: 'Null'2863 Create: 'Null'2842 }2864 }2843 },2865 },2844 /**2866 /**2845 * Lookup331: ethereum::transaction::TransactionSignature2867 * Lookup330: ethereum::transaction::TransactionSignature2846 **/2868 **/2847 EthereumTransactionTransactionSignature: {2869 EthereumTransactionTransactionSignature: {2848 v: 'u64',2870 v: 'u64',2849 r: 'H256',2871 r: 'H256',2850 s: 'H256'2872 s: 'H256'2851 },2873 },2852 /**2874 /**2853 * Lookup333: ethereum::transaction::EIP2930Transaction2875 * Lookup332: ethereum::transaction::EIP2930Transaction2854 **/2876 **/2855 EthereumTransactionEip2930Transaction: {2877 EthereumTransactionEip2930Transaction: {2856 chainId: 'u64',2878 chainId: 'u64',2857 nonce: 'U256',2879 nonce: 'U256',2865 r: 'H256',2887 r: 'H256',2866 s: 'H256'2888 s: 'H256'2867 },2889 },2868 /**2890 /**2869 * Lookup335: ethereum::transaction::AccessListItem2891 * Lookup334: ethereum::transaction::AccessListItem2870 **/2892 **/2871 EthereumTransactionAccessListItem: {2893 EthereumTransactionAccessListItem: {2872 address: 'H160',2894 address: 'H160',2873 storageKeys: 'Vec<H256>'2895 storageKeys: 'Vec<H256>'2874 },2896 },2875 /**2897 /**2876 * Lookup336: ethereum::transaction::EIP1559Transaction2898 * Lookup335: ethereum::transaction::EIP1559Transaction2877 **/2899 **/2878 EthereumTransactionEip1559Transaction: {2900 EthereumTransactionEip1559Transaction: {2879 chainId: 'u64',2901 chainId: 'u64',2880 nonce: 'U256',2902 nonce: 'U256',2889 r: 'H256',2911 r: 'H256',2890 s: 'H256'2912 s: 'H256'2891 },2913 },2892 /**2914 /**2893 * Lookup337: pallet_evm_migration::pallet::Call<T>2915 * Lookup336: pallet_evm_migration::pallet::Call<T>2894 **/2916 **/2895 PalletEvmMigrationCall: {2917 PalletEvmMigrationCall: {2896 _enum: {2918 _enum: {2897 begin: {2919 begin: {2904 finish: {2926 finish: {2905 address: 'H160',2927 address: 'H160',2906 code: 'Bytes'2928 code: 'Bytes',2907 }2929 },2930 insert_eth_logs: {2931 logs: 'Vec<EthereumLog>',2932 },2933 insert_events: {2934 events: 'Vec<Bytes>'2935 }2908 }2936 }2909 },2937 },2910 /**2938 /**2927 },2955 },2928 inc_test_value: 'Null',2956 inc_test_value: 'Null',2929 self_canceling_inc: {2957 self_canceling_inc: {2930 id: '[u8;16]',2958 id: '[u8;32]',2931 maxTestValue: 'u32',2959 maxTestValue: 'u32',2932 },2960 },2933 just_take_fee: 'Null'2961 just_take_fee: 'Null',2962 batch_all: {2963 calls: 'Vec<Call>'2964 }2934 }2965 }2935 },2966 },2936 /**2967 /**2937 * Lookup342: pallet_sudo::pallet::Error<T>2968 * Lookup343: pallet_sudo::pallet::Error<T>2938 **/2969 **/2939 PalletSudoError: {2970 PalletSudoError: {2940 _enum: ['RequireSudo']2971 _enum: ['RequireSudo']2941 },2972 },2942 /**2973 /**2943 * Lookup344: orml_vesting::module::Error<T>2974 * Lookup345: orml_vesting::module::Error<T>2944 **/2975 **/2945 OrmlVestingModuleError: {2976 OrmlVestingModuleError: {2946 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2977 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2947 },2978 },2948 /**2979 /**2949 * Lookup345: orml_xtokens::module::Error<T>2980 * Lookup346: orml_xtokens::module::Error<T>2950 **/2981 **/2951 OrmlXtokensModuleError: {2982 OrmlXtokensModuleError: {2952 _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']2983 _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']2953 },2984 },2954 /**2985 /**2955 * Lookup348: orml_tokens::BalanceLock<Balance>2986 * Lookup349: orml_tokens::BalanceLock<Balance>2956 **/2987 **/2957 OrmlTokensBalanceLock: {2988 OrmlTokensBalanceLock: {2958 id: '[u8;8]',2989 id: '[u8;8]',2959 amount: 'u128'2990 amount: 'u128'2960 },2991 },2961 /**2992 /**2962 * Lookup350: orml_tokens::AccountData<Balance>2993 * Lookup351: orml_tokens::AccountData<Balance>2963 **/2994 **/2964 OrmlTokensAccountData: {2995 OrmlTokensAccountData: {2965 free: 'u128',2996 free: 'u128',2966 reserved: 'u128',2997 reserved: 'u128',2967 frozen: 'u128'2998 frozen: 'u128'2968 },2999 },2969 /**3000 /**2970 * Lookup352: orml_tokens::ReserveData<ReserveIdentifier, Balance>3001 * Lookup353: orml_tokens::ReserveData<ReserveIdentifier, Balance>2971 **/3002 **/2972 OrmlTokensReserveData: {3003 OrmlTokensReserveData: {2973 id: 'Null',3004 id: 'Null',2974 amount: 'u128'3005 amount: 'u128'2975 },3006 },2976 /**3007 /**2977 * Lookup354: orml_tokens::module::Error<T>3008 * Lookup355: orml_tokens::module::Error<T>2978 **/3009 **/2979 OrmlTokensModuleError: {3010 OrmlTokensModuleError: {2980 _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']3011 _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']2981 },3012 },2982 /**3013 /**2983 * Lookup356: cumulus_pallet_xcmp_queue::InboundChannelDetails3014 * Lookup357: cumulus_pallet_xcmp_queue::InboundChannelDetails2984 **/3015 **/2985 CumulusPalletXcmpQueueInboundChannelDetails: {3016 CumulusPalletXcmpQueueInboundChannelDetails: {2986 sender: 'u32',3017 sender: 'u32',2987 state: 'CumulusPalletXcmpQueueInboundState',3018 state: 'CumulusPalletXcmpQueueInboundState',2988 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'3019 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2989 },3020 },2990 /**3021 /**2991 * Lookup357: cumulus_pallet_xcmp_queue::InboundState3022 * Lookup358: cumulus_pallet_xcmp_queue::InboundState2992 **/3023 **/2993 CumulusPalletXcmpQueueInboundState: {3024 CumulusPalletXcmpQueueInboundState: {2994 _enum: ['Ok', 'Suspended']3025 _enum: ['Ok', 'Suspended']2995 },3026 },2996 /**3027 /**2997 * Lookup360: polkadot_parachain::primitives::XcmpMessageFormat3028 * Lookup361: polkadot_parachain::primitives::XcmpMessageFormat2998 **/3029 **/2999 PolkadotParachainPrimitivesXcmpMessageFormat: {3030 PolkadotParachainPrimitivesXcmpMessageFormat: {3000 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']3031 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']3001 },3032 },3002 /**3033 /**3003 * Lookup363: cumulus_pallet_xcmp_queue::OutboundChannelDetails3034 * Lookup364: cumulus_pallet_xcmp_queue::OutboundChannelDetails3004 **/3035 **/3005 CumulusPalletXcmpQueueOutboundChannelDetails: {3036 CumulusPalletXcmpQueueOutboundChannelDetails: {3006 recipient: 'u32',3037 recipient: 'u32',3007 state: 'CumulusPalletXcmpQueueOutboundState',3038 state: 'CumulusPalletXcmpQueueOutboundState',3008 signalsExist: 'bool',3039 signalsExist: 'bool',3009 firstIndex: 'u16',3040 firstIndex: 'u16',3010 lastIndex: 'u16'3041 lastIndex: 'u16'3011 },3042 },3012 /**3043 /**3013 * Lookup364: cumulus_pallet_xcmp_queue::OutboundState3044 * Lookup365: cumulus_pallet_xcmp_queue::OutboundState3014 **/3045 **/3015 CumulusPalletXcmpQueueOutboundState: {3046 CumulusPalletXcmpQueueOutboundState: {3016 _enum: ['Ok', 'Suspended']3047 _enum: ['Ok', 'Suspended']3017 },3048 },3018 /**3049 /**3019 * Lookup366: cumulus_pallet_xcmp_queue::QueueConfigData3050 * Lookup367: cumulus_pallet_xcmp_queue::QueueConfigData3020 **/3051 **/3021 CumulusPalletXcmpQueueQueueConfigData: {3052 CumulusPalletXcmpQueueQueueConfigData: {3022 suspendThreshold: 'u32',3053 suspendThreshold: 'u32',3023 dropThreshold: 'u32',3054 dropThreshold: 'u32',3026 weightRestrictDecay: 'Weight',3057 weightRestrictDecay: 'Weight',3027 xcmpMaxIndividualWeight: 'Weight'3058 xcmpMaxIndividualWeight: 'Weight'3028 },3059 },3029 /**3060 /**3030 * Lookup368: cumulus_pallet_xcmp_queue::pallet::Error<T>3061 * Lookup369: cumulus_pallet_xcmp_queue::pallet::Error<T>3031 **/3062 **/3032 CumulusPalletXcmpQueueError: {3063 CumulusPalletXcmpQueueError: {3033 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']3064 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']3034 },3065 },3035 /**3066 /**3036 * Lookup369: pallet_xcm::pallet::Error<T>3067 * Lookup370: pallet_xcm::pallet::Error<T>3037 **/3068 **/3038 PalletXcmError: {3069 PalletXcmError: {3039 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']3070 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']3040 },3071 },3041 /**3072 /**3042 * Lookup370: cumulus_pallet_xcm::pallet::Error<T>3073 * Lookup371: cumulus_pallet_xcm::pallet::Error<T>3043 **/3074 **/3044 CumulusPalletXcmError: 'Null',3075 CumulusPalletXcmError: 'Null',3045 /**3076 /**3046 * Lookup371: cumulus_pallet_dmp_queue::ConfigData3077 * Lookup372: cumulus_pallet_dmp_queue::ConfigData3047 **/3078 **/3048 CumulusPalletDmpQueueConfigData: {3079 CumulusPalletDmpQueueConfigData: {3049 maxIndividual: 'Weight'3080 maxIndividual: 'Weight'3050 },3081 },3051 /**3082 /**3052 * Lookup372: cumulus_pallet_dmp_queue::PageIndexData3083 * Lookup373: cumulus_pallet_dmp_queue::PageIndexData3053 **/3084 **/3054 CumulusPalletDmpQueuePageIndexData: {3085 CumulusPalletDmpQueuePageIndexData: {3055 beginUsed: 'u32',3086 beginUsed: 'u32',3056 endUsed: 'u32',3087 endUsed: 'u32',3057 overweightCount: 'u64'3088 overweightCount: 'u64'3058 },3089 },3059 /**3090 /**3060 * Lookup375: cumulus_pallet_dmp_queue::pallet::Error<T>3091 * Lookup376: cumulus_pallet_dmp_queue::pallet::Error<T>3061 **/3092 **/3062 CumulusPalletDmpQueueError: {3093 CumulusPalletDmpQueueError: {3063 _enum: ['Unknown', 'OverLimit']3094 _enum: ['Unknown', 'OverLimit']3064 },3095 },3065 /**3096 /**3066 * Lookup379: pallet_unique::Error<T>3097 * Lookup380: pallet_unique::Error<T>3067 **/3098 **/3068 PalletUniqueError: {3099 PalletUniqueError: {3069 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3100 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3070 },3101 },3102 /**3103 * Lookup381: pallet_unique_scheduler_v2::BlockAgenda<T>3104 **/3105 PalletUniqueSchedulerV2BlockAgenda: {3106 agenda: 'Vec<Option<PalletUniqueSchedulerV2Scheduled>>',3107 freePlaces: 'u32'3108 },3071 /**3109 /**3072 * Lookup382: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::RuntimeCall, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>3110 * Lookup384: pallet_unique_scheduler_v2::Scheduled<Name, pallet_unique_scheduler_v2::ScheduledCall<T>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>3073 **/3111 **/3074 PalletUniqueSchedulerScheduledV3: {3112 PalletUniqueSchedulerV2Scheduled: {3075 maybeId: 'Option<[u8;16]>',3113 maybeId: 'Option<[u8;32]>',3076 priority: 'u8',3114 priority: 'u8',3077 call: 'FrameSupportScheduleMaybeHashed',3115 call: 'PalletUniqueSchedulerV2ScheduledCall',3078 maybePeriodic: 'Option<(u32,u32)>',3116 maybePeriodic: 'Option<(u32,u32)>',3079 origin: 'OpalRuntimeOriginCaller'3117 origin: 'OpalRuntimeOriginCaller'3080 },3118 },3119 /**3120 * Lookup385: pallet_unique_scheduler_v2::ScheduledCall<T>3121 **/3122 PalletUniqueSchedulerV2ScheduledCall: {3123 _enum: {3124 Inline: 'Bytes',3125 PreimageLookup: {3126 _alias: {3127 hash_: 'hash',3128 },3129 hash_: 'H256',3130 unboundedLen: 'u32'3131 }3132 }3133 },3081 /**3134 /**3082 * Lookup383: opal_runtime::OriginCaller3135 * Lookup387: opal_runtime::OriginCaller3083 **/3136 **/3084 OpalRuntimeOriginCaller: {3137 OpalRuntimeOriginCaller: {3085 _enum: {3138 _enum: {3086 system: 'FrameSupportDispatchRawOrigin',3139 system: 'FrameSupportDispatchRawOrigin',3187 Ethereum: 'PalletEthereumRawOrigin'3240 Ethereum: 'PalletEthereumRawOrigin'3188 }3241 }3189 },3242 },3190 /**3243 /**3191 * Lookup384: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>3244 * Lookup388: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>3192 **/3245 **/3193 FrameSupportDispatchRawOrigin: {3246 FrameSupportDispatchRawOrigin: {3194 _enum: {3247 _enum: {3195 Root: 'Null',3248 Root: 'Null',3196 Signed: 'AccountId32',3249 Signed: 'AccountId32',3197 None: 'Null'3250 None: 'Null'3198 }3251 }3199 },3252 },3200 /**3253 /**3201 * Lookup385: pallet_xcm::pallet::Origin3254 * Lookup389: pallet_xcm::pallet::Origin3202 **/3255 **/3203 PalletXcmOrigin: {3256 PalletXcmOrigin: {3204 _enum: {3257 _enum: {3205 Xcm: 'XcmV1MultiLocation',3258 Xcm: 'XcmV1MultiLocation',3206 Response: 'XcmV1MultiLocation'3259 Response: 'XcmV1MultiLocation'3207 }3260 }3208 },3261 },3209 /**3262 /**3210 * Lookup386: cumulus_pallet_xcm::pallet::Origin3263 * Lookup390: cumulus_pallet_xcm::pallet::Origin3211 **/3264 **/3212 CumulusPalletXcmOrigin: {3265 CumulusPalletXcmOrigin: {3213 _enum: {3266 _enum: {3214 Relay: 'Null',3267 Relay: 'Null',3215 SiblingParachain: 'u32'3268 SiblingParachain: 'u32'3216 }3269 }3217 },3270 },3218 /**3271 /**3219 * Lookup387: pallet_ethereum::RawOrigin3272 * Lookup391: pallet_ethereum::RawOrigin3220 **/3273 **/3221 PalletEthereumRawOrigin: {3274 PalletEthereumRawOrigin: {3222 _enum: {3275 _enum: {3223 EthereumTransaction: 'H160'3276 EthereumTransaction: 'H160'3224 }3277 }3225 },3278 },3226 /**3279 /**3227 * Lookup388: sp_core::Void3280 * Lookup392: sp_core::Void3228 **/3281 **/3229 SpCoreVoid: 'Null',3282 SpCoreVoid: 'Null',3230 /**3283 /**3231 * Lookup389: pallet_unique_scheduler::pallet::Error<T>3284 * Lookup394: pallet_unique_scheduler_v2::pallet::Error<T>3232 **/3285 **/3233 PalletUniqueSchedulerError: {3286 PalletUniqueSchedulerV2Error: {3234 _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']3287 _enum: ['FailedToSchedule', 'AgendaIsExhausted', 'ScheduledCallCorrupted', 'PreimageNotFound', 'TooBigScheduledCall', 'NotFound', 'TargetBlockNumberInPast', 'Named']3235 },3288 },3236 /**3289 /**3237 * Lookup390: up_data_structs::Collection<sp_core::crypto::AccountId32>3290 * Lookup395: up_data_structs::Collection<sp_core::crypto::AccountId32>3238 **/3291 **/3239 UpDataStructsCollection: {3292 UpDataStructsCollection: {3240 owner: 'AccountId32',3293 owner: 'AccountId32',3241 mode: 'UpDataStructsCollectionMode',3294 mode: 'UpDataStructsCollectionMode',3247 permissions: 'UpDataStructsCollectionPermissions',3300 permissions: 'UpDataStructsCollectionPermissions',3248 flags: '[u8;1]'3301 flags: '[u8;1]'3249 },3302 },3250 /**3303 /**3251 * Lookup391: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3304 * Lookup396: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3252 **/3305 **/3253 UpDataStructsSponsorshipStateAccountId32: {3306 UpDataStructsSponsorshipStateAccountId32: {3254 _enum: {3307 _enum: {3255 Disabled: 'Null',3308 Disabled: 'Null',3256 Unconfirmed: 'AccountId32',3309 Unconfirmed: 'AccountId32',3257 Confirmed: 'AccountId32'3310 Confirmed: 'AccountId32'3258 }3311 }3259 },3312 },3260 /**3313 /**3261 * Lookup393: up_data_structs::Properties3314 * Lookup398: up_data_structs::Properties3262 **/3315 **/3263 UpDataStructsProperties: {3316 UpDataStructsProperties: {3264 map: 'UpDataStructsPropertiesMapBoundedVec',3317 map: 'UpDataStructsPropertiesMapBoundedVec',3265 consumedSpace: 'u32',3318 consumedSpace: 'u32',3266 spaceLimit: 'u32'3319 spaceLimit: 'u32'3267 },3320 },3268 /**3321 /**3269 * Lookup394: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3322 * Lookup399: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3270 **/3323 **/3271 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3324 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3272 /**3325 /**3273 * Lookup399: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3326 * Lookup404: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3274 **/3327 **/3275 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3328 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3276 /**3329 /**3277 * Lookup406: up_data_structs::CollectionStats3330 * Lookup411: up_data_structs::CollectionStats3278 **/3331 **/3279 UpDataStructsCollectionStats: {3332 UpDataStructsCollectionStats: {3280 created: 'u32',3333 created: 'u32',3281 destroyed: 'u32',3334 destroyed: 'u32',3282 alive: 'u32'3335 alive: 'u32'3283 },3336 },3284 /**3337 /**3285 * Lookup407: up_data_structs::TokenChild3338 * Lookup412: up_data_structs::TokenChild3286 **/3339 **/3287 UpDataStructsTokenChild: {3340 UpDataStructsTokenChild: {3288 token: 'u32',3341 token: 'u32',3289 collection: 'u32'3342 collection: 'u32'3290 },3343 },3291 /**3344 /**3292 * Lookup408: PhantomType::up_data_structs<T>3345 * Lookup413: PhantomType::up_data_structs<T>3293 **/3346 **/3294 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',3347 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',3295 /**3348 /**3296 * Lookup410: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3349 * Lookup415: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3297 **/3350 **/3298 UpDataStructsTokenData: {3351 UpDataStructsTokenData: {3299 properties: 'Vec<UpDataStructsProperty>',3352 properties: 'Vec<UpDataStructsProperty>',3300 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3353 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3301 pieces: 'u128'3354 pieces: 'u128'3302 },3355 },3303 /**3356 /**3304 * Lookup412: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3357 * Lookup417: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3305 **/3358 **/3306 UpDataStructsRpcCollection: {3359 UpDataStructsRpcCollection: {3307 owner: 'AccountId32',3360 owner: 'AccountId32',3308 mode: 'UpDataStructsCollectionMode',3361 mode: 'UpDataStructsCollectionMode',3317 readOnly: 'bool',3370 readOnly: 'bool',3318 flags: 'UpDataStructsRpcCollectionFlags'3371 flags: 'UpDataStructsRpcCollectionFlags'3319 },3372 },3320 /**3373 /**3321 * Lookup413: up_data_structs::RpcCollectionFlags3374 * Lookup418: up_data_structs::RpcCollectionFlags3322 **/3375 **/3323 UpDataStructsRpcCollectionFlags: {3376 UpDataStructsRpcCollectionFlags: {3324 foreign: 'bool',3377 foreign: 'bool',3325 erc721metadata: 'bool'3378 erc721metadata: 'bool'3326 },3379 },3327 /**3380 /**3328 * Lookup414: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3381 * Lookup419: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3329 **/3382 **/3330 RmrkTraitsCollectionCollectionInfo: {3383 RmrkTraitsCollectionCollectionInfo: {3331 issuer: 'AccountId32',3384 issuer: 'AccountId32',3332 metadata: 'Bytes',3385 metadata: 'Bytes',3333 max: 'Option<u32>',3386 max: 'Option<u32>',3334 symbol: 'Bytes',3387 symbol: 'Bytes',3335 nftsCount: 'u32'3388 nftsCount: 'u32'3336 },3389 },3337 /**3390 /**3338 * Lookup415: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3391 * Lookup420: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3339 **/3392 **/3340 RmrkTraitsNftNftInfo: {3393 RmrkTraitsNftNftInfo: {3341 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3394 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3342 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3395 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3343 metadata: 'Bytes',3396 metadata: 'Bytes',3344 equipped: 'bool',3397 equipped: 'bool',3345 pending: 'bool'3398 pending: 'bool'3346 },3399 },3347 /**3400 /**3348 * Lookup417: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3401 * Lookup422: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3349 **/3402 **/3350 RmrkTraitsNftRoyaltyInfo: {3403 RmrkTraitsNftRoyaltyInfo: {3351 recipient: 'AccountId32',3404 recipient: 'AccountId32',3352 amount: 'Permill'3405 amount: 'Permill'3353 },3406 },3354 /**3407 /**3355 * Lookup418: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3408 * Lookup423: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3356 **/3409 **/3357 RmrkTraitsResourceResourceInfo: {3410 RmrkTraitsResourceResourceInfo: {3358 id: 'u32',3411 id: 'u32',3359 resource: 'RmrkTraitsResourceResourceTypes',3412 resource: 'RmrkTraitsResourceResourceTypes',3360 pending: 'bool',3413 pending: 'bool',3361 pendingRemoval: 'bool'3414 pendingRemoval: 'bool'3362 },3415 },3363 /**3416 /**3364 * Lookup419: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3417 * Lookup424: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3365 **/3418 **/3366 RmrkTraitsPropertyPropertyInfo: {3419 RmrkTraitsPropertyPropertyInfo: {3367 key: 'Bytes',3420 key: 'Bytes',3368 value: 'Bytes'3421 value: 'Bytes'3369 },3422 },3370 /**3423 /**3371 * Lookup420: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3424 * Lookup425: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3372 **/3425 **/3373 RmrkTraitsBaseBaseInfo: {3426 RmrkTraitsBaseBaseInfo: {3374 issuer: 'AccountId32',3427 issuer: 'AccountId32',3375 baseType: 'Bytes',3428 baseType: 'Bytes',3376 symbol: 'Bytes'3429 symbol: 'Bytes'3377 },3430 },3378 /**3431 /**3379 * Lookup421: rmrk_traits::nft::NftChild3432 * Lookup426: rmrk_traits::nft::NftChild3380 **/3433 **/3381 RmrkTraitsNftNftChild: {3434 RmrkTraitsNftNftChild: {3382 collectionId: 'u32',3435 collectionId: 'u32',3383 nftId: 'u32'3436 nftId: 'u32'3384 },3437 },3385 /**3438 /**3386 * Lookup423: pallet_common::pallet::Error<T>3439 * Lookup428: pallet_common::pallet::Error<T>3387 **/3440 **/3388 PalletCommonError: {3441 PalletCommonError: {3389 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']3442 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']3390 },3443 },3391 /**3444 /**3392 * Lookup425: pallet_fungible::pallet::Error<T>3445 * Lookup430: pallet_fungible::pallet::Error<T>3393 **/3446 **/3394 PalletFungibleError: {3447 PalletFungibleError: {3395 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3448 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3396 },3449 },3397 /**3450 /**3398 * Lookup426: pallet_refungible::ItemData3451 * Lookup431: pallet_refungible::ItemData3399 **/3452 **/3400 PalletRefungibleItemData: {3453 PalletRefungibleItemData: {3401 constData: 'Bytes'3454 constData: 'Bytes'3402 },3455 },3403 /**3456 /**3404 * Lookup431: pallet_refungible::pallet::Error<T>3457 * Lookup436: pallet_refungible::pallet::Error<T>3405 **/3458 **/3406 PalletRefungibleError: {3459 PalletRefungibleError: {3407 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3460 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3408 },3461 },3409 /**3462 /**3410 * Lookup432: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3463 * Lookup437: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3411 **/3464 **/3412 PalletNonfungibleItemData: {3465 PalletNonfungibleItemData: {3413 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3466 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3414 },3467 },3415 /**3468 /**3416 * Lookup434: up_data_structs::PropertyScope3469 * Lookup439: up_data_structs::PropertyScope3417 **/3470 **/3418 UpDataStructsPropertyScope: {3471 UpDataStructsPropertyScope: {3419 _enum: ['None', 'Rmrk']3472 _enum: ['None', 'Rmrk']3420 },3473 },3421 /**3474 /**3422 * Lookup436: pallet_nonfungible::pallet::Error<T>3475 * Lookup441: pallet_nonfungible::pallet::Error<T>3423 **/3476 **/3424 PalletNonfungibleError: {3477 PalletNonfungibleError: {3425 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3478 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3426 },3479 },3427 /**3480 /**3428 * Lookup437: pallet_structure::pallet::Error<T>3481 * Lookup442: pallet_structure::pallet::Error<T>3429 **/3482 **/3430 PalletStructureError: {3483 PalletStructureError: {3431 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3484 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3432 },3485 },3433 /**3486 /**3434 * Lookup438: pallet_rmrk_core::pallet::Error<T>3487 * Lookup443: pallet_rmrk_core::pallet::Error<T>3435 **/3488 **/3436 PalletRmrkCoreError: {3489 PalletRmrkCoreError: {3437 _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3490 _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3438 },3491 },3439 /**3492 /**3440 * Lookup440: pallet_rmrk_equip::pallet::Error<T>3493 * Lookup445: pallet_rmrk_equip::pallet::Error<T>3441 **/3494 **/3442 PalletRmrkEquipError: {3495 PalletRmrkEquipError: {3443 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3496 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3444 },3497 },3445 /**3498 /**3446 * Lookup446: pallet_app_promotion::pallet::Error<T>3499 * Lookup451: pallet_app_promotion::pallet::Error<T>3447 **/3500 **/3448 PalletAppPromotionError: {3501 PalletAppPromotionError: {3449 _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3502 _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3450 },3503 },3451 /**3504 /**3452 * Lookup447: pallet_foreign_assets::module::Error<T>3505 * Lookup452: pallet_foreign_assets::module::Error<T>3453 **/3506 **/3454 PalletForeignAssetsModuleError: {3507 PalletForeignAssetsModuleError: {3455 _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3508 _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3456 },3509 },3457 /**3510 /**3458 * Lookup450: pallet_evm::pallet::Error<T>3511 * Lookup454: pallet_evm::pallet::Error<T>3459 **/3512 **/3460 PalletEvmError: {3513 PalletEvmError: {3461 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']3514 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce', 'GasLimitTooLow', 'GasLimitTooHigh', 'Undefined', 'Reentrancy']3462 },3515 },3463 /**3516 /**3464 * Lookup453: fp_rpc::TransactionStatus3517 * Lookup457: fp_rpc::TransactionStatus3465 **/3518 **/3466 FpRpcTransactionStatus: {3519 FpRpcTransactionStatus: {3467 transactionHash: 'H256',3520 transactionHash: 'H256',3468 transactionIndex: 'u32',3521 transactionIndex: 'u32',3472 logs: 'Vec<EthereumLog>',3525 logs: 'Vec<EthereumLog>',3473 logsBloom: 'EthbloomBloom'3526 logsBloom: 'EthbloomBloom'3474 },3527 },3475 /**3528 /**3476 * Lookup455: ethbloom::Bloom3529 * Lookup459: ethbloom::Bloom3477 **/3530 **/3478 EthbloomBloom: '[u8;256]',3531 EthbloomBloom: '[u8;256]',3479 /**3532 /**3480 * Lookup457: ethereum::receipt::ReceiptV33533 * Lookup461: ethereum::receipt::ReceiptV33481 **/3534 **/3482 EthereumReceiptReceiptV3: {3535 EthereumReceiptReceiptV3: {3483 _enum: {3536 _enum: {3484 Legacy: 'EthereumReceiptEip658ReceiptData',3537 Legacy: 'EthereumReceiptEip658ReceiptData',3485 EIP2930: 'EthereumReceiptEip658ReceiptData',3538 EIP2930: 'EthereumReceiptEip658ReceiptData',3486 EIP1559: 'EthereumReceiptEip658ReceiptData'3539 EIP1559: 'EthereumReceiptEip658ReceiptData'3487 }3540 }3488 },3541 },3489 /**3542 /**3490 * Lookup458: ethereum::receipt::EIP658ReceiptData3543 * Lookup462: ethereum::receipt::EIP658ReceiptData3491 **/3544 **/3492 EthereumReceiptEip658ReceiptData: {3545 EthereumReceiptEip658ReceiptData: {3493 statusCode: 'u8',3546 statusCode: 'u8',3494 usedGas: 'U256',3547 usedGas: 'U256',3495 logsBloom: 'EthbloomBloom',3548 logsBloom: 'EthbloomBloom',3496 logs: 'Vec<EthereumLog>'3549 logs: 'Vec<EthereumLog>'3497 },3550 },3498 /**3551 /**3499 * Lookup459: ethereum::block::Block<ethereum::transaction::TransactionV2>3552 * Lookup463: ethereum::block::Block<ethereum::transaction::TransactionV2>3500 **/3553 **/3501 EthereumBlock: {3554 EthereumBlock: {3502 header: 'EthereumHeader',3555 header: 'EthereumHeader',3503 transactions: 'Vec<EthereumTransactionTransactionV2>',3556 transactions: 'Vec<EthereumTransactionTransactionV2>',3504 ommers: 'Vec<EthereumHeader>'3557 ommers: 'Vec<EthereumHeader>'3505 },3558 },3506 /**3559 /**3507 * Lookup460: ethereum::header::Header3560 * Lookup464: ethereum::header::Header3508 **/3561 **/3509 EthereumHeader: {3562 EthereumHeader: {3510 parentHash: 'H256',3563 parentHash: 'H256',3511 ommersHash: 'H256',3564 ommersHash: 'H256',3523 mixHash: 'H256',3576 mixHash: 'H256',3524 nonce: 'EthereumTypesHashH64'3577 nonce: 'EthereumTypesHashH64'3525 },3578 },3526 /**3579 /**3527 * Lookup461: ethereum_types::hash::H643580 * Lookup465: ethereum_types::hash::H643528 **/3581 **/3529 EthereumTypesHashH64: '[u8;8]',3582 EthereumTypesHashH64: '[u8;8]',3530 /**3583 /**3531 * Lookup466: pallet_ethereum::pallet::Error<T>3584 * Lookup470: pallet_ethereum::pallet::Error<T>3532 **/3585 **/3533 PalletEthereumError: {3586 PalletEthereumError: {3534 _enum: ['InvalidSignature', 'PreLogExists']3587 _enum: ['InvalidSignature', 'PreLogExists']3535 },3588 },3536 /**3589 /**3537 * Lookup467: pallet_evm_coder_substrate::pallet::Error<T>3590 * Lookup471: pallet_evm_coder_substrate::pallet::Error<T>3538 **/3591 **/3539 PalletEvmCoderSubstrateError: {3592 PalletEvmCoderSubstrateError: {3540 _enum: ['OutOfGas', 'OutOfFund']3593 _enum: ['OutOfGas', 'OutOfFund']3541 },3594 },3542 /**3595 /**3543 * Lookup468: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3596 * Lookup472: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3544 **/3597 **/3545 UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3598 UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3546 _enum: {3599 _enum: {3547 Disabled: 'Null',3600 Disabled: 'Null',3548 Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3601 Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3549 Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3602 Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3550 }3603 }3551 },3604 },3552 /**3605 /**3553 * Lookup469: pallet_evm_contract_helpers::SponsoringModeT3606 * Lookup473: pallet_evm_contract_helpers::SponsoringModeT3554 **/3607 **/3555 PalletEvmContractHelpersSponsoringModeT: {3608 PalletEvmContractHelpersSponsoringModeT: {3556 _enum: ['Disabled', 'Allowlisted', 'Generous']3609 _enum: ['Disabled', 'Allowlisted', 'Generous']3557 },3610 },3558 /**3611 /**3559 * Lookup475: pallet_evm_contract_helpers::pallet::Error<T>3612 * Lookup479: pallet_evm_contract_helpers::pallet::Error<T>3560 **/3613 **/3561 PalletEvmContractHelpersError: {3614 PalletEvmContractHelpersError: {3562 _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3615 _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3563 },3616 },3564 /**3617 /**3565 * Lookup476: pallet_evm_migration::pallet::Error<T>3618 * Lookup480: pallet_evm_migration::pallet::Error<T>3566 **/3619 **/3567 PalletEvmMigrationError: {3620 PalletEvmMigrationError: {3568 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']3621 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating', 'BadEvent']3569 },3622 },3570 /**3623 /**3571 * Lookup477: pallet_maintenance::pallet::Error<T>3624 * Lookup481: pallet_maintenance::pallet::Error<T>3572 **/3625 **/3573 PalletMaintenanceError: 'Null',3626 PalletMaintenanceError: 'Null',3574 /**3627 /**3575 * Lookup478: pallet_test_utils::pallet::Error<T>3628 * Lookup482: pallet_test_utils::pallet::Error<T>3576 **/3629 **/3577 PalletTestUtilsError: {3630 PalletTestUtilsError: {3578 _enum: ['TestPalletDisabled', 'TriggerRollback']3631 _enum: ['TestPalletDisabled', 'TriggerRollback']3579 },3632 },3580 /**3633 /**3581 * Lookup480: sp_runtime::MultiSignature3634 * Lookup484: sp_runtime::MultiSignature3582 **/3635 **/3583 SpRuntimeMultiSignature: {3636 SpRuntimeMultiSignature: {3584 _enum: {3637 _enum: {3585 Ed25519: 'SpCoreEd25519Signature',3638 Ed25519: 'SpCoreEd25519Signature',3586 Sr25519: 'SpCoreSr25519Signature',3639 Sr25519: 'SpCoreSr25519Signature',3587 Ecdsa: 'SpCoreEcdsaSignature'3640 Ecdsa: 'SpCoreEcdsaSignature'3588 }3641 }3589 },3642 },3590 /**3643 /**3591 * Lookup481: sp_core::ed25519::Signature3644 * Lookup485: sp_core::ed25519::Signature3592 **/3645 **/3593 SpCoreEd25519Signature: '[u8;64]',3646 SpCoreEd25519Signature: '[u8;64]',3594 /**3647 /**3595 * Lookup483: sp_core::sr25519::Signature3648 * Lookup487: sp_core::sr25519::Signature3596 **/3649 **/3597 SpCoreSr25519Signature: '[u8;64]',3650 SpCoreSr25519Signature: '[u8;64]',3598 /**3651 /**3599 * Lookup484: sp_core::ecdsa::Signature3652 * Lookup488: sp_core::ecdsa::Signature3600 **/3653 **/3601 SpCoreEcdsaSignature: '[u8;65]',3654 SpCoreEcdsaSignature: '[u8;65]',3602 /**3655 /**3603 * Lookup487: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3656 * Lookup491: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3604 **/3657 **/3605 FrameSystemExtensionsCheckSpecVersion: 'Null',3658 FrameSystemExtensionsCheckSpecVersion: 'Null',3606 /**3659 /**3607 * Lookup488: frame_system::extensions::check_tx_version::CheckTxVersion<T>3660 * Lookup492: frame_system::extensions::check_tx_version::CheckTxVersion<T>3608 **/3661 **/3609 FrameSystemExtensionsCheckTxVersion: 'Null',3662 FrameSystemExtensionsCheckTxVersion: 'Null',3610 /**3663 /**3611 * Lookup489: frame_system::extensions::check_genesis::CheckGenesis<T>3664 * Lookup493: frame_system::extensions::check_genesis::CheckGenesis<T>3612 **/3665 **/3613 FrameSystemExtensionsCheckGenesis: 'Null',3666 FrameSystemExtensionsCheckGenesis: 'Null',3614 /**3667 /**3615 * Lookup492: frame_system::extensions::check_nonce::CheckNonce<T>3668 * Lookup496: frame_system::extensions::check_nonce::CheckNonce<T>3616 **/3669 **/3617 FrameSystemExtensionsCheckNonce: 'Compact<u32>',3670 FrameSystemExtensionsCheckNonce: 'Compact<u32>',3618 /**3671 /**3619 * Lookup493: frame_system::extensions::check_weight::CheckWeight<T>3672 * Lookup497: frame_system::extensions::check_weight::CheckWeight<T>3620 **/3673 **/3621 FrameSystemExtensionsCheckWeight: 'Null',3674 FrameSystemExtensionsCheckWeight: 'Null',3622 /**3675 /**3623 * Lookup494: opal_runtime::runtime_common::maintenance::CheckMaintenance3676 * Lookup498: opal_runtime::runtime_common::maintenance::CheckMaintenance3624 **/3677 **/3625 OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',3678 OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',3626 /**3679 /**3627 * Lookup495: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3680 * Lookup499: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3628 **/3681 **/3629 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3682 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3630 /**3683 /**3631 * Lookup496: opal_runtime::Runtime3684 * Lookup500: opal_runtime::Runtime3632 **/3685 **/3633 OpalRuntimeRuntime: 'Null',3686 OpalRuntimeRuntime: 'Null',3634 /**3687 /**3635 * Lookup497: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3688 * Lookup501: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3636 **/3689 **/3637 PalletEthereumFakeTransactionFinalizer: 'Null'3690 PalletEthereumFakeTransactionFinalizer: 'Null'3638};3691};36393692tests/src/interfaces/registry.tsdiffbeforeafterboth5// this is required to allow for ambient/previous definitions5// this is required to allow for ambient/previous definitions6import '@polkadot/types/types/registry';6import '@polkadot/types/types/registry';778import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, 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, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';8import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerV2BlockAgenda, PalletUniqueSchedulerV2Call, PalletUniqueSchedulerV2Error, PalletUniqueSchedulerV2Event, PalletUniqueSchedulerV2Scheduled, PalletUniqueSchedulerV2ScheduledCall, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, 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, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';9910declare module '@polkadot/types/types/registry' {10declare module '@polkadot/types/types/registry' {11 interface InterfaceTypes {11 interface InterfaceTypes {59 FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;59 FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;60 FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;60 FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;61 FrameSupportPalletId: FrameSupportPalletId;61 FrameSupportPalletId: FrameSupportPalletId;62 FrameSupportScheduleLookupError: FrameSupportScheduleLookupError;63 FrameSupportScheduleMaybeHashed: FrameSupportScheduleMaybeHashed;64 FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;62 FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;65 FrameSystemAccountInfo: FrameSystemAccountInfo;63 FrameSystemAccountInfo: FrameSystemAccountInfo;66 FrameSystemCall: FrameSystemCall;64 FrameSystemCall: FrameSystemCall;122 PalletEvmEvent: PalletEvmEvent;120 PalletEvmEvent: PalletEvmEvent;123 PalletEvmMigrationCall: PalletEvmMigrationCall;121 PalletEvmMigrationCall: PalletEvmMigrationCall;124 PalletEvmMigrationError: PalletEvmMigrationError;122 PalletEvmMigrationError: PalletEvmMigrationError;123 PalletEvmMigrationEvent: PalletEvmMigrationEvent;125 PalletForeignAssetsAssetIds: PalletForeignAssetsAssetIds;124 PalletForeignAssetsAssetIds: PalletForeignAssetsAssetIds;126 PalletForeignAssetsModuleAssetMetadata: PalletForeignAssetsModuleAssetMetadata;125 PalletForeignAssetsModuleAssetMetadata: PalletForeignAssetsModuleAssetMetadata;127 PalletForeignAssetsModuleCall: PalletForeignAssetsModuleCall;126 PalletForeignAssetsModuleCall: PalletForeignAssetsModuleCall;164 PalletUniqueCall: PalletUniqueCall;163 PalletUniqueCall: PalletUniqueCall;165 PalletUniqueError: PalletUniqueError;164 PalletUniqueError: PalletUniqueError;166 PalletUniqueRawEvent: PalletUniqueRawEvent;165 PalletUniqueRawEvent: PalletUniqueRawEvent;167 PalletUniqueSchedulerCall: PalletUniqueSchedulerCall;166 PalletUniqueSchedulerV2BlockAgenda: PalletUniqueSchedulerV2BlockAgenda;168 PalletUniqueSchedulerError: PalletUniqueSchedulerError;167 PalletUniqueSchedulerV2Call: PalletUniqueSchedulerV2Call;169 PalletUniqueSchedulerEvent: PalletUniqueSchedulerEvent;168 PalletUniqueSchedulerV2Error: PalletUniqueSchedulerV2Error;170 PalletUniqueSchedulerScheduledV3: PalletUniqueSchedulerScheduledV3;169 PalletUniqueSchedulerV2Event: PalletUniqueSchedulerV2Event;170 PalletUniqueSchedulerV2Scheduled: PalletUniqueSchedulerV2Scheduled;171 PalletUniqueSchedulerV2ScheduledCall: PalletUniqueSchedulerV2ScheduledCall;171 PalletXcmCall: PalletXcmCall;172 PalletXcmCall: PalletXcmCall;172 PalletXcmError: PalletXcmError;173 PalletXcmError: PalletXcmError;173 PalletXcmEvent: PalletXcmEvent;174 PalletXcmEvent: PalletXcmEvent;tests/src/interfaces/types-lookup.tsdiffbeforeafterboth1132 readonly type: 'Substrate' | 'Ethereum';1132 readonly type: 'Substrate' | 'Ethereum';1133 }1133 }113411341135 /** @name PalletUniqueSchedulerEvent (93) */1135 /** @name PalletUniqueSchedulerV2Event (93) */1136 interface PalletUniqueSchedulerEvent extends Enum {1136 interface PalletUniqueSchedulerV2Event extends Enum {1137 readonly isScheduled: boolean;1137 readonly isScheduled: boolean;1138 readonly asScheduled: {1138 readonly asScheduled: {1139 readonly when: u32;1139 readonly when: u32;1144 readonly when: u32;1144 readonly when: u32;1145 readonly index: u32;1145 readonly index: u32;1146 } & Struct;1146 } & Struct;1147 readonly isDispatched: boolean;1148 readonly asDispatched: {1149 readonly task: ITuple<[u32, u32]>;1150 readonly id: Option<U8aFixed>;1151 readonly result: Result<Null, SpRuntimeDispatchError>;1152 } & Struct;1147 readonly isPriorityChanged: boolean;1153 readonly isPriorityChanged: boolean;1148 readonly asPriorityChanged: {1154 readonly asPriorityChanged: {1149 readonly when: u32;1155 readonly task: ITuple<[u32, u32]>;1150 readonly index: u32;1151 readonly priority: u8;1156 readonly priority: u8;1152 } & Struct;1157 } & Struct;1153 readonly isDispatched: boolean;1158 readonly isCallUnavailable: boolean;1154 readonly asDispatched: {1159 readonly asCallUnavailable: {1155 readonly task: ITuple<[u32, u32]>;1160 readonly task: ITuple<[u32, u32]>;1156 readonly id: Option<U8aFixed>;1161 readonly id: Option<U8aFixed>;1157 readonly result: Result<Null, SpRuntimeDispatchError>;1158 } & Struct;1162 } & Struct;1159 readonly isCallLookupFailed: boolean;1163 readonly isPermanentlyOverweight: boolean;1160 readonly asCallLookupFailed: {1164 readonly asPermanentlyOverweight: {1161 readonly task: ITuple<[u32, u32]>;1165 readonly task: ITuple<[u32, u32]>;1162 readonly id: Option<U8aFixed>;1166 readonly id: Option<U8aFixed>;1163 readonly error: FrameSupportScheduleLookupError;1164 } & Struct;1167 } & Struct;1165 readonly type: 'Scheduled' | 'Canceled' | 'PriorityChanged' | 'Dispatched' | 'CallLookupFailed';1168 readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'PriorityChanged' | 'CallUnavailable' | 'PermanentlyOverweight';1166 }1169 }11671168 /** @name FrameSupportScheduleLookupError (96) */1169 interface FrameSupportScheduleLookupError extends Enum {1170 readonly isUnknown: boolean;1171 readonly isBadFormat: boolean;1172 readonly type: 'Unknown' | 'BadFormat';1173 }117411701175 /** @name PalletCommonEvent (97) */1171 /** @name PalletCommonEvent (96) */1176 interface PalletCommonEvent extends Enum {1172 interface PalletCommonEvent extends Enum {1177 readonly isCollectionCreated: boolean;1173 readonly isCollectionCreated: boolean;1178 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;1174 readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;1199 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';1195 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';1200 }1196 }120111971202 /** @name PalletStructureEvent (100) */1198 /** @name PalletStructureEvent (99) */1203 interface PalletStructureEvent extends Enum {1199 interface PalletStructureEvent extends Enum {1204 readonly isExecuted: boolean;1200 readonly isExecuted: boolean;1205 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1201 readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1206 readonly type: 'Executed';1202 readonly type: 'Executed';1207 }1203 }120812041209 /** @name PalletRmrkCoreEvent (101) */1205 /** @name PalletRmrkCoreEvent (100) */1210 interface PalletRmrkCoreEvent extends Enum {1206 interface PalletRmrkCoreEvent extends Enum {1211 readonly isCollectionCreated: boolean;1207 readonly isCollectionCreated: boolean;1212 readonly asCollectionCreated: {1208 readonly asCollectionCreated: {1296 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';1292 readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';1297 }1293 }129812941299 /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (102) */1295 /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (101) */1300 interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1296 interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {1301 readonly isAccountId: boolean;1297 readonly isAccountId: boolean;1302 readonly asAccountId: AccountId32;1298 readonly asAccountId: AccountId32;1305 readonly type: 'AccountId' | 'CollectionAndNftTuple';1301 readonly type: 'AccountId' | 'CollectionAndNftTuple';1306 }1302 }130713031308 /** @name PalletRmrkEquipEvent (107) */1304 /** @name PalletRmrkEquipEvent (106) */1309 interface PalletRmrkEquipEvent extends Enum {1305 interface PalletRmrkEquipEvent extends Enum {1310 readonly isBaseCreated: boolean;1306 readonly isBaseCreated: boolean;1311 readonly asBaseCreated: {1307 readonly asBaseCreated: {1320 readonly type: 'BaseCreated' | 'EquippablesUpdated';1316 readonly type: 'BaseCreated' | 'EquippablesUpdated';1321 }1317 }132213181323 /** @name PalletAppPromotionEvent (108) */1319 /** @name PalletAppPromotionEvent (107) */1324 interface PalletAppPromotionEvent extends Enum {1320 interface PalletAppPromotionEvent extends Enum {1325 readonly isStakingRecalculation: boolean;1321 readonly isStakingRecalculation: boolean;1326 readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;1322 readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;1333 readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';1329 readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';1334 }1330 }133513311336 /** @name PalletForeignAssetsModuleEvent (109) */1332 /** @name PalletForeignAssetsModuleEvent (108) */1337 interface PalletForeignAssetsModuleEvent extends Enum {1333 interface PalletForeignAssetsModuleEvent extends Enum {1338 readonly isForeignAssetRegistered: boolean;1334 readonly isForeignAssetRegistered: boolean;1339 readonly asForeignAssetRegistered: {1335 readonly asForeignAssetRegistered: {1360 readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';1356 readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';1361 }1357 }136213581363 /** @name PalletForeignAssetsModuleAssetMetadata (110) */1359 /** @name PalletForeignAssetsModuleAssetMetadata (109) */1364 interface PalletForeignAssetsModuleAssetMetadata extends Struct {1360 interface PalletForeignAssetsModuleAssetMetadata extends Struct {1365 readonly name: Bytes;1361 readonly name: Bytes;1366 readonly symbol: Bytes;1362 readonly symbol: Bytes;1367 readonly decimals: u8;1363 readonly decimals: u8;1368 readonly minimalBalance: u128;1364 readonly minimalBalance: u128;1369 }1365 }137013661371 /** @name PalletEvmEvent (111) */1367 /** @name PalletEvmEvent (110) */1372 interface PalletEvmEvent extends Enum {1368 interface PalletEvmEvent extends Enum {1373 readonly isLog: boolean;1369 readonly isLog: boolean;1374 readonly asLog: EthereumLog;1370 readonly asLog: {1371 readonly log: EthereumLog;1372 } & Struct;1375 readonly isCreated: boolean;1373 readonly isCreated: boolean;1376 readonly asCreated: H160;1374 readonly asCreated: {1375 readonly address: H160;1376 } & Struct;1377 readonly isCreatedFailed: boolean;1377 readonly isCreatedFailed: boolean;1378 readonly asCreatedFailed: H160;1378 readonly asCreatedFailed: {1379 readonly address: H160;1380 } & Struct;1379 readonly isExecuted: boolean;1381 readonly isExecuted: boolean;1380 readonly asExecuted: H160;1382 readonly asExecuted: {1383 readonly address: H160;1384 } & Struct;1381 readonly isExecutedFailed: boolean;1385 readonly isExecutedFailed: boolean;1382 readonly asExecutedFailed: H160;1383 readonly isBalanceDeposit: boolean;1386 readonly asExecutedFailed: {1384 readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;1387 readonly address: H160;1385 readonly isBalanceWithdraw: boolean;1388 } & Struct;1386 readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;1387 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1389 readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed';1388 }1390 }138913911390 /** @name EthereumLog (112) */1392 /** @name EthereumLog (111) */1391 interface EthereumLog extends Struct {1393 interface EthereumLog extends Struct {1392 readonly address: H160;1394 readonly address: H160;1393 readonly topics: Vec<H256>;1395 readonly topics: Vec<H256>;1394 readonly data: Bytes;1396 readonly data: Bytes;1395 }1397 }139613981397 /** @name PalletEthereumEvent (116) */1399 /** @name PalletEthereumEvent (113) */1398 interface PalletEthereumEvent extends Enum {1400 interface PalletEthereumEvent extends Enum {1399 readonly isExecuted: boolean;1401 readonly isExecuted: boolean;1400 readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;1402 readonly asExecuted: {1403 readonly from: H160;1404 readonly to: H160;1405 readonly transactionHash: H256;1406 readonly exitReason: EvmCoreErrorExitReason;1407 } & Struct;1401 readonly type: 'Executed';1408 readonly type: 'Executed';1402 }1409 }140314101404 /** @name EvmCoreErrorExitReason (117) */1411 /** @name EvmCoreErrorExitReason (114) */1405 interface EvmCoreErrorExitReason extends Enum {1412 interface EvmCoreErrorExitReason extends Enum {1406 readonly isSucceed: boolean;1413 readonly isSucceed: boolean;1407 readonly asSucceed: EvmCoreErrorExitSucceed;1414 readonly asSucceed: EvmCoreErrorExitSucceed;1414 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';1421 readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';1415 }1422 }141614231417 /** @name EvmCoreErrorExitSucceed (118) */1424 /** @name EvmCoreErrorExitSucceed (115) */1418 interface EvmCoreErrorExitSucceed extends Enum {1425 interface EvmCoreErrorExitSucceed extends Enum {1419 readonly isStopped: boolean;1426 readonly isStopped: boolean;1420 readonly isReturned: boolean;1427 readonly isReturned: boolean;1421 readonly isSuicided: boolean;1428 readonly isSuicided: boolean;1422 readonly type: 'Stopped' | 'Returned' | 'Suicided';1429 readonly type: 'Stopped' | 'Returned' | 'Suicided';1423 }1430 }142414311425 /** @name EvmCoreErrorExitError (119) */1432 /** @name EvmCoreErrorExitError (116) */1426 interface EvmCoreErrorExitError extends Enum {1433 interface EvmCoreErrorExitError extends Enum {1427 readonly isStackUnderflow: boolean;1434 readonly isStackUnderflow: boolean;1428 readonly isStackOverflow: boolean;1435 readonly isStackOverflow: boolean;1443 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';1450 readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';1444 }1451 }144514521446 /** @name EvmCoreErrorExitRevert (122) */1453 /** @name EvmCoreErrorExitRevert (119) */1447 interface EvmCoreErrorExitRevert extends Enum {1454 interface EvmCoreErrorExitRevert extends Enum {1448 readonly isReverted: boolean;1455 readonly isReverted: boolean;1449 readonly type: 'Reverted';1456 readonly type: 'Reverted';1450 }1457 }145114581452 /** @name EvmCoreErrorExitFatal (123) */1459 /** @name EvmCoreErrorExitFatal (120) */1453 interface EvmCoreErrorExitFatal extends Enum {1460 interface EvmCoreErrorExitFatal extends Enum {1454 readonly isNotSupported: boolean;1461 readonly isNotSupported: boolean;1455 readonly isUnhandledInterrupt: boolean;1462 readonly isUnhandledInterrupt: boolean;1460 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';1467 readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';1461 }1468 }146214691463 /** @name PalletEvmContractHelpersEvent (124) */1470 /** @name PalletEvmContractHelpersEvent (121) */1464 interface PalletEvmContractHelpersEvent extends Enum {1471 interface PalletEvmContractHelpersEvent extends Enum {1465 readonly isContractSponsorSet: boolean;1472 readonly isContractSponsorSet: boolean;1466 readonly asContractSponsorSet: ITuple<[H160, AccountId32]>;1473 readonly asContractSponsorSet: ITuple<[H160, AccountId32]>;1471 readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved';1478 readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved';1472 }1479 }14801481 /** @name PalletEvmMigrationEvent (122) */1482 interface PalletEvmMigrationEvent extends Enum {1483 readonly isTestEvent: boolean;1484 readonly type: 'TestEvent';1485 }147314861474 /** @name PalletMaintenanceEvent (125) */1487 /** @name PalletMaintenanceEvent (123) */1475 interface PalletMaintenanceEvent extends Enum {1488 interface PalletMaintenanceEvent extends Enum {1476 readonly isMaintenanceEnabled: boolean;1489 readonly isMaintenanceEnabled: boolean;1477 readonly isMaintenanceDisabled: boolean;1490 readonly isMaintenanceDisabled: boolean;1478 readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled';1491 readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled';1479 }1492 }148014931481 /** @name PalletTestUtilsEvent (126) */1494 /** @name PalletTestUtilsEvent (124) */1482 interface PalletTestUtilsEvent extends Enum {1495 interface PalletTestUtilsEvent extends Enum {1483 readonly isValueIsSet: boolean;1496 readonly isValueIsSet: boolean;1484 readonly isShouldRollback: boolean;1497 readonly isShouldRollback: boolean;1498 readonly isBatchCompleted: boolean;1485 readonly type: 'ValueIsSet' | 'ShouldRollback';1499 readonly type: 'ValueIsSet' | 'ShouldRollback' | 'BatchCompleted';1486 }1500 }148715011488 /** @name FrameSystemPhase (127) */1502 /** @name FrameSystemPhase (125) */1489 interface FrameSystemPhase extends Enum {1503 interface FrameSystemPhase extends Enum {1490 readonly isApplyExtrinsic: boolean;1504 readonly isApplyExtrinsic: boolean;1491 readonly asApplyExtrinsic: u32;1505 readonly asApplyExtrinsic: u32;1494 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';1508 readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';1495 }1509 }149615101497 /** @name FrameSystemLastRuntimeUpgradeInfo (129) */1511 /** @name FrameSystemLastRuntimeUpgradeInfo (127) */1498 interface FrameSystemLastRuntimeUpgradeInfo extends Struct {1512 interface FrameSystemLastRuntimeUpgradeInfo extends Struct {1499 readonly specVersion: Compact<u32>;1513 readonly specVersion: Compact<u32>;1500 readonly specName: Text;1514 readonly specName: Text;1501 }1515 }150215161503 /** @name FrameSystemCall (130) */1517 /** @name FrameSystemCall (128) */1504 interface FrameSystemCall extends Enum {1518 interface FrameSystemCall extends Enum {1505 readonly isFillBlock: boolean;1519 readonly isFillBlock: boolean;1506 readonly asFillBlock: {1520 readonly asFillBlock: {1542 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';1556 readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';1543 }1557 }154415581545 /** @name FrameSystemLimitsBlockWeights (135) */1559 /** @name FrameSystemLimitsBlockWeights (133) */1546 interface FrameSystemLimitsBlockWeights extends Struct {1560 interface FrameSystemLimitsBlockWeights extends Struct {1547 readonly baseBlock: Weight;1561 readonly baseBlock: Weight;1548 readonly maxBlock: Weight;1562 readonly maxBlock: Weight;1549 readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;1563 readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;1550 }1564 }155115651552 /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (136) */1566 /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (134) */1553 interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct {1567 interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct {1554 readonly normal: FrameSystemLimitsWeightsPerClass;1568 readonly normal: FrameSystemLimitsWeightsPerClass;1555 readonly operational: FrameSystemLimitsWeightsPerClass;1569 readonly operational: FrameSystemLimitsWeightsPerClass;1556 readonly mandatory: FrameSystemLimitsWeightsPerClass;1570 readonly mandatory: FrameSystemLimitsWeightsPerClass;1557 }1571 }155815721559 /** @name FrameSystemLimitsWeightsPerClass (137) */1573 /** @name FrameSystemLimitsWeightsPerClass (135) */1560 interface FrameSystemLimitsWeightsPerClass extends Struct {1574 interface FrameSystemLimitsWeightsPerClass extends Struct {1561 readonly baseExtrinsic: Weight;1575 readonly baseExtrinsic: Weight;1562 readonly maxExtrinsic: Option<Weight>;1576 readonly maxExtrinsic: Option<Weight>;1563 readonly maxTotal: Option<Weight>;1577 readonly maxTotal: Option<Weight>;1564 readonly reserved: Option<Weight>;1578 readonly reserved: Option<Weight>;1565 }1579 }156615801567 /** @name FrameSystemLimitsBlockLength (139) */1581 /** @name FrameSystemLimitsBlockLength (137) */1568 interface FrameSystemLimitsBlockLength extends Struct {1582 interface FrameSystemLimitsBlockLength extends Struct {1569 readonly max: FrameSupportDispatchPerDispatchClassU32;1583 readonly max: FrameSupportDispatchPerDispatchClassU32;1570 }1584 }157115851572 /** @name FrameSupportDispatchPerDispatchClassU32 (140) */1586 /** @name FrameSupportDispatchPerDispatchClassU32 (138) */1573 interface FrameSupportDispatchPerDispatchClassU32 extends Struct {1587 interface FrameSupportDispatchPerDispatchClassU32 extends Struct {1574 readonly normal: u32;1588 readonly normal: u32;1575 readonly operational: u32;1589 readonly operational: u32;1576 readonly mandatory: u32;1590 readonly mandatory: u32;1577 }1591 }157815921579 /** @name SpWeightsRuntimeDbWeight (141) */1593 /** @name SpWeightsRuntimeDbWeight (139) */1580 interface SpWeightsRuntimeDbWeight extends Struct {1594 interface SpWeightsRuntimeDbWeight extends Struct {1581 readonly read: u64;1595 readonly read: u64;1582 readonly write: u64;1596 readonly write: u64;1583 }1597 }158415981585 /** @name SpVersionRuntimeVersion (142) */1599 /** @name SpVersionRuntimeVersion (140) */1586 interface SpVersionRuntimeVersion extends Struct {1600 interface SpVersionRuntimeVersion extends Struct {1587 readonly specName: Text;1601 readonly specName: Text;1588 readonly implName: Text;1602 readonly implName: Text;1594 readonly stateVersion: u8;1608 readonly stateVersion: u8;1595 }1609 }159616101597 /** @name FrameSystemError (147) */1611 /** @name FrameSystemError (145) */1598 interface FrameSystemError extends Enum {1612 interface FrameSystemError extends Enum {1599 readonly isInvalidSpecName: boolean;1613 readonly isInvalidSpecName: boolean;1600 readonly isSpecVersionNeedsToIncrease: boolean;1614 readonly isSpecVersionNeedsToIncrease: boolean;1605 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';1619 readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';1606 }1620 }160716211608 /** @name PolkadotPrimitivesV2PersistedValidationData (148) */1622 /** @name PolkadotPrimitivesV2PersistedValidationData (146) */1609 interface PolkadotPrimitivesV2PersistedValidationData extends Struct {1623 interface PolkadotPrimitivesV2PersistedValidationData extends Struct {1610 readonly parentHead: Bytes;1624 readonly parentHead: Bytes;1611 readonly relayParentNumber: u32;1625 readonly relayParentNumber: u32;1612 readonly relayParentStorageRoot: H256;1626 readonly relayParentStorageRoot: H256;1613 readonly maxPovSize: u32;1627 readonly maxPovSize: u32;1614 }1628 }161516291616 /** @name PolkadotPrimitivesV2UpgradeRestriction (151) */1630 /** @name PolkadotPrimitivesV2UpgradeRestriction (149) */1617 interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {1631 interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {1618 readonly isPresent: boolean;1632 readonly isPresent: boolean;1619 readonly type: 'Present';1633 readonly type: 'Present';1620 }1634 }162116351622 /** @name SpTrieStorageProof (152) */1636 /** @name SpTrieStorageProof (150) */1623 interface SpTrieStorageProof extends Struct {1637 interface SpTrieStorageProof extends Struct {1624 readonly trieNodes: BTreeSet<Bytes>;1638 readonly trieNodes: BTreeSet<Bytes>;1625 }1639 }162616401627 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (154) */1641 /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (152) */1628 interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {1642 interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {1629 readonly dmqMqcHead: H256;1643 readonly dmqMqcHead: H256;1630 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;1644 readonly relayDispatchQueueSize: ITuple<[u32, u32]>;1631 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1645 readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1632 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1646 readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;1633 }1647 }163416481635 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (157) */1649 /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (155) */1636 interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {1650 interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {1637 readonly maxCapacity: u32;1651 readonly maxCapacity: u32;1638 readonly maxTotalSize: u32;1652 readonly maxTotalSize: u32;1642 readonly mqcHead: Option<H256>;1656 readonly mqcHead: Option<H256>;1643 }1657 }164416581645 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (158) */1659 /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (156) */1646 interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {1660 interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {1647 readonly maxCodeSize: u32;1661 readonly maxCodeSize: u32;1648 readonly maxHeadDataSize: u32;1662 readonly maxHeadDataSize: u32;1655 readonly validationUpgradeDelay: u32;1669 readonly validationUpgradeDelay: u32;1656 }1670 }165716711658 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (164) */1672 /** @name PolkadotCorePrimitivesOutboundHrmpMessage (162) */1659 interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {1673 interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {1660 readonly recipient: u32;1674 readonly recipient: u32;1661 readonly data: Bytes;1675 readonly data: Bytes;1662 }1676 }166316771664 /** @name CumulusPalletParachainSystemCall (165) */1678 /** @name CumulusPalletParachainSystemCall (163) */1665 interface CumulusPalletParachainSystemCall extends Enum {1679 interface CumulusPalletParachainSystemCall extends Enum {1666 readonly isSetValidationData: boolean;1680 readonly isSetValidationData: boolean;1667 readonly asSetValidationData: {1681 readonly asSetValidationData: {1682 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';1696 readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';1683 }1697 }168416981685 /** @name CumulusPrimitivesParachainInherentParachainInherentData (166) */1699 /** @name CumulusPrimitivesParachainInherentParachainInherentData (164) */1686 interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {1700 interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {1687 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;1701 readonly validationData: PolkadotPrimitivesV2PersistedValidationData;1688 readonly relayChainState: SpTrieStorageProof;1702 readonly relayChainState: SpTrieStorageProof;1689 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;1703 readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;1690 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;1704 readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;1691 }1705 }169217061693 /** @name PolkadotCorePrimitivesInboundDownwardMessage (168) */1707 /** @name PolkadotCorePrimitivesInboundDownwardMessage (166) */1694 interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1708 interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {1695 readonly sentAt: u32;1709 readonly sentAt: u32;1696 readonly msg: Bytes;1710 readonly msg: Bytes;1697 }1711 }169817121699 /** @name PolkadotCorePrimitivesInboundHrmpMessage (171) */1713 /** @name PolkadotCorePrimitivesInboundHrmpMessage (169) */1700 interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1714 interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {1701 readonly sentAt: u32;1715 readonly sentAt: u32;1702 readonly data: Bytes;1716 readonly data: Bytes;1703 }1717 }170417181705 /** @name CumulusPalletParachainSystemError (174) */1719 /** @name CumulusPalletParachainSystemError (172) */1706 interface CumulusPalletParachainSystemError extends Enum {1720 interface CumulusPalletParachainSystemError extends Enum {1707 readonly isOverlappingUpgrades: boolean;1721 readonly isOverlappingUpgrades: boolean;1708 readonly isProhibitedByPolkadot: boolean;1722 readonly isProhibitedByPolkadot: boolean;1715 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';1729 readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';1716 }1730 }171717311718 /** @name PalletBalancesBalanceLock (176) */1732 /** @name PalletBalancesBalanceLock (174) */1719 interface PalletBalancesBalanceLock extends Struct {1733 interface PalletBalancesBalanceLock extends Struct {1720 readonly id: U8aFixed;1734 readonly id: U8aFixed;1721 readonly amount: u128;1735 readonly amount: u128;1722 readonly reasons: PalletBalancesReasons;1736 readonly reasons: PalletBalancesReasons;1723 }1737 }172417381725 /** @name PalletBalancesReasons (177) */1739 /** @name PalletBalancesReasons (175) */1726 interface PalletBalancesReasons extends Enum {1740 interface PalletBalancesReasons extends Enum {1727 readonly isFee: boolean;1741 readonly isFee: boolean;1728 readonly isMisc: boolean;1742 readonly isMisc: boolean;1729 readonly isAll: boolean;1743 readonly isAll: boolean;1730 readonly type: 'Fee' | 'Misc' | 'All';1744 readonly type: 'Fee' | 'Misc' | 'All';1731 }1745 }173217461733 /** @name PalletBalancesReserveData (180) */1747 /** @name PalletBalancesReserveData (178) */1734 interface PalletBalancesReserveData extends Struct {1748 interface PalletBalancesReserveData extends Struct {1735 readonly id: U8aFixed;1749 readonly id: U8aFixed;1736 readonly amount: u128;1750 readonly amount: u128;1737 }1751 }173817521739 /** @name PalletBalancesReleases (182) */1753 /** @name PalletBalancesReleases (180) */1740 interface PalletBalancesReleases extends Enum {1754 interface PalletBalancesReleases extends Enum {1741 readonly isV100: boolean;1755 readonly isV100: boolean;1742 readonly isV200: boolean;1756 readonly isV200: boolean;1743 readonly type: 'V100' | 'V200';1757 readonly type: 'V100' | 'V200';1744 }1758 }174517591746 /** @name PalletBalancesCall (183) */1760 /** @name PalletBalancesCall (181) */1747 interface PalletBalancesCall extends Enum {1761 interface PalletBalancesCall extends Enum {1748 readonly isTransfer: boolean;1762 readonly isTransfer: boolean;1749 readonly asTransfer: {1763 readonly asTransfer: {1780 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';1794 readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';1781 }1795 }178217961783 /** @name PalletBalancesError (186) */1797 /** @name PalletBalancesError (184) */1784 interface PalletBalancesError extends Enum {1798 interface PalletBalancesError extends Enum {1785 readonly isVestingBalance: boolean;1799 readonly isVestingBalance: boolean;1786 readonly isLiquidityRestrictions: boolean;1800 readonly isLiquidityRestrictions: boolean;1793 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';1807 readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';1794 }1808 }179518091796 /** @name PalletTimestampCall (188) */1810 /** @name PalletTimestampCall (186) */1797 interface PalletTimestampCall extends Enum {1811 interface PalletTimestampCall extends Enum {1798 readonly isSet: boolean;1812 readonly isSet: boolean;1799 readonly asSet: {1813 readonly asSet: {1802 readonly type: 'Set';1816 readonly type: 'Set';1803 }1817 }180418181805 /** @name PalletTransactionPaymentReleases (190) */1819 /** @name PalletTransactionPaymentReleases (188) */1806 interface PalletTransactionPaymentReleases extends Enum {1820 interface PalletTransactionPaymentReleases extends Enum {1807 readonly isV1Ancient: boolean;1821 readonly isV1Ancient: boolean;1808 readonly isV2: boolean;1822 readonly isV2: boolean;1809 readonly type: 'V1Ancient' | 'V2';1823 readonly type: 'V1Ancient' | 'V2';1810 }1824 }181118251812 /** @name PalletTreasuryProposal (191) */1826 /** @name PalletTreasuryProposal (189) */1813 interface PalletTreasuryProposal extends Struct {1827 interface PalletTreasuryProposal extends Struct {1814 readonly proposer: AccountId32;1828 readonly proposer: AccountId32;1815 readonly value: u128;1829 readonly value: u128;1816 readonly beneficiary: AccountId32;1830 readonly beneficiary: AccountId32;1817 readonly bond: u128;1831 readonly bond: u128;1818 }1832 }181918331820 /** @name PalletTreasuryCall (194) */1834 /** @name PalletTreasuryCall (192) */1821 interface PalletTreasuryCall extends Enum {1835 interface PalletTreasuryCall extends Enum {1822 readonly isProposeSpend: boolean;1836 readonly isProposeSpend: boolean;1823 readonly asProposeSpend: {1837 readonly asProposeSpend: {1844 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';1858 readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';1845 }1859 }184618601847 /** @name FrameSupportPalletId (197) */1861 /** @name FrameSupportPalletId (195) */1848 interface FrameSupportPalletId extends U8aFixed {}1862 interface FrameSupportPalletId extends U8aFixed {}184918631850 /** @name PalletTreasuryError (198) */1864 /** @name PalletTreasuryError (196) */1851 interface PalletTreasuryError extends Enum {1865 interface PalletTreasuryError extends Enum {1852 readonly isInsufficientProposersBalance: boolean;1866 readonly isInsufficientProposersBalance: boolean;1853 readonly isInvalidIndex: boolean;1867 readonly isInvalidIndex: boolean;1857 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';1871 readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';1858 }1872 }185918731860 /** @name PalletSudoCall (199) */1874 /** @name PalletSudoCall (197) */1861 interface PalletSudoCall extends Enum {1875 interface PalletSudoCall extends Enum {1862 readonly isSudo: boolean;1876 readonly isSudo: boolean;1863 readonly asSudo: {1877 readonly asSudo: {1880 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1894 readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1881 }1895 }188218961883 /** @name OrmlVestingModuleCall (201) */1897 /** @name OrmlVestingModuleCall (199) */1884 interface OrmlVestingModuleCall extends Enum {1898 interface OrmlVestingModuleCall extends Enum {1885 readonly isClaim: boolean;1899 readonly isClaim: boolean;1886 readonly isVestedTransfer: boolean;1900 readonly isVestedTransfer: boolean;1900 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';1914 readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';1901 }1915 }190219161903 /** @name OrmlXtokensModuleCall (203) */1917 /** @name OrmlXtokensModuleCall (201) */1904 interface OrmlXtokensModuleCall extends Enum {1918 interface OrmlXtokensModuleCall extends Enum {1905 readonly isTransfer: boolean;1919 readonly isTransfer: boolean;1906 readonly asTransfer: {1920 readonly asTransfer: {1947 readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';1961 readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';1948 }1962 }194919631950 /** @name XcmVersionedMultiAsset (204) */1964 /** @name XcmVersionedMultiAsset (202) */1951 interface XcmVersionedMultiAsset extends Enum {1965 interface XcmVersionedMultiAsset extends Enum {1952 readonly isV0: boolean;1966 readonly isV0: boolean;1953 readonly asV0: XcmV0MultiAsset;1967 readonly asV0: XcmV0MultiAsset;1956 readonly type: 'V0' | 'V1';1970 readonly type: 'V0' | 'V1';1957 }1971 }195819721959 /** @name OrmlTokensModuleCall (207) */1973 /** @name OrmlTokensModuleCall (205) */1960 interface OrmlTokensModuleCall extends Enum {1974 interface OrmlTokensModuleCall extends Enum {1961 readonly isTransfer: boolean;1975 readonly isTransfer: boolean;1962 readonly asTransfer: {1976 readonly asTransfer: {1993 readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';2007 readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';1994 }2008 }199520091996 /** @name CumulusPalletXcmpQueueCall (208) */2010 /** @name CumulusPalletXcmpQueueCall (206) */1997 interface CumulusPalletXcmpQueueCall extends Enum {2011 interface CumulusPalletXcmpQueueCall extends Enum {1998 readonly isServiceOverweight: boolean;2012 readonly isServiceOverweight: boolean;1999 readonly asServiceOverweight: {2013 readonly asServiceOverweight: {2029 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';2043 readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';2030 }2044 }203120452032 /** @name PalletXcmCall (209) */2046 /** @name PalletXcmCall (207) */2033 interface PalletXcmCall extends Enum {2047 interface PalletXcmCall extends Enum {2034 readonly isSend: boolean;2048 readonly isSend: boolean;2035 readonly asSend: {2049 readonly asSend: {2091 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';2105 readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';2092 }2106 }209321072094 /** @name XcmVersionedXcm (210) */2108 /** @name XcmVersionedXcm (208) */2095 interface XcmVersionedXcm extends Enum {2109 interface XcmVersionedXcm extends Enum {2096 readonly isV0: boolean;2110 readonly isV0: boolean;2097 readonly asV0: XcmV0Xcm;2111 readonly asV0: XcmV0Xcm;2102 readonly type: 'V0' | 'V1' | 'V2';2116 readonly type: 'V0' | 'V1' | 'V2';2103 }2117 }210421182105 /** @name XcmV0Xcm (211) */2119 /** @name XcmV0Xcm (209) */2106 interface XcmV0Xcm extends Enum {2120 interface XcmV0Xcm extends Enum {2107 readonly isWithdrawAsset: boolean;2121 readonly isWithdrawAsset: boolean;2108 readonly asWithdrawAsset: {2122 readonly asWithdrawAsset: {2165 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';2179 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';2166 }2180 }216721812168 /** @name XcmV0Order (213) */2182 /** @name XcmV0Order (211) */2169 interface XcmV0Order extends Enum {2183 interface XcmV0Order extends Enum {2170 readonly isNull: boolean;2184 readonly isNull: boolean;2171 readonly isDepositAsset: boolean;2185 readonly isDepositAsset: boolean;2213 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2227 readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2214 }2228 }221522292216 /** @name XcmV0Response (215) */2230 /** @name XcmV0Response (213) */2217 interface XcmV0Response extends Enum {2231 interface XcmV0Response extends Enum {2218 readonly isAssets: boolean;2232 readonly isAssets: boolean;2219 readonly asAssets: Vec<XcmV0MultiAsset>;2233 readonly asAssets: Vec<XcmV0MultiAsset>;2220 readonly type: 'Assets';2234 readonly type: 'Assets';2221 }2235 }222222362223 /** @name XcmV1Xcm (216) */2237 /** @name XcmV1Xcm (214) */2224 interface XcmV1Xcm extends Enum {2238 interface XcmV1Xcm extends Enum {2225 readonly isWithdrawAsset: boolean;2239 readonly isWithdrawAsset: boolean;2226 readonly asWithdrawAsset: {2240 readonly asWithdrawAsset: {2289 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';2303 readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';2290 }2304 }229123052292 /** @name XcmV1Order (218) */2306 /** @name XcmV1Order (216) */2293 interface XcmV1Order extends Enum {2307 interface XcmV1Order extends Enum {2294 readonly isNoop: boolean;2308 readonly isNoop: boolean;2295 readonly isDepositAsset: boolean;2309 readonly isDepositAsset: boolean;2339 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2353 readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';2340 }2354 }234123552342 /** @name XcmV1Response (220) */2356 /** @name XcmV1Response (218) */2343 interface XcmV1Response extends Enum {2357 interface XcmV1Response extends Enum {2344 readonly isAssets: boolean;2358 readonly isAssets: boolean;2345 readonly asAssets: XcmV1MultiassetMultiAssets;2359 readonly asAssets: XcmV1MultiassetMultiAssets;2348 readonly type: 'Assets' | 'Version';2362 readonly type: 'Assets' | 'Version';2349 }2363 }235023642351 /** @name CumulusPalletXcmCall (234) */2365 /** @name CumulusPalletXcmCall (232) */2352 type CumulusPalletXcmCall = Null;2366 type CumulusPalletXcmCall = Null;235323672354 /** @name CumulusPalletDmpQueueCall (235) */2368 /** @name CumulusPalletDmpQueueCall (233) */2355 interface CumulusPalletDmpQueueCall extends Enum {2369 interface CumulusPalletDmpQueueCall extends Enum {2356 readonly isServiceOverweight: boolean;2370 readonly isServiceOverweight: boolean;2357 readonly asServiceOverweight: {2371 readonly asServiceOverweight: {2361 readonly type: 'ServiceOverweight';2375 readonly type: 'ServiceOverweight';2362 }2376 }236323772364 /** @name PalletInflationCall (236) */2378 /** @name PalletInflationCall (234) */2365 interface PalletInflationCall extends Enum {2379 interface PalletInflationCall extends Enum {2366 readonly isStartInflation: boolean;2380 readonly isStartInflation: boolean;2367 readonly asStartInflation: {2381 readonly asStartInflation: {2370 readonly type: 'StartInflation';2384 readonly type: 'StartInflation';2371 }2385 }237223862373 /** @name PalletUniqueCall (237) */2387 /** @name PalletUniqueCall (235) */2374 interface PalletUniqueCall extends Enum {2388 interface PalletUniqueCall extends Enum {2375 readonly isCreateCollection: boolean;2389 readonly isCreateCollection: boolean;2376 readonly asCreateCollection: {2390 readonly asCreateCollection: {2528 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';2542 readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';2529 }2543 }253025442531 /** @name UpDataStructsCollectionMode (242) */2545 /** @name UpDataStructsCollectionMode (240) */2532 interface UpDataStructsCollectionMode extends Enum {2546 interface UpDataStructsCollectionMode extends Enum {2533 readonly isNft: boolean;2547 readonly isNft: boolean;2534 readonly isFungible: boolean;2548 readonly isFungible: boolean;2537 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2551 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2538 }2552 }253925532540 /** @name UpDataStructsCreateCollectionData (243) */2554 /** @name UpDataStructsCreateCollectionData (241) */2541 interface UpDataStructsCreateCollectionData extends Struct {2555 interface UpDataStructsCreateCollectionData extends Struct {2542 readonly mode: UpDataStructsCollectionMode;2556 readonly mode: UpDataStructsCollectionMode;2543 readonly access: Option<UpDataStructsAccessMode>;2557 readonly access: Option<UpDataStructsAccessMode>;2551 readonly properties: Vec<UpDataStructsProperty>;2565 readonly properties: Vec<UpDataStructsProperty>;2552 }2566 }255325672554 /** @name UpDataStructsAccessMode (245) */2568 /** @name UpDataStructsAccessMode (243) */2555 interface UpDataStructsAccessMode extends Enum {2569 interface UpDataStructsAccessMode extends Enum {2556 readonly isNormal: boolean;2570 readonly isNormal: boolean;2557 readonly isAllowList: boolean;2571 readonly isAllowList: boolean;2558 readonly type: 'Normal' | 'AllowList';2572 readonly type: 'Normal' | 'AllowList';2559 }2573 }256025742561 /** @name UpDataStructsCollectionLimits (247) */2575 /** @name UpDataStructsCollectionLimits (245) */2562 interface UpDataStructsCollectionLimits extends Struct {2576 interface UpDataStructsCollectionLimits extends Struct {2563 readonly accountTokenOwnershipLimit: Option<u32>;2577 readonly accountTokenOwnershipLimit: Option<u32>;2564 readonly sponsoredDataSize: Option<u32>;2578 readonly sponsoredDataSize: Option<u32>;2571 readonly transfersEnabled: Option<bool>;2585 readonly transfersEnabled: Option<bool>;2572 }2586 }257325872574 /** @name UpDataStructsSponsoringRateLimit (249) */2588 /** @name UpDataStructsSponsoringRateLimit (247) */2575 interface UpDataStructsSponsoringRateLimit extends Enum {2589 interface UpDataStructsSponsoringRateLimit extends Enum {2576 readonly isSponsoringDisabled: boolean;2590 readonly isSponsoringDisabled: boolean;2577 readonly isBlocks: boolean;2591 readonly isBlocks: boolean;2578 readonly asBlocks: u32;2592 readonly asBlocks: u32;2579 readonly type: 'SponsoringDisabled' | 'Blocks';2593 readonly type: 'SponsoringDisabled' | 'Blocks';2580 }2594 }258125952582 /** @name UpDataStructsCollectionPermissions (252) */2596 /** @name UpDataStructsCollectionPermissions (250) */2583 interface UpDataStructsCollectionPermissions extends Struct {2597 interface UpDataStructsCollectionPermissions extends Struct {2584 readonly access: Option<UpDataStructsAccessMode>;2598 readonly access: Option<UpDataStructsAccessMode>;2585 readonly mintMode: Option<bool>;2599 readonly mintMode: Option<bool>;2586 readonly nesting: Option<UpDataStructsNestingPermissions>;2600 readonly nesting: Option<UpDataStructsNestingPermissions>;2587 }2601 }258826022589 /** @name UpDataStructsNestingPermissions (254) */2603 /** @name UpDataStructsNestingPermissions (252) */2590 interface UpDataStructsNestingPermissions extends Struct {2604 interface UpDataStructsNestingPermissions extends Struct {2591 readonly tokenOwner: bool;2605 readonly tokenOwner: bool;2592 readonly collectionAdmin: bool;2606 readonly collectionAdmin: bool;2593 readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;2607 readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;2594 }2608 }259526092596 /** @name UpDataStructsOwnerRestrictedSet (256) */2610 /** @name UpDataStructsOwnerRestrictedSet (254) */2597 interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}2611 interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}259826122599 /** @name UpDataStructsPropertyKeyPermission (261) */2613 /** @name UpDataStructsPropertyKeyPermission (259) */2600 interface UpDataStructsPropertyKeyPermission extends Struct {2614 interface UpDataStructsPropertyKeyPermission extends Struct {2601 readonly key: Bytes;2615 readonly key: Bytes;2602 readonly permission: UpDataStructsPropertyPermission;2616 readonly permission: UpDataStructsPropertyPermission;2603 }2617 }260426182605 /** @name UpDataStructsPropertyPermission (262) */2619 /** @name UpDataStructsPropertyPermission (260) */2606 interface UpDataStructsPropertyPermission extends Struct {2620 interface UpDataStructsPropertyPermission extends Struct {2607 readonly mutable: bool;2621 readonly mutable: bool;2608 readonly collectionAdmin: bool;2622 readonly collectionAdmin: bool;2609 readonly tokenOwner: bool;2623 readonly tokenOwner: bool;2610 }2624 }261126252612 /** @name UpDataStructsProperty (265) */2626 /** @name UpDataStructsProperty (263) */2613 interface UpDataStructsProperty extends Struct {2627 interface UpDataStructsProperty extends Struct {2614 readonly key: Bytes;2628 readonly key: Bytes;2615 readonly value: Bytes;2629 readonly value: Bytes;2616 }2630 }261726312618 /** @name UpDataStructsCreateItemData (268) */2632 /** @name UpDataStructsCreateItemData (266) */2619 interface UpDataStructsCreateItemData extends Enum {2633 interface UpDataStructsCreateItemData extends Enum {2620 readonly isNft: boolean;2634 readonly isNft: boolean;2621 readonly asNft: UpDataStructsCreateNftData;2635 readonly asNft: UpDataStructsCreateNftData;2626 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2640 readonly type: 'Nft' | 'Fungible' | 'ReFungible';2627 }2641 }262826422629 /** @name UpDataStructsCreateNftData (269) */2643 /** @name UpDataStructsCreateNftData (267) */2630 interface UpDataStructsCreateNftData extends Struct {2644 interface UpDataStructsCreateNftData extends Struct {2631 readonly properties: Vec<UpDataStructsProperty>;2645 readonly properties: Vec<UpDataStructsProperty>;2632 }2646 }263326472634 /** @name UpDataStructsCreateFungibleData (270) */2648 /** @name UpDataStructsCreateFungibleData (268) */2635 interface UpDataStructsCreateFungibleData extends Struct {2649 interface UpDataStructsCreateFungibleData extends Struct {2636 readonly value: u128;2650 readonly value: u128;2637 }2651 }263826522639 /** @name UpDataStructsCreateReFungibleData (271) */2653 /** @name UpDataStructsCreateReFungibleData (269) */2640 interface UpDataStructsCreateReFungibleData extends Struct {2654 interface UpDataStructsCreateReFungibleData extends Struct {2641 readonly pieces: u128;2655 readonly pieces: u128;2642 readonly properties: Vec<UpDataStructsProperty>;2656 readonly properties: Vec<UpDataStructsProperty>;2643 }2657 }264426582645 /** @name UpDataStructsCreateItemExData (274) */2659 /** @name UpDataStructsCreateItemExData (272) */2646 interface UpDataStructsCreateItemExData extends Enum {2660 interface UpDataStructsCreateItemExData extends Enum {2647 readonly isNft: boolean;2661 readonly isNft: boolean;2648 readonly asNft: Vec<UpDataStructsCreateNftExData>;2662 readonly asNft: Vec<UpDataStructsCreateNftExData>;2655 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2669 readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2656 }2670 }265726712658 /** @name UpDataStructsCreateNftExData (276) */2672 /** @name UpDataStructsCreateNftExData (274) */2659 interface UpDataStructsCreateNftExData extends Struct {2673 interface UpDataStructsCreateNftExData extends Struct {2660 readonly properties: Vec<UpDataStructsProperty>;2674 readonly properties: Vec<UpDataStructsProperty>;2661 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2675 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2662 }2676 }266326772664 /** @name UpDataStructsCreateRefungibleExSingleOwner (283) */2678 /** @name UpDataStructsCreateRefungibleExSingleOwner (281) */2665 interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {2679 interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {2666 readonly user: PalletEvmAccountBasicCrossAccountIdRepr;2680 readonly user: PalletEvmAccountBasicCrossAccountIdRepr;2667 readonly pieces: u128;2681 readonly pieces: u128;2668 readonly properties: Vec<UpDataStructsProperty>;2682 readonly properties: Vec<UpDataStructsProperty>;2669 }2683 }267026842671 /** @name UpDataStructsCreateRefungibleExMultipleOwners (285) */2685 /** @name UpDataStructsCreateRefungibleExMultipleOwners (283) */2672 interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {2686 interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {2673 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2687 readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2674 readonly properties: Vec<UpDataStructsProperty>;2688 readonly properties: Vec<UpDataStructsProperty>;2675 }2689 }267626902677 /** @name PalletUniqueSchedulerCall (286) */2691 /** @name PalletUniqueSchedulerV2Call (284) */2678 interface PalletUniqueSchedulerCall extends Enum {2692 interface PalletUniqueSchedulerV2Call extends Enum {2693 readonly isSchedule: boolean;2694 readonly asSchedule: {2695 readonly when: u32;2696 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2697 readonly priority: Option<u8>;2698 readonly call: Call;2699 } & Struct;2700 readonly isCancel: boolean;2701 readonly asCancel: {2702 readonly when: u32;2703 readonly index: u32;2704 } & Struct;2679 readonly isScheduleNamed: boolean;2705 readonly isScheduleNamed: boolean;2680 readonly asScheduleNamed: {2706 readonly asScheduleNamed: {2681 readonly id: U8aFixed;2707 readonly id: U8aFixed;2682 readonly when: u32;2708 readonly when: u32;2683 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2709 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2684 readonly priority: Option<u8>;2710 readonly priority: Option<u8>;2685 readonly call: FrameSupportScheduleMaybeHashed;2711 readonly call: Call;2686 } & Struct;2712 } & Struct;2687 readonly isCancelNamed: boolean;2713 readonly isCancelNamed: boolean;2688 readonly asCancelNamed: {2714 readonly asCancelNamed: {2689 readonly id: U8aFixed;2715 readonly id: U8aFixed;2690 } & Struct;2716 } & Struct;2717 readonly isScheduleAfter: boolean;2718 readonly asScheduleAfter: {2719 readonly after: u32;2720 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2721 readonly priority: Option<u8>;2722 readonly call: Call;2723 } & Struct;2691 readonly isScheduleNamedAfter: boolean;2724 readonly isScheduleNamedAfter: boolean;2692 readonly asScheduleNamedAfter: {2725 readonly asScheduleNamedAfter: {2693 readonly id: U8aFixed;2726 readonly id: U8aFixed;2694 readonly after: u32;2727 readonly after: u32;2695 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2728 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2696 readonly priority: Option<u8>;2729 readonly priority: Option<u8>;2697 readonly call: FrameSupportScheduleMaybeHashed;2730 readonly call: Call;2698 } & Struct;2731 } & Struct;2699 readonly isChangeNamedPriority: boolean;2732 readonly isChangeNamedPriority: boolean;2700 readonly asChangeNamedPriority: {2733 readonly asChangeNamedPriority: {2701 readonly id: U8aFixed;2734 readonly id: U8aFixed;2702 readonly priority: u8;2735 readonly priority: u8;2703 } & Struct;2736 } & Struct;2704 readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';2737 readonly type: 'Schedule' | 'Cancel' | 'ScheduleNamed' | 'CancelNamed' | 'ScheduleAfter' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';2705 }2738 }27062707 /** @name FrameSupportScheduleMaybeHashed (289) */2708 interface FrameSupportScheduleMaybeHashed extends Enum {2709 readonly isValue: boolean;2710 readonly asValue: Call;2711 readonly isHash: boolean;2712 readonly asHash: H256;2713 readonly type: 'Value' | 'Hash';2714 }271527392716 /** @name PalletConfigurationCall (290) */2740 /** @name PalletConfigurationCall (287) */2717 interface PalletConfigurationCall extends Enum {2741 interface PalletConfigurationCall extends Enum {2718 readonly isSetWeightToFeeCoefficientOverride: boolean;2742 readonly isSetWeightToFeeCoefficientOverride: boolean;2719 readonly asSetWeightToFeeCoefficientOverride: {2743 readonly asSetWeightToFeeCoefficientOverride: {2726 readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';2750 readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';2727 }2751 }272827522729 /** @name PalletTemplateTransactionPaymentCall (292) */2753 /** @name PalletTemplateTransactionPaymentCall (289) */2730 type PalletTemplateTransactionPaymentCall = Null;2754 type PalletTemplateTransactionPaymentCall = Null;273127552732 /** @name PalletStructureCall (293) */2756 /** @name PalletStructureCall (290) */2733 type PalletStructureCall = Null;2757 type PalletStructureCall = Null;273427582735 /** @name PalletRmrkCoreCall (294) */2759 /** @name PalletRmrkCoreCall (291) */2736 interface PalletRmrkCoreCall extends Enum {2760 interface PalletRmrkCoreCall extends Enum {2737 readonly isCreateCollection: boolean;2761 readonly isCreateCollection: boolean;2738 readonly asCreateCollection: {2762 readonly asCreateCollection: {2838 readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';2862 readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';2839 }2863 }284028642841 /** @name RmrkTraitsResourceResourceTypes (300) */2865 /** @name RmrkTraitsResourceResourceTypes (297) */2842 interface RmrkTraitsResourceResourceTypes extends Enum {2866 interface RmrkTraitsResourceResourceTypes extends Enum {2843 readonly isBasic: boolean;2867 readonly isBasic: boolean;2844 readonly asBasic: RmrkTraitsResourceBasicResource;2868 readonly asBasic: RmrkTraitsResourceBasicResource;2849 readonly type: 'Basic' | 'Composable' | 'Slot';2873 readonly type: 'Basic' | 'Composable' | 'Slot';2850 }2874 }285128752852 /** @name RmrkTraitsResourceBasicResource (302) */2876 /** @name RmrkTraitsResourceBasicResource (299) */2853 interface RmrkTraitsResourceBasicResource extends Struct {2877 interface RmrkTraitsResourceBasicResource extends Struct {2854 readonly src: Option<Bytes>;2878 readonly src: Option<Bytes>;2855 readonly metadata: Option<Bytes>;2879 readonly metadata: Option<Bytes>;2856 readonly license: Option<Bytes>;2880 readonly license: Option<Bytes>;2857 readonly thumb: Option<Bytes>;2881 readonly thumb: Option<Bytes>;2858 }2882 }285928832860 /** @name RmrkTraitsResourceComposableResource (304) */2884 /** @name RmrkTraitsResourceComposableResource (301) */2861 interface RmrkTraitsResourceComposableResource extends Struct {2885 interface RmrkTraitsResourceComposableResource extends Struct {2862 readonly parts: Vec<u32>;2886 readonly parts: Vec<u32>;2863 readonly base: u32;2887 readonly base: u32;2867 readonly thumb: Option<Bytes>;2891 readonly thumb: Option<Bytes>;2868 }2892 }286928932870 /** @name RmrkTraitsResourceSlotResource (305) */2894 /** @name RmrkTraitsResourceSlotResource (302) */2871 interface RmrkTraitsResourceSlotResource extends Struct {2895 interface RmrkTraitsResourceSlotResource extends Struct {2872 readonly base: u32;2896 readonly base: u32;2873 readonly src: Option<Bytes>;2897 readonly src: Option<Bytes>;2877 readonly thumb: Option<Bytes>;2901 readonly thumb: Option<Bytes>;2878 }2902 }287929032880 /** @name PalletRmrkEquipCall (308) */2904 /** @name PalletRmrkEquipCall (305) */2881 interface PalletRmrkEquipCall extends Enum {2905 interface PalletRmrkEquipCall extends Enum {2882 readonly isCreateBase: boolean;2906 readonly isCreateBase: boolean;2883 readonly asCreateBase: {2907 readonly asCreateBase: {2899 readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';2923 readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';2900 }2924 }290129252902 /** @name RmrkTraitsPartPartType (311) */2926 /** @name RmrkTraitsPartPartType (308) */2903 interface RmrkTraitsPartPartType extends Enum {2927 interface RmrkTraitsPartPartType extends Enum {2904 readonly isFixedPart: boolean;2928 readonly isFixedPart: boolean;2905 readonly asFixedPart: RmrkTraitsPartFixedPart;2929 readonly asFixedPart: RmrkTraitsPartFixedPart;2908 readonly type: 'FixedPart' | 'SlotPart';2932 readonly type: 'FixedPart' | 'SlotPart';2909 }2933 }291029342911 /** @name RmrkTraitsPartFixedPart (313) */2935 /** @name RmrkTraitsPartFixedPart (310) */2912 interface RmrkTraitsPartFixedPart extends Struct {2936 interface RmrkTraitsPartFixedPart extends Struct {2913 readonly id: u32;2937 readonly id: u32;2914 readonly z: u32;2938 readonly z: u32;2915 readonly src: Bytes;2939 readonly src: Bytes;2916 }2940 }291729412918 /** @name RmrkTraitsPartSlotPart (314) */2942 /** @name RmrkTraitsPartSlotPart (311) */2919 interface RmrkTraitsPartSlotPart extends Struct {2943 interface RmrkTraitsPartSlotPart extends Struct {2920 readonly id: u32;2944 readonly id: u32;2921 readonly equippable: RmrkTraitsPartEquippableList;2945 readonly equippable: RmrkTraitsPartEquippableList;2922 readonly src: Bytes;2946 readonly src: Bytes;2923 readonly z: u32;2947 readonly z: u32;2924 }2948 }292529492926 /** @name RmrkTraitsPartEquippableList (315) */2950 /** @name RmrkTraitsPartEquippableList (312) */2927 interface RmrkTraitsPartEquippableList extends Enum {2951 interface RmrkTraitsPartEquippableList extends Enum {2928 readonly isAll: boolean;2952 readonly isAll: boolean;2929 readonly isEmpty: boolean;2953 readonly isEmpty: boolean;2932 readonly type: 'All' | 'Empty' | 'Custom';2956 readonly type: 'All' | 'Empty' | 'Custom';2933 }2957 }293429582935 /** @name RmrkTraitsTheme (317) */2959 /** @name RmrkTraitsTheme (314) */2936 interface RmrkTraitsTheme extends Struct {2960 interface RmrkTraitsTheme extends Struct {2937 readonly name: Bytes;2961 readonly name: Bytes;2938 readonly properties: Vec<RmrkTraitsThemeThemeProperty>;2962 readonly properties: Vec<RmrkTraitsThemeThemeProperty>;2939 readonly inherit: bool;2963 readonly inherit: bool;2940 }2964 }294129652942 /** @name RmrkTraitsThemeThemeProperty (319) */2966 /** @name RmrkTraitsThemeThemeProperty (316) */2943 interface RmrkTraitsThemeThemeProperty extends Struct {2967 interface RmrkTraitsThemeThemeProperty extends Struct {2944 readonly key: Bytes;2968 readonly key: Bytes;2945 readonly value: Bytes;2969 readonly value: Bytes;2946 }2970 }294729712948 /** @name PalletAppPromotionCall (321) */2972 /** @name PalletAppPromotionCall (318) */2949 interface PalletAppPromotionCall extends Enum {2973 interface PalletAppPromotionCall extends Enum {2950 readonly isSetAdminAddress: boolean;2974 readonly isSetAdminAddress: boolean;2951 readonly asSetAdminAddress: {2975 readonly asSetAdminAddress: {2979 readonly type: 'SetAdminAddress' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers';3003 readonly type: 'SetAdminAddress' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers';2980 }3004 }298130052982 /** @name PalletForeignAssetsModuleCall (322) */3006 /** @name PalletForeignAssetsModuleCall (319) */2983 interface PalletForeignAssetsModuleCall extends Enum {3007 interface PalletForeignAssetsModuleCall extends Enum {2984 readonly isRegisterForeignAsset: boolean;3008 readonly isRegisterForeignAsset: boolean;2985 readonly asRegisterForeignAsset: {3009 readonly asRegisterForeignAsset: {2996 readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';3020 readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';2997 }3021 }299830222999 /** @name PalletEvmCall (323) */3023 /** @name PalletEvmCall (320) */3000 interface PalletEvmCall extends Enum {3024 interface PalletEvmCall extends Enum {3001 readonly isWithdraw: boolean;3025 readonly isWithdraw: boolean;3002 readonly asWithdraw: {3026 readonly asWithdraw: {3041 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';3065 readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';3042 }3066 }304330673044 /** @name PalletEthereumCall (327) */3068 /** @name PalletEthereumCall (326) */3045 interface PalletEthereumCall extends Enum {3069 interface PalletEthereumCall extends Enum {3046 readonly isTransact: boolean;3070 readonly isTransact: boolean;3047 readonly asTransact: {3071 readonly asTransact: {3050 readonly type: 'Transact';3074 readonly type: 'Transact';3051 }3075 }305230763053 /** @name EthereumTransactionTransactionV2 (328) */3077 /** @name EthereumTransactionTransactionV2 (327) */3054 interface EthereumTransactionTransactionV2 extends Enum {3078 interface EthereumTransactionTransactionV2 extends Enum {3055 readonly isLegacy: boolean;3079 readonly isLegacy: boolean;3056 readonly asLegacy: EthereumTransactionLegacyTransaction;3080 readonly asLegacy: EthereumTransactionLegacyTransaction;3061 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3085 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3062 }3086 }306330873064 /** @name EthereumTransactionLegacyTransaction (329) */3088 /** @name EthereumTransactionLegacyTransaction (328) */3065 interface EthereumTransactionLegacyTransaction extends Struct {3089 interface EthereumTransactionLegacyTransaction extends Struct {3066 readonly nonce: U256;3090 readonly nonce: U256;3067 readonly gasPrice: U256;3091 readonly gasPrice: U256;3072 readonly signature: EthereumTransactionTransactionSignature;3096 readonly signature: EthereumTransactionTransactionSignature;3073 }3097 }307430983075 /** @name EthereumTransactionTransactionAction (330) */3099 /** @name EthereumTransactionTransactionAction (329) */3076 interface EthereumTransactionTransactionAction extends Enum {3100 interface EthereumTransactionTransactionAction extends Enum {3077 readonly isCall: boolean;3101 readonly isCall: boolean;3078 readonly asCall: H160;3102 readonly asCall: H160;3079 readonly isCreate: boolean;3103 readonly isCreate: boolean;3080 readonly type: 'Call' | 'Create';3104 readonly type: 'Call' | 'Create';3081 }3105 }308231063083 /** @name EthereumTransactionTransactionSignature (331) */3107 /** @name EthereumTransactionTransactionSignature (330) */3084 interface EthereumTransactionTransactionSignature extends Struct {3108 interface EthereumTransactionTransactionSignature extends Struct {3085 readonly v: u64;3109 readonly v: u64;3086 readonly r: H256;3110 readonly r: H256;3087 readonly s: H256;3111 readonly s: H256;3088 }3112 }308931133090 /** @name EthereumTransactionEip2930Transaction (333) */3114 /** @name EthereumTransactionEip2930Transaction (332) */3091 interface EthereumTransactionEip2930Transaction extends Struct {3115 interface EthereumTransactionEip2930Transaction extends Struct {3092 readonly chainId: u64;3116 readonly chainId: u64;3093 readonly nonce: U256;3117 readonly nonce: U256;3102 readonly s: H256;3126 readonly s: H256;3103 }3127 }310431283105 /** @name EthereumTransactionAccessListItem (335) */3129 /** @name EthereumTransactionAccessListItem (334) */3106 interface EthereumTransactionAccessListItem extends Struct {3130 interface EthereumTransactionAccessListItem extends Struct {3107 readonly address: H160;3131 readonly address: H160;3108 readonly storageKeys: Vec<H256>;3132 readonly storageKeys: Vec<H256>;3109 }3133 }311031343111 /** @name EthereumTransactionEip1559Transaction (336) */3135 /** @name EthereumTransactionEip1559Transaction (335) */3112 interface EthereumTransactionEip1559Transaction extends Struct {3136 interface EthereumTransactionEip1559Transaction extends Struct {3113 readonly chainId: u64;3137 readonly chainId: u64;3114 readonly nonce: U256;3138 readonly nonce: U256;3124 readonly s: H256;3148 readonly s: H256;3125 }3149 }312631503127 /** @name PalletEvmMigrationCall (337) */3151 /** @name PalletEvmMigrationCall (336) */3128 interface PalletEvmMigrationCall extends Enum {3152 interface PalletEvmMigrationCall extends Enum {3129 readonly isBegin: boolean;3153 readonly isBegin: boolean;3130 readonly asBegin: {3154 readonly asBegin: {3140 readonly address: H160;3164 readonly address: H160;3141 readonly code: Bytes;3165 readonly code: Bytes;3142 } & Struct;3166 } & Struct;3167 readonly isInsertEthLogs: boolean;3168 readonly asInsertEthLogs: {3169 readonly logs: Vec<EthereumLog>;3170 } & Struct;3171 readonly isInsertEvents: boolean;3172 readonly asInsertEvents: {3173 readonly events: Vec<Bytes>;3174 } & Struct;3143 readonly type: 'Begin' | 'SetData' | 'Finish';3175 readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents';3144 }3176 }314531773146 /** @name PalletMaintenanceCall (340) */3178 /** @name PalletMaintenanceCall (340) */3168 readonly maxTestValue: u32;3200 readonly maxTestValue: u32;3169 } & Struct;3201 } & Struct;3170 readonly isJustTakeFee: boolean;3202 readonly isJustTakeFee: boolean;3203 readonly isBatchAll: boolean;3204 readonly asBatchAll: {3205 readonly calls: Vec<Call>;3206 } & Struct;3171 readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee';3207 readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee' | 'BatchAll';3172 }3208 }317332093174 /** @name PalletSudoError (342) */3210 /** @name PalletSudoError (343) */3175 interface PalletSudoError extends Enum {3211 interface PalletSudoError extends Enum {3176 readonly isRequireSudo: boolean;3212 readonly isRequireSudo: boolean;3177 readonly type: 'RequireSudo';3213 readonly type: 'RequireSudo';3178 }3214 }317932153180 /** @name OrmlVestingModuleError (344) */3216 /** @name OrmlVestingModuleError (345) */3181 interface OrmlVestingModuleError extends Enum {3217 interface OrmlVestingModuleError extends Enum {3182 readonly isZeroVestingPeriod: boolean;3218 readonly isZeroVestingPeriod: boolean;3183 readonly isZeroVestingPeriodCount: boolean;3219 readonly isZeroVestingPeriodCount: boolean;3188 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';3224 readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';3189 }3225 }319032263191 /** @name OrmlXtokensModuleError (345) */3227 /** @name OrmlXtokensModuleError (346) */3192 interface OrmlXtokensModuleError extends Enum {3228 interface OrmlXtokensModuleError extends Enum {3193 readonly isAssetHasNoReserve: boolean;3229 readonly isAssetHasNoReserve: boolean;3194 readonly isNotCrossChainTransfer: boolean;3230 readonly isNotCrossChainTransfer: boolean;3212 readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';3248 readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';3213 }3249 }321432503215 /** @name OrmlTokensBalanceLock (348) */3251 /** @name OrmlTokensBalanceLock (349) */3216 interface OrmlTokensBalanceLock extends Struct {3252 interface OrmlTokensBalanceLock extends Struct {3217 readonly id: U8aFixed;3253 readonly id: U8aFixed;3218 readonly amount: u128;3254 readonly amount: u128;3219 }3255 }322032563221 /** @name OrmlTokensAccountData (350) */3257 /** @name OrmlTokensAccountData (351) */3222 interface OrmlTokensAccountData extends Struct {3258 interface OrmlTokensAccountData extends Struct {3223 readonly free: u128;3259 readonly free: u128;3224 readonly reserved: u128;3260 readonly reserved: u128;3225 readonly frozen: u128;3261 readonly frozen: u128;3226 }3262 }322732633228 /** @name OrmlTokensReserveData (352) */3264 /** @name OrmlTokensReserveData (353) */3229 interface OrmlTokensReserveData extends Struct {3265 interface OrmlTokensReserveData extends Struct {3230 readonly id: Null;3266 readonly id: Null;3231 readonly amount: u128;3267 readonly amount: u128;3232 }3268 }323332693234 /** @name OrmlTokensModuleError (354) */3270 /** @name OrmlTokensModuleError (355) */3235 interface OrmlTokensModuleError extends Enum {3271 interface OrmlTokensModuleError extends Enum {3236 readonly isBalanceTooLow: boolean;3272 readonly isBalanceTooLow: boolean;3237 readonly isAmountIntoBalanceFailed: boolean;3273 readonly isAmountIntoBalanceFailed: boolean;3244 readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';3280 readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';3245 }3281 }324632823247 /** @name CumulusPalletXcmpQueueInboundChannelDetails (356) */3283 /** @name CumulusPalletXcmpQueueInboundChannelDetails (357) */3248 interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {3284 interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {3249 readonly sender: u32;3285 readonly sender: u32;3250 readonly state: CumulusPalletXcmpQueueInboundState;3286 readonly state: CumulusPalletXcmpQueueInboundState;3251 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;3287 readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;3252 }3288 }325332893254 /** @name CumulusPalletXcmpQueueInboundState (357) */3290 /** @name CumulusPalletXcmpQueueInboundState (358) */3255 interface CumulusPalletXcmpQueueInboundState extends Enum {3291 interface CumulusPalletXcmpQueueInboundState extends Enum {3256 readonly isOk: boolean;3292 readonly isOk: boolean;3257 readonly isSuspended: boolean;3293 readonly isSuspended: boolean;3258 readonly type: 'Ok' | 'Suspended';3294 readonly type: 'Ok' | 'Suspended';3259 }3295 }326032963261 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (360) */3297 /** @name PolkadotParachainPrimitivesXcmpMessageFormat (361) */3262 interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {3298 interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {3263 readonly isConcatenatedVersionedXcm: boolean;3299 readonly isConcatenatedVersionedXcm: boolean;3264 readonly isConcatenatedEncodedBlob: boolean;3300 readonly isConcatenatedEncodedBlob: boolean;3265 readonly isSignals: boolean;3301 readonly isSignals: boolean;3266 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';3302 readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';3267 }3303 }326833043269 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (363) */3305 /** @name CumulusPalletXcmpQueueOutboundChannelDetails (364) */3270 interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {3306 interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {3271 readonly recipient: u32;3307 readonly recipient: u32;3272 readonly state: CumulusPalletXcmpQueueOutboundState;3308 readonly state: CumulusPalletXcmpQueueOutboundState;3275 readonly lastIndex: u16;3311 readonly lastIndex: u16;3276 }3312 }327733133278 /** @name CumulusPalletXcmpQueueOutboundState (364) */3314 /** @name CumulusPalletXcmpQueueOutboundState (365) */3279 interface CumulusPalletXcmpQueueOutboundState extends Enum {3315 interface CumulusPalletXcmpQueueOutboundState extends Enum {3280 readonly isOk: boolean;3316 readonly isOk: boolean;3281 readonly isSuspended: boolean;3317 readonly isSuspended: boolean;3282 readonly type: 'Ok' | 'Suspended';3318 readonly type: 'Ok' | 'Suspended';3283 }3319 }328433203285 /** @name CumulusPalletXcmpQueueQueueConfigData (366) */3321 /** @name CumulusPalletXcmpQueueQueueConfigData (367) */3286 interface CumulusPalletXcmpQueueQueueConfigData extends Struct {3322 interface CumulusPalletXcmpQueueQueueConfigData extends Struct {3287 readonly suspendThreshold: u32;3323 readonly suspendThreshold: u32;3288 readonly dropThreshold: u32;3324 readonly dropThreshold: u32;3292 readonly xcmpMaxIndividualWeight: Weight;3328 readonly xcmpMaxIndividualWeight: Weight;3293 }3329 }329433303295 /** @name CumulusPalletXcmpQueueError (368) */3331 /** @name CumulusPalletXcmpQueueError (369) */3296 interface CumulusPalletXcmpQueueError extends Enum {3332 interface CumulusPalletXcmpQueueError extends Enum {3297 readonly isFailedToSend: boolean;3333 readonly isFailedToSend: boolean;3298 readonly isBadXcmOrigin: boolean;3334 readonly isBadXcmOrigin: boolean;3302 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';3338 readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';3303 }3339 }330433403305 /** @name PalletXcmError (369) */3341 /** @name PalletXcmError (370) */3306 interface PalletXcmError extends Enum {3342 interface PalletXcmError extends Enum {3307 readonly isUnreachable: boolean;3343 readonly isUnreachable: boolean;3308 readonly isSendFailure: boolean;3344 readonly isSendFailure: boolean;3320 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';3356 readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';3321 }3357 }332233583323 /** @name CumulusPalletXcmError (370) */3359 /** @name CumulusPalletXcmError (371) */3324 type CumulusPalletXcmError = Null;3360 type CumulusPalletXcmError = Null;332533613326 /** @name CumulusPalletDmpQueueConfigData (371) */3362 /** @name CumulusPalletDmpQueueConfigData (372) */3327 interface CumulusPalletDmpQueueConfigData extends Struct {3363 interface CumulusPalletDmpQueueConfigData extends Struct {3328 readonly maxIndividual: Weight;3364 readonly maxIndividual: Weight;3329 }3365 }333033663331 /** @name CumulusPalletDmpQueuePageIndexData (372) */3367 /** @name CumulusPalletDmpQueuePageIndexData (373) */3332 interface CumulusPalletDmpQueuePageIndexData extends Struct {3368 interface CumulusPalletDmpQueuePageIndexData extends Struct {3333 readonly beginUsed: u32;3369 readonly beginUsed: u32;3334 readonly endUsed: u32;3370 readonly endUsed: u32;3335 readonly overweightCount: u64;3371 readonly overweightCount: u64;3336 }3372 }333733733338 /** @name CumulusPalletDmpQueueError (375) */3374 /** @name CumulusPalletDmpQueueError (376) */3339 interface CumulusPalletDmpQueueError extends Enum {3375 interface CumulusPalletDmpQueueError extends Enum {3340 readonly isUnknown: boolean;3376 readonly isUnknown: boolean;3341 readonly isOverLimit: boolean;3377 readonly isOverLimit: boolean;3342 readonly type: 'Unknown' | 'OverLimit';3378 readonly type: 'Unknown' | 'OverLimit';3343 }3379 }334433803345 /** @name PalletUniqueError (379) */3381 /** @name PalletUniqueError (380) */3346 interface PalletUniqueError extends Enum {3382 interface PalletUniqueError extends Enum {3347 readonly isCollectionDecimalPointLimitExceeded: boolean;3383 readonly isCollectionDecimalPointLimitExceeded: boolean;3348 readonly isConfirmUnsetSponsorFail: boolean;3384 readonly isConfirmUnsetSponsorFail: boolean;3351 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';3387 readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';3352 }3388 }33893390 /** @name PalletUniqueSchedulerV2BlockAgenda (381) */3391 interface PalletUniqueSchedulerV2BlockAgenda extends Struct {3392 readonly agenda: Vec<Option<PalletUniqueSchedulerV2Scheduled>>;3393 readonly freePlaces: u32;3394 }335333953354 /** @name PalletUniqueSchedulerScheduledV3 (382) */3396 /** @name PalletUniqueSchedulerV2Scheduled (384) */3355 interface PalletUniqueSchedulerScheduledV3 extends Struct {3397 interface PalletUniqueSchedulerV2Scheduled extends Struct {3356 readonly maybeId: Option<U8aFixed>;3398 readonly maybeId: Option<U8aFixed>;3357 readonly priority: u8;3399 readonly priority: u8;3358 readonly call: FrameSupportScheduleMaybeHashed;3400 readonly call: PalletUniqueSchedulerV2ScheduledCall;3359 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;3401 readonly maybePeriodic: Option<ITuple<[u32, u32]>>;3360 readonly origin: OpalRuntimeOriginCaller;3402 readonly origin: OpalRuntimeOriginCaller;3361 }3403 }34043405 /** @name PalletUniqueSchedulerV2ScheduledCall (385) */3406 interface PalletUniqueSchedulerV2ScheduledCall extends Enum {3407 readonly isInline: boolean;3408 readonly asInline: Bytes;3409 readonly isPreimageLookup: boolean;3410 readonly asPreimageLookup: {3411 readonly hash_: H256;3412 readonly unboundedLen: u32;3413 } & Struct;3414 readonly type: 'Inline' | 'PreimageLookup';3415 }336234163363 /** @name OpalRuntimeOriginCaller (383) */3417 /** @name OpalRuntimeOriginCaller (387) */3364 interface OpalRuntimeOriginCaller extends Enum {3418 interface OpalRuntimeOriginCaller extends Enum {3365 readonly isSystem: boolean;3419 readonly isSystem: boolean;3366 readonly asSystem: FrameSupportDispatchRawOrigin;3420 readonly asSystem: FrameSupportDispatchRawOrigin;3374 readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';3428 readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';3375 }3429 }337634303377 /** @name FrameSupportDispatchRawOrigin (384) */3431 /** @name FrameSupportDispatchRawOrigin (388) */3378 interface FrameSupportDispatchRawOrigin extends Enum {3432 interface FrameSupportDispatchRawOrigin extends Enum {3379 readonly isRoot: boolean;3433 readonly isRoot: boolean;3380 readonly isSigned: boolean;3434 readonly isSigned: boolean;3383 readonly type: 'Root' | 'Signed' | 'None';3437 readonly type: 'Root' | 'Signed' | 'None';3384 }3438 }338534393386 /** @name PalletXcmOrigin (385) */3440 /** @name PalletXcmOrigin (389) */3387 interface PalletXcmOrigin extends Enum {3441 interface PalletXcmOrigin extends Enum {3388 readonly isXcm: boolean;3442 readonly isXcm: boolean;3389 readonly asXcm: XcmV1MultiLocation;3443 readonly asXcm: XcmV1MultiLocation;3392 readonly type: 'Xcm' | 'Response';3446 readonly type: 'Xcm' | 'Response';3393 }3447 }339434483395 /** @name CumulusPalletXcmOrigin (386) */3449 /** @name CumulusPalletXcmOrigin (390) */3396 interface CumulusPalletXcmOrigin extends Enum {3450 interface CumulusPalletXcmOrigin extends Enum {3397 readonly isRelay: boolean;3451 readonly isRelay: boolean;3398 readonly isSiblingParachain: boolean;3452 readonly isSiblingParachain: boolean;3399 readonly asSiblingParachain: u32;3453 readonly asSiblingParachain: u32;3400 readonly type: 'Relay' | 'SiblingParachain';3454 readonly type: 'Relay' | 'SiblingParachain';3401 }3455 }340234563403 /** @name PalletEthereumRawOrigin (387) */3457 /** @name PalletEthereumRawOrigin (391) */3404 interface PalletEthereumRawOrigin extends Enum {3458 interface PalletEthereumRawOrigin extends Enum {3405 readonly isEthereumTransaction: boolean;3459 readonly isEthereumTransaction: boolean;3406 readonly asEthereumTransaction: H160;3460 readonly asEthereumTransaction: H160;3407 readonly type: 'EthereumTransaction';3461 readonly type: 'EthereumTransaction';3408 }3462 }340934633410 /** @name SpCoreVoid (388) */3464 /** @name SpCoreVoid (392) */3411 type SpCoreVoid = Null;3465 type SpCoreVoid = Null;341234663413 /** @name PalletUniqueSchedulerError (389) */3467 /** @name PalletUniqueSchedulerV2Error (394) */3414 interface PalletUniqueSchedulerError extends Enum {3468 interface PalletUniqueSchedulerV2Error extends Enum {3415 readonly isFailedToSchedule: boolean;3469 readonly isFailedToSchedule: boolean;3470 readonly isAgendaIsExhausted: boolean;3471 readonly isScheduledCallCorrupted: boolean;3472 readonly isPreimageNotFound: boolean;3473 readonly isTooBigScheduledCall: boolean;3416 readonly isNotFound: boolean;3474 readonly isNotFound: boolean;3417 readonly isTargetBlockNumberInPast: boolean;3475 readonly isTargetBlockNumberInPast: boolean;3418 readonly isRescheduleNoChange: boolean;3476 readonly isNamed: boolean;3419 readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';3477 readonly type: 'FailedToSchedule' | 'AgendaIsExhausted' | 'ScheduledCallCorrupted' | 'PreimageNotFound' | 'TooBigScheduledCall' | 'NotFound' | 'TargetBlockNumberInPast' | 'Named';3420 }3478 }342134793422 /** @name UpDataStructsCollection (390) */3480 /** @name UpDataStructsCollection (395) */3423 interface UpDataStructsCollection extends Struct {3481 interface UpDataStructsCollection extends Struct {3424 readonly owner: AccountId32;3482 readonly owner: AccountId32;3425 readonly mode: UpDataStructsCollectionMode;3483 readonly mode: UpDataStructsCollectionMode;3432 readonly flags: U8aFixed;3490 readonly flags: U8aFixed;3433 }3491 }343434923435 /** @name UpDataStructsSponsorshipStateAccountId32 (391) */3493 /** @name UpDataStructsSponsorshipStateAccountId32 (396) */3436 interface UpDataStructsSponsorshipStateAccountId32 extends Enum {3494 interface UpDataStructsSponsorshipStateAccountId32 extends Enum {3437 readonly isDisabled: boolean;3495 readonly isDisabled: boolean;3438 readonly isUnconfirmed: boolean;3496 readonly isUnconfirmed: boolean;3442 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3500 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3443 }3501 }344435023445 /** @name UpDataStructsProperties (393) */3503 /** @name UpDataStructsProperties (398) */3446 interface UpDataStructsProperties extends Struct {3504 interface UpDataStructsProperties extends Struct {3447 readonly map: UpDataStructsPropertiesMapBoundedVec;3505 readonly map: UpDataStructsPropertiesMapBoundedVec;3448 readonly consumedSpace: u32;3506 readonly consumedSpace: u32;3449 readonly spaceLimit: u32;3507 readonly spaceLimit: u32;3450 }3508 }345135093452 /** @name UpDataStructsPropertiesMapBoundedVec (394) */3510 /** @name UpDataStructsPropertiesMapBoundedVec (399) */3453 interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}3511 interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}345435123455 /** @name UpDataStructsPropertiesMapPropertyPermission (399) */3513 /** @name UpDataStructsPropertiesMapPropertyPermission (404) */3456 interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}3514 interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}345735153458 /** @name UpDataStructsCollectionStats (406) */3516 /** @name UpDataStructsCollectionStats (411) */3459 interface UpDataStructsCollectionStats extends Struct {3517 interface UpDataStructsCollectionStats extends Struct {3460 readonly created: u32;3518 readonly created: u32;3461 readonly destroyed: u32;3519 readonly destroyed: u32;3462 readonly alive: u32;3520 readonly alive: u32;3463 }3521 }346435223465 /** @name UpDataStructsTokenChild (407) */3523 /** @name UpDataStructsTokenChild (412) */3466 interface UpDataStructsTokenChild extends Struct {3524 interface UpDataStructsTokenChild extends Struct {3467 readonly token: u32;3525 readonly token: u32;3468 readonly collection: u32;3526 readonly collection: u32;3469 }3527 }347035283471 /** @name PhantomTypeUpDataStructs (408) */3529 /** @name PhantomTypeUpDataStructs (413) */3472 interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}3530 interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}347335313474 /** @name UpDataStructsTokenData (410) */3532 /** @name UpDataStructsTokenData (415) */3475 interface UpDataStructsTokenData extends Struct {3533 interface UpDataStructsTokenData extends Struct {3476 readonly properties: Vec<UpDataStructsProperty>;3534 readonly properties: Vec<UpDataStructsProperty>;3477 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;3535 readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;3478 readonly pieces: u128;3536 readonly pieces: u128;3479 }3537 }348035383481 /** @name UpDataStructsRpcCollection (412) */3539 /** @name UpDataStructsRpcCollection (417) */3482 interface UpDataStructsRpcCollection extends Struct {3540 interface UpDataStructsRpcCollection extends Struct {3483 readonly owner: AccountId32;3541 readonly owner: AccountId32;3484 readonly mode: UpDataStructsCollectionMode;3542 readonly mode: UpDataStructsCollectionMode;3494 readonly flags: UpDataStructsRpcCollectionFlags;3552 readonly flags: UpDataStructsRpcCollectionFlags;3495 }3553 }349635543497 /** @name UpDataStructsRpcCollectionFlags (413) */3555 /** @name UpDataStructsRpcCollectionFlags (418) */3498 interface UpDataStructsRpcCollectionFlags extends Struct {3556 interface UpDataStructsRpcCollectionFlags extends Struct {3499 readonly foreign: bool;3557 readonly foreign: bool;3500 readonly erc721metadata: bool;3558 readonly erc721metadata: bool;3501 }3559 }350235603503 /** @name RmrkTraitsCollectionCollectionInfo (414) */3561 /** @name RmrkTraitsCollectionCollectionInfo (419) */3504 interface RmrkTraitsCollectionCollectionInfo extends Struct {3562 interface RmrkTraitsCollectionCollectionInfo extends Struct {3505 readonly issuer: AccountId32;3563 readonly issuer: AccountId32;3506 readonly metadata: Bytes;3564 readonly metadata: Bytes;3509 readonly nftsCount: u32;3567 readonly nftsCount: u32;3510 }3568 }351135693512 /** @name RmrkTraitsNftNftInfo (415) */3570 /** @name RmrkTraitsNftNftInfo (420) */3513 interface RmrkTraitsNftNftInfo extends Struct {3571 interface RmrkTraitsNftNftInfo extends Struct {3514 readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;3572 readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;3515 readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;3573 readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;3518 readonly pending: bool;3576 readonly pending: bool;3519 }3577 }352035783521 /** @name RmrkTraitsNftRoyaltyInfo (417) */3579 /** @name RmrkTraitsNftRoyaltyInfo (422) */3522 interface RmrkTraitsNftRoyaltyInfo extends Struct {3580 interface RmrkTraitsNftRoyaltyInfo extends Struct {3523 readonly recipient: AccountId32;3581 readonly recipient: AccountId32;3524 readonly amount: Permill;3582 readonly amount: Permill;3525 }3583 }352635843527 /** @name RmrkTraitsResourceResourceInfo (418) */3585 /** @name RmrkTraitsResourceResourceInfo (423) */3528 interface RmrkTraitsResourceResourceInfo extends Struct {3586 interface RmrkTraitsResourceResourceInfo extends Struct {3529 readonly id: u32;3587 readonly id: u32;3530 readonly resource: RmrkTraitsResourceResourceTypes;3588 readonly resource: RmrkTraitsResourceResourceTypes;3531 readonly pending: bool;3589 readonly pending: bool;3532 readonly pendingRemoval: bool;3590 readonly pendingRemoval: bool;3533 }3591 }353435923535 /** @name RmrkTraitsPropertyPropertyInfo (419) */3593 /** @name RmrkTraitsPropertyPropertyInfo (424) */3536 interface RmrkTraitsPropertyPropertyInfo extends Struct {3594 interface RmrkTraitsPropertyPropertyInfo extends Struct {3537 readonly key: Bytes;3595 readonly key: Bytes;3538 readonly value: Bytes;3596 readonly value: Bytes;3539 }3597 }354035983541 /** @name RmrkTraitsBaseBaseInfo (420) */3599 /** @name RmrkTraitsBaseBaseInfo (425) */3542 interface RmrkTraitsBaseBaseInfo extends Struct {3600 interface RmrkTraitsBaseBaseInfo extends Struct {3543 readonly issuer: AccountId32;3601 readonly issuer: AccountId32;3544 readonly baseType: Bytes;3602 readonly baseType: Bytes;3545 readonly symbol: Bytes;3603 readonly symbol: Bytes;3546 }3604 }354736053548 /** @name RmrkTraitsNftNftChild (421) */3606 /** @name RmrkTraitsNftNftChild (426) */3549 interface RmrkTraitsNftNftChild extends Struct {3607 interface RmrkTraitsNftNftChild extends Struct {3550 readonly collectionId: u32;3608 readonly collectionId: u32;3551 readonly nftId: u32;3609 readonly nftId: u32;3552 }3610 }355336113554 /** @name PalletCommonError (423) */3612 /** @name PalletCommonError (428) */3555 interface PalletCommonError extends Enum {3613 interface PalletCommonError extends Enum {3556 readonly isCollectionNotFound: boolean;3614 readonly isCollectionNotFound: boolean;3557 readonly isMustBeTokenOwner: boolean;3615 readonly isMustBeTokenOwner: boolean;3590 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';3648 readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';3591 }3649 }359236503593 /** @name PalletFungibleError (425) */3651 /** @name PalletFungibleError (430) */3594 interface PalletFungibleError extends Enum {3652 interface PalletFungibleError extends Enum {3595 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3653 readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;3596 readonly isFungibleItemsHaveNoId: boolean;3654 readonly isFungibleItemsHaveNoId: boolean;3600 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3658 readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3601 }3659 }360236603603 /** @name PalletRefungibleItemData (426) */3661 /** @name PalletRefungibleItemData (431) */3604 interface PalletRefungibleItemData extends Struct {3662 interface PalletRefungibleItemData extends Struct {3605 readonly constData: Bytes;3663 readonly constData: Bytes;3606 }3664 }360736653608 /** @name PalletRefungibleError (431) */3666 /** @name PalletRefungibleError (436) */3609 interface PalletRefungibleError extends Enum {3667 interface PalletRefungibleError extends Enum {3610 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3668 readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;3611 readonly isWrongRefungiblePieces: boolean;3669 readonly isWrongRefungiblePieces: boolean;3615 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3673 readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';3616 }3674 }361736753618 /** @name PalletNonfungibleItemData (432) */3676 /** @name PalletNonfungibleItemData (437) */3619 interface PalletNonfungibleItemData extends Struct {3677 interface PalletNonfungibleItemData extends Struct {3620 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3678 readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;3621 }3679 }362236803623 /** @name UpDataStructsPropertyScope (434) */3681 /** @name UpDataStructsPropertyScope (439) */3624 interface UpDataStructsPropertyScope extends Enum {3682 interface UpDataStructsPropertyScope extends Enum {3625 readonly isNone: boolean;3683 readonly isNone: boolean;3626 readonly isRmrk: boolean;3684 readonly isRmrk: boolean;3627 readonly type: 'None' | 'Rmrk';3685 readonly type: 'None' | 'Rmrk';3628 }3686 }362936873630 /** @name PalletNonfungibleError (436) */3688 /** @name PalletNonfungibleError (441) */3631 interface PalletNonfungibleError extends Enum {3689 interface PalletNonfungibleError extends Enum {3632 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3690 readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;3633 readonly isNonfungibleItemsHaveNoAmount: boolean;3691 readonly isNonfungibleItemsHaveNoAmount: boolean;3634 readonly isCantBurnNftWithChildren: boolean;3692 readonly isCantBurnNftWithChildren: boolean;3635 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3693 readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';3636 }3694 }363736953638 /** @name PalletStructureError (437) */3696 /** @name PalletStructureError (442) */3639 interface PalletStructureError extends Enum {3697 interface PalletStructureError extends Enum {3640 readonly isOuroborosDetected: boolean;3698 readonly isOuroborosDetected: boolean;3641 readonly isDepthLimit: boolean;3699 readonly isDepthLimit: boolean;3644 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3702 readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';3645 }3703 }364637043647 /** @name PalletRmrkCoreError (438) */3705 /** @name PalletRmrkCoreError (443) */3648 interface PalletRmrkCoreError extends Enum {3706 interface PalletRmrkCoreError extends Enum {3649 readonly isCorruptedCollectionType: boolean;3707 readonly isCorruptedCollectionType: boolean;3650 readonly isRmrkPropertyKeyIsTooLong: boolean;3708 readonly isRmrkPropertyKeyIsTooLong: boolean;3668 readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';3726 readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';3669 }3727 }367037283671 /** @name PalletRmrkEquipError (440) */3729 /** @name PalletRmrkEquipError (445) */3672 interface PalletRmrkEquipError extends Enum {3730 interface PalletRmrkEquipError extends Enum {3673 readonly isPermissionError: boolean;3731 readonly isPermissionError: boolean;3674 readonly isNoAvailableBaseId: boolean;3732 readonly isNoAvailableBaseId: boolean;3680 readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';3738 readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';3681 }3739 }368237403683 /** @name PalletAppPromotionError (446) */3741 /** @name PalletAppPromotionError (451) */3684 interface PalletAppPromotionError extends Enum {3742 interface PalletAppPromotionError extends Enum {3685 readonly isAdminNotSet: boolean;3743 readonly isAdminNotSet: boolean;3686 readonly isNoPermission: boolean;3744 readonly isNoPermission: boolean;3691 readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';3749 readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';3692 }3750 }369337513694 /** @name PalletForeignAssetsModuleError (447) */3752 /** @name PalletForeignAssetsModuleError (452) */3695 interface PalletForeignAssetsModuleError extends Enum {3753 interface PalletForeignAssetsModuleError extends Enum {3696 readonly isBadLocation: boolean;3754 readonly isBadLocation: boolean;3697 readonly isMultiLocationExisted: boolean;3755 readonly isMultiLocationExisted: boolean;3700 readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';3758 readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';3701 }3759 }370237603703 /** @name PalletEvmError (450) */3761 /** @name PalletEvmError (454) */3704 interface PalletEvmError extends Enum {3762 interface PalletEvmError extends Enum {3705 readonly isBalanceLow: boolean;3763 readonly isBalanceLow: boolean;3706 readonly isFeeOverflow: boolean;3764 readonly isFeeOverflow: boolean;3707 readonly isPaymentOverflow: boolean;3765 readonly isPaymentOverflow: boolean;3708 readonly isWithdrawFailed: boolean;3766 readonly isWithdrawFailed: boolean;3709 readonly isGasPriceTooLow: boolean;3767 readonly isGasPriceTooLow: boolean;3710 readonly isInvalidNonce: boolean;3768 readonly isInvalidNonce: boolean;3769 readonly isGasLimitTooLow: boolean;3770 readonly isGasLimitTooHigh: boolean;3771 readonly isUndefined: boolean;3772 readonly isReentrancy: boolean;3711 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';3773 readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce' | 'GasLimitTooLow' | 'GasLimitTooHigh' | 'Undefined' | 'Reentrancy';3712 }3774 }371337753714 /** @name FpRpcTransactionStatus (453) */3776 /** @name FpRpcTransactionStatus (457) */3715 interface FpRpcTransactionStatus extends Struct {3777 interface FpRpcTransactionStatus extends Struct {3716 readonly transactionHash: H256;3778 readonly transactionHash: H256;3717 readonly transactionIndex: u32;3779 readonly transactionIndex: u32;3722 readonly logsBloom: EthbloomBloom;3784 readonly logsBloom: EthbloomBloom;3723 }3785 }372437863725 /** @name EthbloomBloom (455) */3787 /** @name EthbloomBloom (459) */3726 interface EthbloomBloom extends U8aFixed {}3788 interface EthbloomBloom extends U8aFixed {}372737893728 /** @name EthereumReceiptReceiptV3 (457) */3790 /** @name EthereumReceiptReceiptV3 (461) */3729 interface EthereumReceiptReceiptV3 extends Enum {3791 interface EthereumReceiptReceiptV3 extends Enum {3730 readonly isLegacy: boolean;3792 readonly isLegacy: boolean;3731 readonly asLegacy: EthereumReceiptEip658ReceiptData;3793 readonly asLegacy: EthereumReceiptEip658ReceiptData;3736 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3798 readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';3737 }3799 }373838003739 /** @name EthereumReceiptEip658ReceiptData (458) */3801 /** @name EthereumReceiptEip658ReceiptData (462) */3740 interface EthereumReceiptEip658ReceiptData extends Struct {3802 interface EthereumReceiptEip658ReceiptData extends Struct {3741 readonly statusCode: u8;3803 readonly statusCode: u8;3742 readonly usedGas: U256;3804 readonly usedGas: U256;3743 readonly logsBloom: EthbloomBloom;3805 readonly logsBloom: EthbloomBloom;3744 readonly logs: Vec<EthereumLog>;3806 readonly logs: Vec<EthereumLog>;3745 }3807 }374638083747 /** @name EthereumBlock (459) */3809 /** @name EthereumBlock (463) */3748 interface EthereumBlock extends Struct {3810 interface EthereumBlock extends Struct {3749 readonly header: EthereumHeader;3811 readonly header: EthereumHeader;3750 readonly transactions: Vec<EthereumTransactionTransactionV2>;3812 readonly transactions: Vec<EthereumTransactionTransactionV2>;3751 readonly ommers: Vec<EthereumHeader>;3813 readonly ommers: Vec<EthereumHeader>;3752 }3814 }375338153754 /** @name EthereumHeader (460) */3816 /** @name EthereumHeader (464) */3755 interface EthereumHeader extends Struct {3817 interface EthereumHeader extends Struct {3756 readonly parentHash: H256;3818 readonly parentHash: H256;3757 readonly ommersHash: H256;3819 readonly ommersHash: H256;3770 readonly nonce: EthereumTypesHashH64;3832 readonly nonce: EthereumTypesHashH64;3771 }3833 }377238343773 /** @name EthereumTypesHashH64 (461) */3835 /** @name EthereumTypesHashH64 (465) */3774 interface EthereumTypesHashH64 extends U8aFixed {}3836 interface EthereumTypesHashH64 extends U8aFixed {}377538373776 /** @name PalletEthereumError (466) */3838 /** @name PalletEthereumError (470) */3777 interface PalletEthereumError extends Enum {3839 interface PalletEthereumError extends Enum {3778 readonly isInvalidSignature: boolean;3840 readonly isInvalidSignature: boolean;3779 readonly isPreLogExists: boolean;3841 readonly isPreLogExists: boolean;3780 readonly type: 'InvalidSignature' | 'PreLogExists';3842 readonly type: 'InvalidSignature' | 'PreLogExists';3781 }3843 }378238443783 /** @name PalletEvmCoderSubstrateError (467) */3845 /** @name PalletEvmCoderSubstrateError (471) */3784 interface PalletEvmCoderSubstrateError extends Enum {3846 interface PalletEvmCoderSubstrateError extends Enum {3785 readonly isOutOfGas: boolean;3847 readonly isOutOfGas: boolean;3786 readonly isOutOfFund: boolean;3848 readonly isOutOfFund: boolean;3787 readonly type: 'OutOfGas' | 'OutOfFund';3849 readonly type: 'OutOfGas' | 'OutOfFund';3788 }3850 }378938513790 /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (468) */3852 /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (472) */3791 interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {3853 interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {3792 readonly isDisabled: boolean;3854 readonly isDisabled: boolean;3793 readonly isUnconfirmed: boolean;3855 readonly isUnconfirmed: boolean;3797 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3859 readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3798 }3860 }379938613800 /** @name PalletEvmContractHelpersSponsoringModeT (469) */3862 /** @name PalletEvmContractHelpersSponsoringModeT (473) */3801 interface PalletEvmContractHelpersSponsoringModeT extends Enum {3863 interface PalletEvmContractHelpersSponsoringModeT extends Enum {3802 readonly isDisabled: boolean;3864 readonly isDisabled: boolean;3803 readonly isAllowlisted: boolean;3865 readonly isAllowlisted: boolean;3804 readonly isGenerous: boolean;3866 readonly isGenerous: boolean;3805 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3867 readonly type: 'Disabled' | 'Allowlisted' | 'Generous';3806 }3868 }380738693808 /** @name PalletEvmContractHelpersError (475) */3870 /** @name PalletEvmContractHelpersError (479) */3809 interface PalletEvmContractHelpersError extends Enum {3871 interface PalletEvmContractHelpersError extends Enum {3810 readonly isNoPermission: boolean;3872 readonly isNoPermission: boolean;3811 readonly isNoPendingSponsor: boolean;3873 readonly isNoPendingSponsor: boolean;3812 readonly isTooManyMethodsHaveSponsoredLimit: boolean;3874 readonly isTooManyMethodsHaveSponsoredLimit: boolean;3813 readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit';3875 readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit';3814 }3876 }381538773816 /** @name PalletEvmMigrationError (476) */3878 /** @name PalletEvmMigrationError (480) */3817 interface PalletEvmMigrationError extends Enum {3879 interface PalletEvmMigrationError extends Enum {3818 readonly isAccountNotEmpty: boolean;3880 readonly isAccountNotEmpty: boolean;3819 readonly isAccountIsNotMigrating: boolean;3881 readonly isAccountIsNotMigrating: boolean;3882 readonly isBadEvent: boolean;3820 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';3883 readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating' | 'BadEvent';3821 }3884 }382238853823 /** @name PalletMaintenanceError (477) */3886 /** @name PalletMaintenanceError (481) */3824 type PalletMaintenanceError = Null;3887 type PalletMaintenanceError = Null;382538883826 /** @name PalletTestUtilsError (478) */3889 /** @name PalletTestUtilsError (482) */3827 interface PalletTestUtilsError extends Enum {3890 interface PalletTestUtilsError extends Enum {3828 readonly isTestPalletDisabled: boolean;3891 readonly isTestPalletDisabled: boolean;3829 readonly isTriggerRollback: boolean;3892 readonly isTriggerRollback: boolean;3830 readonly type: 'TestPalletDisabled' | 'TriggerRollback';3893 readonly type: 'TestPalletDisabled' | 'TriggerRollback';3831 }3894 }383238953833 /** @name SpRuntimeMultiSignature (480) */3896 /** @name SpRuntimeMultiSignature (484) */3834 interface SpRuntimeMultiSignature extends Enum {3897 interface SpRuntimeMultiSignature extends Enum {3835 readonly isEd25519: boolean;3898 readonly isEd25519: boolean;3836 readonly asEd25519: SpCoreEd25519Signature;3899 readonly asEd25519: SpCoreEd25519Signature;3841 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3904 readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';3842 }3905 }384339063844 /** @name SpCoreEd25519Signature (481) */3907 /** @name SpCoreEd25519Signature (485) */3845 interface SpCoreEd25519Signature extends U8aFixed {}3908 interface SpCoreEd25519Signature extends U8aFixed {}384639093847 /** @name SpCoreSr25519Signature (483) */3910 /** @name SpCoreSr25519Signature (487) */3848 interface SpCoreSr25519Signature extends U8aFixed {}3911 interface SpCoreSr25519Signature extends U8aFixed {}384939123850 /** @name SpCoreEcdsaSignature (484) */3913 /** @name SpCoreEcdsaSignature (488) */3851 interface SpCoreEcdsaSignature extends U8aFixed {}3914 interface SpCoreEcdsaSignature extends U8aFixed {}385239153853 /** @name FrameSystemExtensionsCheckSpecVersion (487) */3916 /** @name FrameSystemExtensionsCheckSpecVersion (491) */3854 type FrameSystemExtensionsCheckSpecVersion = Null;3917 type FrameSystemExtensionsCheckSpecVersion = Null;385539183856 /** @name FrameSystemExtensionsCheckTxVersion (488) */3919 /** @name FrameSystemExtensionsCheckTxVersion (492) */3857 type FrameSystemExtensionsCheckTxVersion = Null;3920 type FrameSystemExtensionsCheckTxVersion = Null;385839213859 /** @name FrameSystemExtensionsCheckGenesis (489) */3922 /** @name FrameSystemExtensionsCheckGenesis (493) */3860 type FrameSystemExtensionsCheckGenesis = Null;3923 type FrameSystemExtensionsCheckGenesis = Null;386139243862 /** @name FrameSystemExtensionsCheckNonce (492) */3925 /** @name FrameSystemExtensionsCheckNonce (496) */3863 interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}3926 interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}386439273865 /** @name FrameSystemExtensionsCheckWeight (493) */3928 /** @name FrameSystemExtensionsCheckWeight (497) */3866 type FrameSystemExtensionsCheckWeight = Null;3929 type FrameSystemExtensionsCheckWeight = Null;386739303868 /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (494) */3931 /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (498) */3869 type OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null;3932 type OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null;387039333871 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (495) */3934 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (499) */3872 interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}3935 interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}387339363874 /** @name OpalRuntimeRuntime (496) */3937 /** @name OpalRuntimeRuntime (500) */3875 type OpalRuntimeRuntime = Null;3938 type OpalRuntimeRuntime = Null;387639393877 /** @name PalletEthereumFakeTransactionFinalizer (497) */3940 /** @name PalletEthereumFakeTransactionFinalizer (501) */3878 type PalletEthereumFakeTransactionFinalizer = Null;3941 type PalletEthereumFakeTransactionFinalizer = Null;387939423880} // declare module3943} // declare moduletests/src/maintenanceMode.seqtest.tsdiffbeforeafterboth237 expect(tokenId).to.be.equal('1');237 expect(tokenId).to.be.equal('1');238238239 await expect(contract.methods.mintWithTokenURI(receiver, 'Test URI').send())239 await expect(contract.methods.mintWithTokenURI(receiver, 'Test URI').send())240 .to.be.rejectedWith(/submit transaction to pool failed: Pool\(InvalidTransaction\(InvalidTransaction::Call\)\)/);240 .to.be.rejectedWith(/Returned error: unknown error/);241241242 await expect(contract.methods.ownerOf(tokenId).call()).rejectedWith(/token not found/);242 await expect(contract.methods.ownerOf(tokenId).call()).rejectedWith(/token not found/);243243tests/src/refungible.test.tsdiffbeforeafterboth255 });255 });256});256});257258describe('Refungible negative tests', () => {259 let donor: IKeyringPair;260 let alice: IKeyringPair;261 let bob: IKeyringPair;262 let charlie: IKeyringPair;263264 before(async function() {265 await usingPlaygrounds(async (helper, privateKey) => {266 requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);267268 donor = await privateKey({filename: __filename});269 [alice, bob, charlie] = await helper.arrange.createAccounts([100n, 100n, 100n], donor);270 });271 });272273 itSub('Cannot transfer incorrect amount of token pieces', async ({helper}) => {274 const collection = await helper.rft.mintCollection(alice, {name: 'test', description: 'test', tokenPrefix: 'test'});275 const tokenAlice = await collection.mintToken(alice, 10n, {Substrate: alice.address});276 const tokenBob = await collection.mintToken(alice, 10n, {Substrate: bob.address});277278 // 1. Alice cannot transfer Bob's token:279 await expect(tokenBob.transfer(alice, {Substrate: charlie.address}, 0n)).to.be.rejectedWith('common.TokenValueTooLow');280 await expect(tokenBob.transfer(alice, {Substrate: charlie.address}, 1n)).to.be.rejectedWith('common.TokenValueTooLow');281 await expect(tokenBob.transfer(alice, {Substrate: charlie.address}, 10n)).to.be.rejectedWith('common.TokenValueTooLow');282 await expect(tokenBob.transfer(alice, {Substrate: charlie.address}, 100n)).to.be.rejectedWith('common.TokenValueTooLow');283 284 // 2. Alice cannot transfer non-existing token:285 await expect(collection.transferToken(alice, 100, {Substrate: charlie.address}, 0n)).to.be.rejectedWith('common.TokenValueTooLow');286 await expect(collection.transferToken(alice, 100, {Substrate: charlie.address}, 1n)).to.be.rejectedWith('common.TokenValueTooLow');287288 // 3. Zero transfer allowed (EIP-20):289 await tokenAlice.transfer(alice, {Substrate: charlie.address}, 0n);290291 expect(await tokenAlice.getTop10Owners()).to.deep.eq([{Substrate: alice.address}]);292 expect(await tokenBob.getTop10Owners()).to.deep.eq([{Substrate: bob.address}]);293 expect(await tokenAlice.getBalance({Substrate: alice.address})).to.eq(10n);294 expect(await tokenBob.getBalance({Substrate: bob.address})).to.eq(10n);295 expect(await tokenBob.getBalance({Substrate: charlie.address})).to.eq(0n);296 });297});257298258tests/src/transfer.test.tsdiffbeforeafterboth191 .to.be.rejectedWith(/common\.TokenValueTooLow/);192 .to.be.rejectedWith(/common\.TokenValueTooLow/);192 });193 });194195 itSub('Zero transfer NFT', async ({helper}) => {196 const collection = await helper.nft.mintCollection(alice, {name: 'Transfer-Neg-3-NFT', description: '', tokenPrefix: 'T'});197 const tokenAlice = await collection.mintToken(alice, {Substrate: alice.address});198 const tokenBob = await collection.mintToken(alice, {Substrate: bob.address});199 // 1. Zero transfer of own tokens allowed:200 await helper.executeExtrinsic(alice, 'api.tx.unique.transfer', [{Substrate: bob.address}, collection.collectionId, tokenAlice.tokenId, 0]);201 // 2. Zero transfer of non-owned tokens not allowed:202 await expect(helper.executeExtrinsic(alice, 'api.tx.unique.transfer', [{Substrate: alice.address}, collection.collectionId, tokenBob.tokenId, 0])).to.be.rejectedWith('common.NoPermission');203 // 3. Zero transfer of non-existing tokens not allowed:204 await expect(helper.executeExtrinsic(alice, 'api.tx.unique.transfer', [{Substrate: alice.address}, collection.collectionId, 10, 0])).to.be.rejectedWith('common.TokenNotFound');205 expect(await tokenAlice.getOwner()).to.deep.eq({Substrate: alice.address});206 expect(await tokenBob.getOwner()).to.deep.eq({Substrate: bob.address});207 // 4. Storage is not corrupted:208 await tokenAlice.transfer(alice, {Substrate: bob.address});209 await tokenBob.transfer(bob, {Substrate: alice.address});210 expect(await tokenAlice.getOwner()).to.deep.eq({Substrate: bob.address});211 expect(await tokenBob.getOwner()).to.deep.eq({Substrate: alice.address});212 });193213194 itSub('[nft] Transfer with deleted item_id', async ({helper}) => {214 itSub('[nft] Transfer with deleted item_id', async ({helper}) => {195 const collection = await helper.nft.mintCollection(alice, {name: 'Transfer-Neg-3-NFT', description: '', tokenPrefix: 'T'});215 const collection = await helper.nft.mintCollection(alice, {name: 'Transfer-Neg-3-NFT', description: '', tokenPrefix: 'T'});tests/src/transferFrom.test.tsdiffbeforeafterboth350 )).to.be.rejectedWith(/common\.ApprovedValueTooLow/);350 )).to.be.rejectedWith(/common\.ApprovedValueTooLow/);351 });351 });352353 itSub('zero transfer NFT', async ({helper}) => {354 const collection = await helper.nft.mintCollection(alice, {name: 'Zero', description: 'Zero transfer', tokenPrefix: 'TF'});355 const notApprovedNft = await collection.mintToken(alice, {Substrate: bob.address});356 const approvedNft = await collection.mintToken(alice, {Substrate: bob.address});357 await approvedNft.approve(bob, {Substrate: alice.address});358359 // 1. Cannot zero transferFrom (non-existing token)360 await expect(helper.executeExtrinsic(alice, 'api.tx.unique.transferFrom', [{Substrate: bob.address}, {Substrate: alice.address}, collection.collectionId, 9999, 0])).to.be.rejectedWith('common.ApprovedValueTooLow');361 // 2. Cannot zero transferFrom (not approved token)362 await expect(helper.executeExtrinsic(alice, 'api.tx.unique.transferFrom', [{Substrate: bob.address}, {Substrate: alice.address}, collection.collectionId, notApprovedNft.tokenId, 0])).to.be.rejectedWith('common.ApprovedValueTooLow');363 // 3. Can zero transferFrom (approved token):364 await helper.executeExtrinsic(alice, 'api.tx.unique.transferFrom', [{Substrate: bob.address}, {Substrate: alice.address}, collection.collectionId, approvedNft.tokenId, 0]);365366 // 4.1 approvedNft still approved:367 expect(await approvedNft.isApproved({Substrate: alice.address})).to.be.true;368 // 4.2 bob is still the owner:369 expect(await approvedNft.getOwner()).to.deep.eq({Substrate: bob.address});370 expect(await notApprovedNft.getOwner()).to.deep.eq({Substrate: bob.address});371 // 4.3 Alice can transfer approved nft:372 await approvedNft.transferFrom(alice, {Substrate: bob.address}, {Substrate: alice.address});373 expect(await approvedNft.getOwner()).to.deep.eq({Substrate: alice.address});374 });352});375});353376tests/src/util/playgrounds/unique.tsdiffbeforeafterboth2484 * @param ethCrossAccount etherium cross account2484 * @param ethCrossAccount etherium cross account2485 * @returns substrate cross account id2485 * @returns substrate cross account id2486 */2486 */2487 convertCrossAccountFromEthCrossAcoount(ethCrossAccount: IEthCrossAccountId): ICrossAccountId {2487 convertCrossAccountFromEthCrossAccount(ethCrossAccount: IEthCrossAccountId): ICrossAccountId {2488 if (ethCrossAccount.sub === '0') {2488 if (ethCrossAccount.sub === '0') {2489 return {Ethereum: ethCrossAccount.eth.toLocaleLowerCase()};2489 return {Ethereum: ethCrossAccount.eth.toLocaleLowerCase()};2490 }2490 }