git.delta.rocks / unique-network / refs/commits / a7384514d3de

difftreelog

Merge branch 'develop' into tests/vesting

Max Andreev2022-12-08parents: #465cfef #378b7f3.patch.diff
in: master

144 files changed

modified.docker/Dockerfile-try-runtimediffbeforeafterboth
46 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 --release
4848
49CMD 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_FROM
5050
added.docker/additional/Dockerfile-polkadotdiffbeforeafterboth

no changes

modified.docker/docker-compose.tmp-node.j2diffbeforeafterboth
23 read_only: true23 read_only: true
24 expose:24 expose:
25 - 994425 - 9944
26 - 9945
26 - 993327 - 9933
27 - 984428 - 9844
28 ports:29 ports:
29 - 127.0.0.1:9944:994430 - 127.0.0.1:9944:9944
31 - 127.0.0.1:9945:9945
30 - 127.0.0.1:9933:993332 - 127.0.0.1:9933:9933
31 - 127.0.0.1:9844:984433 - 127.0.0.1:9844:9844
32 logging:34 logging:
modified.docker/forkless-config/launch-config-forkless-data.j2diffbeforeafterboth
107 "--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 {
modified.docker/forkless-config/launch-config-forkless-nodata.j2diffbeforeafterboth
102 "--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 ]
modified.docker/forkless-config/launch-config-node-update-only-v3.j2diffbeforeafterboth
102 "--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 {
modified.github/workflows/codestyle.ymldiffbeforeafterboth
11 rustfmt:11 rustfmt:
12 runs-on: [ self-hosted-ci ]12 runs-on: [ self-hosted-ci ]
13 steps:13 steps:
14 - name: Clean Workspace
15 uses: AutoModality/action-clean@v1.1.0
14 - uses: actions/checkout@v316 - uses: actions/checkout@v3
17 with:
18 ref: ${{ github.head_ref }}
15 - name: Install latest nightly19 - name: Install latest nightly
16 uses: actions-rs/toolchain@v120 uses: actions-rs/toolchain@v1
17 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 Workspace
36 uses: AutoModality/action-clean@v1.1.0
31 - uses: actions/checkout@v337 - uses: actions/checkout@v3
38 with:
39 ref: ${{ github.head_ref }}
32 - uses: actions/setup-node@v340 - uses: actions/setup-node@v3
33 with:41 with:
34 node-version: 1642 node-version: 16
modified.github/workflows/node-only-update.ymldiffbeforeafterboth
76 with:76 with:
77 template: .docker/docker-compose.tmp-node.j277 template: .docker/docker-compose.tmp-node.j2
78 output_file: .docker/docker-compose.node.${{ matrix.network }}.yml78 output_file: .docker/docker-compose.node.${{ matrix.network }}.yml
79 variables: |79 variables: |
80 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git80 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
81 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 }}
8989
90 - name: Show build configuration90 - name: Show build configuration
91 run: cat .docker/docker-compose.node.${{ matrix.network }}.yml91 run: cat .docker/docker-compose.node.${{ matrix.network }}.yml
160 ref: ${{ matrix.mainnet_branch }} #Checking out head commit160 ref: ${{ matrix.mainnet_branch }} #Checking out head commit
161 path: ${{ matrix.mainnet_branch }}161 path: ${{ matrix.mainnet_branch }}
162162
163 - name: Run tests before Node Parachain upgrade163 - name: Run Parallel tests before Node Parachain upgrade
164 working-directory: ${{ matrix.mainnet_branch }}/tests164 working-directory: ${{ matrix.mainnet_branch }}/tests
165 if: success() || failure()
165 run: |166 run: |
166 yarn install167 yarn install
167 yarn add mochawesome168 yarn add mochawesome
168 node scripts/readyness.js169 node scripts/readyness.js
169 echo "Ready to start tests"170 echo "Ready to start tests"
170 yarn polkadot-types171 yarn polkadot-types
171 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/
175
176 # - name: Upload Parallel Test Report Before Node upgrade
177 # uses: phoenix-actions/test-reporting@v8
178 # id: test-parallel-report-before
179 # if: success() || failure() # run this step even if previous step failed
180 # with:
181 # name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created
182 # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results
183 # reporter: mochawesome-json
184 # fail-on-error: 'false'
174185
175 - name: Upload Test Report Before Node upgrade186 - name: Run Sequential tests before Node Parachain upgrade
176 uses: phoenix-actions/test-reporting@v8
177 id: test-report-before
178 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 }}/tests
181 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/
184
185 # TODO uncomment thease steps after the merge
186 #- name: Run Parallel tests before Node Parachain upgrade
187 # working-directory: ${{ matrix.mainnet_branch }}/tests
188 # run: |
189 # yarn install
190 # yarn add mochawesome
191 # echo "Ready to start tests"
192 # yarn polkadot-types
193 # NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
194 # env:
195 # RPC_URL: http://127.0.0.1:9933/
196
197 #- name: Upload Parallel Test Report Before Node upgrade
198 # uses: phoenix-actions/test-reporting@v8
199 # id: test-parallel-report-before
200 # if: success() || failure() # run this step even if previous step failed
201 # with:
202 # name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created
203 # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results
204 # reporter: mochawesome-json
205 # fail-on-error: 'false'
206
207 # - name: Run Sequential tests before Node Parachain upgrade
208 # if: success() || failure()
209 # working-directory: ${{ matrix.mainnet_branch }}/tests
210 # 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/
213192
214 # - name: Upload Sequential Test Report Before Node upgrade193 # - name: Upload Sequential Test Report Before Node upgrade
215 # uses: phoenix-actions/test-reporting@v8194 # uses: phoenix-actions/test-reporting@v8
223 202
224 - name: Send SIGUSR1 to polkadot-launch process203 - name: Send SIGUSR1 to polkadot-launch process
225 if: success() || failure()204 if: success() || failure()
226 run: |205 run: |
227 #Get PID of polkadot-launch206 #Get PID of polkadot-launch
228 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 30s
231 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 60s
236 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 217
239 - 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 restart
240 if: failure() # run this step only at failure219 if: failure() # run this step only at failure
241 run: |220 run: |
242 docker exec node-parachain cat /polkadot-launch/9944.log221 docker exec node-parachain tail -n 1000 /polkadot-launch/9944.log
243 docker exec node-parachain cat /polkadot-launch/9945.log222 docker exec node-parachain tail -n 1000 /polkadot-launch/9945.log
244 docker exec node-parachain cat /polkadot-launch/alice.log223 docker exec node-parachain tail -n 1000 /polkadot-launch/alice.log
245 docker exec node-parachain cat /polkadot-launch/eve.log224
246 docker exec node-parachain cat /polkadot-launch/dave.log225 - name: copy chain log files from container to the host
247 docker exec node-parachain cat /polkadot-launch/charlie.log 226 if: success() || failure() # run this step even if previous step failed
227 run: |
228 mkdir -p /tmp/node-only-update
229 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/
232
233 - name: Upload chain log files
234 if: success() || failure()
235 uses: actions/upload-artifact@v3
236 with:
237 name: node-only-update-chain-logs
238 path: /tmp/node-only-update/
239 if-no-files-found: warn
248240
249 - 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 0
292 shell: bash284 shell: bash
293 285
294 ## 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 upgrade
296 working-directory: ${{ matrix.mainnet_branch }}/tests287 working-directory: ${{ matrix.mainnet_branch }}/tests
288 if: success() || failure() # run this step even if previous step failed
297 run: |289 run: |
298 yarn install290 yarn install
299 yarn add mochawesome291 yarn add mochawesome
300 node scripts/readyness.js292 node scripts/readyness.js
301 echo "Ready to start tests"293 echo "Ready to start tests"
302 yarn polkadot-types294 yarn polkadot-types
303 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/
298
299 #- name: Test Report Parallel After Node upgrade
300 # uses: phoenix-actions/test-reporting@v8
301 # id: test-report-parallel-after
302 # if: success() || failure() # run this step even if previous step failed
303 # with:
304 # name: Tests after node upgrade ${{ matrix.network }} # Name of the check run which will be created
305 # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results
306 # reporter: mochawesome-json
307 # fail-on-error: 'false'
306308
307 - name: Test Report After Node upgrade309 - name: Run Sequential tests after Node Parachain upgrade
308 uses: phoenix-actions/test-reporting@v8
309 id: test-report-after
310 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 }}/tests
313 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/
316
317 # TODO uncomment thease steps after the merge
318 #- name: Run Parallel tests after Node Parachain upgrade
319 # working-directory: ${{ matrix.mainnet_branch }}/tests
320 # run: |
321 # yarn install
322 # yarn add mochawesome
323 # node scripts/readyness.js
324 # echo "Ready to start tests"
325 # yarn polkadot-types
326 # NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
327 # env:
328 # RPC_URL: http://127.0.0.1:9933/
329
330 #- name: Test Report Parallel After Node upgrade
331 # uses: phoenix-actions/test-reporting@v8
332 # id: test-report-parallel-after
333 # if: success() || failure() # run this step even if previous step failed
334 # with:
335 # name: Tests after node upgrade ${{ matrix.network }} # Name of the check run which will be created
336 # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results
337 # reporter: mochawesome-json
338 # fail-on-error: 'false'
339
340 #- name: Run Sequential tests after Node Parachain upgrade
341 # if: success() || failure()
342 # working-directory: ${{ matrix.mainnet_branch }}/tests
343 # 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/
346315
347 #- name: Upload Sequential Test Report After Node upgrade316 #- name: Upload Sequential Test Report After Node upgrade
348 # uses: phoenix-actions/test-reporting@v8317 # uses: phoenix-actions/test-reporting@v8
modified.maintain/scripts/generate_abi.shdiffbeforeafterboth
4dir=$PWD4dir=$PWD
55
6tmp=$(mktemp -d)6tmp=$(mktemp -d)
7echo "Tmp file: $tmp/input.sol"
7cd $tmp8cd $tmp
8cp $dir/$INPUT input.sol9cp $dir/$INPUT input.sol
9solcjs --abi -p input.sol10solcjs --abi -p input.sol
modifiedCargo.lockdiffbeforeafterboth
7575
76[[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]
137137
138[[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"
143143
144[[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]
203203
204[[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]
217217
218[[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",
232232
233[[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",
340340
341[[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]
600600
601[[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]
609609
610[[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]
619619
620[[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]
630630
631[[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]
641641
642[[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]
655655
656[[package]]656[[package]]
769769
770[[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"
775775
776[[package]]776[[package]]
777name = "byte-tools"777name = "byte-tools"
787787
788[[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"
793793
794[[package]]794[[package]]
795name = "bzip2-sys"795name = "bzip2-sys"
841841
842[[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]
911911
912[[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]
978978
979[[package]]979[[package]]
10171017
1018[[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]
10481048
1049[[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]
1059
1060[[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]
10691059
1070[[package]]1060[[package]]
1071name = "concurrent-queue"1061name = "concurrent-queue"
1076 "cache-padded",1066 "cache-padded",
1077]1067]
1068
1069[[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]
10781077
1079[[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"
1102
1103[[package]]
1104name = "constant_time_eq"
1105version = "0.2.4"
1106source = "registry+https://github.com/rust-lang/crates.io-index"
1107checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"
11031108
1104[[package]]1109[[package]]
1105name = "convert_case"1110name = "convert_case"
11521157
1153[[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]
11611166
1162[[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",
11811186
1182[[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]
11901195
1191[[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"
11961201
1197[[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]
12051210
1206[[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",
12171222
1218[[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"
12231228
1224[[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",
12341239
1235[[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",
12801285
1281[[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]
12931298
1294[[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]
13031308
1304[[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]
18721877
1873[[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",
18841889
1885[[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",
18991904
1900[[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"
19051910
1906[[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",
19931998
1994[[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",
22162221
2217[[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",
23322337
2333[[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",
23522356
2353[[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]
2731
2732[[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]
27242746
2725[[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]
27802800
2781[[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]
27882809
2789[[package]]2810[[package]]
30403061
3041[[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"
30463067
3047[[package]]3068[[package]]
3048name = "fs-swap"3069name = "fs-swap"
35123533
3513[[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",
35363557
3537[[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",
35513572
3552[[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",
36623683
3663[[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",
37063727
3707[[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"
3733
3734[[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]
37123743
3713[[package]]3744[[package]]
3714name = "ip_network"3745name = "ip_network"
37183749
3719[[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",
37303761
3731[[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"
37363767
3737[[package]]3768[[package]]
3738name = "itertools"3769name = "itertools"
39253956
3926[[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]
39313965
3932[[package]]3966[[package]]
3933name = "kusama-runtime"3967name = "kusama-runtime"
41134147
4114[[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]
41234157
4124[[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"
41294163
4130[[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"
4792
4793[[package]]
4794name = "linux-raw-sys"
4795version = "0.1.2"
4796source = "registry+https://github.com/rust-lang/crates.io-index"
4797checksum = "bb68f22743a3fb35785f1e7f844ca5a3de2dde5bd0c0ef5b372065814699b121"
47584798
4759[[package]]4799[[package]]
4760name = "lock_api"4800name = "lock_api"
48804920
4881[[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]
48894929
4890[[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]
4947
4948[[package]]
4949name = "memoffset"
4950version = "0.7.1"
4951source = "registry+https://github.com/rust-lang/crates.io-index"
4952checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
4953dependencies = [
4954 "autocfg",
4955]
49074956
4908[[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",
52915340
5292[[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]
5350
5351[[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]
5359
5360[[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]
53015371
5302[[package]]5372[[package]]
5303name = "num_threads"5373name = "num_threads"
53225392
5323[[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"
53285398
5329[[package]]5399[[package]]
5330name = "opal-runtime"5400name = "opal-runtime"
55775647
5578[[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"
55835653
5584[[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",
58315901
5832[[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",
71637232
7164[[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]
71737242
7174[[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]
71837252
7184[[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",
71967265
7197[[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",
85568625
8557[[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"
8631
8632[[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]
85628641
8563[[package]]8642[[package]]
8564name = "primitive-types"8643name = "primitive-types"
86828761
8683[[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]
86928771
8693[[package]]8772[[package]]
87148793
8715[[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]
87608841
8761[[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",
87838864
8784[[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]
87938874
8794[[package]]8875[[package]]
90399120
9040[[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]
90519131
9052[[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",
90969176
9097[[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]
91059185
9106[[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",
91289208
9129[[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",
91489228
9149[[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"
91549234
9155[[package]]9235[[package]]
9156name = "remote-externalities"9236name = "remote-externalities"
94269506
9427[[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]
9520
9521[[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]
94409534
9441[[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",
1061210706
10613[[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",
1062610720
10627[[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",
1080410898
10805[[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]
1084810942
10849[[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]
1088410978
10885[[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]
1089410988
1095611050
10957[[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",
1101811112
11019[[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"
1102411118
11025[[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",
1181611910
11817[[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",
1214112235
12142[[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"
1214712241
12148[[package]]12242[[package]]
12149name = "tempfile"12243name = "tempfile"
1236812462
12369[[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]
1334013434
13341[[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",
1336813462
13369[[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]
1337713471
13378[[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",
1339713491
13398[[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",
1341813512
13419[[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",
1343713531
13438[[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",
1346213556
13463[[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]
1347313567
13474[[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",
1349813592
13499[[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",
1384113935
13842[[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]
1385613950
13857[[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]
modifiedclient/rpc/Cargo.tomldiffbeforeafterboth
19sp-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" }
2323
modifiedcrates/evm-coder/CHANGELOG.mddiffbeforeafterboth
3All notable changes to this project will be documented in this file.3All notable changes to this project will be documented in this file.
44
5<!-- bureaucrate goes here -->5<!-- bureaucrate goes here -->
6## [v0.1.5] - 2022-11-30
67
8### Added
9- Derive macro to support structures and enums.
10
7## [v0.1.4] - 2022-11-0211## [v0.1.4] - 2022-11-02
812
9### Added13### Added
modifiedcrates/evm-coder/Cargo.tomldiffbeforeafterboth
1[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"
66
19# We have tuple-heavy code in solidity.rs19# We have tuple-heavy code in solidity.rs
20impl-trait-for-tuples = "0.2.2"20impl-trait-for-tuples = "0.2.2"
2121
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" }
2323
24[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 tests
26hex = "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"
3130
32[features]31[features]
modifiedcrates/evm-coder/procedural/Cargo.tomldiffbeforeafterboth
1[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"
66
addedcrates/evm-coder/procedural/src/abi_derive/derive_enum.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/procedural/src/abi_derive/derive_struct.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/procedural/src/abi_derive/mod.rsdiffbeforeafterboth

no changes

modifiedcrates/evm-coder/procedural/src/lib.rsdiffbeforeafterboth
25 parse_macro_input, spanned::Spanned,25 parse_macro_input, spanned::Spanned,
26};26};
2727
28mod abi_derive;
28mod solidity_interface;29mod solidity_interface;
29mod to_log;30mod to_log;
3031
243 .into()244 .into()
244}245}
246
247#[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}
245256
modifiedcrates/evm-coder/procedural/src/solidity_interface.rsdiffbeforeafterboth
404 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 value
411 }
408 }412 }
409 }413 }
410414
630 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)) }
modifiedcrates/evm-coder/src/abi/impls.rsdiffbeforeafterboth
1use 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};
99
10#[cfg(not(feature = "std"))]10#[cfg(not(feature = "std"))]
11use alloc::vec::Vec;11use alloc::vec::Vec;
1212
13macro_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 {}
1616
17 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)));
1919
20 fn is_dynamic() -> bool {20 fn is_dynamic() -> bool {
21 $dynamic21 $dynamic
26 }26 }
27 }27 }
28
29 impl AbiRead for $ty {
30 fn abi_read(reader: &mut AbiReader) -> Result<$ty> {
31 reader.$method()
32 }
33 }
34 };28 };
35}29}
3630
31macro_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}
40
41macro_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}
50
51macro_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}
58
38impl_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);
44
45impl sealed::CanBePlacedInVec for bool {}
46
47impl AbiType for bool {
48 const SIGNATURE: SignatureUnit = make_signature!(new fixed("bool"));65impl_abi!(H160, address, false);
49
50 fn is_dynamic() -> bool {
51 false
52 }
53 fn size() -> usize {
54 ABI_ALIGNMENT
55 }
56}
57impl AbiRead for bool {
58 fn abi_read(reader: &mut AbiReader) -> Result<bool> {
59 reader.bool()
60 }
61}
62
63impl AbiType for uint8 {
64 const SIGNATURE: SignatureUnit = make_signature!(new fixed("uint8"));66impl_abi!(string, string, true);
6567
66 fn is_dynamic() -> bool {
67 false
68 }
69 fn size() -> usize {
70 ABI_ALIGNMENT
71 }
72}
73impl AbiRead for uint8 {
74 fn abi_read(reader: &mut AbiReader) -> Result<uint8> {68impl_abi_writeable!(&str, string);
75 reader.uint8()69
76 }
77}
78
79impl AbiType for bytes {
80 const SIGNATURE: SignatureUnit = make_signature!(new fixed("bytes"));70impl_abi_type!(bytes, bytes, true);
8171
82 fn is_dynamic() -> bool {
83 true
84 }
85 fn size() -> usize {
86 ABI_ALIGNMENT
87 }
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}
77
78impl AbiWrite for bytes {
79 fn abi_write(&self, writer: &mut AbiWriter) {
80 writer.bytes(self.0.as_slice())
81 }
82}
83
84impl_abi_type!(bytes4, bytes4, false);
85impl AbiRead for bytes4 {
86 fn abi_read(reader: &mut AbiReader) -> Result<bytes4> {
87 reader.bytes4()
88 }
89}
90
91impl<T: AbiWrite> AbiWrite for &T {
92 fn abi_write(&self, writer: &mut AbiWriter) {
93 T::abi_write(self, writer);
94 }
95}
96
97impl<T: AbiType> AbiType for &T {
98 const SIGNATURE: SignatureUnit = T::SIGNATURE;
99
100 fn is_dynamic() -> bool {
101 T::is_dynamic()
102 }
103
104 fn size() -> usize {
105 T::size()
106 }
107}
94108
95impl<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}
107125
108impl<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("[]"));
110128
111 fn is_dynamic() -> bool {129 fn is_dynamic() -> bool {
112 true130 true
117 }135 }
118}136}
119
120impl sealed::CanBePlacedInVec for EthCrossAccount {}
121
122impl AbiType for EthCrossAccount {
123 const SIGNATURE: SignatureUnit = make_signature!(new fixed("(address,uint256)"));
124
125 fn is_dynamic() -> bool {
126 address::is_dynamic() || uint256::is_dynamic()
127 }
128
129 fn size() -> usize {
130 <address as AbiType>::size() + <uint256 as AbiType>::size()
131 }
132}
133
134impl 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 None
140 };
141 let mut subresult = reader.subresult(size)?;
142 let eth = <address>::abi_read(&mut subresult)?;
143 let sub = <uint256>::abi_read(&mut subresult)?;
144
145 Ok(EthCrossAccount { eth, sub })
146 }
147}
148
149impl 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}
155137
156impl sealed::CanBePlacedInVec for Property {}138impl sealed::CanBePlacedInVec for Property {}
157139
188 }170 }
189}171}
190
191macro_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}
200
201impl_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);
208
209impl AbiWrite for string {
210 fn abi_write(&self, writer: &mut AbiWriter) {
211 writer.string(self)
212 }
213}
214
215impl AbiWrite for bytes {
216 fn abi_write(&self, writer: &mut AbiWriter) {
217 writer.bytes(self.0.as_slice())
218 }
219}
220172
221impl<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) {
295247
296 impl<$($ident),+> AbiRead for ($($ident,)+)248 impl<$($ident),+> AbiRead for ($($ident,)+)
297 where249 where
250 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 value
262 },)+
306 ))263 ))
307 }264 }
308 }265 }
309266
310 #[allow(non_snake_case)]267 #[allow(non_snake_case)]
311 impl<$($ident),+> AbiWrite for ($($ident,)+)268 impl<$($ident),+> AbiWrite for ($($ident,)+)
312 where269 where
313 $($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);
modifiedcrates/evm-coder/src/abi/mod.rsdiffbeforeafterboth
75 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 }
9393
186186
187 /// Slice recursive buffer, advance one word for buffer offset187 /// Slice recursive buffer, advance one word for buffer offset
188 /// 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 0
195 } else {194 } else {
196 self.uint32()? as usize195 self.uint32()? as usize
208 })207 })
209 }208 }
209
210 /// Notify about readed data portion.
211 pub fn bytes_read(&mut self, size: usize) {
212 self.subresult_offset += size;
213 }
210214
211 /// 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 }
283
284 /// Write [`u64`] to end of buffer
285 pub fn uint64(&mut self, value: &u64) {
286 self.write_padleft(&u64::to_be_bytes(*value))
287 }
279288
280 /// Write [`u128`] to end of buffer289 /// Write [`u128`] to end of buffer
281 pub fn uint128(&mut self, value: &u128) {290 pub fn uint128(&mut self, value: &u128) {
modifiedcrates/evm-coder/src/abi/test.rsdiffbeforeafterboth
6use 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;
109
11macro_rules! test_impl {10fn test_impl<T>(function_identifier: u32, decoded_data: T, encoded_data: &[u8])
11where
12 ($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;
19
20 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);
2418
25 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}
3324
34macro_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 deadbeef
44 00000000000000000000000000000000000000000000000000000000000000ff33 00000000000000000000000000000000000000000000000000000000000000ff
45 "34 "
46 )35 ),
47 );36 );
48 };37 };
49}38}
5039
40#[test]
41fn encode_decode_uint8() {
51test_impl_uint!(uint8);42 test_impl_uint!(uint8);
43}
44
45#[test]
46fn encode_decode_uint32() {
52test_impl_uint!(uint32);47 test_impl_uint!(uint32);
48}
49
50#[test]
51fn encode_decode_uint128() {
53test_impl_uint!(uint128);52 test_impl_uint!(uint128);
5453}
54
55#[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 deadbeef
63 00000000000000000000000000000000000000000000000000000000000000ff63 00000000000000000000000000000000000000000000000000000000000000ff
64 "64 "
65 )65 ),
66);66 );
6767}
68
69#[test]
70fn encode_decode_string() {
71 test_impl::<String>(
72 0xdeadbeef,
73 "some string".to_string(),
74 &hex!(
75 "
76 deadbeef
77 0000000000000000000000000000000000000000000000000000000000000020
78 000000000000000000000000000000000000000000000000000000000000000b
79 736f6d6520737472696e67000000000000000000000000000000000000000000
80 "
81 ),
82 );
83}
84
85#[test]
86fn encode_decode_tuple_string() {
87 test_impl::<(String,)>(
88 0xdeadbeef,
89 ("some string".to_string(),),
90 &hex!(
91 "
92 deadbeef
93 0000000000000000000000000000000000000000000000000000000000000020
94 0000000000000000000000000000000000000000000000000000000000000020
95 000000000000000000000000000000000000000000000000000000000000000b
96 736f6d6520737472696e67000000000000000000000000000000000000000000
97 "
98 ),
99 );
100}
101
102#[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 1ACF2D55
89 0000000000000000000000000000000000000000000000000000000000000020 // offset of (address, uint256)[]123 0000000000000000000000000000000000000000000000000000000000000020 // offset of (address, uint256)[]
90 0000000000000000000000000000000000000000000000000000000000000003 // length of (address, uint256)[]124 0000000000000000000000000000000000000000000000000000000000000003 // length of (address, uint256)[]
91125
92 0000000000000000000000002D2FF76104B7BACB2E8F6731D5BFC184EBECDDBC // address126 0000000000000000000000002D2FF76104B7BACB2E8F6731D5BFC184EBECDDBC // address
93 000000000000000000000000000000000000000000000000000000000000000A // uint256127 000000000000000000000000000000000000000000000000000000000000000A // uint256
94128
95 000000000000000000000000AB8E3D9134955566483B11E6825C9223B6737B10 // address129 000000000000000000000000AB8E3D9134955566483B11E6825C9223B6737B10 // address
96 0000000000000000000000000000000000000000000000000000000000000014 // uint256130 0000000000000000000000000000000000000000000000000000000000000014 // uint256
97131
98 0000000000000000000000008C582BDF2953046705FC56F189385255EFC1BE18 // address132 0000000000000000000000008C582BDF2953046705FC56F189385255EFC1BE18 // address
99 000000000000000000000000000000000000000000000000000000000000001E // uint256133 000000000000000000000000000000000000000000000000000000000000001E // uint256
100 "134 "
101 )135 )
102);136 );
103137}
138
139#[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 deadbeef
116 0000000000000000000000000000000000000000000000000000000000000020 // offset of (uint256, string)[]151 0000000000000000000000000000000000000000000000000000000000000020 // offset of (uint256, string)[]
117 0000000000000000000000000000000000000000000000000000000000000003 // length of (uint256, string)[]152 0000000000000000000000000000000000000000000000000000000000000003 // length of (uint256, string)[]
118153
119 0000000000000000000000000000000000000000000000000000000000000060 // offset of first elem154 0000000000000000000000000000000000000000000000000000000000000060 // offset of first elem
120 00000000000000000000000000000000000000000000000000000000000000e0 // offset of second elem155 00000000000000000000000000000000000000000000000000000000000000e0 // offset of second elem
121 0000000000000000000000000000000000000000000000000000000000000160 // offset of third elem156 0000000000000000000000000000000000000000000000000000000000000160 // offset of third elem
122157
123 0000000000000000000000000000000000000000000000000000000000000001 // first token id? #60158 0000000000000000000000000000000000000000000000000000000000000001 // first token id? #60
124 0000000000000000000000000000000000000000000000000000000000000040 // offset of string159 0000000000000000000000000000000000000000000000000000000000000040 // offset of string
125 000000000000000000000000000000000000000000000000000000000000000a // size of string160 000000000000000000000000000000000000000000000000000000000000000a // size of string
126 5465737420555249203000000000000000000000000000000000000000000000 // string161 5465737420555249203000000000000000000000000000000000000000000000 // string
127162
128 000000000000000000000000000000000000000000000000000000000000000b // second token id? Why ==11? #e0163 000000000000000000000000000000000000000000000000000000000000000b // second token id? Why ==11? #e0
129 0000000000000000000000000000000000000000000000000000000000000040 // offset of string164 0000000000000000000000000000000000000000000000000000000000000040 // offset of string
130 000000000000000000000000000000000000000000000000000000000000000a // size of string165 000000000000000000000000000000000000000000000000000000000000000a // size of string
131 5465737420555249203100000000000000000000000000000000000000000000 // string166 5465737420555249203100000000000000000000000000000000000000000000 // string
132167
133 000000000000000000000000000000000000000000000000000000000000000c // third token id? Why ==12? #160168 000000000000000000000000000000000000000000000000000000000000000c // third token id? Why ==12? #160
134 0000000000000000000000000000000000000000000000000000000000000040 // offset of string169 0000000000000000000000000000000000000000000000000000000000000040 // offset of string
135 000000000000000000000000000000000000000000000000000000000000000a // size of string170 000000000000000000000000000000000000000000000000000000000000000a // size of string
136 5465737420555249203200000000000000000000000000000000000000000000 // string171 5465737420555249203200000000000000000000000000000000000000000000 // string
137 "172 "
138 )173 )
139);174 );
175}
140176
141#[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}
237273
274#[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 deadbeef
266 0000000000000000000000000000000000000000000000000000000000000020302 0000000000000000000000000000000000000000000000000000000000000020
267 0000000000000000000000000000000000000000000000000000000000000003303 0000000000000000000000000000000000000000000000000000000000000003
304
268 305 0000000000000000000000000000000000000000000000000000000000000060
269 0000000000000000000000000000000000000000000000000000000000000060306 0000000000000000000000000000000000000000000000000000000000000140
270 0000000000000000000000000000000000000000000000000000000000000140307 0000000000000000000000000000000000000000000000000000000000000220
271 0000000000000000000000000000000000000000000000000000000000000220308
272309 0000000000000000000000000000000000000000000000000000000000000040
273 0000000000000000000000000000000000000000000000000000000000000040310 0000000000000000000000000000000000000000000000000000000000000080
274 0000000000000000000000000000000000000000000000000000000000000080311 000000000000000000000000000000000000000000000000000000000000000a
275 000000000000000000000000000000000000000000000000000000000000000a312 5465737420555249203000000000000000000000000000000000000000000000
276 5465737420555249203000000000000000000000000000000000000000000000313 0000000000000000000000000000000000000000000000000000000000000030
277 0000000000000000000000000000000000000000000000000000000000000030314 1111111111111111111111111111111111111111111111111111111111111111
278 1111111111111111111111111111111111111111111111111111111111111111315 1111111111111111111111111111111100000000000000000000000000000000
279 1111111111111111111111111111111100000000000000000000000000000000316
280317 0000000000000000000000000000000000000000000000000000000000000040
281 0000000000000000000000000000000000000000000000000000000000000040318 0000000000000000000000000000000000000000000000000000000000000080
282 0000000000000000000000000000000000000000000000000000000000000080319 000000000000000000000000000000000000000000000000000000000000000a
283 000000000000000000000000000000000000000000000000000000000000000a320 5465737420555249203100000000000000000000000000000000000000000000
284 5465737420555249203100000000000000000000000000000000000000000000321 000000000000000000000000000000000000000000000000000000000000002f
285 000000000000000000000000000000000000000000000000000000000000002f322 2222222222222222222222222222222222222222222222222222222222222222
286 2222222222222222222222222222222222222222222222222222222222222222323 2222222222222222222222222222220000000000000000000000000000000000
287 2222222222222222222222222222220000000000000000000000000000000000324
288325 0000000000000000000000000000000000000000000000000000000000000040
289 0000000000000000000000000000000000000000000000000000000000000040326 0000000000000000000000000000000000000000000000000000000000000080
290 0000000000000000000000000000000000000000000000000000000000000080327 000000000000000000000000000000000000000000000000000000000000000a
291 000000000000000000000000000000000000000000000000000000000000000a328 5465737420555249203200000000000000000000000000000000000000000000
292 5465737420555249203200000000000000000000000000000000000000000000329 0000000000000000000000000000000000000000000000000000000000000002
293 0000000000000000000000000000000000000000000000000000000000000002330 3333000000000000000000000000000000000000000000000000000000000000
294 3333000000000000000000000000000000000000000000000000000000000000331 "
295 "
296 )332 ),
297);333 );
334}
335
336#[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();
342
343 test_impl::<((u8,), (String, bytes), (u8, bytes))>(
344 0xdeadbeef,
345 ((int,), (string.clone(), by.clone()), (int, by)),
346 &hex!(
347 "
348 deadbeef
349 0000000000000000000000000000000000000000000000000000000000000020
350 00000000000000000000000000000000000000000000000000000000000000ff
351 0000000000000000000000000000000000000000000000000000000000000060
352 0000000000000000000000000000000000000000000000000000000000000120
353 0000000000000000000000000000000000000000000000000000000000000040
354 0000000000000000000000000000000000000000000000000000000000000080
355 000000000000000000000000000000000000000000000000000000000000000b
356 736f6d6520737472696e67000000000000000000000000000000000000000000
357 0000000000000000000000000000000000000000000000000000000000000003
358 1122330000000000000000000000000000000000000000000000000000000000
359 00000000000000000000000000000000000000000000000000000000000000ff
360 0000000000000000000000000000000000000000000000000000000000000040
361 0000000000000000000000000000000000000000000000000000000000000003
362 1122330000000000000000000000000000000000000000000000000000000000
363 "
364 ),
365 );
366}
367
368#[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 deadbeef
376 000000000000000000000000000000000000000000000000000000000000002b
377 000000000000000000000000000000000000000000000000000000000000002c
378 000000000000000000000000000000000000000000000000000000000000002d
379 000000000000000000000000000000000000000000000000000000000000002e
380 000000000000000000000000000000000000000000000000000000000000002f
381 "
382 ),
383 );
384}
385
386#[test]
387fn encode_decode_tuple0_tuple1_uint8_tuple1_uint8() {
388 test_impl::<((u8,), (u8,))>(
389 0xdeadbeef,
390 ((43,), (44,)),
391 &hex!(
392 "
393 deadbeef
394 000000000000000000000000000000000000000000000000000000000000002b
395 000000000000000000000000000000000000000000000000000000000000002c
396 "
397 ),
398 );
399}
400
401#[test]
402fn encode_decode_tuple0_tuple1_uint8_uint8() {
403 test_impl::<((u8, u8),)>(
404 0xdeadbeef,
405 ((43, 44),),
406 &hex!(
407 "
408 deadbeef
409 000000000000000000000000000000000000000000000000000000000000002b
410 000000000000000000000000000000000000000000000000000000000000002c
411 "
412 ),
413 );
414}
415
416#[test]
417fn encode_decode_tuple_uint8_uint8() {
418 test_impl::<(u8, u8)>(
419 0xdeadbeef,
420 (43, 44),
421 &hex!(
422 "
423 deadbeef
424 000000000000000000000000000000000000000000000000000000000000002b
425 000000000000000000000000000000000000000000000000000000000000002c
426 "
427 ),
428 );
429}
430
431#[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 deadbeef
439 000000000000000000000000000000000000000000000000000000000000000a
440 000000000000000000000000000000000000000000000000000000000000000b
441 000000000000000000000000000000000000000000000000000000000000000c
442 000000000000000000000000000000000000000000000000000000000000000d
443 000000000000000000000000000000000000000000000000000000000000000e
444 "
445 ),
446 );
447}
448
449#[test]
450fn encode_decode_tuple0_tuple1_string() {
451 test_impl::<((String,),)>(
452 0xdeadbeef,
453 (("some string".to_string(),),),
454 &hex!(
455 "
456 deadbeef
457 0000000000000000000000000000000000000000000000000000000000000020
458 0000000000000000000000000000000000000000000000000000000000000020
459 0000000000000000000000000000000000000000000000000000000000000020
460 000000000000000000000000000000000000000000000000000000000000000b
461 736f6d6520737472696e67000000000000000000000000000000000000000000
462 "
463 ),
464 );
465}
466
467#[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 deadbeef
475 0000000000000000000000000000000000000000000000000000000000000020
476 0000000000000000000000000000000000000000000000000000000000000020
477 00000000000000000000000000000000000000000000000000000000000000ff
478 0000000000000000000000000000000000000000000000000000000000000040
479 000000000000000000000000000000000000000000000000000000000000000b
480 736f6d6520737472696e67000000000000000000000000000000000000000000
481 "
482 ),
483 );
484}
485
486#[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 deadbeef
494 0000000000000000000000000000000000000000000000000000000000000020
495 0000000000000000000000000000000000000000000000000000000000000020
496 0000000000000000000000000000000000000000000000000000000000000040
497 0000000000000000000000000000000000000000000000000000000000000080
498 000000000000000000000000000000000000000000000000000000000000000b
499 736f6d6520737472696e67000000000000000000000000000000000000000000
500 0000000000000000000000000000000000000000000000000000000000000003
501 0102030000000000000000000000000000000000000000000000000000000000
502 "
503 ),
504 );
505}
506
507#[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 deadbeef
515 0000000000000000000000000000000000000000000000000000000000000020
516 00000000000000000000000000000000000000000000000000000000000000ff
517 0000000000000000000000000000000000000000000000000000000000000040
518 0000000000000000000000000000000000000000000000000000000000000020
519 000000000000000000000000000000000000000000000000000000000000000b
520 736f6d6520737472696e67000000000000000000000000000000000000000000
521 "
522 ),
523 );
524}
525
526#[test]
527fn parse_multiple_params() {
528 let encoded_data = hex!(
529 "
530 deadbeef
531 000000000000000000000000000000000000000000000000000000000000000a
532 000000000000000000000000000000000000000000000000000000000000000b
533 "
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}
298541
modifiedcrates/evm-coder/src/abi/traits.rsdiffbeforeafterboth
22 fn size() -> usize;22 fn size() -> usize;
23}23}
24
25/// Sealed traits.
26pub mod sealed {
27 /// Not all types can be placed in vec, i.e `Vec<u8>` is restricted, `bytes` should be used instead
28 pub trait CanBePlacedInVec {}
29}
3024
31/// [`AbiReader`] implements reading of many types.25/// [`AbiReader`] implements reading of many types.
32pub trait AbiRead {26pub trait AbiRead {
50 }44 }
51}45}
52
53impl<T: AbiWrite> AbiWrite for &T {
54 fn abi_write(&self, writer: &mut AbiWriter) {
55 T::abi_write(self, writer);
56 }
57}
5846
modifiedcrates/evm-coder/src/lib.rsdiffbeforeafterboth
93pub 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;
9798
98/// Derives [`ToLog`] for enum99/// Derives [`ToLog`] for enum
111#[cfg(feature = "stubgen")]112#[cfg(feature = "stubgen")]
112pub mod solidity;113pub mod solidity;
114
115/// 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 padded
119 /// to 32 bytes.
120 /// Instead you should use specialized types (`bytes` in case of `Vec<u8>`)
121 pub trait CanBePlacedInVec {}
122}
113123
114/// 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 no
119129
120 #[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};
124133
125 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;
139148
140 #[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>);
142151
143 /// Solidity doesn't have `void` type, however we have special implementation152 /// Solidity doesn't have `void` type, however we have special implementation
188 }197 }
189 }198 }
190
191 #[derive(Debug, Default)]
192 pub struct EthCrossAccount {
193 pub(crate) eth: address,
194 pub(crate) sub: uint256,
195 }
196
197 impl EthCrossAccount {
198 pub fn from_sub_cross_account<T>(cross_account_id: &T::CrossAccountId) -> Self
199 where
200 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 }
215
216 pub fn into_sub_cross_account<T>(&self) -> crate::execution::Result<T::CrossAccountId>
217 where
218 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 }
232
233 /// Convert `CrossAccountId` to `uint256`.
234 pub fn convert_cross_account_to_uint256<T: pallet_evm::account::Config>(
235 from: &T::CrossAccountId,
236 ) -> uint256
237 where
238 T::AccountId: AsRef<[u8; 32]>,
239 {
240 let slice = from.as_sub().as_ref();
241 uint256::from_big_endian(slice)
242 }
243
244 /// Convert `uint256` to `CrossAccountId`.
245 pub fn convert_uint256_to_cross_account<T: pallet_evm::account::Config>(
246 from: uint256,
247 ) -> T::CrossAccountId
248 where
249 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 }
256199
257 #[derive(Debug, Default)]200 #[derive(Debug, Default)]
258 pub struct Property {201 pub struct Property {
deletedcrates/evm-coder/src/solidity.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/src/solidity/impls.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/src/solidity/mod.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/src/solidity/traits.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/tests/abi_derive_generation.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/tests/build_failed/abi_derive_enum_generation.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/tests/build_failed/abi_derive_enum_generation.stderrdiffbeforeafterboth

no changes

addedcrates/evm-coder/tests/build_failed/abi_derive_struct_generation.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/tests/build_failed/abi_derive_struct_generation.stderrdiffbeforeafterboth

no changes

modifiednode/cli/Cargo.tomldiffbeforeafterboth
309jsonrpsee = { 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"] }
311311
312fc-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" }
319319
320unique-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]
338342
modifiednode/cli/src/chain_spec.rsdiffbeforeafterboth
66}66}
6767
68#[cfg(not(feature = "unique-runtime"))]68#[cfg(not(feature = "unique-runtime"))]
69/// PARA_ID for Opal/Quartz69/// PARA_ID for Opal/Sapphire/Quartz
70const PARA_ID: u32 = 2095;70const PARA_ID: u32 = 2095;
7171
72#[cfg(feature = "unique-runtime")]72#[cfg(feature = "unique-runtime")]
90 }90 }
9191
92 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 {
modifiednode/cli/src/cli.rsdiffbeforeafterboth
101 "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 }
modifiednode/cli/src/service.rsdiffbeforeafterboth
46use cumulus_relay_chain_rpc_interface::{RelayChainRpcInterface, create_client_and_start_worker};46use cumulus_relay_chain_rpc_interface::{RelayChainRpcInterface, create_client_and_start_worker};
4747
48// Substrate Imports48// Substrate Imports
49use 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}
161162
162pub 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 = config
164 .base_path168 .base_path
170 let database_dir = config_dir.join("frontier").join("db");174 let database_dir = config_dir.join("frontier").join("db");
171175
172 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,
285290
286 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())));
287292
288 let frontier_backend = open_frontier_backend(config)?;293 let frontier_backend = open_frontier_backend(client.clone(), config)?;
289294
290 let import_queue = build_import_queue(295 let import_queue = build_import_queue(
291 client.clone(),296 client.clone(),
modifiednode/rpc/Cargo.tomldiffbeforeafterboth
40substrate-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"] }
4242
43pallet-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" }
5050
51pallet-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" }
modifiednode/rpc/src/lib.rsdiffbeforeafterboth
216216
217 let overrides = overrides_handle::<_, _, R>(client.clone());217 let overrides = overrides_handle::<_, _, R>(client.clone());
218218
219 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 )?;
modifiedpallets/app-promotion/Cargo.tomldiffbeforeafterboth
54pallet-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" }
modifiedpallets/app-promotion/src/lib.rsdiffbeforeafterboth
102 use frame_system::pallet_prelude::*;102 use frame_system::pallet_prelude::*;
103103
104 #[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 token
107 type Currency: ExtendedLockableCurrency<Self::AccountId>107 type Currency: ExtendedLockableCurrency<Self::AccountId>
108 + ReservableCurrency<Self::AccountId>;108 + ReservableCurrency<Self::AccountId>;
274274
275 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 }
280282
281 T::WeightInfo::on_initialize(counter)283 <T as Config>::WeightInfo::on_initialize(counter)
282 }284 }
283 }285 }
284286
297 /// # Arguments299 /// # Arguments
298 ///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)?;
303305
315 /// # Arguments317 /// # Arguments
316 ///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)?;
321323
388 /// 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 completely
390 /// 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)?;
394396
421423
422 Self::unlock_balance(&staker_id, total_staked)?;424 Self::unlock_balance(&staker_id, total_staked)?;
423425
424 <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 /// # Arguments
446 ///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 /// # Arguments
471 ///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 /// # Arguments
500 ///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)?;
505510
525 /// # Arguments530 /// # Arguments
526 ///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)?;
531536
555 /// # Arguments560 /// # Arguments
556 ///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 performed
558 #[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)?;
561566
589 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 }
modifiedpallets/common/CHANGELOG.mddiffbeforeafterboth
44
5<!-- bureaucrate goes here -->5<!-- bureaucrate goes here -->
66
7## [0.1.11] - 2022-11-167## [0.1.12] - 2022-11-16
88
9### Changed9### Changed
1010
11- 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.
1414
15## [0.1.11] - 2022-11-12
16
17### Changed
18
19- 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.
22
15## [0.1.10] - 2022-11-0223## [0.1.10] - 2022-11-02
1624
17### Changed25### Changed
modifiedpallets/common/Cargo.tomldiffbeforeafterboth
1[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"
66
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" }
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" }
2626
27serde = { 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 = [
modifiedpallets/common/src/erc.rsdiffbeforeafterboth
1616
17//! This module contains the implementation of pallet methods for evm.17//! This module contains the implementation of pallet methods for evm.
1818
19use 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::{
3535
36use 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};
4041
529 /// 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 }
538537
modifiedpallets/common/src/eth.rsdiffbeforeafterboth
1616
17//! 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.
1818
19use 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;
2326
110 }113 }
111}114}
115
116/// Cross account struct
117#[derive(Debug, Default, AbiCoder)]
118pub struct EthCrossAccount {
119 pub(crate) eth: address,
120 pub(crate) sub: uint256,
121}
122
123impl EthCrossAccount {
124 pub fn from_sub_cross_account<T>(cross_account_id: &T::CrossAccountId) -> Self
125 where
126 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 }
141
142 pub fn into_sub_cross_account<T>(&self) -> evm_coder::execution::Result<T::CrossAccountId>
143 where
144 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}
112158
modifiedpallets/common/src/lib.rsdiffbeforeafterboth
342#[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::Config
358 + pallet_evm::Config
359 + TypeInfo
360 + account::Config
361 {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>;
382377
383 /// 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>;
385381
386 /// Mapper for token addresses to Ethereum addresses.382 /// Mapper for token addresses to Ethereum addresses.
modifiedpallets/configuration/Cargo.tomldiffbeforeafterboth
16sp-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"
2121
22[features]22[features]
modifiedpallets/evm-coder-substrate/Cargo.tomldiffbeforeafterboth
12sp-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" }
modifiedpallets/evm-contract-helpers/Cargo.tomldiffbeforeafterboth
19sp-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" }
2020
21# Unique21# Unique
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" }
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" }
2525
26# Locals26# Locals
modifiedpallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth
4141
42 #[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::Config
45 {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>>;
4848
49 /// Address, under which magic contract will be available49 /// Address, under which magic contract will be available
50 #[pallet::constant]
50 type ContractAddress: Get<H160>;51 type ContractAddress: Get<H160>;
5152
52 /// In case of enabled sponsoring, but no sponsoring rate limit set,53 /// In case of enabled sponsoring, but no sponsoring rate limit set,
modifiedpallets/evm-migration/Cargo.tomldiffbeforeafterboth
16sp-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" }
2121
22[dependencies.codec]22[dependencies.codec]
23default-features = false23default-features = false
modifiedpallets/evm-transaction-payment/Cargo.tomldiffbeforeafterboth
14sp-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" }
2222
23[dependencies.codec]23[dependencies.codec]
24default-features = false24default-features = false
modifiedpallets/evm-transaction-payment/src/lib.rsdiffbeforeafterboth
44 }44 }
4545
46 #[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 sponsoring
49 type EvmSponsorshipHandler: SponsorshipHandler<Self::CrossAccountId, CallContext>;49 type EvmSponsorshipHandler: SponsorshipHandler<Self::CrossAccountId, CallContext>;
50 }50 }
modifiedpallets/fungible/Cargo.tomldiffbeforeafterboth
23pallet-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] }
modifiedpallets/fungible/src/erc.rsdiffbeforeafterboth
24 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;
3337
34use 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 }
139
140 /// @notice Returns collection helper contract address
141 fn collection_helper_address(&self) -> Result<address> {
142 Ok(T::ContractAddress::get())
143 }
135}144}
136145
137#[solidity_interface(name = ERC20Mintable)]146#[solidity_interface(name = ERC20Mintable)]
modifiedpallets/fungible/src/lib.rsdiffbeforeafterboth
106pub mod erc;106pub mod erc;
107pub mod weights;107pub mod weights;
108108
109pub 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;
111111
112#[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)
391391
392 // =========392 // =========
393
394 if let Some(balance_to) = balance_to {
395 // from != to && amount != 0
393396
394 <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 )?;
401404
402 if let Some(balance_to) = balance_to {
403 // from != to
404 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 }
412413
413 <PalletEvm<T>>::deposit_log(414 <PalletEvm<T>>::deposit_log(
414 ERC20Events::Transfer {415 ERC20Events::Transfer {
modifiedpallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth
18}18}
1919
20/// @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 0xcc1d80ca
22contract 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}
549549
550/// @dev the ERC-165 identifier for this interface is 0x942e8b22550/// @dev the ERC-165 identifier for this interface is 0x8cb847c4
551contract 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 }
637
638 /// @notice Returns collection helper contract address
639 /// @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}
638647
639contract UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}648contract UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}
modifiedpallets/nonfungible/Cargo.tomldiffbeforeafterboth
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" }
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' }
modifiedpallets/nonfungible/src/common.rsdiffbeforeafterboth
291 <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)?;
366
363 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)?;
388
383 Ok(().into())389 Ok(().into())
384 }390 }
modifiedpallets/nonfungible/src/erc.rsdiffbeforeafterboth
36use 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;
4547
46use 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 }
494
495 /// @notice Returns collection helper contract address
496 fn collection_helper_address(&self) -> Result<address> {
497 Ok(T::ContractAddress::get())
498 }
492}499}
493500
494/// @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>,
modifiedpallets/nonfungible/src/lib.rsdiffbeforeafterboth
127pub mod erc;127pub mod erc;
128pub mod weights;128pub mod weights;
129129
130pub 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;
132132
133/// Token data, stored independently from other data used to describe it133/// Token data, stored independently from other data used to describe it
814 <PalletCommon<T>>::set_property_permission(collection, sender, permission)814 <PalletCommon<T>>::set_property_permission(collection, sender, permission)
815 }815 }
816
817 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>>::NoPermission
827 );
828 Ok(())
829 }
816830
817 /// Transfer NFT token from one account to another.831 /// Transfer NFT token from one account to another.
818 ///832 ///
modifiedpallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth
119}119}
120120
121/// @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 0xcc1d80ca
123contract 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}
677677
678/// @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 0xb74c26b7
680contract 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 contract
682 /// @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;
920920
921/// @title ERC-721 Non-Fungible Token Standard921/// @title ERC-721 Non-Fungible Token Standard
922/// @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.md
923/// @dev the ERC-165 identifier for this interface is 0x80ac58cd923/// @dev the ERC-165 identifier for this interface is 0x983a942b
924contract 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 owner
926 /// @dev NFTs assigned to the zero address are considered invalid, and this926 /// @dev NFTs assigned to the zero address are considered invalid, and this
1051 return 0x0000000000000000000000000000000000000000;1051 return 0x0000000000000000000000000000000000000000;
1052 }1052 }
1053
1054 /// @notice Returns collection helper contract address
1055 /// @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}
10541063
1055contract UniqueNFT is1064contract UniqueNFT is
modifiedpallets/proxy-rmrk-core/Cargo.tomldiffbeforeafterboth
20pallet-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 = [
modifiedpallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterboth
178178
179use RmrkProperty::*;179use RmrkProperty::*;
180180
181/// 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;
183183
184type 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;
194193
195 #[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::Config
197 + pallet_common::Config
198 + pallet_nonfungible::Config
199 + pallet_evm::Config
198 {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>;
modifiedpallets/proxy-rmrk-equip/Cargo.tomldiffbeforeafterboth
19pallet-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 = [
modifiedpallets/refungible/Cargo.tomldiffbeforeafterboth
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" }
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' }
modifiedpallets/refungible/src/erc.rsdiffbeforeafterboth
31};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 }
486
487 /// @notice Returns collection helper contract address
488 fn collection_helper_address(&self) -> Result<address> {
489 Ok(T::ContractAddress::get())
490 }
485}491}
486492
487/// Returns amount of pieces of `token` that `owner` have493/// Returns amount of pieces of `token` that `owner` have
504 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));
512
513 if owner_balance == 0 {
514 return Err(dispatch_to_evm::<T>(
515 <CommonError<T>>::MustBeTokenOwner.into(),
516 ));
517 }
518
506 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>,
modifiedpallets/refungible/src/lib.rsdiffbeforeafterboth
452 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 }
458
455 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)
740744
741 let initial_balance_from = <Balance<T>>::get((collection.id, token, from));745 let initial_balance_from = <Balance<T>>::get((collection.id, token, from));
746
747 if initial_balance_from == 0 {
748 return Err(<CommonError<T>>::TokenValueTooLow.into());
749 }
750
742 let updated_balance_from = initial_balance_from751 let updated_balance_from = initial_balance_from
743 .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;
786795
787 // =========796 // =========
797
798 if let Some(updated_balance_to) = updated_balance_to {
799 // from != to && amount != 0
788800
789 <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 )?;
796808
797 if let Some(updated_balance_to) = updated_balance_to {
798 // from != to
799 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 }
815825
816 <PalletEvm<T>>::deposit_log(826 <PalletEvm<T>>::deposit_log(
817 ERC20Events::Transfer {827 ERC20Events::Transfer {
modifiedpallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth
119}119}
120120
121/// @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 0xcc1d80ca
123contract 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}
675675
676/// @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 0x12f7d6c1
678contract 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 contract
680 /// @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;
919919
920/// @title ERC-721 Non-Fungible Token Standard920/// @title ERC-721 Non-Fungible Token Standard
921/// @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.md
922/// @dev the ERC-165 identifier for this interface is 0x58800161922/// @dev the ERC-165 identifier for this interface is 0x4016cd87
923contract 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 owner
925 /// @dev RFTs assigned to the zero address are considered invalid, and this925 /// @dev RFTs assigned to the zero address are considered invalid, and this
1048 return 0x0000000000000000000000000000000000000000;1048 return 0x0000000000000000000000000000000000000000;
1049 }1049 }
1050
1051 /// @notice Returns collection helper contract address
1052 /// @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}
10511060
1052contract UniqueRefungible is1061contract UniqueRefungible is
modifiedpallets/structure/Cargo.tomldiffbeforeafterboth
16 "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" }
2020
21[features]21[features]
22default = ["std"]22default = ["std"]
modifiedpallets/unique/Cargo.tomldiffbeforeafterboth
100scale-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' }
modifiedpallets/unique/src/eth/mod.rsdiffbeforeafterboth
28 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};
4041
41use crate::{weights::WeightInfo, Config, SelfWeightOf};42use crate::{weights::WeightInfo, Config, SelfWeightOf};
362 Ok(price.into())363 Ok(price.into())
363 }364 }
365
366 /// Returns address of a collection.
367 /// @param collectionId - CollectionId of the collection
368 /// @return eth mirror address of the collection
369 fn collection_address(&self, collection_id: uint32) -> Result<address> {
370 Ok(collection_id_to_address(collection_id.into()))
371 }
372
373 /// Returns collectionId of a collection.
374 /// @param collectionAddress - Eth address of the collection
375 /// @return collectionId of the collection
376 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_address
382 )))
383 }
364}384}
365385
366/// Implements [`OnMethodCall`], which delegates call to [`EvmCollectionHelpers`]386/// Implements [`OnMethodCall`], which delegates call to [`EvmCollectionHelpers`]
modifiedpallets/unique/src/eth/stubs/CollectionHelpers.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/unique/src/eth/stubs/CollectionHelpers.soldiffbeforeafterboth
24}24}
2525
26/// @title Contract, which allows users to operate with collections26/// @title Contract, which allows users to operate with collections
27/// @dev the ERC-165 identifier for this interface is 0x7dea03b127/// @dev the ERC-165 identifier for this interface is 0xe65011aa
28contract CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {28contract CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {
29 /// Create an NFT collection29 /// Create an NFT collection
30 /// @param name Name of the collection30 /// @param name Name of the collection
131 return 0;131 return 0;
132 }132 }
133
134 /// Returns address of a collection.
135 /// @param collectionId - CollectionId of the collection
136 /// @return eth mirror address of the collection
137 /// @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 }
145
146 /// Returns collectionId of a collection.
147 /// @param collectionAddress - Eth address of the collection
148 /// @return collectionId of the collection
149 /// @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}
134158
modifiedpallets/unique/src/lib.rsdiffbeforeafterboth
86use 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;
104106
105/// 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;
107109
108decl_error! {110decl_error! {
138 pub enum Event<T>140 pub enum Event<T>
139 where141 where
140 <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 removed
144 ///146 ///
277 {279 {
278 type Error = Error<T>;280 type Error = Error<T>;
281
282 #[doc = "A maximum number of levels of depth in the token nesting tree."]
283 const NESTING_BUDGET: u32 = NESTING_BUDGET;
284
285 #[doc = "Maximal length of a collection name."]
286 const MAX_COLLECTION_NAME_LENGTH: u32 = MAX_COLLECTION_NAME_LENGTH;
287
288 #[doc = "Maximal length of a collection description."]
289 const MAX_COLLECTION_DESCRIPTION_LENGTH: u32 = MAX_COLLECTION_DESCRIPTION_LENGTH;
290
291 #[doc = "Maximal length of a token prefix."]
292 const MAX_TOKEN_PREFIX_LENGTH: u32 = MAX_TOKEN_PREFIX_LENGTH;
293
294 #[doc = "Maximum admins per collection."]
295 const COLLECTION_ADMINS_LIMIT: u32 = COLLECTION_ADMINS_LIMIT;
296
297 #[doc = "Maximal length of a property key."]
298 const MAX_PROPERTY_KEY_LENGTH: u32 = MAX_PROPERTY_KEY_LENGTH;
299
300 #[doc = "Maximal length of a property value."]
301 const MAX_PROPERTY_VALUE_LENGTH: u32 = MAX_PROPERTY_VALUE_LENGTH;
302
303 #[doc = "A maximum number of token properties."]
304 const MAX_PROPERTIES_PER_ITEM: u32 = MAX_PROPERTIES_PER_ITEM;
305
306 #[doc = "Maximum size for all collection properties."]
307 const MAX_COLLECTION_PROPERTIES_SIZE: u32 = MAX_COLLECTION_PROPERTIES_SIZE;
308
309 #[doc = "Maximum size of all token properties."]
310 const MAX_TOKEN_PROPERTIES_SIZE: u32 = MAX_TOKEN_PROPERTIES_SIZE;
311
312 #[doc = "Default NFT collection limit."]
313 const NFT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::NFT);
314
315 #[doc = "Default RFT collection limit."]
316 const RFT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::ReFungible);
317
318 #[doc = "Default FT collection limit."]
319 const FT_DEFAULT_COLLECTION_LIMITS: CollectionLimits = CollectionLimits::with_default_limits(CollectionMode::Fungible(0));
320
279321
280 pub fn deposit_event() = default;322 pub fn deposit_event() = default;
modifiedprimitives/app_promotion_rpc/Cargo.tomldiffbeforeafterboth
14sp-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" }
1818
19[features]19[features]
20default = ["std"]20default = ["std"]
modifiedprimitives/common/Cargo.tomldiffbeforeafterboth
48[dependencies.fp-rpc]48[dependencies.fp-rpc]
49default-features = false49default-features = false
50git = "https://github.com/uniquenetwork/frontier"50git = "https://github.com/uniquenetwork/frontier"
51branch = "unique-polkadot-v0.9.30"51branch = "unique-polkadot-v0.9.30-2"
5252
53[dependencies.pallet-evm]53[dependencies.pallet-evm]
54default-features = false54default-features = false
55git = "https://github.com/uniquenetwork/frontier"55git = "https://github.com/uniquenetwork/frontier"
56branch = "unique-polkadot-v0.9.30"56branch = "unique-polkadot-v0.9.30-2"
5757
modifiedprimitives/data-structs/CHANGELOG.mddiffbeforeafterboth
3All notable changes to this project will be documented in this file.3All notable changes to this project will be documented in this file.
44
5<!-- bureaucrate goes here -->5<!-- bureaucrate goes here -->
6
6## [v0.2.2] 2022-08-167## [v0.2.2] 2022-08-16
78
8### Other changes9### Other changes
28multiple users into `RefungibleMultipleItems` call.29multiple users into `RefungibleMultipleItems` call.
2930
30## [v0.2.0] - 2022-08-0131## [v0.2.0] - 2022-08-01
32
31### Deprecated33### Deprecated
34
32- `CreateReFungibleData::const_data`35- `CreateReFungibleData::const_data`
3336
34## [v0.1.2] - 2022-07-2537## [v0.1.2] - 2022-07-25
38
35### Added39### Added
40
36- Type aliases `CollectionName`, `CollectionDescription`, `CollectionTokenPrefix`41- Type aliases `CollectionName`, `CollectionDescription`, `CollectionTokenPrefix`
42
37## [v0.1.1] - 2022-07-2243## [v0.1.1] - 2022-07-22
44
38### Added45### Added
46
39- Аields with properties to `CreateReFungibleData` and `CreateRefungibleExData`.47- Fields with properties to `CreateReFungibleData` and `CreateRefungibleExData`.
48
modifiedprimitives/data-structs/Cargo.tomldiffbeforeafterboth
25sp-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",
modifiedprimitives/data-structs/src/lib.rsdiffbeforeafterboth
120// 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;
122122
123/// 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;
125125
126/// 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;
128128
129/// 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;
131131
132/// 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;
134134
135/// 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;
137137
138/// 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;
140140
141/// 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;
146146
147/// 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;
149149
150/// How much items can be created per single150/// How much items can be created per single
609}609}
610610
611impl 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 }
629
612 /// 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}
modifiedprimitives/rpc/Cargo.tomldiffbeforeafterboth
14sp-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" }
1818
19[features]19[features]
20default = ["std"]20default = ["std"]
modifiedruntime/common/config/ethereum.rsdiffbeforeafterboth
1717
18pub type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;18pub type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;
19
20impl 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}
2519
26// 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 case
27// (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 weight
29parameter_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();
27
28 pub const WeightPerGas: Weight = Weight::from_ref_time(WeightTimePerGas::get());
33}29}
3430
35/// 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 tasks
36/// 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 being
37/// scheduled fairly33/// scheduled fairly
38const 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}
42
43pub 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}
5238
53pub 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}
6652
67impl 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>;
modifiedruntime/common/config/pallets/app_promotion.rsdiffbeforeafterboth
22use 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};
2828
32 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}
3837
39#[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}
4846
56 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;
modifiedruntime/common/ethereum/self_contained_call.rsdiffbeforeafterboth
69 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 }
modifiedruntime/common/runtime_apis.rsdiffbeforeafterboth
482 };482 };
483483
484 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 };
519521
520 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 }
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
82 '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 = []
178185
179refungible = []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" }
modifiedruntime/opal/src/lib.rsdiffbeforeafterboth
4242
43pub use runtime_common::*;43pub use runtime_common::*;
4444
45#[cfg(feature = "become-sapphire")]
46pub const RUNTIME_NAME: &str = "sapphire";
47#[cfg(feature = "become-sapphire")]
48pub const TOKEN_SYMBOL: &str = "QTZ";
49
50#[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";
4754
48/// This runtime version.55/// This runtime version.
57 state_version: 0,64 state_version: 0,
58};65};
5966
60parameter_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}
75
76#[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}
6581
66construct_runtime!(opal);82construct_runtime!(opal);
6783
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
80 '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" }
modifiedruntime/tests/Cargo.tomldiffbeforeafterboth
16sp-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" }
1818
19fp-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" }
2020
21frame-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" }
2727
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" }
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" }
3030
31pallet-common = { path = '../../pallets/common' }31pallet-common = { path = '../../pallets/common' }
32pallet-structure = { path = '../../pallets/structure' }32pallet-structure = { path = '../../pallets/structure' }
modifiedruntime/tests/src/lib.rsdiffbeforeafterboth
21 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},
202203
203parameter_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}
206208
207impl pallet_ethereum::Config for Test {209impl pallet_ethereum::Config for Test {
210}212}
211213
212impl 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}
246
247impl pallet_evm::account::Config for Test {
248 type CrossAccountId = TestCrossAccountId;
249 type EvmAddressMapping = TestEvmAddressMapping;
250 type EvmBackwardsAddressMapping = TestEvmBackwardsAddressMapping;
251}
252252
253impl pallet_structure::Config for Test {253impl pallet_structure::Config for Test {
254 type WeightInfo = ();254 type WeightInfo = ();
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
81 '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" }
modifiedtests/package.jsondiffbeforeafterboth
102 "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",
addedtests/scripts/functions.shdiffbeforeafterboth

no changes

addedtests/scripts/generate_types_package.shdiffbeforeafterboth

no changes

addedtests/scripts/types_template/.gitignorediffbeforeafterboth

no changes

addedtests/scripts/types_template/.npmignorediffbeforeafterboth

no changes

addedtests/scripts/types_template/README.mddiffbeforeafterboth

no changes

addedtests/scripts/types_template/package.jsondiffbeforeafterboth

no changes

addedtests/scripts/types_template/tsconfig.jsondiffbeforeafterboth

no changes

modifiedtests/scripts/wait_for_first_block.shdiffbeforeafterboth
1#!/usr/bin/env bash1#!/usr/bin/env bash
22
3function 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_URL4
5}5. $DIR/functions.sh
66
7function is_started {7function is_started {
8 block_hash_rpc=$(do_rpc chain_getFinalizedHead)
9 echo Rpc response = $block_hash_rpc
10 block_hash=$(echo $block_hash_rpc | jq -r .result)
11 echo Head = $block_hash
12 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_id
15 if (( $block_id > 1 )); then11 if (( $block_id > 1 )); then
addedtests/src/apiConsts.test.tsdiffbeforeafterboth

no changes

modifiedtests/src/burnItem.test.tsdiffbeforeafterboth
140 await expect(token.burn(bob)).to.be.rejectedWith('common.NoPermission');140 await expect(token.burn(bob)).to.be.rejectedWith('common.NoPermission');
141 });141 });
142
143 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});
147
148 // 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);
156
157 // 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}]);
160
161 // 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 });
142167
143 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 });
183
184 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 });
204
205 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});
210
211 // 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]);
217
218 // 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});
159228
modifiedtests/src/eth/abi/collectionHelpers.jsondiffbeforeafterboth
31 "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" },
modifiedtests/src/eth/abi/fungible.jsondiffbeforeafterboth
95 },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",
modifiedtests/src/eth/abi/nonFungible.jsondiffbeforeafterboth
116 },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" }
modifiedtests/src/eth/abi/reFungible.jsondiffbeforeafterboth
116 },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" }
modifiedtests/src/eth/allowlist.test.tsdiffbeforeafterboth
78 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);
8485
85 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;
8889
89 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 });
9293
93 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;
114
115 await collectionEvm.methods.mint(userEth).send(); // token #1
116 await collectionEvm.methods.mint(userEth).send(); // token #2
117 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;
132
133 // cannot transfer anymore
134 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 });
108137
109 // Soft-deprecated138 // Soft-deprecated
110 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);
114144
115 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);
117147
118 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 });
126156
127 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}) => {
modifiedtests/src/eth/api/CollectionHelpers.soldiffbeforeafterboth
19}19}
2020
21/// @title Contract, which allows users to operate with collections21/// @title Contract, which allows users to operate with collections
22/// @dev the ERC-165 identifier for this interface is 0x7dea03b122/// @dev the ERC-165 identifier for this interface is 0xe65011aa
23interface CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {23interface CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {
24 /// Create an NFT collection24 /// Create an NFT collection
25 /// @param name Name of the collection25 /// @param name Name of the collection
79 /// 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);
81
82 /// Returns address of a collection.
83 /// @param collectionId - CollectionId of the collection
84 /// @return eth mirror address of the collection
85 /// @dev EVM selector for this function is: 0x2e716683,
86 /// or in textual repr: collectionAddress(uint32)
87 function collectionAddress(uint32 collectionId) external view returns (address);
88
89 /// Returns collectionId of a collection.
90 /// @param collectionAddress - Eth address of the collection
91 /// @return collectionId of the collection
92 /// @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}
8296
modifiedtests/src/eth/api/UniqueFungible.soldiffbeforeafterboth
13}13}
1414
15/// @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 0xcc1d80ca
17interface 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);
183183
184 // /// 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}
356356
357/// @dev the ERC-165 identifier for this interface is 0x942e8b22357/// @dev the ERC-165 identifier for this interface is 0x8cb847c4
358interface 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);
398
399 /// @notice Returns collection helper contract address
400 /// @dev EVM selector for this function is: 0x1896cce6,
401 /// or in textual repr: collectionHelperAddress()
402 function collectionHelperAddress() external view returns (address);
398}403}
399404
400interface UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}405interface UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
80}80}
8181
82/// @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 0xcc1d80ca
84interface 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);
250250
251 // /// Add the user to the allowed list.251 // /// Add the user to the allowed list.
252 // ///252 // ///
446}446}
447447
448/// @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 0xb74c26b7
450interface 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 contract
452 /// @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);
481481
482 /// @notice Set or reaffirm the approved address for an NFT482 /// @notice Set or reaffirm the approved address for an NFT
483 /// @dev The zero address indicates there is no approved address.483 /// @dev The zero address indicates there is no approved address.
605605
606/// @title ERC-721 Non-Fungible Token Standard606/// @title ERC-721 Non-Fungible Token Standard
607/// @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.md
608/// @dev the ERC-165 identifier for this interface is 0x80ac58cd608/// @dev the ERC-165 identifier for this interface is 0x983a942b
609interface 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 owner
611 /// @dev NFTs assigned to the zero address are considered invalid, and this611 /// @dev NFTs assigned to the zero address are considered invalid, and this
686 /// 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);
688
689 /// @notice Returns collection helper contract address
690 /// @dev EVM selector for this function is: 0x1896cce6,
691 /// or in textual repr: collectionHelperAddress()
692 function collectionHelperAddress() external view returns (address);
688}693}
689694
690interface UniqueNFT is695interface UniqueNFT is
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
80}80}
8181
82/// @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 0xcc1d80ca
84interface 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);
250250
251 // /// Add the user to the allowed list.251 // /// Add the user to the allowed list.
252 // ///252 // ///
444}444}
445445
446/// @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 0x12f7d6c1
448interface 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 contract
450 /// @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);
479479
480 /// @notice Transfer ownership of an RFT480 /// @notice Transfer ownership of an RFT
481 /// @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`
604604
605/// @title ERC-721 Non-Fungible Token Standard605/// @title ERC-721 Non-Fungible Token Standard
606/// @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.md
607/// @dev the ERC-165 identifier for this interface is 0x58800161607/// @dev the ERC-165 identifier for this interface is 0x4016cd87
608interface 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 owner
610 /// @dev RFTs assigned to the zero address are considered invalid, and this610 /// @dev RFTs assigned to the zero address are considered invalid, and this
683 /// 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);
685
686 /// @notice Returns collection helper contract address
687 /// @dev EVM selector for this function is: 0x1896cce6,
688 /// or in textual repr: collectionHelperAddress()
689 function collectionHelperAddress() external view returns (address);
685}690}
686691
687interface UniqueRefungible is692interface UniqueRefungible is
modifiedtests/src/eth/base.test.tsdiffbeforeafterboth
117 });117 });
118118
119 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 });
122122
123 itEth('ERC721Burnable - 0x42966c68 - support', async ({helper}) => {123 itEth('ERC721Burnable - 0x42966c68 - support', async ({helper}) => {
modifiedtests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth
39 });39 });
40 });40 });
41
42 // Soft-deprecated
43 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);
47
48 const newAdmin = helper.eth.createAccount();
49
50 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 });
5541
56 itEth('Add cross account admin by owner', async ({helper, privateKey}) => {42 itEth('can add account admin by owner', async ({helper, privateKey}) => {
43 // arrange
57 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();
47
48 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 54
55 // Soft-deprecated: can addCollectionAdmin
62 const newAdmin = await privateKey('//Bob');56 await collectionEvm.methods.addCollectionAdmin(adminDeprecated).send();
57 // Can addCollectionAdminCross for substrate and ethereum address
63 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();
6560
61 // 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}]);
65
66 // 2. Expect methods.collectionAdmins == api.rpc.unique.adminlist
67 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 });
6973
70 itEth('Check adminlist', async ({helper, privateKey}) => {74 itEth('cross account admin can mint', async ({helper}) => {
75 // arrange: create collection and accounts
71 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();
75
76 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 admin
81 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();
83
84 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);93
88 });
89 expect(adminListRpc).to.be.like(adminListEth);94 expect(await helper.collection.getLastTokenId(collectionId)).to.eq(2);
90 });95 });
9196
92 // Soft-deprecated
93 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);
100
95 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');101 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');
96
97 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 103
100 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 });
104110
105 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');
108114
115 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;
124
125 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();
128
129 // Soft-deprecated: isOwnerOrAdmin returns true
130 expect(await collectionEvm.methods.isOwnerOrAdmin(adminDeprecated).call()).to.be.true;
131 // Expect isOwnerOrAdminCross return true
115 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 });
117135
118 // Soft-deprecated136 // Soft-deprecated
154 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');
156174
157 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();
161179
162 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');
224241
225 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);
246
227 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();
250
229 {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 }
234256
235 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);
261
262 // 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 });
239266
240 // Soft-deprecated267 // Soft-deprecated
378405
379 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);
412
383 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);
385415
386 expect(await collectionEvm.methods.isOwnerOrAdminCross(newOwnerCross).call()).to.be.false;416 expect(await collectionEvm.methods.isOwnerOrAdminCross(ownerCrossSub).call()).to.be.false;
387417
418 // Can set ethereum owner:
388 await collectionEvm.methods.changeCollectionOwnerCross(newOwnerCross).send();419 await collectionEvm.methods.changeCollectionOwnerCross(ownerCrossEth).send({from: owner});
389
390 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 });
392430
393 itEth.skip('change owner call fee', async ({helper}) => {431 itEth.skip('change owner call fee', async ({helper}) => {
addedtests/src/eth/collectionHelperAddress.test.tsdiffbeforeafterboth

no changes

modifiedtests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth
372 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');
374374
375 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;
377377
378 // Balance should be taken from flipper instead of caller378 // Balance should be taken from flipper instead of caller
modifiedtests/src/eth/createFTCollection.test.tsdiffbeforeafterboth
144 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);
149149
150 const result = await collectionHelper.methods150 const result = await collectionHelper.methods
166 expect(await collectionHelper.methods166 expect(await collectionHelper.methods
167 .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});
171172
214 }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.methods
221 .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 });
224228
225 // Soft-deprecated229 // Soft-deprecated
modifiedtests/src/eth/createNFTCollection.test.tsdiffbeforeafterboth
308308
309 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);
313313
314314
331 expect(await collectionHelper.methods331 expect(await collectionHelper.methods
332 .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});
modifiedtests/src/eth/createRFTCollection.test.tsdiffbeforeafterboth
340 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.methods
350 expect(await collectionHelper.methods350 expect(await collectionHelper.methods
351 .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});
355356
modifiedtests/src/eth/destroyCollection.test.tsdiffbeforeafterboth
15// 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/>.
1616
17import {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';
20
2120
22describe('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 ];
2428
25 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 });
3134
32 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 44
45 // cannot burn collec
42 await expect(collectionHelper.methods46 await expect(collectionHelpers.methods
43 .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.methods
47 .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.methods
51 .isCollectionExist(unexistedCollection)55 .isCollectionExist(unexistedCollection)
52 .call()).to.be.false;56 .call()).to.be.false;
57
58 expect(await collectionHelpers.methods
59 .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.methods
65 .destroyCollection(collectionAddress)
66 .send({from: signer})).to.be.rejected;
67
68 await expect(collectionHelper.methods
69 .destroyCollection(unexistedCollection)
70 .send({from: signer})).to.be.rejected;
71
72 expect(await collectionHelper.methods
73 .isCollectionExist(unexistedCollection)
74 .call()).to.be.false;
75 });
76});62});
7763
modifiedtests/src/eth/fungible.test.tsdiffbeforeafterboth
232 });232 });
233233
234 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});
241241
242 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);
244244
245 {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 }
259
260 {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:
274
275 {
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:
279
280 {
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 279
280 ['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;
286
287 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);
291
292 // 1. Cannot transfer more than have
293 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 });
316329
317 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);
319332
320 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 });
510523
511 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);
513526
514 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);
modifiedtests/src/eth/nonFungible.test.tsdiffbeforeafterboth
17import {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';
2120
2221
23describe('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'});
255
256 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);
258
259 const burnerEth = await helper.eth.createAccountWithBalance(donor, 100n);
260 const burnerCrossEth = helper.ethCrossAccount.fromAddress(burnerEth);
258261
259 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});
260264
261 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');
263267
264 {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});
271
272 // 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;
277
278 // 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 });
293
294 expect(await token1.doesExist()).to.be.false;
295 expect(await token2.doesExist()).to.be.false;
280 });296 });
281297
282 itEth('Can perform approveCross()', async ({helper}) => {298 itEth('Can perform approveCross()', async ({helper}) => {
299 // arrange: create accounts
300 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);
306
307 // 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'});
284
285 const owner = await helper.eth.createAccountWithBalance(donor, 100n);309 const token1 = await collection.mintToken(minter, {Ethereum: owner});
286 const receiver = charlie;
287
288 const token = await collection.mintToken(minter, {Ethereum: owner});310 const token2 = await collection.mintToken(minter, {Ethereum: owner});
289311
290 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');313
292314 // 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 });
337
338 // 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 });
345
346 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');
356
357 // 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});
360
361 // 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});
365
366 // 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});
369
370 // 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 });
308373
309 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 });
342407
343 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'});
346410
347 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');
350413
351 const token = await collection.mintToken(minter, {Substrate: owner.address});414 const token = await collection.mintToken(minter, {Substrate: owner.address});
352415
408 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});
416479
417 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);
419482
420 {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:
434
435 {
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:
455
456 {
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 });
520
521 ['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);
526
527 const collection = await helper.nft.mintCollection(minter, {});
528 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
529 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', sender);
530
531 await collection.mintToken(minter, {Ethereum: sender});
532 const nonSendersToken = await collection.mintToken(minter, {Ethereum: tokenOwner});
533
534 // 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});
462541
463describe('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 });
503582
504 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;
modifiedtests/src/eth/reFungible.test.tsdiffbeforeafterboth
363 });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);
370
370 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);
373374
374 const {tokenId} = await collection.mintToken(minter, 1n, {Ethereum: caller});375 const token = await collection.mintToken(minter, 50n, {Ethereum: sender});
375376
376 {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 }
390
391 {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
399
400 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:
406
407 {
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 });
415
416 ['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);
421
422 const collection = await helper.rft.mintCollection(minter, {});
423 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
424 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'rft', sender);
425
426 await collection.mintToken(minter, 50n, {Ethereum: sender});
427 const nonSendersToken = await collection.mintToken(minter, 50n, {Ethereum: tokenOwner});
428
429 // 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 }));
417435
418 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);
modifiedtests/src/eth/reFungibleToken.test.tsdiffbeforeafterboth
227 }227 }
228 });228 });
229
230 [
231 'transfer',
232 // 'transferCross', // TODO
233 ].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;
257
258 // 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([]); // TODO
262
263 // 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 }));
229269
230 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);
modifiedtests/src/eth/tokenProperties.test.tsdiffbeforeafterboth
120 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([]);
124124
125 await contract.methods.setProperties(token.tokenId, properties).send({from: caller});125 await contract.methods.setProperties(token.tokenId, properties).send({from: caller});
126126
127 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(properties
131 .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
modifiedtests/src/eth/util/playgrounds/unique.dev.tsdiffbeforeafterboth
103103
104 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 }
108108
109 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 }
113113
114 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 }
188188
189 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);
192192
193 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)});
194195
195 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 }
219220
220 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);
223
224 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);
227
228 const events = this.helper.eth.normalizeEvents(result.events);
229
230 return {collectionId, collectionAddress, events};
231 }223 }
232224
233 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[] }> {
modifiedtests/src/fungible.test.tsdiffbeforeafterboth
15// 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/>.
1616
17import {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';
1919
20const U128_MAX = (1n << 128n) - 1n;20const U128_MAX = (1n << 128n) - 1n;
2121
146 });146 });
147});147});
148
149describe('Fungible negative tests', () => {
150 let donor: IKeyringPair;
151 let alice: IKeyringPair;
152 let bob: IKeyringPair;
153 let charlie: IKeyringPair;
154
155 before(async function() {
156 await usingPlaygrounds(async (helper, privateKey) => {
157 requirePalletsOrSkip(this, helper, [Pallets.Fungible]);
158
159 donor = await privateKey({filename: __filename});
160 [alice, bob, charlie] = await helper.arrange.createAccounts([100n, 100n, 100n], donor);
161 });
162 });
163
164 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});
168
169 // 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 = 0
180 await collection.transfer(alice, {Substrate: charlie.address}, 0n);
181
182 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});
148187
modifiedtests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth
8import 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';
1313
14export type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;14export type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;
1515
69 * 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 const
74 **/78 **/
82 **/86 **/
83 [key: string]: Codec;87 [key: string]: Codec;
84 };88 };
89 evmContractHelpers: {
90 /**
91 * Address, under which magic contract will be available
92 **/
93 contractAddress: H160 & AugmentedConst<ApiType>;
94 /**
95 * Generic const
96 **/
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 inflation
93 [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 const
233 **/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 const
303 **/
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`.
modifiedtests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth
264 * Calculating total fee overflowed264 * Calculating total fee overflowed
265 **/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 overflowed
277 **/285 **/
278 PaymentOverflow: AugmentedError<ApiType>;286 PaymentOverflow: AugmentedError<ApiType>;
287 /**
288 * EVM reentrancy
289 **/
290 Reentrancy: AugmentedError<ApiType>;
291 /**
292 * Undefined error.
293 **/
294 Undefined: AugmentedError<ApiType>;
279 /**295 /**
280 * Withdraw fee failed296 * Withdraw fee failed
281 **/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 bytes
341 **/
342 BadEvent: AugmentedError<ApiType>;
323 /**343 /**
324 * Generic error344 * Generic error
325 **/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 agenda
668 **/
669 AgendaIsExhausted: AugmentedError<ApiType>;
646 /**670 /**
647 * Failed to schedule a call671 * Failed to schedule a call
648 **/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 found
656 **/684 **/
657 RescheduleNoChange: AugmentedError<ApiType>;685 PreimageNotFound: AugmentedError<ApiType>;
686 /**
687 * Scheduled call is corrupted
688 **/
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 big
696 **/
697 TooBigScheduledCall: AugmentedError<ApiType>;
662 /**698 /**
663 * Generic error699 * Generic error
664 **/700 **/
modifiedtests/src/interfaces/augment-api-events.tsdiffbeforeafterboth
6import '@polkadot/api-base/types/events';6import '@polkadot/api-base/types/events';
77
8import 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';
1313
14export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;14export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;
1515
203 [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 event
212 **/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 event
246 **/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 tests
262 **/
263 TestEvent: AugmentedEvent<ApiType, []>;
264 /**
265 * Generic event
266 **/
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 changed
493 **/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 /**
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
9import 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';
1414
15export 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 query
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
9import 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';
1313
14export 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 transaction
299 **/
300 insertEthLogs: AugmentedSubmittable<(logs: Vec<EthereumLog> | (EthereumLog | { address?: any; topics?: any; data?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<EthereumLog>]>;
301 /**
302 * Create substrate events
303 **/
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 called
299 * multiple times307 * multiple times
830 [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 tx
852 **/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>, []>;
modifiedtests/src/interfaces/augment-types.tsdiffbeforeafterboth
5// this is required to allow for ambient/previous definitions5// this is required to allow for ambient/previous definitions
6import '@polkadot/types/types/registry';6import '@polkadot/types/types/registry';
77
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, 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;
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
556/** @name FrameSupportPalletId */556/** @name FrameSupportPalletId */
557export interface FrameSupportPalletId extends U8aFixed {}557export interface FrameSupportPalletId extends U8aFixed {}
558
559/** @name FrameSupportScheduleLookupError */
560export interface FrameSupportScheduleLookupError extends Enum {
561 readonly isUnknown: boolean;
562 readonly isBadFormat: boolean;
563 readonly type: 'Unknown' | 'BadFormat';
564}
565
566/** @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}
574558
575/** @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}
13531342
1457 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}
14621455
1463/** @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}
14811480
1482/** @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}
15001507
1501/** @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}
1515
1516/** @name PalletEvmMigrationEvent */
1517export interface PalletEvmMigrationEvent extends Enum {
1518 readonly isTestEvent: boolean;
1519 readonly type: 'TestEvent';
1520}
15071521
1508/** @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}
20092027
2010/** @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}
20232042
2024/** @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}
2348
2349/** @name PalletUniqueSchedulerV2BlockAgenda */
2350export interface PalletUniqueSchedulerV2BlockAgenda extends Struct {
2351 readonly agenda: Vec<Option<PalletUniqueSchedulerV2Scheduled>>;
2352 readonly freePlaces: u32;
2353}
23292354
2330/** @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}
23592403
2360/** @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}
23682416
2369/** @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}
24012452
2402/** @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}
2461
2462/** @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}
24102473
2411/** @name PalletXcmCall */2474/** @name PalletXcmCall */
2412export interface PalletXcmCall extends Enum {2475export interface PalletXcmCall extends Enum {
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
1003 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::LookupError
1038 **/
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::Log
1230 **/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::Event
1238 **/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::ExitReason
1246 **/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::ExitSucceed
1257 **/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::ExitError
1263 **/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::ExitRevert
1285 **/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::ExitFatal
1291 **/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::Phase
1324 **/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::LastRuntimeUpgradeInfo
1334 **/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::BlockWeights
1379 **/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::WeightsPerClass
1395 **/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::BlockLength
1404 **/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::RuntimeDbWeight
1418 **/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::RuntimeVersion
1425 **/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::UpgradeRestriction
1453 **/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::StorageProof
1459 **/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::MessagingStateSnapshot
1465 **/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::AbridgedHrmpChannel
1474 **/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::AbridgedHostConfiguration
1485 **/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::ParachainInherentData
1525 **/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::Reasons
1562 **/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::Releases
1575 **/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::Releases
1630 **/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::PalletId
1669 **/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::VersionedMultiAsset
1765 **/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::Response
2018 **/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::Response
2130 **/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::CollectionMode
2296 **/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::AccessMode
2321 **/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::CollectionLimits
2327 **/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::SponsoringRateLimit
2341 **/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::CollectionPermissions
2350 **/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::NestingPermissions
2358 **/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::OwnerRestrictedSet
2366 **/2381 **/
2367 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2382 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',
2368 /**2383 /**
2369 * Lookup261: up_data_structs::PropertyKeyPermission2384 * Lookup259: up_data_structs::PropertyKeyPermission
2370 **/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::PropertyPermission
2377 **/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::Property
2385 **/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::CreateItemData
2392 **/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::CreateNftData
2402 **/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::CreateFungibleData
2408 **/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::CreateReFungibleData
2414 **/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::TransactionV2
2815 **/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::LegacyTransaction
2825 **/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::TransactionAction
2837 **/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::TransactionSignature
2846 **/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::EIP2930Transaction
2854 **/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::AccessListItem
2870 **/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::EIP1559Transaction
2877 **/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::InboundChannelDetails
2984 **/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::InboundState
2992 **/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::XcmpMessageFormat
2998 **/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::OutboundChannelDetails
3004 **/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::OutboundState
3014 **/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::QueueConfigData
3020 **/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::ConfigData
3047 **/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::PageIndexData
3053 **/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::OriginCaller
3083 **/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::Origin
3202 **/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::Origin
3211 **/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::RawOrigin
3220 **/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::Void
3228 **/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::Properties
3262 **/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::CollectionStats
3278 **/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::TokenChild
3286 **/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::RpcCollectionFlags
3322 **/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::NftChild
3380 **/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::ItemData
3399 **/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::PropertyScope
3417 **/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::TransactionStatus
3465 **/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::Bloom
3477 **/3530 **/
3478 EthbloomBloom: '[u8;256]',3531 EthbloomBloom: '[u8;256]',
3479 /**3532 /**
3480 * Lookup457: ethereum::receipt::ReceiptV33533 * Lookup461: ethereum::receipt::ReceiptV3
3481 **/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::EIP658ReceiptData
3491 **/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::Header
3508 **/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::H64
3528 **/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::SponsoringModeT
3554 **/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::MultiSignature
3582 **/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::Signature
3592 **/3645 **/
3593 SpCoreEd25519Signature: '[u8;64]',3646 SpCoreEd25519Signature: '[u8;64]',
3594 /**3647 /**
3595 * Lookup483: sp_core::sr25519::Signature3648 * Lookup487: sp_core::sr25519::Signature
3596 **/3649 **/
3597 SpCoreSr25519Signature: '[u8;64]',3650 SpCoreSr25519Signature: '[u8;64]',
3598 /**3651 /**
3599 * Lookup484: sp_core::ecdsa::Signature3652 * Lookup488: sp_core::ecdsa::Signature
3600 **/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::CheckMaintenance
3624 **/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::Runtime
3632 **/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};
36393692
modifiedtests/src/interfaces/registry.tsdiffbeforeafterboth
5// this is required to allow for ambient/previous definitions5// this is required to allow for ambient/previous definitions
6import '@polkadot/types/types/registry';6import '@polkadot/types/types/registry';
77
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, 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';
99
10declare 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;
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
1132 readonly type: 'Substrate' | 'Ethereum';1132 readonly type: 'Substrate' | 'Ethereum';
1133 }1133 }
11341134
1135 /** @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 }
1167
1168 /** @name FrameSupportScheduleLookupError (96) */
1169 interface FrameSupportScheduleLookupError extends Enum {
1170 readonly isUnknown: boolean;
1171 readonly isBadFormat: boolean;
1172 readonly type: 'Unknown' | 'BadFormat';
1173 }
11741170
1175 /** @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 }
12011197
1202 /** @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 }
12081204
1209 /** @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 }
12981294
1299 /** @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 }
13071303
1308 /** @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 }
13221318
1323 /** @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 }
13351331
1336 /** @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 }
13621358
1363 /** @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 }
13701366
1371 /** @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 }
13891391
1390 /** @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 }
13961398
1397 /** @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 }
14031410
1404 /** @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 }
14161423
1417 /** @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 }
14241431
1425 /** @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 }
14451452
1446 /** @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 }
14511458
1452 /** @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 }
14621469
1463 /** @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 }
1480
1481 /** @name PalletEvmMigrationEvent (122) */
1482 interface PalletEvmMigrationEvent extends Enum {
1483 readonly isTestEvent: boolean;
1484 readonly type: 'TestEvent';
1485 }
14731486
1474 /** @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 }
14801493
1481 /** @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 }
14871501
1488 /** @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 }
14961510
1497 /** @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 }
15021516
1503 /** @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 }
15441558
1545 /** @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 }
15511565
1552 /** @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 }
15581572
1559 /** @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 }
15661580
1567 /** @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 }
15711585
1572 /** @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 }
15781592
1579 /** @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 }
15841598
1585 /** @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 }
15961610
1597 /** @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 }
16071621
1608 /** @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 }
16151629
1616 /** @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 }
16211635
1622 /** @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 }
16261640
1627 /** @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 }
16341648
1635 /** @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 }
16441658
1645 /** @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 }
16571671
1658 /** @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 }
16631677
1664 /** @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 }
16841698
1685 /** @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 }
16921706
1693 /** @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 }
16981712
1699 /** @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 }
17041718
1705 /** @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 }
17171731
1718 /** @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 }
17241738
1725 /** @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 }
17321746
1733 /** @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 }
17381752
1739 /** @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 }
17451759
1746 /** @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 }
17821796
1783 /** @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 }
17951809
1796 /** @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 }
18041818
1805 /** @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 }
18111825
1812 /** @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 }
18191833
1820 /** @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 }
18461860
1847 /** @name FrameSupportPalletId (197) */1861 /** @name FrameSupportPalletId (195) */
1848 interface FrameSupportPalletId extends U8aFixed {}1862 interface FrameSupportPalletId extends U8aFixed {}
18491863
1850 /** @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 }
18591873
1860 /** @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 }
18821896
1883 /** @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 }
19021916
1903 /** @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 }
19491963
1950 /** @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 }
19581972
1959 /** @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 }
19952009
1996 /** @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 }
20312045
2032 /** @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 }
20932107
2094 /** @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 }
21042118
2105 /** @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 }
21672181
2168 /** @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 }
22152229
2216 /** @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 }
22222236
2223 /** @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 }
22912305
2292 /** @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 }
23412355
2342 /** @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 }
23502364
2351 /** @name CumulusPalletXcmCall (234) */2365 /** @name CumulusPalletXcmCall (232) */
2352 type CumulusPalletXcmCall = Null;2366 type CumulusPalletXcmCall = Null;
23532367
2354 /** @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 }
23632377
2364 /** @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 }
23722386
2373 /** @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 }
25302544
2531 /** @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 }
25392553
2540 /** @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 }
25532567
2554 /** @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 }
25602574
2561 /** @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 }
25732587
2574 /** @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 }
25812595
2582 /** @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 }
25882602
2589 /** @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 }
25952609
2596 /** @name UpDataStructsOwnerRestrictedSet (256) */2610 /** @name UpDataStructsOwnerRestrictedSet (254) */
2597 interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}2611 interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}
25982612
2599 /** @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 }
26042618
2605 /** @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 }
26112625
2612 /** @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 }
26172631
2618 /** @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 }
26282642
2629 /** @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 }
26332647
2634 /** @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 }
26382652
2639 /** @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 }
26442658
2645 /** @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 }
26572671
2658 /** @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 }
26632677
2664 /** @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 }
26702684
2671 /** @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 }
26762690
2677 /** @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 }
2706
2707 /** @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 }
27152739
2716 /** @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 }
27282752
2729 /** @name PalletTemplateTransactionPaymentCall (292) */2753 /** @name PalletTemplateTransactionPaymentCall (289) */
2730 type PalletTemplateTransactionPaymentCall = Null;2754 type PalletTemplateTransactionPaymentCall = Null;
27312755
2732 /** @name PalletStructureCall (293) */2756 /** @name PalletStructureCall (290) */
2733 type PalletStructureCall = Null;2757 type PalletStructureCall = Null;
27342758
2735 /** @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 }
28402864
2841 /** @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 }
28512875
2852 /** @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 }
28592883
2860 /** @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 }
28692893
2870 /** @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 }
28792903
2880 /** @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 }
29012925
2902 /** @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 }
29102934
2911 /** @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 }
29172941
2918 /** @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 }
29252949
2926 /** @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 }
29342958
2935 /** @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 }
29412965
2942 /** @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 }
29472971
2948 /** @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 }
29813005
2982 /** @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 }
29983022
2999 /** @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 }
30433067
3044 /** @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 }
30523076
3053 /** @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 }
30633087
3064 /** @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 }
30743098
3075 /** @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 }
30823106
3083 /** @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 }
30893113
3090 /** @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 }
31043128
3105 /** @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 }
31103134
3111 /** @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 }
31263150
3127 /** @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 }
31453177
3146 /** @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 }
31733209
3174 /** @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 }
31793215
3180 /** @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 }
31903226
3191 /** @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 }
32143250
3215 /** @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 }
32203256
3221 /** @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 }
32273263
3228 /** @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 }
32333269
3234 /** @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 }
32463282
3247 /** @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 }
32533289
3254 /** @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 }
32603296
3261 /** @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 }
32683304
3269 /** @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 }
32773313
3278 /** @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 }
32843320
3285 /** @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 }
32943330
3295 /** @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 }
33043340
3305 /** @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 }
33223358
3323 /** @name CumulusPalletXcmError (370) */3359 /** @name CumulusPalletXcmError (371) */
3324 type CumulusPalletXcmError = Null;3360 type CumulusPalletXcmError = Null;
33253361
3326 /** @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 }
33303366
3331 /** @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 }
33373373
3338 /** @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 }
33443380
3345 /** @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 }
3389
3390 /** @name PalletUniqueSchedulerV2BlockAgenda (381) */
3391 interface PalletUniqueSchedulerV2BlockAgenda extends Struct {
3392 readonly agenda: Vec<Option<PalletUniqueSchedulerV2Scheduled>>;
3393 readonly freePlaces: u32;
3394 }
33533395
3354 /** @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 }
3404
3405 /** @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 }
33623416
3363 /** @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 }
33763430
3377 /** @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 }
33853439
3386 /** @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 }
33943448
3395 /** @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 }
34023456
3403 /** @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 }
34093463
3410 /** @name SpCoreVoid (388) */3464 /** @name SpCoreVoid (392) */
3411 type SpCoreVoid = Null;3465 type SpCoreVoid = Null;
34123466
3413 /** @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 }
34213479
3422 /** @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 }
34343492
3435 /** @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 }
34443502
3445 /** @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 }
34513509
3452 /** @name UpDataStructsPropertiesMapBoundedVec (394) */3510 /** @name UpDataStructsPropertiesMapBoundedVec (399) */
3453 interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}3511 interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
34543512
3455 /** @name UpDataStructsPropertiesMapPropertyPermission (399) */3513 /** @name UpDataStructsPropertiesMapPropertyPermission (404) */
3456 interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}3514 interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
34573515
3458 /** @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 }
34643522
3465 /** @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 }
34703528
3471 /** @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]>> {}
34733531
3474 /** @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 }
34803538
3481 /** @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 }
34963554
3497 /** @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 }
35023560
3503 /** @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 }
35113569
3512 /** @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 }
35203578
3521 /** @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 }
35263584
3527 /** @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 }
35343592
3535 /** @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 }
35403598
3541 /** @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 }
35473605
3548 /** @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 }
35533611
3554 /** @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 }
35923650
3593 /** @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 }
36023660
3603 /** @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 }
36073665
3608 /** @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 }
36173675
3618 /** @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 }
36223680
3623 /** @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 }
36293687
3630 /** @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 }
36373695
3638 /** @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 }
36463704
3647 /** @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 }
36703728
3671 /** @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 }
36823740
3683 /** @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 }
36933751
3694 /** @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 }
37023760
3703 /** @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 }
37133775
3714 /** @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 }
37243786
3725 /** @name EthbloomBloom (455) */3787 /** @name EthbloomBloom (459) */
3726 interface EthbloomBloom extends U8aFixed {}3788 interface EthbloomBloom extends U8aFixed {}
37273789
3728 /** @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 }
37383800
3739 /** @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 }
37463808
3747 /** @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 }
37533815
3754 /** @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 }
37723834
3773 /** @name EthereumTypesHashH64 (461) */3835 /** @name EthereumTypesHashH64 (465) */
3774 interface EthereumTypesHashH64 extends U8aFixed {}3836 interface EthereumTypesHashH64 extends U8aFixed {}
37753837
3776 /** @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 }
37823844
3783 /** @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 }
37893851
3790 /** @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 }
37993861
3800 /** @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 }
38073869
3808 /** @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 }
38153877
3816 /** @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 }
38223885
3823 /** @name PalletMaintenanceError (477) */3886 /** @name PalletMaintenanceError (481) */
3824 type PalletMaintenanceError = Null;3887 type PalletMaintenanceError = Null;
38253888
3826 /** @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 }
38323895
3833 /** @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 }
38433906
3844 /** @name SpCoreEd25519Signature (481) */3907 /** @name SpCoreEd25519Signature (485) */
3845 interface SpCoreEd25519Signature extends U8aFixed {}3908 interface SpCoreEd25519Signature extends U8aFixed {}
38463909
3847 /** @name SpCoreSr25519Signature (483) */3910 /** @name SpCoreSr25519Signature (487) */
3848 interface SpCoreSr25519Signature extends U8aFixed {}3911 interface SpCoreSr25519Signature extends U8aFixed {}
38493912
3850 /** @name SpCoreEcdsaSignature (484) */3913 /** @name SpCoreEcdsaSignature (488) */
3851 interface SpCoreEcdsaSignature extends U8aFixed {}3914 interface SpCoreEcdsaSignature extends U8aFixed {}
38523915
3853 /** @name FrameSystemExtensionsCheckSpecVersion (487) */3916 /** @name FrameSystemExtensionsCheckSpecVersion (491) */
3854 type FrameSystemExtensionsCheckSpecVersion = Null;3917 type FrameSystemExtensionsCheckSpecVersion = Null;
38553918
3856 /** @name FrameSystemExtensionsCheckTxVersion (488) */3919 /** @name FrameSystemExtensionsCheckTxVersion (492) */
3857 type FrameSystemExtensionsCheckTxVersion = Null;3920 type FrameSystemExtensionsCheckTxVersion = Null;
38583921
3859 /** @name FrameSystemExtensionsCheckGenesis (489) */3922 /** @name FrameSystemExtensionsCheckGenesis (493) */
3860 type FrameSystemExtensionsCheckGenesis = Null;3923 type FrameSystemExtensionsCheckGenesis = Null;
38613924
3862 /** @name FrameSystemExtensionsCheckNonce (492) */3925 /** @name FrameSystemExtensionsCheckNonce (496) */
3863 interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}3926 interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
38643927
3865 /** @name FrameSystemExtensionsCheckWeight (493) */3928 /** @name FrameSystemExtensionsCheckWeight (497) */
3866 type FrameSystemExtensionsCheckWeight = Null;3929 type FrameSystemExtensionsCheckWeight = Null;
38673930
3868 /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (494) */3931 /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (498) */
3869 type OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null;3932 type OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null;
38703933
3871 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (495) */3934 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (499) */
3872 interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}3935 interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
38733936
3874 /** @name OpalRuntimeRuntime (496) */3937 /** @name OpalRuntimeRuntime (500) */
3875 type OpalRuntimeRuntime = Null;3938 type OpalRuntimeRuntime = Null;
38763939
3877 /** @name PalletEthereumFakeTransactionFinalizer (497) */3940 /** @name PalletEthereumFakeTransactionFinalizer (501) */
3878 type PalletEthereumFakeTransactionFinalizer = Null;3941 type PalletEthereumFakeTransactionFinalizer = Null;
38793942
3880} // declare module3943} // declare module
modifiedtests/src/maintenanceMode.seqtest.tsdiffbeforeafterboth
237 expect(tokenId).to.be.equal('1');237 expect(tokenId).to.be.equal('1');
238238
239 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/);
241241
242 await expect(contract.methods.ownerOf(tokenId).call()).rejectedWith(/token not found/);242 await expect(contract.methods.ownerOf(tokenId).call()).rejectedWith(/token not found/);
243243
modifiedtests/src/refungible.test.tsdiffbeforeafterboth
255 });255 });
256});256});
257
258describe('Refungible negative tests', () => {
259 let donor: IKeyringPair;
260 let alice: IKeyringPair;
261 let bob: IKeyringPair;
262 let charlie: IKeyringPair;
263
264 before(async function() {
265 await usingPlaygrounds(async (helper, privateKey) => {
266 requirePalletsOrSkip(this, helper, [Pallets.ReFungible]);
267
268 donor = await privateKey({filename: __filename});
269 [alice, bob, charlie] = await helper.arrange.createAccounts([100n, 100n, 100n], donor);
270 });
271 });
272
273 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});
277
278 // 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');
287
288 // 3. Zero transfer allowed (EIP-20):
289 await tokenAlice.transfer(alice, {Substrate: charlie.address}, 0n);
290
291 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});
257298
258
modifiedtests/src/transfer.test.tsdiffbeforeafterboth
191 .to.be.rejectedWith(/common\.TokenValueTooLow/);192 .to.be.rejectedWith(/common\.TokenValueTooLow/);
192 });193 });
194
195 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 });
193213
194 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'});
modifiedtests/src/transferFrom.test.tsdiffbeforeafterboth
350 )).to.be.rejectedWith(/common\.ApprovedValueTooLow/);350 )).to.be.rejectedWith(/common\.ApprovedValueTooLow/);
351 });351 });
352
353 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});
358
359 // 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]);
365
366 // 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});
353376
modifiedtests/src/util/playgrounds/unique.tsdiffbeforeafterboth
2484 * @param ethCrossAccount etherium cross account2484 * @param ethCrossAccount etherium cross account
2485 * @returns substrate cross account id2485 * @returns substrate cross account id
2486 */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 }