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

difftreelog

createItem* fixes

kryadinskii2022-05-19parents: #b80b794 #a7fe253.patch.diff
in: master

43 files changed

modifiedCargo.lockdiffbeforeafterboth
396 "instant",396 "instant",
397 "pin-project-lite 0.2.9",397 "pin-project-lite 0.2.9",
398 "rand 0.8.5",398 "rand 0.8.5",
399 "tokio 1.18.1",399 "tokio 1.18.2",
400]400]
401401
402[[package]]402[[package]]
410 "cfg-if 1.0.0",410 "cfg-if 1.0.0",
411 "libc",411 "libc",
412 "miniz_oxide",412 "miniz_oxide",
413 "object 0.28.3",413 "object 0.28.4",
414 "rustc-demangle",414 "rustc-demangle",
415]415]
416416
464 "futures-timer",464 "futures-timer",
465 "hex",465 "hex",
466 "log",466 "log",
467 "parity-scale-codec",467 "parity-scale-codec 3.1.2",
468 "parking_lot 0.12.0",468 "parking_lot 0.12.0",
469 "sc-chain-spec",469 "sc-chain-spec",
470 "sc-client-api",470 "sc-client-api",
500 "jsonrpc-derive",500 "jsonrpc-derive",
501 "jsonrpc-pubsub",501 "jsonrpc-pubsub",
502 "log",502 "log",
503 "parity-scale-codec",503 "parity-scale-codec 3.1.2",
504 "parking_lot 0.12.0",504 "parking_lot 0.12.0",
505 "sc-rpc",505 "sc-rpc",
506 "sc-utils",506 "sc-utils",
520version = "4.0.0-dev"520version = "4.0.0-dev"
521source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"521source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
522dependencies = [522dependencies = [
523 "parity-scale-codec",523 "parity-scale-codec 3.1.2",
524 "scale-info",524 "scale-info",
525 "sp-api",525 "sp-api",
526 "sp-application-crypto",526 "sp-application-crypto",
569source = "registry+https://github.com/rust-lang/crates.io-index"569source = "registry+https://github.com/rust-lang/crates.io-index"
570checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"570checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
571
572[[package]]
573name = "bitvec"
574version = "0.20.4"
575source = "registry+https://github.com/rust-lang/crates.io-index"
576checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848"
577dependencies = [
578 "funty 1.1.0",
579 "radium 0.6.2",
580 "tap",
581 "wyz 0.2.0",
582]
571583
572[[package]]584[[package]]
573name = "bitvec"585name = "bitvec"
574version = "1.0.0"586version = "1.0.0"
575source = "registry+https://github.com/rust-lang/crates.io-index"587source = "registry+https://github.com/rust-lang/crates.io-index"
576checksum = "1489fcb93a5bb47da0462ca93ad252ad6af2145cce58d10d46a83931ba9f016b"588checksum = "1489fcb93a5bb47da0462ca93ad252ad6af2145cce58d10d46a83931ba9f016b"
577dependencies = [589dependencies = [
578 "funty",590 "funty 2.0.0",
579 "radium",591 "radium 0.7.0",
580 "tap",592 "tap",
581 "wyz",593 "wyz 0.5.0",
582]594]
583595
584[[package]]596[[package]]
739 "bp-runtime",751 "bp-runtime",
740 "finality-grandpa",752 "finality-grandpa",
741 "frame-support",753 "frame-support",
742 "parity-scale-codec",754 "parity-scale-codec 3.1.2",
743 "scale-info",755 "scale-info",
744 "serde",756 "serde",
745 "sp-core",757 "sp-core",
755dependencies = [767dependencies = [
756 "bp-runtime",768 "bp-runtime",
757 "frame-support",769 "frame-support",
758 "parity-scale-codec",770 "parity-scale-codec 3.1.2",
759 "scale-info",771 "scale-info",
760 "sp-std",772 "sp-std",
761]773]
765version = "0.1.0"777version = "0.1.0"
766source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"778source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
767dependencies = [779dependencies = [
768 "bitvec",780 "bitvec 1.0.0",
769 "bp-runtime",781 "bp-runtime",
770 "frame-support",782 "frame-support",
771 "frame-system",783 "frame-system",
772 "impl-trait-for-tuples",784 "impl-trait-for-tuples",
773 "parity-scale-codec",785 "parity-scale-codec 3.1.2",
774 "scale-info",786 "scale-info",
775 "serde",787 "serde",
776 "sp-core",788 "sp-core",
786 "bp-runtime",798 "bp-runtime",
787 "frame-support",799 "frame-support",
788 "frame-system",800 "frame-system",
789 "parity-scale-codec",801 "parity-scale-codec 3.1.2",
790 "scale-info",802 "scale-info",
791 "sp-api",803 "sp-api",
792 "sp-core",804 "sp-core",
804 "bp-polkadot-core",816 "bp-polkadot-core",
805 "bp-runtime",817 "bp-runtime",
806 "frame-support",818 "frame-support",
807 "parity-scale-codec",819 "parity-scale-codec 3.1.2",
808 "smallvec",820 "smallvec",
809 "sp-api",821 "sp-api",
810 "sp-runtime",822 "sp-runtime",
820 "frame-support",832 "frame-support",
821 "hash-db",833 "hash-db",
822 "num-traits",834 "num-traits",
823 "parity-scale-codec",835 "parity-scale-codec 3.1.2",
824 "scale-info",836 "scale-info",
825 "sp-core",837 "sp-core",
826 "sp-io",838 "sp-io",
838 "bp-header-chain",850 "bp-header-chain",
839 "ed25519-dalek",851 "ed25519-dalek",
840 "finality-grandpa",852 "finality-grandpa",
841 "parity-scale-codec",853 "parity-scale-codec 3.1.2",
842 "sp-application-crypto",854 "sp-application-crypto",
843 "sp-finality-grandpa",855 "sp-finality-grandpa",
844 "sp-runtime",856 "sp-runtime",
854 "bp-polkadot-core",866 "bp-polkadot-core",
855 "bp-rococo",867 "bp-rococo",
856 "bp-runtime",868 "bp-runtime",
857 "parity-scale-codec",869 "parity-scale-codec 3.1.2",
858 "sp-api",870 "sp-api",
859 "sp-runtime",871 "sp-runtime",
860 "sp-std",872 "sp-std",
875 "pallet-bridge-grandpa",887 "pallet-bridge-grandpa",
876 "pallet-bridge-messages",888 "pallet-bridge-messages",
877 "pallet-transaction-payment",889 "pallet-transaction-payment",
878 "parity-scale-codec",890 "parity-scale-codec 3.1.2",
879 "scale-info",891 "scale-info",
880 "sp-api",892 "sp-api",
881 "sp-core",893 "sp-core",
977989
978[[package]]990[[package]]
979name = "camino"991name = "camino"
980version = "1.0.7"992version = "1.0.8"
981source = "registry+https://github.com/rust-lang/crates.io-index"993source = "registry+https://github.com/rust-lang/crates.io-index"
982checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23"994checksum = "07fd178c5af4d59e83498ef15cf3f154e1a6f9d091270cb86283c65ef44e9ef0"
983dependencies = [995dependencies = [
984 "serde",996 "serde",
985]997]
11111123
1112[[package]]1124[[package]]
1113name = "clang-sys"1125name = "clang-sys"
1114version = "1.3.1"1126version = "1.3.2"
1115source = "registry+https://github.com/rust-lang/crates.io-index"1127source = "registry+https://github.com/rust-lang/crates.io-index"
1116checksum = "4cc00842eed744b858222c4c9faf7243aafc6d33f92f96935263ef4d8a41ce21"1128checksum = "bf6b561dcf059c85bbe388e0a7b0a1469acb3934cc0cfa148613a830629e3049"
1117dependencies = [1129dependencies = [
1118 "glob",1130 "glob",
1119 "libc",1131 "libc",
11221134
1123[[package]]1135[[package]]
1124name = "clap"1136name = "clap"
1125version = "3.1.16"1137version = "3.1.18"
1126source = "registry+https://github.com/rust-lang/crates.io-index"1138source = "registry+https://github.com/rust-lang/crates.io-index"
1127checksum = "f52d4f8e4a1419219935762e32913b4430f37cb0c0200ad17a89ee18c0188a9f"1139checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b"
1128dependencies = [1140dependencies = [
1129 "atty",1141 "atty",
1130 "bitflags",1142 "bitflags",
11391151
1140[[package]]1152[[package]]
1141name = "clap_derive"1153name = "clap_derive"
1142version = "3.1.7"1154version = "3.1.18"
1143source = "registry+https://github.com/rust-lang/crates.io-index"1155source = "registry+https://github.com/rust-lang/crates.io-index"
1144checksum = "a3aab4734e083b809aaf5794e14e756d1c798d2c69c7f7de7a09a2f5214993c1"1156checksum = "25320346e922cffe59c0bbc5410c8d8784509efb321488971081313cb1e1a33c"
1145dependencies = [1157dependencies = [
1146 "heck 0.4.0",1158 "heck 0.4.0",
1147 "proc-macro-error",1159 "proc-macro-error",
1524 "cumulus-primitives-core",1536 "cumulus-primitives-core",
1525 "cumulus-relay-chain-interface",1537 "cumulus-relay-chain-interface",
1526 "futures 0.3.21",1538 "futures 0.3.21",
1527 "parity-scale-codec",1539 "parity-scale-codec 3.1.2",
1528 "parking_lot 0.12.0",1540 "parking_lot 0.12.0",
1529 "polkadot-node-primitives",1541 "polkadot-node-primitives",
1530 "polkadot-node-subsystem",1542 "polkadot-node-subsystem",
1547 "cumulus-client-consensus-common",1559 "cumulus-client-consensus-common",
1548 "cumulus-primitives-core",1560 "cumulus-primitives-core",
1549 "futures 0.3.21",1561 "futures 0.3.21",
1550 "parity-scale-codec",1562 "parity-scale-codec 3.1.2",
1551 "sc-client-api",1563 "sc-client-api",
1552 "sc-consensus",1564 "sc-consensus",
1553 "sc-consensus-aura",1565 "sc-consensus-aura",
1576 "cumulus-relay-chain-interface",1588 "cumulus-relay-chain-interface",
1577 "dyn-clone",1589 "dyn-clone",
1578 "futures 0.3.21",1590 "futures 0.3.21",
1579 "parity-scale-codec",1591 "parity-scale-codec 3.1.2",
1580 "polkadot-primitives",1592 "polkadot-primitives",
1581 "sc-client-api",1593 "sc-client-api",
1582 "sc-consensus",1594 "sc-consensus",
1598 "derive_more",1610 "derive_more",
1599 "futures 0.3.21",1611 "futures 0.3.21",
1600 "futures-timer",1612 "futures-timer",
1601 "parity-scale-codec",1613 "parity-scale-codec 3.1.2",
1602 "parking_lot 0.12.0",1614 "parking_lot 0.12.0",
1603 "polkadot-node-primitives",1615 "polkadot-node-primitives",
1604 "polkadot-parachain",1616 "polkadot-parachain",
1622 "cumulus-relay-chain-interface",1634 "cumulus-relay-chain-interface",
1623 "futures 0.3.21",1635 "futures 0.3.21",
1624 "futures-timer",1636 "futures-timer",
1625 "parity-scale-codec",1637 "parity-scale-codec 3.1.2",
1626 "polkadot-node-primitives",1638 "polkadot-node-primitives",
1627 "polkadot-node-subsystem",1639 "polkadot-node-subsystem",
1628 "polkadot-overseer",1640 "polkadot-overseer",
1648 "cumulus-client-pov-recovery",1660 "cumulus-client-pov-recovery",
1649 "cumulus-primitives-core",1661 "cumulus-primitives-core",
1650 "cumulus-relay-chain-interface",1662 "cumulus-relay-chain-interface",
1651 "parity-scale-codec",1663 "parity-scale-codec 3.1.2",
1652 "parking_lot 0.12.0",1664 "parking_lot 0.12.0",
1653 "polkadot-overseer",1665 "polkadot-overseer",
1654 "polkadot-primitives",1666 "polkadot-primitives",
1676 "frame-support",1688 "frame-support",
1677 "frame-system",1689 "frame-system",
1678 "pallet-aura",1690 "pallet-aura",
1679 "parity-scale-codec",1691 "parity-scale-codec 3.1.2",
1680 "scale-info",1692 "scale-info",
1681 "serde",1693 "serde",
1682 "sp-application-crypto",1694 "sp-application-crypto",
1694 "frame-support",1706 "frame-support",
1695 "frame-system",1707 "frame-system",
1696 "log",1708 "log",
1697 "parity-scale-codec",1709 "parity-scale-codec 3.1.2",
1698 "scale-info",1710 "scale-info",
1699 "sp-io",1711 "sp-io",
1700 "sp-runtime",1712 "sp-runtime",
1717 "impl-trait-for-tuples",1729 "impl-trait-for-tuples",
1718 "log",1730 "log",
1719 "pallet-balances",1731 "pallet-balances",
1720 "parity-scale-codec",1732 "parity-scale-codec 3.1.2",
1721 "polkadot-parachain",1733 "polkadot-parachain",
1722 "scale-info",1734 "scale-info",
1723 "serde",1735 "serde",
1752 "cumulus-primitives-core",1764 "cumulus-primitives-core",
1753 "frame-support",1765 "frame-support",
1754 "frame-system",1766 "frame-system",
1755 "parity-scale-codec",1767 "parity-scale-codec 3.1.2",
1756 "scale-info",1768 "scale-info",
1757 "serde",1769 "serde",
1758 "sp-io",1770 "sp-io",
1770 "frame-support",1782 "frame-support",
1771 "frame-system",1783 "frame-system",
1772 "log",1784 "log",
1773 "parity-scale-codec",1785 "parity-scale-codec 3.1.2",
1774 "rand_chacha 0.3.1",1786 "rand_chacha 0.3.1",
1775 "scale-info",1787 "scale-info",
1776 "sp-runtime",1788 "sp-runtime",
1785source = "git+https://github.com/uniquenetwork/cumulus?branch=polkadot-v0.9.21#4ce5950ac3efbdbbf6c88c90e2a9ad4c7cb8d334"1797source = "git+https://github.com/uniquenetwork/cumulus?branch=polkadot-v0.9.21#4ce5950ac3efbdbbf6c88c90e2a9ad4c7cb8d334"
1786dependencies = [1798dependencies = [
1787 "frame-support",1799 "frame-support",
1788 "parity-scale-codec",1800 "parity-scale-codec 3.1.2",
1789 "polkadot-core-primitives",1801 "polkadot-core-primitives",
1790 "polkadot-parachain",1802 "polkadot-parachain",
1791 "polkadot-primitives",1803 "polkadot-primitives",
1804 "cumulus-primitives-core",1816 "cumulus-primitives-core",
1805 "cumulus-relay-chain-interface",1817 "cumulus-relay-chain-interface",
1806 "cumulus-test-relay-sproof-builder",1818 "cumulus-test-relay-sproof-builder",
1807 "parity-scale-codec",1819 "parity-scale-codec 3.1.2",
1808 "sc-client-api",1820 "sc-client-api",
1809 "scale-info",1821 "scale-info",
1810 "sp-api",1822 "sp-api",
1825dependencies = [1837dependencies = [
1826 "cumulus-primitives-core",1838 "cumulus-primitives-core",
1827 "futures 0.3.21",1839 "futures 0.3.21",
1828 "parity-scale-codec",1840 "parity-scale-codec 3.1.2",
1829 "sp-inherents",1841 "sp-inherents",
1830 "sp-std",1842 "sp-std",
1831 "sp-timestamp",1843 "sp-timestamp",
1838dependencies = [1850dependencies = [
1839 "cumulus-primitives-core",1851 "cumulus-primitives-core",
1840 "frame-support",1852 "frame-support",
1841 "parity-scale-codec",1853 "parity-scale-codec 3.1.2",
1842 "polkadot-core-primitives",1854 "polkadot-core-primitives",
1843 "polkadot-parachain",1855 "polkadot-parachain",
1844 "polkadot-primitives",1856 "polkadot-primitives",
1886 "derive_more",1898 "derive_more",
1887 "futures 0.3.21",1899 "futures 0.3.21",
1888 "jsonrpsee-core",1900 "jsonrpsee-core",
1889 "parity-scale-codec",1901 "parity-scale-codec 3.1.2",
1890 "parking_lot 0.12.0",1902 "parking_lot 0.12.0",
1891 "polkadot-overseer",1903 "polkadot-overseer",
1892 "polkadot-service",1904 "polkadot-service",
1912 "futures 0.3.21",1924 "futures 0.3.21",
1913 "futures-timer",1925 "futures-timer",
1914 "jsonrpsee",1926 "jsonrpsee",
1915 "parity-scale-codec",1927 "parity-scale-codec 3.1.2",
1916 "parking_lot 0.12.0",1928 "parking_lot 0.12.0",
1917 "polkadot-service",1929 "polkadot-service",
1918 "sc-client-api",1930 "sc-client-api",
1932source = "git+https://github.com/uniquenetwork/cumulus?branch=polkadot-v0.9.21#4ce5950ac3efbdbbf6c88c90e2a9ad4c7cb8d334"1944source = "git+https://github.com/uniquenetwork/cumulus?branch=polkadot-v0.9.21#4ce5950ac3efbdbbf6c88c90e2a9ad4c7cb8d334"
1933dependencies = [1945dependencies = [
1934 "cumulus-primitives-core",1946 "cumulus-primitives-core",
1935 "parity-scale-codec",1947 "parity-scale-codec 3.1.2",
1936 "polkadot-primitives",1948 "polkadot-primitives",
1937 "sp-runtime",1949 "sp-runtime",
1938 "sp-state-machine",1950 "sp-state-machine",
2147checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea"2159checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea"
2148dependencies = [2160dependencies = [
2149 "byteorder",2161 "byteorder",
2150 "quick-error 1.2.3",2162 "quick-error",
2151]2163]
21522164
2153[[package]]2165[[package]]
22022214
2203[[package]]2215[[package]]
2204name = "ed25519"2216name = "ed25519"
2205version = "1.4.1"2217version = "1.5.2"
2206source = "registry+https://github.com/rust-lang/crates.io-index"2218source = "registry+https://github.com/rust-lang/crates.io-index"
2207checksum = "3d5c4b5e5959dc2c2b89918d8e2cc40fcdd623cef026ed09d2f0ee05199dc8e4"2219checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369"
2208dependencies = [2220dependencies = [
2209 "signature",2221 "signature",
2210]2222]
2361 "ethereum-types",2373 "ethereum-types",
2362 "hash-db",2374 "hash-db",
2363 "hash256-std-hasher",2375 "hash256-std-hasher",
2364 "parity-scale-codec",2376 "parity-scale-codec 3.1.2",
2365 "rlp",2377 "rlp",
2366 "rlp-derive",2378 "rlp-derive",
2367 "scale-info",2379 "scale-info",
2404 "evm-gasometer",2416 "evm-gasometer",
2405 "evm-runtime",2417 "evm-runtime",
2406 "log",2418 "log",
2407 "parity-scale-codec",2419 "parity-scale-codec 3.1.2",
2408 "primitive-types",2420 "primitive-types",
2409 "rlp",2421 "rlp",
2410 "scale-info",2422 "scale-info",
2443version = "0.35.0"2455version = "0.35.0"
2444source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.19#1b170dc649f5e16a33134710a9fe2610e580661e"2456source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.19#1b170dc649f5e16a33134710a9fe2610e580661e"
2445dependencies = [2457dependencies = [
2446 "parity-scale-codec",2458 "parity-scale-codec 3.1.2",
2447 "primitive-types",2459 "primitive-types",
2448 "scale-info",2460 "scale-info",
2449 "serde",2461 "serde",
2578dependencies = [2590dependencies = [
2579 "fp-storage",2591 "fp-storage",
2580 "kvdb-rocksdb",2592 "kvdb-rocksdb",
2581 "parity-scale-codec",2593 "parity-scale-codec 3.1.2",
2582 "parking_lot 0.12.0",2594 "parking_lot 0.12.0",
2583 "sp-core",2595 "sp-core",
2584 "sp-database",2596 "sp-database",
2622 "libsecp256k1",2634 "libsecp256k1",
2623 "log",2635 "log",
2624 "lru 0.6.6",2636 "lru 0.6.6",
2625 "parity-scale-codec",2637 "parity-scale-codec 3.1.2",
2626 "rand 0.8.5",2638 "rand 0.8.5",
2627 "rlp",2639 "rlp",
2628 "sc-client-api",2640 "sc-client-api",
2638 "sp-io",2650 "sp-io",
2639 "sp-runtime",2651 "sp-runtime",
2640 "sp-storage",2652 "sp-storage",
2641 "tokio 1.18.1",2653 "tokio 1.18.2",
2642]2654]
26432655
2644[[package]]2656[[package]]
2698 "futures-timer",2710 "futures-timer",
2699 "log",2711 "log",
2700 "num-traits",2712 "num-traits",
2701 "parity-scale-codec",2713 "parity-scale-codec 3.1.2",
2702 "parking_lot 0.11.2",2714 "parking_lot 0.11.2",
2703 "scale-info",2715 "scale-info",
2704]2716]
2761version = "3.0.0"2773version = "3.0.0"
2762source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"2774source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
2763dependencies = [2775dependencies = [
2764 "parity-scale-codec",2776 "parity-scale-codec 3.1.2",
2765]2777]
27662778
2767[[package]]2779[[package]]
2780source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.21-logs#79cd4c4cf29106c431facd6779783fc887b21475"2792source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.21-logs#79cd4c4cf29106c431facd6779783fc887b21475"
2781dependencies = [2793dependencies = [
2782 "ethereum",2794 "ethereum",
2783 "parity-scale-codec",2795 "parity-scale-codec 3.1.2",
2784 "sp-core",2796 "sp-core",
2785 "sp-runtime",2797 "sp-runtime",
2786 "sp-std",2798 "sp-std",
2793dependencies = [2805dependencies = [
2794 "evm",2806 "evm",
2795 "impl-trait-for-tuples",2807 "impl-trait-for-tuples",
2796 "parity-scale-codec",2808 "parity-scale-codec 3.1.2",
2797 "serde",2809 "serde",
2798 "sp-core",2810 "sp-core",
2799 "sp-std",2811 "sp-std",
2816 "ethereum",2828 "ethereum",
2817 "ethereum-types",2829 "ethereum-types",
2818 "fp-evm",2830 "fp-evm",
2819 "parity-scale-codec",2831 "parity-scale-codec 3.1.2",
2820 "scale-info",2832 "scale-info",
2821 "sp-api",2833 "sp-api",
2822 "sp-core",2834 "sp-core",
2832dependencies = [2844dependencies = [
2833 "ethereum",2845 "ethereum",
2834 "frame-support",2846 "frame-support",
2835 "parity-scale-codec",2847 "parity-scale-codec 3.1.2",
2836 "parity-util-mem",2848 "parity-util-mem",
2837 "scale-info",2849 "scale-info",
2838 "serde",2850 "serde",
2846version = "2.0.0"2858version = "2.0.0"
2847source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.21-logs#79cd4c4cf29106c431facd6779783fc887b21475"2859source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.21-logs#79cd4c4cf29106c431facd6779783fc887b21475"
2848dependencies = [2860dependencies = [
2849 "parity-scale-codec",2861 "parity-scale-codec 3.1.2",
2850]2862]
28512863
2852[[package]]2864[[package]]
2858 "frame-system",2870 "frame-system",
2859 "linregress",2871 "linregress",
2860 "log",2872 "log",
2861 "parity-scale-codec",2873 "parity-scale-codec 3.1.2",
2862 "paste",2874 "paste",
2863 "scale-info",2875 "scale-info",
2864 "serde",2876 "serde",
2890 "linked-hash-map",2902 "linked-hash-map",
2891 "log",2903 "log",
2892 "memory-db",2904 "memory-db",
2893 "parity-scale-codec",2905 "parity-scale-codec 3.1.2",
2894 "prettytable-rs",2906 "prettytable-rs",
2895 "rand 0.8.5",2907 "rand 0.8.5",
2896 "rand_pcg 0.3.1",2908 "rand_pcg 0.3.1",
2938 "frame-election-provider-solution-type",2950 "frame-election-provider-solution-type",
2939 "frame-support",2951 "frame-support",
2940 "frame-system",2952 "frame-system",
2941 "parity-scale-codec",2953 "parity-scale-codec 3.1.2",
2942 "scale-info",2954 "scale-info",
2943 "sp-arithmetic",2955 "sp-arithmetic",
2944 "sp-npos-elections",2956 "sp-npos-elections",
2953dependencies = [2965dependencies = [
2954 "frame-support",2966 "frame-support",
2955 "frame-system",2967 "frame-system",
2956 "parity-scale-codec",2968 "parity-scale-codec 3.1.2",
2957 "scale-info",2969 "scale-info",
2958 "sp-core",2970 "sp-core",
2959 "sp-io",2971 "sp-io",
2969checksum = "df6bb8542ef006ef0de09a5c4420787d79823c0ed7924225822362fd2bf2ff2d"2981checksum = "df6bb8542ef006ef0de09a5c4420787d79823c0ed7924225822362fd2bf2ff2d"
2970dependencies = [2982dependencies = [
2971 "cfg-if 1.0.0",2983 "cfg-if 1.0.0",
2972 "parity-scale-codec",2984 "parity-scale-codec 3.1.2",
2973 "scale-info",2985 "scale-info",
2974 "serde",2986 "serde",
2975]2987]
2985 "impl-trait-for-tuples",2997 "impl-trait-for-tuples",
2986 "log",2998 "log",
2987 "once_cell",2999 "once_cell",
2988 "parity-scale-codec",3000 "parity-scale-codec 3.1.2",
2989 "paste",3001 "paste",
2990 "scale-info",3002 "scale-info",
2991 "serde",3003 "serde",
3044dependencies = [3056dependencies = [
3045 "frame-support",3057 "frame-support",
3046 "log",3058 "log",
3047 "parity-scale-codec",3059 "parity-scale-codec 3.1.2",
3048 "scale-info",3060 "scale-info",
3049 "serde",3061 "serde",
3050 "sp-core",3062 "sp-core",
3062 "frame-benchmarking",3074 "frame-benchmarking",
3063 "frame-support",3075 "frame-support",
3064 "frame-system",3076 "frame-system",
3065 "parity-scale-codec",3077 "parity-scale-codec 3.1.2",
3066 "scale-info",3078 "scale-info",
3067 "sp-core",3079 "sp-core",
3068 "sp-runtime",3080 "sp-runtime",
3074version = "4.0.0-dev"3086version = "4.0.0-dev"
3075source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"3087source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
3076dependencies = [3088dependencies = [
3077 "parity-scale-codec",3089 "parity-scale-codec 3.1.2",
3078 "sp-api",3090 "sp-api",
3079]3091]
30803092
3139source = "registry+https://github.com/rust-lang/crates.io-index"3151source = "registry+https://github.com/rust-lang/crates.io-index"
3140checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"3152checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
3153
3154[[package]]
3155name = "funty"
3156version = "1.1.0"
3157source = "registry+https://github.com/rust-lang/crates.io-index"
3158checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
31413159
3142[[package]]3160[[package]]
3143name = "funty"3161name = "funty"
3394 "http",3412 "http",
3395 "indexmap",3413 "indexmap",
3396 "slab",3414 "slab",
3397 "tokio 1.18.1",3415 "tokio 1.18.2",
3398 "tokio-util 0.7.1",3416 "tokio-util 0.7.2",
3399 "tracing",3417 "tracing",
3400]3418]
34013419
3402[[package]]3420[[package]]
3403name = "handlebars"3421name = "handlebars"
3404version = "4.2.2"3422version = "4.3.0"
3405source = "registry+https://github.com/rust-lang/crates.io-index"3423source = "registry+https://github.com/rust-lang/crates.io-index"
3406checksum = "99d6a30320f094710245150395bc763ad23128d6a1ebbad7594dc4164b62c56b"3424checksum = "d113a9853e5accd30f43003560b5563ffbb007e3f325e8b103fa0d0029c6e6df"
3407dependencies = [3425dependencies = [
3408 "log",3426 "log",
3409 "pest",3427 "pest",
3410 "pest_derive",3428 "pest_derive",
3411 "quick-error 2.0.1",
3412 "serde",3429 "serde",
3413 "serde_json",3430 "serde_json",
3431 "thiserror",
3414]3432]
34153433
3416[[package]]3434[[package]]
3538dependencies = [3556dependencies = [
3539 "bytes 1.1.0",3557 "bytes 1.1.0",
3540 "fnv",3558 "fnv",
3541 "itoa 1.0.1",3559 "itoa 1.0.2",
3542]3560]
35433561
3544[[package]]3562[[package]]
3585 "http-body",3603 "http-body",
3586 "httparse",3604 "httparse",
3587 "httpdate",3605 "httpdate",
3588 "itoa 1.0.1",3606 "itoa 1.0.2",
3589 "pin-project-lite 0.2.9",3607 "pin-project-lite 0.2.9",
3590 "socket2 0.4.4",3608 "socket2 0.4.4",
3591 "tokio 1.18.1",3609 "tokio 1.18.2",
3592 "tower-service",3610 "tower-service",
3593 "tracing",3611 "tracing",
3594 "want",3612 "want",
3606 "log",3624 "log",
3607 "rustls 0.19.1",3625 "rustls 0.19.1",
3608 "rustls-native-certs 0.5.0",3626 "rustls-native-certs 0.5.0",
3609 "tokio 1.18.1",3627 "tokio 1.18.2",
3610 "tokio-rustls 0.22.0",3628 "tokio-rustls 0.22.0",
3611 "webpki 0.21.4",3629 "webpki 0.21.4",
3612]3630]
3620 "http",3638 "http",
3621 "hyper",3639 "hyper",
3622 "log",3640 "log",
3623 "rustls 0.20.4",3641 "rustls 0.20.6",
3624 "rustls-native-certs 0.6.2",3642 "rustls-native-certs 0.6.2",
3625 "tokio 1.18.1",3643 "tokio 1.18.2",
3626 "tokio-rustls 0.23.4",3644 "tokio-rustls 0.23.4",
3627 "webpki-roots 0.22.3",3645 "webpki-roots 0.22.3",
3628]3646]
3698source = "registry+https://github.com/rust-lang/crates.io-index"3716source = "registry+https://github.com/rust-lang/crates.io-index"
3699checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f"3717checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f"
3700dependencies = [3718dependencies = [
3701 "parity-scale-codec",3719 "parity-scale-codec 3.1.2",
3702]3720]
37033721
3704[[package]]3722[[package]]
38213839
3822[[package]]3840[[package]]
3823name = "itoa"3841name = "itoa"
3824version = "1.0.1"3842version = "1.0.2"
3825source = "registry+https://github.com/rust-lang/crates.io-index"3843source = "registry+https://github.com/rust-lang/crates.io-index"
3826checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"3844checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
38273845
3828[[package]]3846[[package]]
3829name = "jobserver"3847name = "jobserver"
3954 "jsonrpc-core",3972 "jsonrpc-core",
3955 "lazy_static",3973 "lazy_static",
3956 "log",3974 "log",
3957 "tokio 1.18.1",3975 "tokio 1.18.2",
3958 "tokio-stream",3976 "tokio-stream",
3959 "tokio-util 0.6.9",3977 "tokio-util 0.6.10",
3960 "unicase",3978 "unicase",
3961]3979]
39623980
4002 "rustls-native-certs 0.6.2",4020 "rustls-native-certs 0.6.2",
4003 "soketto",4021 "soketto",
4004 "thiserror",4022 "thiserror",
4005 "tokio 1.18.1",4023 "tokio 1.18.2",
4006 "tokio-rustls 0.23.4",4024 "tokio-rustls 0.23.4",
4007 "tokio-util 0.7.1",4025 "tokio-util 0.7.2",
4008 "tracing",4026 "tracing",
4009 "webpki-roots 0.22.3",4027 "webpki-roots 0.22.3",
4010]4028]
4028 "serde_json",4046 "serde_json",
4029 "soketto",4047 "soketto",
4030 "thiserror",4048 "thiserror",
4031 "tokio 1.18.1",4049 "tokio 1.18.2",
4032 "tracing",4050 "tracing",
4033]4051]
40344052
4047 "serde",4065 "serde",
4048 "serde_json",4066 "serde_json",
4049 "thiserror",4067 "thiserror",
4050 "tokio 1.18.1",4068 "tokio 1.18.2",
4051 "tracing",4069 "tracing",
4052]4070]
40534071
4122source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"4140source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
4123dependencies = [4141dependencies = [
4124 "beefy-primitives",4142 "beefy-primitives",
4125 "bitvec",4143 "bitvec 1.0.0",
4126 "frame-benchmarking",4144 "frame-benchmarking",
4127 "frame-election-provider-support",4145 "frame-election-provider-support",
4128 "frame-executive",4146 "frame-executive",
4174 "pallet-vesting",4192 "pallet-vesting",
4175 "pallet-xcm",4193 "pallet-xcm",
4176 "pallet-xcm-benchmarks",4194 "pallet-xcm-benchmarks",
4177 "parity-scale-codec",4195 "parity-scale-codec 3.1.2",
4178 "polkadot-primitives",4196 "polkadot-primitives",
4179 "polkadot-runtime-common",4197 "polkadot-runtime-common",
4180 "polkadot-runtime-parachains",4198 "polkadot-runtime-parachains",
42814299
4282[[package]]4300[[package]]
4283name = "libc"4301name = "libc"
4284version = "0.2.125"4302version = "0.2.126"
4285source = "registry+https://github.com/rust-lang/crates.io-index"4303source = "registry+https://github.com/rust-lang/crates.io-index"
4286checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"4304checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
42874305
4288[[package]]4306[[package]]
4289name = "libloading"4307name = "libloading"
5126 "kernel32-sys",5144 "kernel32-sys",
5127 "libc",5145 "libc",
5128 "log",5146 "log",
5129 "miow 0.2.2",5147 "miow",
5130 "net2",5148 "net2",
5131 "slab",5149 "slab",
5132 "winapi 0.2.8",5150 "winapi 0.2.8",
5133]5151]
51345152
5135[[package]]5153[[package]]
5136name = "mio"5154name = "mio"
5137version = "0.8.2"5155version = "0.8.3"
5138source = "registry+https://github.com/rust-lang/crates.io-index"5156source = "registry+https://github.com/rust-lang/crates.io-index"
5139checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9"5157checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799"
5140dependencies = [5158dependencies = [
5141 "libc",5159 "libc",
5142 "log",5160 "log",
5143 "miow 0.3.7",
5144 "ntapi",
5145 "wasi 0.11.0+wasi-snapshot-preview1",5161 "wasi 0.11.0+wasi-snapshot-preview1",
5146 "winapi 0.3.9",5162 "windows-sys",
5147]5163]
51485164
5149[[package]]5165[[package]]
5170 "ws2_32-sys",5186 "ws2_32-sys",
5171]5187]
5172
5173[[package]]
5174name = "miow"
5175version = "0.3.7"
5176source = "registry+https://github.com/rust-lang/crates.io-index"
5177checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
5178dependencies = [
5179 "winapi 0.3.9",
5180]
51815188
5182[[package]]5189[[package]]
5183name = "more-asserts"5190name = "more-asserts"
5355 "minimal-lexical",5362 "minimal-lexical",
5356]5363]
5357
5358[[package]]
5359name = "ntapi"
5360version = "0.3.7"
5361source = "registry+https://github.com/rust-lang/crates.io-index"
5362checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
5363dependencies = [
5364 "winapi 0.3.9",
5365]
53665364
5367[[package]]5365[[package]]
5368name = "num-bigint"5366name = "num-bigint"
54605458
5461[[package]]5459[[package]]
5462name = "object"5460name = "object"
5463version = "0.28.3"5461version = "0.28.4"
5464source = "registry+https://github.com/rust-lang/crates.io-index"5462source = "registry+https://github.com/rust-lang/crates.io-index"
5465checksum = "40bec70ba014595f99f7aa110b84331ffe1ee9aece7fe6f387cc7e3ecda4d456"5463checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424"
5466dependencies = [5464dependencies = [
5467 "memchr",5465 "memchr",
5468]5466]
5525 "pallet-unq-scheduler",5523 "pallet-unq-scheduler",
5526 "pallet-xcm",5524 "pallet-xcm",
5527 "parachain-info",5525 "parachain-info",
5528 "parity-scale-codec",5526 "parity-scale-codec 3.1.2",
5529 "polkadot-parachain",5527 "polkadot-parachain",
5528 "rmrk-rpc",
5530 "scale-info",5529 "scale-info",
5531 "serde",5530 "serde",
5532 "smallvec",5531 "smallvec",
5609dependencies = [5608dependencies = [
5610 "frame-support",5609 "frame-support",
5611 "frame-system",5610 "frame-system",
5612 "parity-scale-codec",5611 "parity-scale-codec 3.1.2",
5613 "scale-info",5612 "scale-info",
5614 "serde",5613 "serde",
5615 "sp-io",5614 "sp-io",
56195618
5620[[package]]5619[[package]]
5621name = "os_str_bytes"5620name = "os_str_bytes"
5622version = "6.0.0"5621version = "6.0.1"
5623source = "registry+https://github.com/rust-lang/crates.io-index"5622source = "registry+https://github.com/rust-lang/crates.io-index"
5624checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"5623checksum = "029d8d0b2f198229de29dca79676f2738ff952edf3fde542eb8bf94d8c21b435"
56255624
5626[[package]]5625[[package]]
5627name = "owning_ref"5626name = "owning_ref"
5640 "frame-support",5639 "frame-support",
5641 "frame-system",5640 "frame-system",
5642 "pallet-timestamp",5641 "pallet-timestamp",
5643 "parity-scale-codec",5642 "parity-scale-codec 3.1.2",
5644 "scale-info",5643 "scale-info",
5645 "sp-application-crypto",5644 "sp-application-crypto",
5646 "sp-consensus-aura",5645 "sp-consensus-aura",
5656 "frame-support",5655 "frame-support",
5657 "frame-system",5656 "frame-system",
5658 "pallet-session",5657 "pallet-session",
5659 "parity-scale-codec",5658 "parity-scale-codec 3.1.2",
5660 "scale-info",5659 "scale-info",
5661 "sp-application-crypto",5660 "sp-application-crypto",
5662 "sp-authority-discovery",5661 "sp-authority-discovery",
5672 "frame-support",5671 "frame-support",
5673 "frame-system",5672 "frame-system",
5674 "impl-trait-for-tuples",5673 "impl-trait-for-tuples",
5675 "parity-scale-codec",5674 "parity-scale-codec 3.1.2",
5676 "scale-info",5675 "scale-info",
5677 "sp-authorship",5676 "sp-authorship",
5678 "sp-runtime",5677 "sp-runtime",
5691 "pallet-authorship",5690 "pallet-authorship",
5692 "pallet-session",5691 "pallet-session",
5693 "pallet-timestamp",5692 "pallet-timestamp",
5694 "parity-scale-codec",5693 "parity-scale-codec 3.1.2",
5695 "scale-info",5694 "scale-info",
5696 "sp-application-crypto",5695 "sp-application-crypto",
5697 "sp-consensus-babe",5696 "sp-consensus-babe",
5714 "frame-system",5713 "frame-system",
5715 "log",5714 "log",
5716 "pallet-balances",5715 "pallet-balances",
5717 "parity-scale-codec",5716 "parity-scale-codec 3.1.2",
5718 "scale-info",5717 "scale-info",
5719 "sp-core",5718 "sp-core",
5720 "sp-io",5719 "sp-io",
5732 "frame-support",5731 "frame-support",
5733 "frame-system",5732 "frame-system",
5734 "log",5733 "log",
5735 "parity-scale-codec",5734 "parity-scale-codec 3.1.2",
5736 "scale-info",5735 "scale-info",
5737 "sp-runtime",5736 "sp-runtime",
5738 "sp-std",5737 "sp-std",
5746 "fp-evm",5745 "fp-evm",
5747 "frame-support",5746 "frame-support",
5748 "frame-system",5747 "frame-system",
5749 "parity-scale-codec",5748 "parity-scale-codec 3.1.2",
5750 "scale-info",5749 "scale-info",
5751 "serde",5750 "serde",
5752 "sp-core",5751 "sp-core",
5762 "frame-support",5761 "frame-support",
5763 "frame-system",5762 "frame-system",
5764 "pallet-session",5763 "pallet-session",
5765 "parity-scale-codec",5764 "parity-scale-codec 3.1.2",
5766 "scale-info",5765 "scale-info",
5767 "serde",5766 "serde",
5768 "sp-runtime",5767 "sp-runtime",
5784 "pallet-beefy",5783 "pallet-beefy",
5785 "pallet-mmr",5784 "pallet-mmr",
5786 "pallet-session",5785 "pallet-session",
5787 "parity-scale-codec",5786 "parity-scale-codec 3.1.2",
5788 "scale-info",5787 "scale-info",
5789 "serde",5788 "serde",
5790 "sp-core",5789 "sp-core",
5803 "frame-system",5802 "frame-system",
5804 "log",5803 "log",
5805 "pallet-treasury",5804 "pallet-treasury",
5806 "parity-scale-codec",5805 "parity-scale-codec 3.1.2",
5807 "scale-info",5806 "scale-info",
5808 "sp-core",5807 "sp-core",
5809 "sp-io",5808 "sp-io",
5821 "frame-support",5820 "frame-support",
5822 "frame-system",5821 "frame-system",
5823 "log",5822 "log",
5824 "parity-scale-codec",5823 "parity-scale-codec 3.1.2",
5825 "scale-info",5824 "scale-info",
5826 "sp-core",5825 "sp-core",
5827 "sp-runtime",5826 "sp-runtime",
5841 "frame-system",5840 "frame-system",
5842 "log",5841 "log",
5843 "num-traits",5842 "num-traits",
5844 "parity-scale-codec",5843 "parity-scale-codec 3.1.2",
5845 "scale-info",5844 "scale-info",
5846 "serde",5845 "serde",
5847 "sp-finality-grandpa",5846 "sp-finality-grandpa",
5855version = "0.1.0"5854version = "0.1.0"
5856source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"5855source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
5857dependencies = [5856dependencies = [
5858 "bitvec",5857 "bitvec 1.0.0",
5859 "bp-message-dispatch",5858 "bp-message-dispatch",
5860 "bp-messages",5859 "bp-messages",
5861 "bp-runtime",5860 "bp-runtime",
5862 "frame-support",5861 "frame-support",
5863 "frame-system",5862 "frame-system",
5864 "log",5863 "log",
5865 "num-traits",5864 "num-traits",
5866 "parity-scale-codec",5865 "parity-scale-codec 3.1.2",
5867 "scale-info",5866 "scale-info",
5868 "serde",5867 "serde",
5869 "sp-core",5868 "sp-core",
5882 "log",5881 "log",
5883 "pallet-bounties",5882 "pallet-bounties",
5884 "pallet-treasury",5883 "pallet-treasury",
5885 "parity-scale-codec",5884 "parity-scale-codec 3.1.2",
5886 "scale-info",5885 "scale-info",
5887 "sp-core",5886 "sp-core",
5888 "sp-io",5887 "sp-io",
5899 "frame-support",5898 "frame-support",
5900 "frame-system",5899 "frame-system",
5901 "log",5900 "log",
5902 "parity-scale-codec",5901 "parity-scale-codec 3.1.2",
5903 "scale-info",5902 "scale-info",
5904 "sp-core",5903 "sp-core",
5905 "sp-io",5904 "sp-io",
5917 "frame-system",5916 "frame-system",
5918 "pallet-evm",5917 "pallet-evm",
5919 "pallet-evm-coder-substrate",5918 "pallet-evm-coder-substrate",
5920 "parity-scale-codec",5919 "parity-scale-codec 3.1.2",
5920 "rmrk-types",
5921 "scale-info",5921 "scale-info",
5922 "serde",5922 "serde",
5923 "sp-core",5923 "sp-core",
5934 "frame-benchmarking",5934 "frame-benchmarking",
5935 "frame-support",5935 "frame-support",
5936 "frame-system",5936 "frame-system",
5937 "parity-scale-codec",5937 "parity-scale-codec 3.1.2",
5938 "scale-info",5938 "scale-info",
5939 "serde",5939 "serde",
5940 "sp-io",5940 "sp-io",
5952 "frame-support",5952 "frame-support",
5953 "frame-system",5953 "frame-system",
5954 "log",5954 "log",
5955 "parity-scale-codec",5955 "parity-scale-codec 3.1.2",
5956 "rand 0.7.3",5956 "rand 0.7.3",
5957 "scale-info",5957 "scale-info",
5958 "sp-arithmetic",5958 "sp-arithmetic",
5973 "frame-benchmarking",5973 "frame-benchmarking",
5974 "frame-election-provider-support",5974 "frame-election-provider-support",
5975 "frame-system",5975 "frame-system",
5976 "parity-scale-codec",5976 "parity-scale-codec 3.1.2",
5977 "sp-npos-elections",5977 "sp-npos-elections",
5978 "sp-runtime",5978 "sp-runtime",
5979]5979]
5987 "frame-support",5987 "frame-support",
5988 "frame-system",5988 "frame-system",
5989 "log",5989 "log",
5990 "parity-scale-codec",5990 "parity-scale-codec 3.1.2",
5991 "scale-info",5991 "scale-info",
5992 "sp-core",5992 "sp-core",
5993 "sp-io",5993 "sp-io",
6016 "pallet-balances",6016 "pallet-balances",
6017 "pallet-evm",6017 "pallet-evm",
6018 "pallet-timestamp",6018 "pallet-timestamp",
6019 "parity-scale-codec",6019 "parity-scale-codec 3.1.2",
6020 "rlp",6020 "rlp",
6021 "scale-info",6021 "scale-info",
6022 "serde",6022 "serde",
6042 "log",6042 "log",
6043 "pallet-balances",6043 "pallet-balances",
6044 "pallet-timestamp",6044 "pallet-timestamp",
6045 "parity-scale-codec",6045 "parity-scale-codec 3.1.2",
6046 "primitive-types",6046 "primitive-types",
6047 "rlp",6047 "rlp",
6048 "scale-info",6048 "scale-info",
6065 "frame-system",6065 "frame-system",
6066 "pallet-ethereum",6066 "pallet-ethereum",
6067 "pallet-evm",6067 "pallet-evm",
6068 "parity-scale-codec",6068 "parity-scale-codec 3.1.2",
6069 "scale-info",6069 "scale-info",
6070 "sp-core",6070 "sp-core",
6071 "sp-std",6071 "sp-std",
6083 "log",6083 "log",
6084 "pallet-evm",6084 "pallet-evm",
6085 "pallet-evm-coder-substrate",6085 "pallet-evm-coder-substrate",
6086 "parity-scale-codec",6086 "parity-scale-codec 3.1.2",
6087 "scale-info",6087 "scale-info",
6088 "sp-core",6088 "sp-core",
6089 "sp-runtime",6089 "sp-runtime",
6100 "frame-support",6100 "frame-support",
6101 "frame-system",6101 "frame-system",
6102 "pallet-evm",6102 "pallet-evm",
6103 "parity-scale-codec",6103 "parity-scale-codec 3.1.2",
6104 "scale-info",6104 "scale-info",
6105 "sp-core",6105 "sp-core",
6106 "sp-io",6106 "sp-io",
6118 "frame-system",6118 "frame-system",
6119 "pallet-ethereum",6119 "pallet-ethereum",
6120 "pallet-evm",6120 "pallet-evm",
6121 "parity-scale-codec",6121 "parity-scale-codec 3.1.2",
6122 "scale-info",6122 "scale-info",
6123 "sp-core",6123 "sp-core",
6124 "sp-io",6124 "sp-io",
6140 "pallet-evm",6140 "pallet-evm",
6141 "pallet-evm-coder-substrate",6141 "pallet-evm-coder-substrate",
6142 "pallet-structure",6142 "pallet-structure",
6143 "parity-scale-codec",6143 "parity-scale-codec 3.1.2",
6144 "scale-info",6144 "scale-info",
6145 "sp-core",6145 "sp-core",
6146 "sp-runtime",6146 "sp-runtime",
6156 "frame-benchmarking",6156 "frame-benchmarking",
6157 "frame-support",6157 "frame-support",
6158 "frame-system",6158 "frame-system",
6159 "parity-scale-codec",6159 "parity-scale-codec 3.1.2",
6160 "scale-info",6160 "scale-info",
6161 "sp-arithmetic",6161 "sp-arithmetic",
6162 "sp-runtime",6162 "sp-runtime",
6174 "log",6174 "log",
6175 "pallet-authorship",6175 "pallet-authorship",
6176 "pallet-session",6176 "pallet-session",
6177 "parity-scale-codec",6177 "parity-scale-codec 3.1.2",
6178 "scale-info",6178 "scale-info",
6179 "sp-application-crypto",6179 "sp-application-crypto",
6180 "sp-core",6180 "sp-core",
6195 "frame-benchmarking",6195 "frame-benchmarking",
6196 "frame-support",6196 "frame-support",
6197 "frame-system",6197 "frame-system",
6198 "parity-scale-codec",6198 "parity-scale-codec 3.1.2",
6199 "scale-info",6199 "scale-info",
6200 "sp-io",6200 "sp-io",
6201 "sp-runtime",6201 "sp-runtime",
6212 "frame-system",6212 "frame-system",
6213 "log",6213 "log",
6214 "pallet-authorship",6214 "pallet-authorship",
6215 "parity-scale-codec",6215 "parity-scale-codec 3.1.2",
6216 "scale-info",6216 "scale-info",
6217 "sp-application-crypto",6217 "sp-application-crypto",
6218 "sp-core",6218 "sp-core",
6230 "frame-benchmarking",6230 "frame-benchmarking",
6231 "frame-support",6231 "frame-support",
6232 "frame-system",6232 "frame-system",
6233 "parity-scale-codec",6233 "parity-scale-codec 3.1.2",
6234 "scale-info",6234 "scale-info",
6235 "sp-core",6235 "sp-core",
6236 "sp-io",6236 "sp-io",
6249 "pallet-balances",6249 "pallet-balances",
6250 "pallet-randomness-collective-flip",6250 "pallet-randomness-collective-flip",
6251 "pallet-timestamp",6251 "pallet-timestamp",
6252 "parity-scale-codec",6252 "parity-scale-codec 3.1.2",
6253 "scale-info",6253 "scale-info",
6254 "serde",6254 "serde",
6255 "sp-core",6255 "sp-core",
6267 "frame-support",6267 "frame-support",
6268 "frame-system",6268 "frame-system",
6269 "log",6269 "log",
6270 "parity-scale-codec",6270 "parity-scale-codec 3.1.2",
6271 "scale-info",6271 "scale-info",
6272 "sp-core",6272 "sp-core",
6273 "sp-io",6273 "sp-io",
6284 "frame-benchmarking",6284 "frame-benchmarking",
6285 "frame-support",6285 "frame-support",
6286 "frame-system",6286 "frame-system",
6287 "parity-scale-codec",6287 "parity-scale-codec 3.1.2",
6288 "scale-info",6288 "scale-info",
6289 "sp-core",6289 "sp-core",
6290 "sp-io",6290 "sp-io",
6301 "jsonrpc-core",6301 "jsonrpc-core",
6302 "jsonrpc-core-client",6302 "jsonrpc-core-client",
6303 "jsonrpc-derive",6303 "jsonrpc-derive",
6304 "parity-scale-codec",6304 "parity-scale-codec 3.1.2",
6305 "serde",6305 "serde",
6306 "sp-api",6306 "sp-api",
6307 "sp-blockchain",6307 "sp-blockchain",
6318 "frame-benchmarking",6318 "frame-benchmarking",
6319 "frame-support",6319 "frame-support",
6320 "frame-system",6320 "frame-system",
6321 "parity-scale-codec",6321 "parity-scale-codec 3.1.2",
6322 "scale-info",6322 "scale-info",
6323 "sp-io",6323 "sp-io",
6324 "sp-runtime",6324 "sp-runtime",
6332dependencies = [6332dependencies = [
6333 "frame-support",6333 "frame-support",
6334 "frame-system",6334 "frame-system",
6335 "parity-scale-codec",6335 "parity-scale-codec 3.1.2",
6336 "scale-info",6336 "scale-info",
6337 "sp-io",6337 "sp-io",
6338 "sp-runtime",6338 "sp-runtime",
6346dependencies = [6346dependencies = [
6347 "frame-support",6347 "frame-support",
6348 "frame-system",6348 "frame-system",
6349 "parity-scale-codec",6349 "parity-scale-codec 3.1.2",
6350 "scale-info",6350 "scale-info",
6351 "sp-core",6351 "sp-core",
6352 "sp-runtime",6352 "sp-runtime",
6366 "pallet-bags-list",6366 "pallet-bags-list",
6367 "pallet-nomination-pools",6367 "pallet-nomination-pools",
6368 "pallet-staking",6368 "pallet-staking",
6369 "parity-scale-codec",6369 "parity-scale-codec 3.1.2",
6370 "scale-info",6370 "scale-info",
6371 "sp-runtime",6371 "sp-runtime",
6372 "sp-staking",6372 "sp-staking",
6386 "pallet-evm",6386 "pallet-evm",
6387 "pallet-evm-coder-substrate",6387 "pallet-evm-coder-substrate",
6388 "pallet-structure",6388 "pallet-structure",
6389 "parity-scale-codec",6389 "parity-scale-codec 3.1.2",
6390 "scale-info",6390 "scale-info",
6391 "sp-core",6391 "sp-core",
6392 "sp-runtime",6392 "sp-runtime",
6393 "sp-std",6393 "sp-std",
6394 "struct-versioning",
6394 "up-data-structs",6395 "up-data-structs",
6395]6396]
63966397
6403 "frame-system",6404 "frame-system",
6404 "log",6405 "log",
6405 "pallet-balances",6406 "pallet-balances",
6406 "parity-scale-codec",6407 "parity-scale-codec 3.1.2",
6407 "scale-info",6408 "scale-info",
6408 "serde",6409 "serde",
6409 "sp-runtime",6410 "sp-runtime",
6427 "pallet-offences",6428 "pallet-offences",
6428 "pallet-session",6429 "pallet-session",
6429 "pallet-staking",6430 "pallet-staking",
6430 "parity-scale-codec",6431 "parity-scale-codec 3.1.2",
6431 "scale-info",6432 "scale-info",
6432 "sp-runtime",6433 "sp-runtime",
6433 "sp-staking",6434 "sp-staking",
6442 "frame-benchmarking",6443 "frame-benchmarking",
6443 "frame-support",6444 "frame-support",
6444 "frame-system",6445 "frame-system",
6445 "parity-scale-codec",6446 "parity-scale-codec 3.1.2",
6446 "scale-info",6447 "scale-info",
6447 "sp-core",6448 "sp-core",
6448 "sp-io",6449 "sp-io",
6458 "frame-benchmarking",6459 "frame-benchmarking",
6459 "frame-support",6460 "frame-support",
6460 "frame-system",6461 "frame-system",
6461 "parity-scale-codec",6462 "parity-scale-codec 3.1.2",
6462 "scale-info",6463 "scale-info",
6463 "sp-io",6464 "sp-io",
6464 "sp-runtime",6465 "sp-runtime",
6472dependencies = [6473dependencies = [
6473 "frame-support",6474 "frame-support",
6474 "frame-system",6475 "frame-system",
6475 "parity-scale-codec",6476 "parity-scale-codec 3.1.2",
6476 "safe-mix",6477 "safe-mix",
6477 "scale-info",6478 "scale-info",
6478 "sp-runtime",6479 "sp-runtime",
6486dependencies = [6487dependencies = [
6487 "frame-support",6488 "frame-support",
6488 "frame-system",6489 "frame-system",
6489 "parity-scale-codec",6490 "parity-scale-codec 3.1.2",
6490 "scale-info",6491 "scale-info",
6491 "sp-io",6492 "sp-io",
6492 "sp-runtime",6493 "sp-runtime",
6503 "pallet-common",6504 "pallet-common",
6504 "pallet-evm",6505 "pallet-evm",
6505 "pallet-structure",6506 "pallet-structure",
6506 "parity-scale-codec",6507 "parity-scale-codec 3.1.2",
6507 "scale-info",6508 "scale-info",
6508 "sp-core",6509 "sp-core",
6509 "sp-runtime",6510 "sp-runtime",
6510 "sp-std",6511 "sp-std",
6512 "struct-versioning",
6511 "up-data-structs",6513 "up-data-structs",
6512]6514]
65136515
6520 "frame-support",6522 "frame-support",
6521 "frame-system",6523 "frame-system",
6522 "log",6524 "log",
6523 "parity-scale-codec",6525 "parity-scale-codec 3.1.2",
6524 "scale-info",6526 "scale-info",
6525 "sp-io",6527 "sp-io",
6526 "sp-runtime",6528 "sp-runtime",
6537 "impl-trait-for-tuples",6539 "impl-trait-for-tuples",
6538 "log",6540 "log",
6539 "pallet-timestamp",6541 "pallet-timestamp",
6540 "parity-scale-codec",6542 "parity-scale-codec 3.1.2",
6541 "scale-info",6543 "scale-info",
6542 "sp-core",6544 "sp-core",
6543 "sp-io",6545 "sp-io",
6571dependencies = [6573dependencies = [
6572 "frame-support",6574 "frame-support",
6573 "frame-system",6575 "frame-system",
6574 "parity-scale-codec",6576 "parity-scale-codec 3.1.2",
6575 "rand_chacha 0.2.2",6577 "rand_chacha 0.2.2",
6576 "scale-info",6578 "scale-info",
6577 "sp-runtime",6579 "sp-runtime",
6590 "log",6592 "log",
6591 "pallet-authorship",6593 "pallet-authorship",
6592 "pallet-session",6594 "pallet-session",
6593 "parity-scale-codec",6595 "parity-scale-codec 3.1.2",
6594 "rand_chacha 0.2.2",6596 "rand_chacha 0.2.2",
6595 "scale-info",6597 "scale-info",
6596 "serde",6598 "serde",
6629 "frame-support",6631 "frame-support",
6630 "frame-system",6632 "frame-system",
6631 "pallet-common",6633 "pallet-common",
6632 "parity-scale-codec",6634 "parity-scale-codec 3.1.2",
6633 "scale-info",6635 "scale-info",
6634 "sp-std",6636 "sp-std",
6635 "up-data-structs",6637 "up-data-structs",
6642dependencies = [6644dependencies = [
6643 "frame-support",6645 "frame-support",
6644 "frame-system",6646 "frame-system",
6645 "parity-scale-codec",6647 "parity-scale-codec 3.1.2",
6646 "scale-info",6648 "scale-info",
6647 "sp-io",6649 "sp-io",
6648 "sp-runtime",6650 "sp-runtime",
6659 "frame-system",6661 "frame-system",
6660 "pallet-balances",6662 "pallet-balances",
6661 "pallet-transaction-payment",6663 "pallet-transaction-payment",
6662 "parity-scale-codec",6664 "parity-scale-codec 3.1.2",
6663 "scale-info",6665 "scale-info",
6664 "serde",6666 "serde",
6665 "sp-core",6667 "sp-core",
6678 "frame-support",6680 "frame-support",
6679 "frame-system",6681 "frame-system",
6680 "log",6682 "log",
6681 "parity-scale-codec",6683 "parity-scale-codec 3.1.2",
6682 "scale-info",6684 "scale-info",
6683 "sp-inherents",6685 "sp-inherents",
6684 "sp-io",6686 "sp-io",
6697 "frame-system",6699 "frame-system",
6698 "log",6700 "log",
6699 "pallet-treasury",6701 "pallet-treasury",
6700 "parity-scale-codec",6702 "parity-scale-codec 3.1.2",
6701 "scale-info",6703 "scale-info",
6702 "serde",6704 "serde",
6703 "sp-core",6705 "sp-core",
6713dependencies = [6715dependencies = [
6714 "frame-support",6716 "frame-support",
6715 "frame-system",6717 "frame-system",
6716 "parity-scale-codec",6718 "parity-scale-codec 3.1.2",
6717 "scale-info",6719 "scale-info",
6718 "serde",6720 "serde",
6719 "smallvec",6721 "smallvec",
6732 "jsonrpc-core-client",6734 "jsonrpc-core-client",
6733 "jsonrpc-derive",6735 "jsonrpc-derive",
6734 "pallet-transaction-payment-rpc-runtime-api",6736 "pallet-transaction-payment-rpc-runtime-api",
6735 "parity-scale-codec",6737 "parity-scale-codec 3.1.2",
6736 "sp-api",6738 "sp-api",
6737 "sp-blockchain",6739 "sp-blockchain",
6738 "sp-core",6740 "sp-core",
6746source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"6748source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
6747dependencies = [6749dependencies = [
6748 "pallet-transaction-payment",6750 "pallet-transaction-payment",
6749 "parity-scale-codec",6751 "parity-scale-codec 3.1.2",
6750 "sp-api",6752 "sp-api",
6751 "sp-runtime",6753 "sp-runtime",
6752]6754]
6761 "frame-system",6763 "frame-system",
6762 "impl-trait-for-tuples",6764 "impl-trait-for-tuples",
6763 "pallet-balances",6765 "pallet-balances",
6764 "parity-scale-codec",6766 "parity-scale-codec 3.1.2",
6765 "scale-info",6767 "scale-info",
6766 "serde",6768 "serde",
6767 "sp-runtime",6769 "sp-runtime",
6777 "frame-system",6779 "frame-system",
6778 "pallet-common",6780 "pallet-common",
6779 "pallet-evm",6781 "pallet-evm",
6780 "parity-scale-codec",6782 "parity-scale-codec 3.1.2",
6781 "scale-info",6783 "scale-info",
6782 "sp-core",6784 "sp-core",
6783 "sp-io",6785 "sp-io",
6794 "frame-support",6796 "frame-support",
6795 "frame-system",6797 "frame-system",
6796 "log",6798 "log",
6797 "parity-scale-codec",6799 "parity-scale-codec 3.1.2",
6798 "scale-info",6800 "scale-info",
6799 "serde",6801 "serde",
6800 "sp-core",6802 "sp-core",
6813 "frame-benchmarking",6815 "frame-benchmarking",
6814 "frame-support",6816 "frame-support",
6815 "frame-system",6817 "frame-system",
6816 "parity-scale-codec",6818 "parity-scale-codec 3.1.2",
6817 "scale-info",6819 "scale-info",
6818 "sp-core",6820 "sp-core",
6819 "sp-io",6821 "sp-io",
6830 "frame-support",6832 "frame-support",
6831 "frame-system",6833 "frame-system",
6832 "log",6834 "log",
6833 "parity-scale-codec",6835 "parity-scale-codec 3.1.2",
6834 "scale-info",6836 "scale-info",
6835 "sp-runtime",6837 "sp-runtime",
6836 "sp-std",6838 "sp-std",
6844 "frame-support",6846 "frame-support",
6845 "frame-system",6847 "frame-system",
6846 "log",6848 "log",
6847 "parity-scale-codec",6849 "parity-scale-codec 3.1.2",
6848 "scale-info",6850 "scale-info",
6849 "serde",6851 "serde",
6850 "sp-core",6852 "sp-core",
6863 "frame-support",6865 "frame-support",
6864 "frame-system",6866 "frame-system",
6865 "log",6867 "log",
6866 "parity-scale-codec",6868 "parity-scale-codec 3.1.2",
6867 "scale-info",6869 "scale-info",
6868 "sp-runtime",6870 "sp-runtime",
6869 "sp-std",6871 "sp-std",
6879 "cumulus-primitives-core",6881 "cumulus-primitives-core",
6880 "frame-support",6882 "frame-support",
6881 "frame-system",6883 "frame-system",
6882 "parity-scale-codec",6884 "parity-scale-codec 3.1.2",
6883 "scale-info",6885 "scale-info",
6884 "serde",6886 "serde",
6885]6887]
68866888
6887[[package]]6889[[package]]
6888name = "parity-db"6890name = "parity-db"
6889version = "0.3.12"6891version = "0.3.13"
6890source = "registry+https://github.com/rust-lang/crates.io-index"6892source = "registry+https://github.com/rust-lang/crates.io-index"
6891checksum = "6e73cd0b0a78045276b19eaae8eaaa20e44a1da9a0217ff934a810d9492ae701"6893checksum = "55a7901b85874402471e131de3332dde0e51f38432c69a3853627c8e25433048"
6892dependencies = [6894dependencies = [
6893 "blake2-rfc",6895 "blake2-rfc",
6894 "crc32fast",6896 "crc32fast",
6903 "snap",6905 "snap",
6904]6906]
6907
6908[[package]]
6909name = "parity-scale-codec"
6910version = "2.3.1"
6911source = "registry+https://github.com/rust-lang/crates.io-index"
6912checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909"
6913dependencies = [
6914 "arrayvec 0.7.2",
6915 "bitvec 0.20.4",
6916 "byte-slice-cast",
6917 "impl-trait-for-tuples",
6918 "parity-scale-codec-derive 2.3.1",
6919 "serde",
6920]
69056921
6906[[package]]6922[[package]]
6907name = "parity-scale-codec"6923name = "parity-scale-codec"
6910checksum = "e8b44461635bbb1a0300f100a841e571e7d919c81c73075ef5d152ffdb521066"6926checksum = "e8b44461635bbb1a0300f100a841e571e7d919c81c73075ef5d152ffdb521066"
6911dependencies = [6927dependencies = [
6912 "arrayvec 0.7.2",6928 "arrayvec 0.7.2",
6913 "bitvec",6929 "bitvec 1.0.0",
6914 "byte-slice-cast",6930 "byte-slice-cast",
6915 "impl-trait-for-tuples",6931 "impl-trait-for-tuples",
6916 "parity-scale-codec-derive",6932 "parity-scale-codec-derive 3.1.2",
6917 "serde",6933 "serde",
6918]6934]
6935
6936[[package]]
6937name = "parity-scale-codec-derive"
6938version = "2.3.1"
6939source = "registry+https://github.com/rust-lang/crates.io-index"
6940checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27"
6941dependencies = [
6942 "proc-macro-crate 1.1.3",
6943 "proc-macro2",
6944 "quote",
6945 "syn",
6946]
69196947
6920[[package]]6948[[package]]
6921name = "parity-scale-codec-derive"6949name = "parity-scale-codec-derive"
6945 "libc",6973 "libc",
6946 "log",6974 "log",
6947 "rand 0.7.3",6975 "rand 0.7.3",
6948 "tokio 1.18.1",6976 "tokio 1.18.2",
6949 "winapi 0.3.9",6977 "winapi 0.3.9",
6950]6978]
69516979
7278 "fatality",7306 "fatality",
7279 "futures 0.3.21",7307 "futures 0.3.21",
7280 "lru 0.7.5",7308 "lru 0.7.5",
7281 "parity-scale-codec",7309 "parity-scale-codec 3.1.2",
7282 "polkadot-erasure-coding",7310 "polkadot-erasure-coding",
7283 "polkadot-node-network-protocol",7311 "polkadot-node-network-protocol",
7284 "polkadot-node-primitives",7312 "polkadot-node-primitives",
7300 "fatality",7328 "fatality",
7301 "futures 0.3.21",7329 "futures 0.3.21",
7302 "lru 0.7.5",7330 "lru 0.7.5",
7303 "parity-scale-codec",7331 "parity-scale-codec 3.1.2",
7304 "polkadot-erasure-coding",7332 "polkadot-erasure-coding",
7305 "polkadot-node-network-protocol",7333 "polkadot-node-network-protocol",
7306 "polkadot-node-primitives",7334 "polkadot-node-primitives",
7403version = "0.9.21"7431version = "0.9.21"
7404source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"7432source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
7405dependencies = [7433dependencies = [
7406 "parity-scale-codec",7434 "parity-scale-codec 3.1.2",
7407 "parity-util-mem",7435 "parity-util-mem",
7408 "scale-info",7436 "scale-info",
7409 "sp-core",7437 "sp-core",
7420 "fatality",7448 "fatality",
7421 "futures 0.3.21",7449 "futures 0.3.21",
7422 "lru 0.7.5",7450 "lru 0.7.5",
7423 "parity-scale-codec",7451 "parity-scale-codec 3.1.2",
7424 "polkadot-erasure-coding",7452 "polkadot-erasure-coding",
7425 "polkadot-node-network-protocol",7453 "polkadot-node-network-protocol",
7426 "polkadot-node-primitives",7454 "polkadot-node-primitives",
7439version = "0.9.21"7467version = "0.9.21"
7440source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"7468source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
7441dependencies = [7469dependencies = [
7442 "parity-scale-codec",7470 "parity-scale-codec 3.1.2",
7443 "polkadot-node-primitives",7471 "polkadot-node-primitives",
7444 "polkadot-primitives",7472 "polkadot-primitives",
7445 "reed-solomon-novelpoly",7473 "reed-solomon-novelpoly",
7475dependencies = [7503dependencies = [
7476 "async-trait",7504 "async-trait",
7477 "futures 0.3.21",7505 "futures 0.3.21",
7478 "parity-scale-codec",7506 "parity-scale-codec 3.1.2",
7479 "parking_lot 0.12.0",7507 "parking_lot 0.12.0",
7480 "polkadot-node-network-protocol",7508 "polkadot-node-network-protocol",
7481 "polkadot-node-subsystem",7509 "polkadot-node-subsystem",
7493source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"7521source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
7494dependencies = [7522dependencies = [
7495 "futures 0.3.21",7523 "futures 0.3.21",
7496 "parity-scale-codec",7524 "parity-scale-codec 3.1.2",
7497 "polkadot-erasure-coding",7525 "polkadot-erasure-coding",
7498 "polkadot-node-primitives",7526 "polkadot-node-primitives",
7499 "polkadot-node-subsystem",7527 "polkadot-node-subsystem",
7510version = "0.9.21"7538version = "0.9.21"
7511source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"7539source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
7512dependencies = [7540dependencies = [
7513 "bitvec",7541 "bitvec 1.0.0",
7514 "derive_more",7542 "derive_more",
7515 "futures 0.3.21",7543 "futures 0.3.21",
7516 "futures-timer",7544 "futures-timer",
7517 "kvdb",7545 "kvdb",
7518 "lru 0.7.5",7546 "lru 0.7.5",
7519 "merlin",7547 "merlin",
7520 "parity-scale-codec",7548 "parity-scale-codec 3.1.2",
7521 "polkadot-node-jaeger",7549 "polkadot-node-jaeger",
7522 "polkadot-node-primitives",7550 "polkadot-node-primitives",
7523 "polkadot-node-subsystem",7551 "polkadot-node-subsystem",
7539version = "0.9.21"7567version = "0.9.21"
7540source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"7568source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
7541dependencies = [7569dependencies = [
7542 "bitvec",7570 "bitvec 1.0.0",
7543 "futures 0.3.21",7571 "futures 0.3.21",
7544 "futures-timer",7572 "futures-timer",
7545 "kvdb",7573 "kvdb",
7546 "parity-scale-codec",7574 "parity-scale-codec 3.1.2",
7547 "polkadot-erasure-coding",7575 "polkadot-erasure-coding",
7548 "polkadot-node-primitives",7576 "polkadot-node-primitives",
7549 "polkadot-node-subsystem",7577 "polkadot-node-subsystem",
7559version = "0.9.21"7587version = "0.9.21"
7560source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"7588source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
7561dependencies = [7589dependencies = [
7562 "bitvec",7590 "bitvec 1.0.0",
7563 "futures 0.3.21",7591 "futures 0.3.21",
7564 "polkadot-erasure-coding",7592 "polkadot-erasure-coding",
7565 "polkadot-node-primitives",7593 "polkadot-node-primitives",
7594dependencies = [7622dependencies = [
7595 "async-trait",7623 "async-trait",
7596 "futures 0.3.21",7624 "futures 0.3.21",
7597 "parity-scale-codec",7625 "parity-scale-codec 3.1.2",
7598 "polkadot-node-core-pvf",7626 "polkadot-node-core-pvf",
7599 "polkadot-node-primitives",7627 "polkadot-node-primitives",
7600 "polkadot-node-subsystem",7628 "polkadot-node-subsystem",
7628 "futures 0.3.21",7656 "futures 0.3.21",
7629 "futures-timer",7657 "futures-timer",
7630 "kvdb",7658 "kvdb",
7631 "parity-scale-codec",7659 "parity-scale-codec 3.1.2",
7632 "polkadot-node-primitives",7660 "polkadot-node-primitives",
7633 "polkadot-node-subsystem",7661 "polkadot-node-subsystem",
7634 "polkadot-node-subsystem-util",7662 "polkadot-node-subsystem-util",
7646 "futures 0.3.21",7674 "futures 0.3.21",
7647 "kvdb",7675 "kvdb",
7648 "lru 0.7.5",7676 "lru 0.7.5",
7649 "parity-scale-codec",7677 "parity-scale-codec 3.1.2",
7650 "polkadot-node-primitives",7678 "polkadot-node-primitives",
7651 "polkadot-node-subsystem",7679 "polkadot-node-subsystem",
7652 "polkadot-node-subsystem-util",7680 "polkadot-node-subsystem-util",
7678version = "0.9.21"7706version = "0.9.21"
7679source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"7707source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
7680dependencies = [7708dependencies = [
7681 "bitvec",7709 "bitvec 1.0.0",
7682 "futures 0.3.21",7710 "futures 0.3.21",
7683 "futures-timer",7711 "futures-timer",
7684 "polkadot-node-primitives",7712 "polkadot-node-primitives",
7701 "async-std",7729 "async-std",
7702 "futures 0.3.21",7730 "futures 0.3.21",
7703 "futures-timer",7731 "futures-timer",
7704 "parity-scale-codec",7732 "parity-scale-codec 3.1.2",
7705 "pin-project 1.0.10",7733 "pin-project 1.0.10",
7706 "polkadot-core-primitives",7734 "polkadot-core-primitives",
7707 "polkadot-node-subsystem-util",7735 "polkadot-node-subsystem-util",
7763 "lazy_static",7791 "lazy_static",
7764 "log",7792 "log",
7765 "mick-jaeger",7793 "mick-jaeger",
7766 "parity-scale-codec",7794 "parity-scale-codec 3.1.2",
7767 "parking_lot 0.12.0",7795 "parking_lot 0.12.0",
7768 "polkadot-node-primitives",7796 "polkadot-node-primitives",
7769 "polkadot-primitives",7797 "polkadot-primitives",
7782 "futures-timer",7810 "futures-timer",
7783 "log",7811 "log",
7784 "metered-channel",7812 "metered-channel",
7785 "parity-scale-codec",7813 "parity-scale-codec 3.1.2",
7786 "polkadot-primitives",7814 "polkadot-primitives",
7787 "sc-cli",7815 "sc-cli",
7788 "sc-service",7816 "sc-service",
7799 "async-trait",7827 "async-trait",
7800 "fatality",7828 "fatality",
7801 "futures 0.3.21",7829 "futures 0.3.21",
7802 "parity-scale-codec",7830 "parity-scale-codec 3.1.2",
7803 "polkadot-node-jaeger",7831 "polkadot-node-jaeger",
7804 "polkadot-node-primitives",7832 "polkadot-node-primitives",
7805 "polkadot-primitives",7833 "polkadot-primitives",
7816dependencies = [7844dependencies = [
7817 "bounded-vec",7845 "bounded-vec",
7818 "futures 0.3.21",7846 "futures 0.3.21",
7819 "parity-scale-codec",7847 "parity-scale-codec 3.1.2",
7820 "polkadot-parachain",7848 "polkadot-parachain",
7821 "polkadot-primitives",7849 "polkadot-primitives",
7822 "schnorrkel",7850 "schnorrkel",
7874 "lru 0.7.5",7902 "lru 0.7.5",
7875 "metered-channel",7903 "metered-channel",
7876 "parity-db",7904 "parity-db",
7877 "parity-scale-codec",7905 "parity-scale-codec 3.1.2",
7878 "parity-util-mem",7906 "parity-util-mem",
7879 "parking_lot 0.11.2",7907 "parking_lot 0.11.2",
7880 "pin-project 1.0.10",7908 "pin-project 1.0.10",
7950dependencies = [7978dependencies = [
7951 "derive_more",7979 "derive_more",
7952 "frame-support",7980 "frame-support",
7953 "parity-scale-codec",7981 "parity-scale-codec 3.1.2",
7954 "parity-util-mem",7982 "parity-util-mem",
7955 "polkadot-core-primitives",7983 "polkadot-core-primitives",
7956 "scale-info",7984 "scale-info",
7980version = "0.9.21"8008version = "0.9.21"
7981source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"8009source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
7982dependencies = [8010dependencies = [
7983 "bitvec",8011 "bitvec 1.0.0",
7984 "frame-system",8012 "frame-system",
7985 "hex-literal",8013 "hex-literal",
7986 "parity-scale-codec",8014 "parity-scale-codec 3.1.2",
7987 "parity-util-mem",8015 "parity-util-mem",
7988 "polkadot-core-primitives",8016 "polkadot-core-primitives",
7989 "polkadot-parachain",8017 "polkadot-parachain",
8043source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"8071source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
8044dependencies = [8072dependencies = [
8045 "beefy-primitives",8073 "beefy-primitives",
8046 "bitvec",8074 "bitvec 1.0.0",
8047 "frame-benchmarking",8075 "frame-benchmarking",
8048 "frame-election-provider-support",8076 "frame-election-provider-support",
8049 "frame-executive",8077 "frame-executive",
8090 "pallet-utility",8118 "pallet-utility",
8091 "pallet-vesting",8119 "pallet-vesting",
8092 "pallet-xcm",8120 "pallet-xcm",
8093 "parity-scale-codec",8121 "parity-scale-codec 3.1.2",
8094 "polkadot-primitives",8122 "polkadot-primitives",
8095 "polkadot-runtime-common",8123 "polkadot-runtime-common",
8096 "polkadot-runtime-constants",8124 "polkadot-runtime-constants",
8129source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"8157source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
8130dependencies = [8158dependencies = [
8131 "beefy-primitives",8159 "beefy-primitives",
8132 "bitvec",8160 "bitvec 1.0.0",
8133 "frame-benchmarking",8161 "frame-benchmarking",
8134 "frame-election-provider-support",8162 "frame-election-provider-support",
8135 "frame-support",8163 "frame-support",
8149 "pallet-transaction-payment",8177 "pallet-transaction-payment",
8150 "pallet-treasury",8178 "pallet-treasury",
8151 "pallet-vesting",8179 "pallet-vesting",
8152 "parity-scale-codec",8180 "parity-scale-codec 3.1.2",
8153 "polkadot-primitives",8181 "polkadot-primitives",
8154 "polkadot-runtime-parachains",8182 "polkadot-runtime-parachains",
8155 "rustc-hex",8183 "rustc-hex",
8188source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"8216source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
8189dependencies = [8217dependencies = [
8190 "bs58",8218 "bs58",
8191 "parity-scale-codec",8219 "parity-scale-codec 3.1.2",
8192 "polkadot-primitives",8220 "polkadot-primitives",
8193 "sp-std",8221 "sp-std",
8194 "sp-tracing",8222 "sp-tracing",
8200source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"8228source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
8201dependencies = [8229dependencies = [
8202 "bitflags",8230 "bitflags",
8203 "bitvec",8231 "bitvec 1.0.0",
8204 "derive_more",8232 "derive_more",
8205 "frame-benchmarking",8233 "frame-benchmarking",
8206 "frame-support",8234 "frame-support",
8214 "pallet-staking",8242 "pallet-staking",
8215 "pallet-timestamp",8243 "pallet-timestamp",
8216 "pallet-vesting",8244 "pallet-vesting",
8217 "parity-scale-codec",8245 "parity-scale-codec 3.1.2",
8218 "polkadot-primitives",8246 "polkadot-primitives",
8219 "polkadot-runtime-metrics",8247 "polkadot-runtime-metrics",
8220 "rand 0.8.5",8248 "rand 0.8.5",
8346 "fatality",8374 "fatality",
8347 "futures 0.3.21",8375 "futures 0.3.21",
8348 "indexmap",8376 "indexmap",
8349 "parity-scale-codec",8377 "parity-scale-codec 3.1.2",
8350 "polkadot-node-network-protocol",8378 "polkadot-node-network-protocol",
8351 "polkadot-node-primitives",8379 "polkadot-node-primitives",
8352 "polkadot-node-subsystem",8380 "polkadot-node-subsystem",
8363version = "0.9.21"8391version = "0.9.21"
8364source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"8392source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
8365dependencies = [8393dependencies = [
8366 "parity-scale-codec",8394 "parity-scale-codec 3.1.2",
8367 "polkadot-primitives",8395 "polkadot-primitives",
8368 "sp-core",8396 "sp-core",
8369]8397]
8374source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"8402source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
8375dependencies = [8403dependencies = [
8376 "beefy-primitives",8404 "beefy-primitives",
8377 "bitvec",8405 "bitvec 1.0.0",
8378 "frame-election-provider-support",8406 "frame-election-provider-support",
8379 "frame-executive",8407 "frame-executive",
8380 "frame-support",8408 "frame-support",
8398 "pallet-transaction-payment-rpc-runtime-api",8426 "pallet-transaction-payment-rpc-runtime-api",
8399 "pallet-vesting",8427 "pallet-vesting",
8400 "pallet-xcm",8428 "pallet-xcm",
8401 "parity-scale-codec",8429 "parity-scale-codec 3.1.2",
8402 "polkadot-parachain",8430 "polkadot-parachain",
8403 "polkadot-primitives",8431 "polkadot-primitives",
8404 "polkadot-runtime-common",8432 "polkadot-runtime-common",
8480 "substrate-test-client",8508 "substrate-test-client",
8481 "tempfile",8509 "tempfile",
8482 "test-runtime-constants",8510 "test-runtime-constants",
8483 "tokio 1.18.1",8511 "tokio 1.18.2",
8484 "tracing-gum",8512 "tracing-gum",
8485]8513]
84868514
85998627
8600[[package]]8628[[package]]
8601name = "proc-macro2"8629name = "proc-macro2"
8602version = "1.0.38"8630version = "1.0.39"
8603source = "registry+https://github.com/rust-lang/crates.io-index"8631source = "registry+https://github.com/rust-lang/crates.io-index"
8604checksum = "9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa"8632checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f"
8605dependencies = [8633dependencies = [
8606 "unicode-xid",8634 "unicode-ident",
8607]8635]
86088636
8609[[package]]8637[[package]]
8610name = "prometheus"8638name = "prometheus"
8611version = "0.13.0"8639version = "0.13.1"
8612source = "registry+https://github.com/rust-lang/crates.io-index"8640source = "registry+https://github.com/rust-lang/crates.io-index"
8613checksum = "b7f64969ffd5dd8f39bd57a68ac53c163a095ed9d0fb707146da1b27025a3504"8641checksum = "cface98dfa6d645ea4c789839f176e4b072265d085bfcc48eaa8d137f58d3c39"
8614dependencies = [8642dependencies = [
8615 "cfg-if 1.0.0",8643 "cfg-if 1.0.0",
8616 "fnv",8644 "fnv",
8617 "lazy_static",8645 "lazy_static",
8618 "memchr",8646 "memchr",
8619 "parking_lot 0.11.2",8647 "parking_lot 0.12.0",
8620 "thiserror",8648 "thiserror",
8621]8649]
86228650
8731 "pallet-unq-scheduler",8759 "pallet-unq-scheduler",
8732 "pallet-xcm",8760 "pallet-xcm",
8733 "parachain-info",8761 "parachain-info",
8734 "parity-scale-codec",8762 "parity-scale-codec 3.1.2",
8735 "polkadot-parachain",8763 "polkadot-parachain",
8764 "rmrk-rpc",
8736 "scale-info",8765 "scale-info",
8737 "serde",8766 "serde",
8738 "smallvec",8767 "smallvec",
8764source = "registry+https://github.com/rust-lang/crates.io-index"8793source = "registry+https://github.com/rust-lang/crates.io-index"
8765checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"8794checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
8766
8767[[package]]
8768name = "quick-error"
8769version = "2.0.1"
8770source = "registry+https://github.com/rust-lang/crates.io-index"
8771checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
87728795
8773[[package]]8796[[package]]
8774name = "quicksink"8797name = "quicksink"
8790 "proc-macro2",8813 "proc-macro2",
8791]8814]
8815
8816[[package]]
8817name = "radium"
8818version = "0.6.2"
8819source = "registry+https://github.com/rust-lang/crates.io-index"
8820checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb"
87928821
8793[[package]]8822[[package]]
8794name = "radium"8823name = "radium"
89048933
8905[[package]]8934[[package]]
8906name = "rayon"8935name = "rayon"
8907version = "1.5.2"8936version = "1.5.3"
8908source = "registry+https://github.com/rust-lang/crates.io-index"8937source = "registry+https://github.com/rust-lang/crates.io-index"
8909checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221"8938checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
8910dependencies = [8939dependencies = [
8911 "autocfg",8940 "autocfg",
8912 "crossbeam-deque",8941 "crossbeam-deque",
89168945
8917[[package]]8946[[package]]
8918name = "rayon-core"8947name = "rayon-core"
8919version = "1.9.2"8948version = "1.9.3"
8920source = "registry+https://github.com/rust-lang/crates.io-index"8949source = "registry+https://github.com/rust-lang/crates.io-index"
8921checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4"8950checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
8922dependencies = [8951dependencies = [
8923 "crossbeam-channel",8952 "crossbeam-channel",
8924 "crossbeam-deque",8953 "crossbeam-deque",
9053 "env_logger",9082 "env_logger",
9054 "jsonrpsee",9083 "jsonrpsee",
9055 "log",9084 "log",
9056 "parity-scale-codec",9085 "parity-scale-codec 3.1.2",
9057 "serde",9086 "serde",
9058 "serde_json",9087 "serde_json",
9059 "sp-core",9088 "sp-core",
9078checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"9107checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
9079dependencies = [9108dependencies = [
9080 "hostname",9109 "hostname",
9081 "quick-error 1.2.3",9110 "quick-error",
9082]9111]
90839112
9084[[package]]9113[[package]]
9123 "syn",9152 "syn",
9124]9153]
9154
9155[[package]]
9156name = "rmrk-rpc"
9157version = "0.0.1"
9158source = "git+https://github.com/UniqueNetwork/rmrk-substrate.git?branch=feature/separate-types-and-traits#01c2995b64c34063a1c9fc4d856635022cea4f78"
9159dependencies = [
9160 "parity-scale-codec 2.3.1",
9161 "rmrk-types",
9162 "serde",
9163 "sp-api",
9164 "sp-core",
9165 "sp-runtime",
9166 "sp-std",
9167]
9168
9169[[package]]
9170name = "rmrk-types"
9171version = "0.0.1"
9172source = "git+https://github.com/UniqueNetwork/rmrk-substrate.git?branch=feature/separate-types-and-traits#01c2995b64c34063a1c9fc4d856635022cea4f78"
9173dependencies = [
9174 "parity-scale-codec 3.1.2",
9175 "scale-info",
9176 "serde",
9177]
91259178
9126[[package]]9179[[package]]
9127name = "rocksdb"9180name = "rocksdb"
9179 "pallet-transaction-payment-rpc-runtime-api",9232 "pallet-transaction-payment-rpc-runtime-api",
9180 "pallet-utility",9233 "pallet-utility",
9181 "pallet-xcm",9234 "pallet-xcm",
9182 "parity-scale-codec",9235 "parity-scale-codec 3.1.2",
9183 "polkadot-parachain",9236 "polkadot-parachain",
9184 "polkadot-primitives",9237 "polkadot-primitives",
9185 "polkadot-runtime-common",9238 "polkadot-runtime-common",
93189371
9319[[package]]9372[[package]]
9320name = "rustls"9373name = "rustls"
9321version = "0.20.4"9374version = "0.20.6"
9322source = "registry+https://github.com/rust-lang/crates.io-index"9375source = "registry+https://github.com/rust-lang/crates.io-index"
9323checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921"9376checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033"
9324dependencies = [9377dependencies = [
9325 "log",9378 "log",
9326 "ring",9379 "ring",
93809433
9381[[package]]9434[[package]]
9382name = "ryu"9435name = "ryu"
9383version = "1.0.9"9436version = "1.0.10"
9384source = "registry+https://github.com/rust-lang/crates.io-index"9437source = "registry+https://github.com/rust-lang/crates.io-index"
9385checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"9438checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
93869439
9387[[package]]9440[[package]]
9388name = "safe-mix"9441name = "safe-mix"
9433 "ip_network",9486 "ip_network",
9434 "libp2p",9487 "libp2p",
9435 "log",9488 "log",
9436 "parity-scale-codec",9489 "parity-scale-codec 3.1.2",
9437 "prost",9490 "prost",
9438 "prost-build",9491 "prost-build",
9439 "rand 0.7.3",9492 "rand 0.7.3",
9457 "futures 0.3.21",9510 "futures 0.3.21",
9458 "futures-timer",9511 "futures-timer",
9459 "log",9512 "log",
9460 "parity-scale-codec",9513 "parity-scale-codec 3.1.2",
9461 "sc-block-builder",9514 "sc-block-builder",
9462 "sc-client-api",9515 "sc-client-api",
9463 "sc-proposer-metrics",9516 "sc-proposer-metrics",
9477version = "0.10.0-dev"9530version = "0.10.0-dev"
9478source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"9531source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
9479dependencies = [9532dependencies = [
9480 "parity-scale-codec",9533 "parity-scale-codec 3.1.2",
9481 "sc-client-api",9534 "sc-client-api",
9482 "sp-api",9535 "sp-api",
9483 "sp-block-builder",9536 "sp-block-builder",
9495dependencies = [9548dependencies = [
9496 "impl-trait-for-tuples",9549 "impl-trait-for-tuples",
9497 "memmap2 0.5.3",9550 "memmap2 0.5.3",
9498 "parity-scale-codec",9551 "parity-scale-codec 3.1.2",
9499 "sc-chain-spec-derive",9552 "sc-chain-spec-derive",
9500 "sc-network",9553 "sc-network",
9501 "sc-telemetry",9554 "sc-telemetry",
9529 "libp2p",9582 "libp2p",
9530 "log",9583 "log",
9531 "names",9584 "names",
9532 "parity-scale-codec",9585 "parity-scale-codec 3.1.2",
9533 "rand 0.7.3",9586 "rand 0.7.3",
9534 "regex",9587 "regex",
9535 "rpassword",9588 "rpassword",
9551 "sp-version",9604 "sp-version",
9552 "thiserror",9605 "thiserror",
9553 "tiny-bip39",9606 "tiny-bip39",
9554 "tokio 1.18.1",9607 "tokio 1.18.2",
9555]9608]
95569609
9557[[package]]9610[[package]]
9563 "futures 0.3.21",9616 "futures 0.3.21",
9564 "hash-db",9617 "hash-db",
9565 "log",9618 "log",
9566 "parity-scale-codec",9619 "parity-scale-codec 3.1.2",
9567 "parking_lot 0.12.0",9620 "parking_lot 0.12.0",
9568 "sc-executor",9621 "sc-executor",
9569 "sc-transaction-pool-api",9622 "sc-transaction-pool-api",
9594 "linked-hash-map",9647 "linked-hash-map",
9595 "log",9648 "log",
9596 "parity-db",9649 "parity-db",
9597 "parity-scale-codec",9650 "parity-scale-codec 3.1.2",
9598 "parking_lot 0.12.0",9651 "parking_lot 0.12.0",
9599 "sc-client-api",9652 "sc-client-api",
9600 "sc-state-db",9653 "sc-state-db",
9639 "async-trait",9692 "async-trait",
9640 "futures 0.3.21",9693 "futures 0.3.21",
9641 "log",9694 "log",
9642 "parity-scale-codec",9695 "parity-scale-codec 3.1.2",
9643 "sc-block-builder",9696 "sc-block-builder",
9644 "sc-client-api",9697 "sc-client-api",
9645 "sc-consensus",9698 "sc-consensus",
9673 "num-bigint",9726 "num-bigint",
9674 "num-rational 0.2.4",9727 "num-rational 0.2.4",
9675 "num-traits",9728 "num-traits",
9676 "parity-scale-codec",9729 "parity-scale-codec 3.1.2",
9677 "parking_lot 0.12.0",9730 "parking_lot 0.12.0",
9678 "rand 0.7.3",9731 "rand 0.7.3",
9679 "retain_mut",9732 "retain_mut",
9733source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"9786source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
9734dependencies = [9787dependencies = [
9735 "fork-tree",9788 "fork-tree",
9736 "parity-scale-codec",9789 "parity-scale-codec 3.1.2",
9737 "sc-client-api",9790 "sc-client-api",
9738 "sc-consensus",9791 "sc-consensus",
9739 "sp-blockchain",9792 "sp-blockchain",
9752 "jsonrpc-core-client",9805 "jsonrpc-core-client",
9753 "jsonrpc-derive",9806 "jsonrpc-derive",
9754 "log",9807 "log",
9755 "parity-scale-codec",9808 "parity-scale-codec 3.1.2",
9756 "sc-client-api",9809 "sc-client-api",
9757 "sc-consensus",9810 "sc-consensus",
9758 "sc-consensus-aura",9811 "sc-consensus-aura",
9785 "futures 0.3.21",9838 "futures 0.3.21",
9786 "futures-timer",9839 "futures-timer",
9787 "log",9840 "log",
9788 "parity-scale-codec",9841 "parity-scale-codec 3.1.2",
9789 "sc-client-api",9842 "sc-client-api",
9790 "sc-consensus",9843 "sc-consensus",
9791 "sc-telemetry",9844 "sc-telemetry",
9819dependencies = [9872dependencies = [
9820 "lazy_static",9873 "lazy_static",
9821 "lru 0.7.5",9874 "lru 0.7.5",
9822 "parity-scale-codec",9875 "parity-scale-codec 3.1.2",
9823 "parking_lot 0.12.0",9876 "parking_lot 0.12.0",
9824 "sc-executor-common",9877 "sc-executor-common",
9825 "sc-executor-wasmi",9878 "sc-executor-wasmi",
9845source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"9898source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
9846dependencies = [9899dependencies = [
9847 "environmental",9900 "environmental",
9848 "parity-scale-codec",9901 "parity-scale-codec 3.1.2",
9849 "sc-allocator",9902 "sc-allocator",
9850 "sp-core",9903 "sp-core",
9851 "sp-maybe-compressed-blob",9904 "sp-maybe-compressed-blob",
9862source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"9915source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
9863dependencies = [9916dependencies = [
9864 "log",9917 "log",
9865 "parity-scale-codec",9918 "parity-scale-codec 3.1.2",
9866 "sc-allocator",9919 "sc-allocator",
9867 "sc-executor-common",9920 "sc-executor-common",
9868 "scoped-tls",9921 "scoped-tls",
9880 "cfg-if 1.0.0",9933 "cfg-if 1.0.0",
9881 "libc",9934 "libc",
9882 "log",9935 "log",
9883 "parity-scale-codec",9936 "parity-scale-codec 3.1.2",
9884 "parity-wasm 0.42.2",9937 "parity-wasm 0.42.2",
9885 "sc-allocator",9938 "sc-allocator",
9886 "sc-executor-common",9939 "sc-executor-common",
9904 "futures-timer",9957 "futures-timer",
9905 "hex",9958 "hex",
9906 "log",9959 "log",
9907 "parity-scale-codec",9960 "parity-scale-codec 3.1.2",
9908 "parking_lot 0.12.0",9961 "parking_lot 0.12.0",
9909 "rand 0.8.5",9962 "rand 0.8.5",
9910 "sc-block-builder",9963 "sc-block-builder",
9942 "jsonrpc-derive",9995 "jsonrpc-derive",
9943 "jsonrpc-pubsub",9996 "jsonrpc-pubsub",
9944 "log",9997 "log",
9945 "parity-scale-codec",9998 "parity-scale-codec 3.1.2",
9946 "sc-client-api",9999 "sc-client-api",
9947 "sc-finality-grandpa",10000 "sc-finality-grandpa",
9948 "sc-rpc",10001 "sc-rpc",
10008 "linked_hash_set",10061 "linked_hash_set",
10009 "log",10062 "log",
10010 "lru 0.7.5",10063 "lru 0.7.5",
10011 "parity-scale-codec",10064 "parity-scale-codec 3.1.2",
10012 "parking_lot 0.12.0",10065 "parking_lot 0.12.0",
10013 "pin-project 1.0.10",10066 "pin-project 1.0.10",
10014 "prost",10067 "prost",
10066 "hyper-rustls 0.22.1",10119 "hyper-rustls 0.22.1",
10067 "num_cpus",10120 "num_cpus",
10068 "once_cell",10121 "once_cell",
10069 "parity-scale-codec",10122 "parity-scale-codec 3.1.2",
10070 "parking_lot 0.12.0",10123 "parking_lot 0.12.0",
10071 "rand 0.7.3",10124 "rand 0.7.3",
10072 "sc-client-api",10125 "sc-client-api",
10112 "jsonrpc-core",10165 "jsonrpc-core",
10113 "jsonrpc-pubsub",10166 "jsonrpc-pubsub",
10114 "log",10167 "log",
10115 "parity-scale-codec",10168 "parity-scale-codec 3.1.2",
10116 "parking_lot 0.12.0",10169 "parking_lot 0.12.0",
10117 "sc-block-builder",10170 "sc-block-builder",
10118 "sc-chain-spec",10171 "sc-chain-spec",
10144 "jsonrpc-derive",10197 "jsonrpc-derive",
10145 "jsonrpc-pubsub",10198 "jsonrpc-pubsub",
10146 "log",10199 "log",
10147 "parity-scale-codec",10200 "parity-scale-codec 3.1.2",
10148 "parking_lot 0.12.0",10201 "parking_lot 0.12.0",
10149 "sc-chain-spec",10202 "sc-chain-spec",
10150 "sc-transaction-pool-api",10203 "sc-transaction-pool-api",
10173 "log",10226 "log",
10174 "serde_json",10227 "serde_json",
10175 "substrate-prometheus-endpoint",10228 "substrate-prometheus-endpoint",
10176 "tokio 1.18.1",10229 "tokio 1.18.2",
10177]10230]
1017810231
10179[[package]]10232[[package]]
10190 "jsonrpc-core",10243 "jsonrpc-core",
10191 "jsonrpc-pubsub",10244 "jsonrpc-pubsub",
10192 "log",10245 "log",
10193 "parity-scale-codec",10246 "parity-scale-codec 3.1.2",
10194 "parity-util-mem",10247 "parity-util-mem",
10195 "parking_lot 0.12.0",10248 "parking_lot 0.12.0",
10196 "pin-project 1.0.10",10249 "pin-project 1.0.10",
10236 "substrate-prometheus-endpoint",10289 "substrate-prometheus-endpoint",
10237 "tempfile",10290 "tempfile",
10238 "thiserror",10291 "thiserror",
10239 "tokio 1.18.1",10292 "tokio 1.18.2",
10240 "tracing",10293 "tracing",
10241 "tracing-futures",10294 "tracing-futures",
10242]10295]
10247source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"10300source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
10248dependencies = [10301dependencies = [
10249 "log",10302 "log",
10250 "parity-scale-codec",10303 "parity-scale-codec 3.1.2",
10251 "parity-util-mem",10304 "parity-util-mem",
10252 "parity-util-mem-derive",10305 "parity-util-mem-derive",
10253 "parking_lot 0.12.0",10306 "parking_lot 0.12.0",
10263 "jsonrpc-core",10316 "jsonrpc-core",
10264 "jsonrpc-core-client",10317 "jsonrpc-core-client",
10265 "jsonrpc-derive",10318 "jsonrpc-derive",
10266 "parity-scale-codec",10319 "parity-scale-codec 3.1.2",
10267 "sc-chain-spec",10320 "sc-chain-spec",
10268 "sc-client-api",10321 "sc-client-api",
10269 "sc-consensus-babe",10322 "sc-consensus-babe",
10364 "futures-timer",10417 "futures-timer",
10365 "linked-hash-map",10418 "linked-hash-map",
10366 "log",10419 "log",
10367 "parity-scale-codec",10420 "parity-scale-codec 3.1.2",
10368 "parity-util-mem",10421 "parity-util-mem",
10369 "parking_lot 0.12.0",10422 "parking_lot 0.12.0",
10370 "retain_mut",10423 "retain_mut",
1041010463
10411[[package]]10464[[package]]
10412name = "scale-info"10465name = "scale-info"
10413version = "2.1.1"10466version = "2.1.2"
10414source = "registry+https://github.com/rust-lang/crates.io-index"10467source = "registry+https://github.com/rust-lang/crates.io-index"
10415checksum = "8980cafbe98a7ee7a9cc16b32ebce542c77883f512d83fbf2ddc8f6a85ea74c9"10468checksum = "c46be926081c9f4dd5dd9b6f1d3e3229f2360bc6502dd8836f84a93b7c75e99a"
10416dependencies = [10469dependencies = [
10417 "bitvec",10470 "bitvec 1.0.0",
10418 "cfg-if 1.0.0",10471 "cfg-if 1.0.0",
10419 "derive_more",10472 "derive_more",
10420 "parity-scale-codec",10473 "parity-scale-codec 3.1.2",
10421 "scale-info-derive",10474 "scale-info-derive",
10422 "serde",10475 "serde",
10423]10476]
1042410477
10425[[package]]10478[[package]]
10426name = "scale-info-derive"10479name = "scale-info-derive"
10427version = "2.1.1"10480version = "2.1.2"
10428source = "registry+https://github.com/rust-lang/crates.io-index"10481source = "registry+https://github.com/rust-lang/crates.io-index"
10429checksum = "4260c630e8a8a33429d1688eff2f163f24c65a4e1b1578ef6b565061336e4b6f"10482checksum = "50e334bb10a245e28e5fd755cabcafd96cfcd167c99ae63a46924ca8d8703a3c"
10430dependencies = [10483dependencies = [
10431 "proc-macro-crate 1.1.3",10484 "proc-macro-crate 1.1.3",
10432 "proc-macro2",10485 "proc-macro2",
1043610489
10437[[package]]10490[[package]]
10438name = "schannel"10491name = "schannel"
10439version = "0.1.19"10492version = "0.1.20"
10440source = "registry+https://github.com/rust-lang/crates.io-index"10493source = "registry+https://github.com/rust-lang/crates.io-index"
10441checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"10494checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2"
10442dependencies = [10495dependencies = [
10443 "lazy_static",10496 "lazy_static",
10444 "winapi 0.3.9",10497 "windows-sys",
10445]10498]
1044610499
10447[[package]]10500[[package]]
10634source = "registry+https://github.com/rust-lang/crates.io-index"10687source = "registry+https://github.com/rust-lang/crates.io-index"
10635checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"10688checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"
10636dependencies = [10689dependencies = [
10637 "itoa 1.0.1",10690 "itoa 1.0.2",
10638 "ryu",10691 "ryu",
10639 "serde",10692 "serde",
10640]10693]
1074810801
10749[[package]]10802[[package]]
10750name = "signal-hook"10803name = "signal-hook"
10751version = "0.3.13"10804version = "0.3.14"
10752source = "registry+https://github.com/rust-lang/crates.io-index"10805source = "registry+https://github.com/rust-lang/crates.io-index"
10753checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d"10806checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
10754dependencies = [10807dependencies = [
10755 "libc",10808 "libc",
10756 "signal-hook-registry",10809 "signal-hook-registry",
10798source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"10851source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
10799dependencies = [10852dependencies = [
10800 "enumn",10853 "enumn",
10801 "parity-scale-codec",10854 "parity-scale-codec 3.1.2",
10802 "paste",10855 "paste",
10803 "sp-runtime",10856 "sp-runtime",
10804 "sp-std",10857 "sp-std",
10887dependencies = [10940dependencies = [
10888 "hash-db",10941 "hash-db",
10889 "log",10942 "log",
10890 "parity-scale-codec",10943 "parity-scale-codec 3.1.2",
10891 "sp-api-proc-macro",10944 "sp-api-proc-macro",
10892 "sp-core",10945 "sp-core",
10893 "sp-runtime",10946 "sp-runtime",
10914version = "6.0.0"10967version = "6.0.0"
10915source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"10968source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
10916dependencies = [10969dependencies = [
10917 "parity-scale-codec",10970 "parity-scale-codec 3.1.2",
10918 "scale-info",10971 "scale-info",
10919 "serde",10972 "serde",
10920 "sp-core",10973 "sp-core",
10929dependencies = [10982dependencies = [
10930 "integer-sqrt",10983 "integer-sqrt",
10931 "num-traits",10984 "num-traits",
10932 "parity-scale-codec",10985 "parity-scale-codec 3.1.2",
10933 "scale-info",10986 "scale-info",
10934 "serde",10987 "serde",
10935 "sp-debug-derive",10988 "sp-debug-derive",
10942version = "4.0.0-dev"10995version = "4.0.0-dev"
10943source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"10996source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
10944dependencies = [10997dependencies = [
10945 "parity-scale-codec",10998 "parity-scale-codec 3.1.2",
10946 "scale-info",10999 "scale-info",
10947 "sp-api",11000 "sp-api",
10948 "sp-application-crypto",11001 "sp-application-crypto",
10956source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11009source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
10957dependencies = [11010dependencies = [
10958 "async-trait",11011 "async-trait",
10959 "parity-scale-codec",11012 "parity-scale-codec 3.1.2",
10960 "sp-inherents",11013 "sp-inherents",
10961 "sp-runtime",11014 "sp-runtime",
10962 "sp-std",11015 "sp-std",
10967version = "4.0.0-dev"11020version = "4.0.0-dev"
10968source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11021source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
10969dependencies = [11022dependencies = [
10970 "parity-scale-codec",11023 "parity-scale-codec 3.1.2",
10971 "sp-api",11024 "sp-api",
10972 "sp-inherents",11025 "sp-inherents",
10973 "sp-runtime",11026 "sp-runtime",
10982 "futures 0.3.21",11035 "futures 0.3.21",
10983 "log",11036 "log",
10984 "lru 0.7.5",11037 "lru 0.7.5",
10985 "parity-scale-codec",11038 "parity-scale-codec 3.1.2",
10986 "parking_lot 0.12.0",11039 "parking_lot 0.12.0",
10987 "sp-api",11040 "sp-api",
10988 "sp-consensus",11041 "sp-consensus",
11001 "futures 0.3.21",11054 "futures 0.3.21",
11002 "futures-timer",11055 "futures-timer",
11003 "log",11056 "log",
11004 "parity-scale-codec",11057 "parity-scale-codec 3.1.2",
11005 "sp-core",11058 "sp-core",
11006 "sp-inherents",11059 "sp-inherents",
11007 "sp-runtime",11060 "sp-runtime",
11017source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11070source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11018dependencies = [11071dependencies = [
11019 "async-trait",11072 "async-trait",
11020 "parity-scale-codec",11073 "parity-scale-codec 3.1.2",
11021 "scale-info",11074 "scale-info",
11022 "sp-api",11075 "sp-api",
11023 "sp-application-crypto",11076 "sp-application-crypto",
11036dependencies = [11089dependencies = [
11037 "async-trait",11090 "async-trait",
11038 "merlin",11091 "merlin",
11039 "parity-scale-codec",11092 "parity-scale-codec 3.1.2",
11040 "scale-info",11093 "scale-info",
11041 "serde",11094 "serde",
11042 "sp-api",11095 "sp-api",
11057version = "0.10.0-dev"11110version = "0.10.0-dev"
11058source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11111source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11059dependencies = [11112dependencies = [
11060 "parity-scale-codec",11113 "parity-scale-codec 3.1.2",
11061 "scale-info",11114 "scale-info",
11062 "serde",11115 "serde",
11063 "sp-arithmetic",11116 "sp-arithmetic",
11071version = "0.10.0-dev"11124version = "0.10.0-dev"
11072source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11125source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11073dependencies = [11126dependencies = [
11074 "parity-scale-codec",11127 "parity-scale-codec 3.1.2",
11075 "schnorrkel",11128 "schnorrkel",
11076 "sp-core",11129 "sp-core",
11077 "sp-runtime",11130 "sp-runtime",
11099 "log",11152 "log",
11100 "merlin",11153 "merlin",
11101 "num-traits",11154 "num-traits",
11102 "parity-scale-codec",11155 "parity-scale-codec 3.1.2",
11103 "parity-util-mem",11156 "parity-util-mem",
11104 "parking_lot 0.12.0",11157 "parking_lot 0.12.0",
11105 "primitive-types",11158 "primitive-types",
11174source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11227source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11175dependencies = [11228dependencies = [
11176 "environmental",11229 "environmental",
11177 "parity-scale-codec",11230 "parity-scale-codec 3.1.2",
11178 "sp-std",11231 "sp-std",
11179 "sp-storage",11232 "sp-storage",
11180]11233]
11186dependencies = [11239dependencies = [
11187 "finality-grandpa",11240 "finality-grandpa",
11188 "log",11241 "log",
11189 "parity-scale-codec",11242 "parity-scale-codec 3.1.2",
11190 "scale-info",11243 "scale-info",
11191 "serde",11244 "serde",
11192 "sp-api",11245 "sp-api",
11204dependencies = [11257dependencies = [
11205 "async-trait",11258 "async-trait",
11206 "impl-trait-for-tuples",11259 "impl-trait-for-tuples",
11207 "parity-scale-codec",11260 "parity-scale-codec 3.1.2",
11208 "sp-core",11261 "sp-core",
11209 "sp-runtime",11262 "sp-runtime",
11210 "sp-std",11263 "sp-std",
11220 "hash-db",11273 "hash-db",
11221 "libsecp256k1",11274 "libsecp256k1",
11222 "log",11275 "log",
11223 "parity-scale-codec",11276 "parity-scale-codec 3.1.2",
11224 "parking_lot 0.12.0",11277 "parking_lot 0.12.0",
11225 "secp256k1",11278 "secp256k1",
11226 "sp-core",11279 "sp-core",
11255 "async-trait",11308 "async-trait",
11256 "futures 0.3.21",11309 "futures 0.3.21",
11257 "merlin",11310 "merlin",
11258 "parity-scale-codec",11311 "parity-scale-codec 3.1.2",
11259 "parking_lot 0.12.0",11312 "parking_lot 0.12.0",
11260 "schnorrkel",11313 "schnorrkel",
11261 "serde",11314 "serde",
11279source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11332source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11280dependencies = [11333dependencies = [
11281 "log",11334 "log",
11282 "parity-scale-codec",11335 "parity-scale-codec 3.1.2",
11283 "serde",11336 "serde",
11284 "sp-api",11337 "sp-api",
11285 "sp-core",11338 "sp-core",
11293version = "4.0.0-dev"11346version = "4.0.0-dev"
11294source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11347source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11295dependencies = [11348dependencies = [
11296 "parity-scale-codec",11349 "parity-scale-codec 3.1.2",
11297 "scale-info",11350 "scale-info",
11298 "serde",11351 "serde",
11299 "sp-arithmetic",11352 "sp-arithmetic",
11341 "hash256-std-hasher",11394 "hash256-std-hasher",
11342 "impl-trait-for-tuples",11395 "impl-trait-for-tuples",
11343 "log",11396 "log",
11344 "parity-scale-codec",11397 "parity-scale-codec 3.1.2",
11345 "parity-util-mem",11398 "parity-util-mem",
11346 "paste",11399 "paste",
11347 "rand 0.7.3",11400 "rand 0.7.3",
11360source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11413source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11361dependencies = [11414dependencies = [
11362 "impl-trait-for-tuples",11415 "impl-trait-for-tuples",
11363 "parity-scale-codec",11416 "parity-scale-codec 3.1.2",
11364 "primitive-types",11417 "primitive-types",
11365 "sp-externalities",11418 "sp-externalities",
11366 "sp-runtime-interface-proc-macro",11419 "sp-runtime-interface-proc-macro",
11397version = "4.0.0-dev"11450version = "4.0.0-dev"
11398source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11451source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11399dependencies = [11452dependencies = [
11400 "parity-scale-codec",11453 "parity-scale-codec 3.1.2",
11401 "scale-info",11454 "scale-info",
11402 "sp-api",11455 "sp-api",
11403 "sp-core",11456 "sp-core",
11411version = "4.0.0-dev"11464version = "4.0.0-dev"
11412source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11465source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11413dependencies = [11466dependencies = [
11414 "parity-scale-codec",11467 "parity-scale-codec 3.1.2",
11415 "scale-info",11468 "scale-info",
11416 "sp-runtime",11469 "sp-runtime",
11417 "sp-std",11470 "sp-std",
11425 "hash-db",11478 "hash-db",
11426 "log",11479 "log",
11427 "num-traits",11480 "num-traits",
11428 "parity-scale-codec",11481 "parity-scale-codec 3.1.2",
11429 "parking_lot 0.12.0",11482 "parking_lot 0.12.0",
11430 "rand 0.7.3",11483 "rand 0.7.3",
11431 "smallvec",11484 "smallvec",
11450source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11503source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11451dependencies = [11504dependencies = [
11452 "impl-serde",11505 "impl-serde",
11453 "parity-scale-codec",11506 "parity-scale-codec 3.1.2",
11454 "ref-cast",11507 "ref-cast",
11455 "serde",11508 "serde",
11456 "sp-debug-derive",11509 "sp-debug-derive",
11478 "async-trait",11531 "async-trait",
11479 "futures-timer",11532 "futures-timer",
11480 "log",11533 "log",
11481 "parity-scale-codec",11534 "parity-scale-codec 3.1.2",
11482 "sp-api",11535 "sp-api",
11483 "sp-inherents",11536 "sp-inherents",
11484 "sp-runtime",11537 "sp-runtime",
11491version = "5.0.0"11544version = "5.0.0"
11492source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11545source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11493dependencies = [11546dependencies = [
11494 "parity-scale-codec",11547 "parity-scale-codec 3.1.2",
11495 "sp-std",11548 "sp-std",
11496 "tracing",11549 "tracing",
11497 "tracing-core",11550 "tracing-core",
11514dependencies = [11567dependencies = [
11515 "async-trait",11568 "async-trait",
11516 "log",11569 "log",
11517 "parity-scale-codec",11570 "parity-scale-codec 3.1.2",
11518 "scale-info",11571 "scale-info",
11519 "sp-core",11572 "sp-core",
11520 "sp-inherents",11573 "sp-inherents",
11530dependencies = [11583dependencies = [
11531 "hash-db",11584 "hash-db",
11532 "memory-db",11585 "memory-db",
11533 "parity-scale-codec",11586 "parity-scale-codec 3.1.2",
11534 "scale-info",11587 "scale-info",
11535 "sp-core",11588 "sp-core",
11536 "sp-std",11589 "sp-std",
11545source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11598source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11546dependencies = [11599dependencies = [
11547 "impl-serde",11600 "impl-serde",
11548 "parity-scale-codec",11601 "parity-scale-codec 3.1.2",
11549 "parity-wasm 0.42.2",11602 "parity-wasm 0.42.2",
11550 "scale-info",11603 "scale-info",
11551 "serde",11604 "serde",
11561version = "4.0.0-dev"11614version = "4.0.0-dev"
11562source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"11615source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.21#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a"
11563dependencies = [11616dependencies = [
11564 "parity-scale-codec",11617 "parity-scale-codec 3.1.2",
11565 "proc-macro2",11618 "proc-macro2",
11566 "quote",11619 "quote",
11567 "syn",11620 "syn",
11574dependencies = [11627dependencies = [
11575 "impl-trait-for-tuples",11628 "impl-trait-for-tuples",
11576 "log",11629 "log",
11577 "parity-scale-codec",11630 "parity-scale-codec 3.1.2",
11578 "sp-std",11631 "sp-std",
11579 "wasmi",11632 "wasmi",
11580 "wasmtime",11633 "wasmtime",
1159811651
11599[[package]]11652[[package]]
11600name = "ss58-registry"11653name = "ss58-registry"
11601version = "1.17.0"11654version = "1.18.0"
11602source = "registry+https://github.com/rust-lang/crates.io-index"11655source = "registry+https://github.com/rust-lang/crates.io-index"
11603checksum = "7b84a70894df7a73666e0694f44b41a9571625e9546fb58a0818a565d2c7e084"11656checksum = "ceb8b72a924ccfe7882d0e26144c114503760a4d1248bb5cd06c8ab2d55404cc"
11604dependencies = [11657dependencies = [
11605 "Inflector",11658 "Inflector",
11606 "num-format",11659 "num-format",
11751 "jsonrpc-core-client",11804 "jsonrpc-core-client",
11752 "jsonrpc-derive",11805 "jsonrpc-derive",
11753 "log",11806 "log",
11754 "parity-scale-codec",11807 "parity-scale-codec 3.1.2",
11755 "sc-client-api",11808 "sc-client-api",
11756 "sc-rpc-api",11809 "sc-rpc-api",
11757 "sc-transaction-pool-api",11810 "sc-transaction-pool-api",
11772 "log",11825 "log",
11773 "prometheus",11826 "prometheus",
11774 "thiserror",11827 "thiserror",
11775 "tokio 1.18.1",11828 "tokio 1.18.2",
11776]11829]
1177711830
11778[[package]]11831[[package]]
11784 "jsonrpc-core-client",11837 "jsonrpc-core-client",
11785 "jsonrpc-derive",11838 "jsonrpc-derive",
11786 "log",11839 "log",
11787 "parity-scale-codec",11840 "parity-scale-codec 3.1.2",
11788 "sc-client-api",11841 "sc-client-api",
11789 "sc-rpc-api",11842 "sc-rpc-api",
11790 "scale-info",11843 "scale-info",
11806 "async-trait",11859 "async-trait",
11807 "futures 0.3.21",11860 "futures 0.3.21",
11808 "hex",11861 "hex",
11809 "parity-scale-codec",11862 "parity-scale-codec 3.1.2",
11810 "sc-client-api",11863 "sc-client-api",
11811 "sc-client-db",11864 "sc-client-db",
11812 "sc-consensus",11865 "sc-consensus",
11831dependencies = [11884dependencies = [
11832 "futures 0.3.21",11885 "futures 0.3.21",
11833 "substrate-test-utils-derive",11886 "substrate-test-utils-derive",
11834 "tokio 1.18.1",11887 "tokio 1.18.2",
11835]11888]
1183611889
11837[[package]]11890[[package]]
1186911922
11870[[package]]11923[[package]]
11871name = "syn"11924name = "syn"
11872version = "1.0.92"11925version = "1.0.95"
11873source = "registry+https://github.com/rust-lang/crates.io-index"11926source = "registry+https://github.com/rust-lang/crates.io-index"
11874checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52"11927checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942"
11875dependencies = [11928dependencies = [
11876 "proc-macro2",11929 "proc-macro2",
11877 "quote",11930 "quote",
11878 "unicode-xid",11931 "unicode-ident",
11879]11932]
1188011933
11881[[package]]11934[[package]]
11967 "pallet-timestamp",12020 "pallet-timestamp",
11968 "pallet-transaction-payment",12021 "pallet-transaction-payment",
11969 "pallet-unique",12022 "pallet-unique",
11970 "parity-scale-codec",12023 "parity-scale-codec 3.1.2",
11971 "scale-info",12024 "scale-info",
11972 "sp-core",12025 "sp-core",
11973 "sp-io",12026 "sp-io",
1211912172
12120[[package]]12173[[package]]
12121name = "tokio"12174name = "tokio"
12122version = "1.18.1"12175version = "1.18.2"
12123source = "registry+https://github.com/rust-lang/crates.io-index"12176source = "registry+https://github.com/rust-lang/crates.io-index"
12124checksum = "dce653fb475565de9f6fb0614b28bca8df2c430c0cf84bcd9c843f15de5414cc"12177checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395"
12125dependencies = [12178dependencies = [
12126 "bytes 1.1.0",12179 "bytes 1.1.0",
12127 "libc",12180 "libc",
12128 "memchr",12181 "memchr",
12129 "mio 0.8.2",12182 "mio 0.8.3",
12130 "num_cpus",12183 "num_cpus",
12131 "once_cell",12184 "once_cell",
12132 "parking_lot 0.12.0",12185 "parking_lot 0.12.0",
12166checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"12219checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
12167dependencies = [12220dependencies = [
12168 "rustls 0.19.1",12221 "rustls 0.19.1",
12169 "tokio 1.18.1",12222 "tokio 1.18.2",
12170 "webpki 0.21.4",12223 "webpki 0.21.4",
12171]12224]
1217212225
12176source = "registry+https://github.com/rust-lang/crates.io-index"12229source = "registry+https://github.com/rust-lang/crates.io-index"
12177checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"12230checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
12178dependencies = [12231dependencies = [
12179 "rustls 0.20.4",12232 "rustls 0.20.6",
12180 "tokio 1.18.1",12233 "tokio 1.18.2",
12181 "webpki 0.22.0",12234 "webpki 0.22.0",
12182]12235]
1218312236
12189dependencies = [12242dependencies = [
12190 "futures-core",12243 "futures-core",
12191 "pin-project-lite 0.2.9",12244 "pin-project-lite 0.2.9",
12192 "tokio 1.18.1",12245 "tokio 1.18.2",
12193]12246]
1219412247
12195[[package]]12248[[package]]
12196name = "tokio-util"12249name = "tokio-util"
12197version = "0.6.9"12250version = "0.6.10"
12198source = "registry+https://github.com/rust-lang/crates.io-index"12251source = "registry+https://github.com/rust-lang/crates.io-index"
12199checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0"12252checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507"
12200dependencies = [12253dependencies = [
12201 "bytes 1.1.0",12254 "bytes 1.1.0",
12202 "futures-core",12255 "futures-core",
12203 "futures-sink",12256 "futures-sink",
12204 "log",12257 "log",
12205 "pin-project-lite 0.2.9",12258 "pin-project-lite 0.2.9",
12206 "tokio 1.18.1",12259 "tokio 1.18.2",
12207]12260]
1220812261
12209[[package]]12262[[package]]
12210name = "tokio-util"12263name = "tokio-util"
12211version = "0.7.1"12264version = "0.7.2"
12212source = "registry+https://github.com/rust-lang/crates.io-index"12265source = "registry+https://github.com/rust-lang/crates.io-index"
12213checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764"12266checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c"
12214dependencies = [12267dependencies = [
12215 "bytes 1.1.0",12268 "bytes 1.1.0",
12216 "futures-core",12269 "futures-core",
12217 "futures-io",12270 "futures-io",
12218 "futures-sink",12271 "futures-sink",
12219 "pin-project-lite 0.2.9",12272 "pin-project-lite 0.2.9",
12220 "tokio 1.18.1",12273 "tokio 1.18.2",
12221 "tracing",12274 "tracing",
12222]12275]
1222312276
12435 "clap",12488 "clap",
12436 "jsonrpsee",12489 "jsonrpsee",
12437 "log",12490 "log",
12438 "parity-scale-codec",12491 "parity-scale-codec 3.1.2",
12439 "remote-externalities",12492 "remote-externalities",
12440 "sc-chain-spec",12493 "sc-chain-spec",
12441 "sc-cli",12494 "sc-cli",
12485 "jsonrpc-derive",12538 "jsonrpc-derive",
12486 "pallet-common",12539 "pallet-common",
12487 "pallet-evm",12540 "pallet-evm",
12488 "parity-scale-codec",12541 "parity-scale-codec 3.1.2",
12542 "rmrk-rpc",
12543 "rmrk-types",
12489 "sp-api",12544 "sp-api",
12490 "sp-blockchain",12545 "sp-blockchain",
12491 "sp-core",12546 "sp-core",
12492 "sp-rpc",12547 "sp-rpc",
12493 "sp-runtime",12548 "sp-runtime",
12549 "unique-runtime-common",
12494 "up-data-structs",12550 "up-data-structs",
12495 "up-rpc",12551 "up-rpc",
12496]12552]
12528source = "registry+https://github.com/rust-lang/crates.io-index"12584source = "registry+https://github.com/rust-lang/crates.io-index"
12529checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"12585checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
12586
12587[[package]]
12588name = "unicode-ident"
12589version = "1.0.0"
12590source = "registry+https://github.com/rust-lang/crates.io-index"
12591checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
1253012592
12531[[package]]12593[[package]]
12532name = "unicode-normalization"12594name = "unicode-normalization"
12588 "pallet-ethereum",12650 "pallet-ethereum",
12589 "pallet-transaction-payment-rpc",12651 "pallet-transaction-payment-rpc",
12590 "pallet-transaction-payment-rpc-runtime-api",12652 "pallet-transaction-payment-rpc-runtime-api",
12591 "parity-scale-codec",12653 "parity-scale-codec 3.1.2",
12592 "parking_lot 0.11.2",12654 "parking_lot 0.11.2",
12593 "polkadot-cli",12655 "polkadot-cli",
12594 "polkadot-parachain",12656 "polkadot-parachain",
12595 "polkadot-primitives",12657 "polkadot-primitives",
12596 "polkadot-service",12658 "polkadot-service",
12597 "polkadot-test-service",12659 "polkadot-test-service",
12598 "quartz-runtime",12660 "quartz-runtime",
12661 "rmrk-rpc",
12599 "sc-basic-authorship",12662 "sc-basic-authorship",
12600 "sc-chain-spec",12663 "sc-chain-spec",
12601 "sc-cli",12664 "sc-cli",
12633 "substrate-build-script-utils",12696 "substrate-build-script-utils",
12634 "substrate-frame-rpc-system",12697 "substrate-frame-rpc-system",
12635 "substrate-prometheus-endpoint",12698 "substrate-prometheus-endpoint",
12636 "tokio 1.18.1",12699 "tokio 1.18.2",
12637 "try-runtime-cli",12700 "try-runtime-cli",
12638 "unique-rpc",12701 "unique-rpc",
12639 "unique-runtime",12702 "unique-runtime",
12660 "pallet-transaction-payment-rpc",12723 "pallet-transaction-payment-rpc",
12661 "pallet-transaction-payment-rpc-runtime-api",12724 "pallet-transaction-payment-rpc-runtime-api",
12662 "pallet-unique",12725 "pallet-unique",
12726 "rmrk-rpc",
12663 "sc-client-api",12727 "sc-client-api",
12664 "sc-consensus-aura",12728 "sc-consensus-aura",
12665 "sc-consensus-epochs",12729 "sc-consensus-epochs",
12687 "tokio 0.2.25",12751 "tokio 0.2.25",
12688 "uc-rpc",12752 "uc-rpc",
12689 "unique-runtime-common",12753 "unique-runtime-common",
12754 "up-data-structs",
12690 "up-rpc",12755 "up-rpc",
12691]12756]
1269212757
12742 "pallet-unq-scheduler",12807 "pallet-unq-scheduler",
12743 "pallet-xcm",12808 "pallet-xcm",
12744 "parachain-info",12809 "parachain-info",
12745 "parity-scale-codec",12810 "parity-scale-codec 3.1.2",
12746 "polkadot-parachain",12811 "polkadot-parachain",
12812 "rmrk-rpc",
12747 "scale-info",12813 "scale-info",
12748 "serde",12814 "serde",
12749 "smallvec",12815 "smallvec",
12783 "pallet-nonfungible",12849 "pallet-nonfungible",
12784 "pallet-refungible",12850 "pallet-refungible",
12785 "pallet-unique",12851 "pallet-unique",
12786 "parity-scale-codec",12852 "parity-scale-codec 3.1.2",
12853 "rmrk-rpc",
12854 "rmrk-types",
12787 "scale-info",12855 "scale-info",
12788 "sp-consensus-aura",12856 "sp-consensus-aura",
12789 "sp-core",12857 "sp-core",
12847 "frame-support",12915 "frame-support",
12848 "frame-system",12916 "frame-system",
12849 "pallet-evm",12917 "pallet-evm",
12850 "parity-scale-codec",12918 "parity-scale-codec 3.1.2",
12919 "rmrk-types",
12851 "scale-info",12920 "scale-info",
12852 "serde",12921 "serde",
12853 "sp-core",12922 "sp-core",
12862dependencies = [12931dependencies = [
12863 "pallet-common",12932 "pallet-common",
12864 "pallet-evm",12933 "pallet-evm",
12865 "parity-scale-codec",12934 "parity-scale-codec 3.1.2",
12866 "sp-api",12935 "sp-api",
12867 "sp-core",12936 "sp-core",
12868 "sp-runtime",12937 "sp-runtime",
13341source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"13410source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.21#56cbe45f6c9397b06a99a2d80f4752578ed3637f"
13342dependencies = [13411dependencies = [
13343 "beefy-primitives",13412 "beefy-primitives",
13344 "bitvec",13413 "bitvec 1.0.0",
13345 "frame-benchmarking",13414 "frame-benchmarking",
13346 "frame-election-provider-support",13415 "frame-election-provider-support",
13347 "frame-executive",13416 "frame-executive",
13391 "pallet-vesting",13460 "pallet-vesting",
13392 "pallet-xcm",13461 "pallet-xcm",
13393 "pallet-xcm-benchmarks",13462 "pallet-xcm-benchmarks",
13394 "parity-scale-codec",13463 "parity-scale-codec 3.1.2",
13395 "polkadot-parachain",13464 "polkadot-parachain",
13396 "polkadot-primitives",13465 "polkadot-primitives",
13397 "polkadot-runtime-common",13466 "polkadot-runtime-common",
13558 "winapi-build",13627 "winapi-build",
13559]13628]
13629
13630[[package]]
13631name = "wyz"
13632version = "0.2.0"
13633source = "registry+https://github.com/rust-lang/crates.io-index"
13634checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
1356013635
13561[[package]]13636[[package]]
13562name = "wyz"13637name = "wyz"
13586 "derivative",13661 "derivative",
13587 "impl-trait-for-tuples",13662 "impl-trait-for-tuples",
13588 "log",13663 "log",
13589 "parity-scale-codec",13664 "parity-scale-codec 3.1.2",
13590 "scale-info",13665 "scale-info",
13591 "xcm-procedural",13666 "xcm-procedural",
13592]13667]
13600 "frame-system",13675 "frame-system",
13601 "log",13676 "log",
13602 "pallet-transaction-payment",13677 "pallet-transaction-payment",
13603 "parity-scale-codec",13678 "parity-scale-codec 3.1.2",
13604 "polkadot-parachain",13679 "polkadot-parachain",
13605 "scale-info",13680 "scale-info",
13606 "sp-arithmetic",13681 "sp-arithmetic",
13620 "frame-support",13695 "frame-support",
13621 "impl-trait-for-tuples",13696 "impl-trait-for-tuples",
13622 "log",13697 "log",
13623 "parity-scale-codec",13698 "parity-scale-codec 3.1.2",
13624 "sp-arithmetic",13699 "sp-arithmetic",
13625 "sp-core",13700 "sp-core",
13626 "sp-io",13701 "sp-io",
1368313758
13684[[package]]13759[[package]]
13685name = "zstd"13760name = "zstd"
13686version = "0.10.0+zstd.1.5.2"13761version = "0.10.2+zstd.1.5.2"
13687source = "registry+https://github.com/rust-lang/crates.io-index"13762source = "registry+https://github.com/rust-lang/crates.io-index"
13688checksum = "3b1365becbe415f3f0fcd024e2f7b45bacfb5bdd055f0dc113571394114e7bdd"13763checksum = "5f4a6bd64f22b5e3e94b4e238669ff9f10815c27a5180108b849d24174a83847"
13689dependencies = [13764dependencies = [
13690 "zstd-safe",13765 "zstd-safe",
13691]13766]
1369213767
13693[[package]]13768[[package]]
13694name = "zstd-safe"13769name = "zstd-safe"
13695version = "4.1.4+zstd.1.5.2"13770version = "4.1.6+zstd.1.5.2"
13696source = "registry+https://github.com/rust-lang/crates.io-index"13771source = "registry+https://github.com/rust-lang/crates.io-index"
13697checksum = "2f7cd17c9af1a4d6c24beb1cc54b17e2ef7b593dc92f19e9d9acad8b182bbaee"13772checksum = "94b61c51bb270702d6167b8ce67340d2754b088d0c091b06e593aa772c3ee9bb"
13698dependencies = [13773dependencies = [
13699 "libc",13774 "libc",
13700 "zstd-sys",13775 "zstd-sys",
modifiedclient/rpc/Cargo.tomldiffbeforeafterboth
--- a/client/rpc/Cargo.toml
+++ b/client/rpc/Cargo.toml
@@ -5,6 +5,7 @@
 edition = "2021"
 
 [dependencies]
+unique-runtime-common = { default-features = false, path = "../../runtime/common" }
 pallet-common = { default-features = false, path = '../../pallets/common' }
 up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
 up-rpc = { path = "../../primitives/rpc" }
@@ -19,3 +20,8 @@
 sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
 sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
 pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
+
+# RMRK
+# todo git
+rmrk-rpc = { git = "https://github.com/UniqueNetwork/rmrk-substrate.git", branch = "feature/separate-types-and-traits" } 
+rmrk-types = { git = "https://github.com/UniqueNetwork/rmrk-substrate.git", branch = "feature/separate-types-and-traits" } 
modifiedclient/rpc/src/lib.rsdiffbeforeafterboth
--- a/client/rpc/src/lib.rs
+++ b/client/rpc/src/lib.rs
@@ -16,7 +16,7 @@
 
 use std::sync::Arc;
 
-use codec::Decode;
+use codec::{Decode, Encode};
 use jsonrpc_core::{Error as RpcError, ErrorCode, Result};
 use jsonrpc_derive::rpc;
 use up_data_structs::{
@@ -27,6 +27,15 @@
 use sp_blockchain::HeaderBackend;
 use up_rpc::UniqueApi as UniqueRuntimeApi;
 
+// RMRK
+use rmrk_rpc::RmrkApi as RmrkRuntimeApi;
+use up_data_structs::{
+	RmrkCollectionId, RmrkNftId, RmrkBaseId, RmrkNftChild, RmrkThemeName, RmrkPropertyKey,
+	RmrkResourceId,
+};
+
+pub use rmrk_unique_rpc::RmrkApi;
+
 #[rpc]
 pub trait UniqueApi<BlockHash, CrossAccountId, AccountId> {
 	#[rpc(name = "unique_accountTokens")]
@@ -179,6 +188,124 @@
 	) -> Result<Option<CollectionLimits>>;
 }
 
+mod rmrk_unique_rpc {
+	use super::*;
+
+	#[rpc(server)]
+	pub trait RmrkApi<
+		BlockHash,
+		AccountId,
+		CollectionInfo,
+		NftInfo,
+		ResourceInfo,
+		PropertyInfo,
+		BaseInfo,
+		PartType,
+		Theme,
+	>
+	{
+		#[rpc(name = "rmrk_lastCollectionIdx")]
+		/// Get the latest created collection id
+		fn last_collection_idx(&self, at: Option<BlockHash>) -> Result<RmrkCollectionId>;
+
+		#[rpc(name = "rmrk_collectionById")]
+		/// Get collection by id
+		fn collection_by_id(
+			&self,
+			id: RmrkCollectionId,
+			at: Option<BlockHash>,
+		) -> Result<Option<CollectionInfo>>;
+
+		#[rpc(name = "rmrk_nftById")]
+		/// Get NFT by collection id and NFT id
+		fn nft_by_id(
+			&self,
+			collection_id: RmrkCollectionId,
+			nft_id: RmrkNftId,
+			at: Option<BlockHash>,
+		) -> Result<Option<NftInfo>>;
+
+		#[rpc(name = "rmrk_accountTokens")]
+		/// Get tokens owned by an account in a collection
+		fn account_tokens(
+			&self,
+			account_id: AccountId,
+			collection_id: RmrkCollectionId,
+			at: Option<BlockHash>,
+		) -> Result<Vec<RmrkNftId>>;
+
+		#[rpc(name = "rmrk_nftChildren")]
+		/// Get NFT children
+		fn nft_children(
+			&self,
+			collection_id: RmrkCollectionId,
+			nft_id: RmrkNftId,
+			at: Option<BlockHash>,
+		) -> Result<Vec<RmrkNftChild>>;
+
+		#[rpc(name = "rmrk_collectionProperties")]
+		/// Get collection properties
+		fn collection_properties(
+			&self,
+			collection_id: RmrkCollectionId,
+			filter_keys: Option<Vec<RmrkPropertyKey>>, //String
+			at: Option<BlockHash>,
+		) -> Result<Vec<PropertyInfo>>;
+
+		#[rpc(name = "rmrk_nftProperties")]
+		/// Get NFT properties
+		fn nft_properties(
+			&self,
+			collection_id: RmrkCollectionId,
+			nft_id: RmrkNftId,
+			filter_keys: Option<Vec<RmrkPropertyKey>>,
+			at: Option<BlockHash>,
+		) -> Result<Vec<PropertyInfo>>;
+
+		#[rpc(name = "rmrk_nftResources")]
+		/// Get NFT resources
+		fn nft_resources(
+			&self,
+			collection_id: RmrkCollectionId,
+			nft_id: RmrkNftId,
+			at: Option<BlockHash>,
+		) -> Result<Vec<ResourceInfo>>;
+
+		#[rpc(name = "rmrk_nftResourcePriorities")]
+		/// Get NFT resource priorities
+		fn nft_resource_priorities(
+			&self,
+			collection_id: RmrkCollectionId,
+			nft_id: RmrkNftId,
+			at: Option<BlockHash>,
+		) -> Result<Vec<RmrkResourceId>>;
+
+		#[rpc(name = "rmrk_base")]
+		/// Get base info
+		fn base(&self, base_id: RmrkBaseId, at: Option<BlockHash>) -> Result<Option<BaseInfo>>;
+
+		#[rpc(name = "rmrk_baseParts")]
+		/// Get all Base's parts
+		fn base_parts(&self, base_id: RmrkBaseId, at: Option<BlockHash>) -> Result<Vec<PartType>>;
+
+		#[rpc(name = "rmrk_themeNames")]
+		fn theme_names(
+			&self,
+			base_id: RmrkBaseId,
+			at: Option<BlockHash>,
+		) -> Result<Vec<RmrkThemeName>>;
+
+		#[rpc(name = "rmrk_themes")]
+		fn theme(
+			&self,
+			base_id: RmrkBaseId,
+			theme_name: RmrkThemeName, // String
+			filter_keys: Option<Vec<RmrkPropertyKey>>,
+			at: Option<BlockHash>,
+		) -> Result<Option<Theme>>;
+	}
+}
+
 pub struct Unique<C, P> {
 	client: Arc<C>,
 	_marker: std::marker::PhantomData<P>,
@@ -209,7 +336,9 @@
 	(
 		$method_name:ident(
 			$($(#[map(|$map_arg:ident| $map:expr)])? $name:ident: $ty:ty),* $(,)?
-		) -> $result:ty $(=> $mapper:expr)?
+		) -> $result:ty $(=> $mapper:expr)?,
+		//$runtime_name:ident $(<$($lt: tt),+>)*
+		$runtime_api_macro:ident
 		$(; changed_in $ver:expr, $changed_method_name:ident ($($changed_name:expr), * $(,)?) => $fixer:expr)*
 	) => {
 		fn $method_name(
@@ -222,7 +351,7 @@
 			let api = self.client.runtime_api();
 			let at = BlockId::hash(at.unwrap_or_else(|| self.client.info().best_hash));
 			let _api_version = if let Ok(Some(api_version)) =
-				api.api_version::<dyn UniqueRuntimeApi<Block, CrossAccountId, AccountId>>(&at)
+				api.api_version::<$runtime_api_macro!()>(&at)
 			{
 				api_version
 			} else {
@@ -253,6 +382,18 @@
 	};
 }
 
+macro_rules! unique_api {
+	() => {
+		dyn UniqueRuntimeApi<Block, CrossAccountId, AccountId>
+	};
+}
+
+macro_rules! rmrk_api {
+	() => {
+		dyn RmrkRuntimeApi<Block, AccountId, CollectionInfo, NftInfo, ResourceInfo, PropertyInfo, BaseInfo, PartType, Theme>
+	};
+}
+
 #[allow(deprecated)]
 impl<C, Block, CrossAccountId, AccountId>
 	UniqueApi<<Block as BlockT>::Hash, CrossAccountId, AccountId> for Unique<C, Block>
@@ -263,22 +404,38 @@
 	C::Api: UniqueRuntimeApi<Block, CrossAccountId, AccountId>,
 	CrossAccountId: pallet_evm::account::CrossAccountId<AccountId>,
 {
-	pass_method!(account_tokens(collection: CollectionId, account: CrossAccountId) -> Vec<TokenId>);
-	pass_method!(collection_tokens(collection: CollectionId) -> Vec<TokenId>);
-	pass_method!(token_exists(collection: CollectionId, token: TokenId) -> bool);
 	pass_method!(
-		token_owner(collection: CollectionId, token: TokenId) -> Option<CrossAccountId>;
-		changed_in 2, token_owner_before_version_2(collection, token) => |u| Some(u)
+		account_tokens(collection: CollectionId, account: CrossAccountId) -> Vec<TokenId>, unique_api
 	);
-	pass_method!(topmost_token_owner(collection: CollectionId, token: TokenId) -> Option<CrossAccountId>);
-	pass_method!(const_metadata(collection: CollectionId, token: TokenId) -> Vec<u8>);
+	pass_method!(
+		collection_tokens(collection: CollectionId) -> Vec<TokenId>, unique_api
+	);
+	pass_method!(
+		token_exists(collection: CollectionId, token: TokenId) -> bool, unique_api
+	);
+	pass_method!(
+		token_owner(collection: CollectionId, token: TokenId) -> Option<CrossAccountId>, unique_api
+	);
+	pass_method!(
+		topmost_token_owner(collection: CollectionId, token: TokenId) -> Option<CrossAccountId>, unique_api
+	);
+	pass_method!(
+		const_metadata(collection: CollectionId, token: TokenId) -> Vec<u8>, unique_api
+	);
+	pass_method!(total_supply(collection: CollectionId) -> u32, unique_api);
+	pass_method!(account_balance(collection: CollectionId, account: CrossAccountId) -> u32, unique_api);
+	pass_method!(balance(collection: CollectionId, account: CrossAccountId, token: TokenId) -> String => |v| v.to_string(), unique_api);
+	pass_method!(
+		allowance(collection: CollectionId, sender: CrossAccountId, spender: CrossAccountId, token: TokenId) -> String => |v| v.to_string(),
+		unique_api
+	);
 
 	pass_method!(collection_properties(
 		collection: CollectionId,
 
 		#[map(|keys| string_keys_to_bytes_keys(keys))]
 		keys: Option<Vec<String>>
-	) -> Vec<Property>);
+	) -> Vec<Property>, unique_api);
 
 	pass_method!(token_properties(
 		collection: CollectionId,
@@ -286,14 +443,14 @@
 
 		#[map(|keys| string_keys_to_bytes_keys(keys))]
 		keys: Option<Vec<String>>
-	) -> Vec<Property>);
+	) -> Vec<Property>, unique_api);
 
 	pass_method!(property_permissions(
 		collection: CollectionId,
 
 		#[map(|keys| string_keys_to_bytes_keys(keys))]
 		keys: Option<Vec<String>>
-	) -> Vec<PropertyKeyPermission>);
+	) -> Vec<PropertyKeyPermission>, unique_api);
 
 	pass_method!(token_data(
 		collection: CollectionId,
@@ -301,25 +458,86 @@
 
 		#[map(|keys| string_keys_to_bytes_keys(keys))]
 		keys: Option<Vec<String>>,
-	) -> TokenData<CrossAccountId>);
+	) -> TokenData<CrossAccountId>, unique_api);
 
-	pass_method!(total_supply(collection: CollectionId) -> u32);
-	pass_method!(account_balance(collection: CollectionId, account: CrossAccountId) -> u32);
-	pass_method!(balance(collection: CollectionId, account: CrossAccountId, token: TokenId) -> String => |v| v.to_string());
-	pass_method!(allowance(collection: CollectionId, sender: CrossAccountId, spender: CrossAccountId, token: TokenId) -> String => |v| v.to_string());
+	pass_method!(adminlist(collection: CollectionId) -> Vec<CrossAccountId>, unique_api);
+	pass_method!(allowlist(collection: CollectionId) -> Vec<CrossAccountId>, unique_api);
+	pass_method!(allowed(collection: CollectionId, user: CrossAccountId) -> bool, unique_api);
+	pass_method!(last_token_id(collection: CollectionId) -> TokenId, unique_api);
+	pass_method!(collection_by_id(collection: CollectionId) -> Option<RpcCollection<AccountId>>, unique_api);
+	pass_method!(collection_stats() -> CollectionStats, unique_api);
+	pass_method!(next_sponsored(collection: CollectionId, account: CrossAccountId, token: TokenId) -> Option<u64>, unique_api);
+	pass_method!(effective_collection_limits(collection_id: CollectionId) -> Option<CollectionLimits>, unique_api);
+}
 
-	pass_method!(adminlist(collection: CollectionId) -> Vec<CrossAccountId>);
-	pass_method!(allowlist(collection: CollectionId) -> Vec<CrossAccountId>);
-	pass_method!(allowed(collection: CollectionId, user: CrossAccountId) -> bool);
-	pass_method!(last_token_id(collection: CollectionId) -> TokenId);
-	pass_method!(collection_by_id(collection: CollectionId) -> Option<RpcCollection<AccountId>>);
-	pass_method!(collection_stats() -> CollectionStats);
-	pass_method!(next_sponsored(collection: CollectionId, account: CrossAccountId, token: TokenId) -> Option<u64>);
-	pass_method!(effective_collection_limits(collection_id: CollectionId) -> Option<CollectionLimits>);
+#[allow(deprecated)]
+impl<
+		C,
+		Block,
+		AccountId,
+		CollectionInfo,
+		NftInfo,
+		ResourceInfo,
+		PropertyInfo,
+		BaseInfo,
+		PartType,
+		Theme,
+	>
+	rmrk_unique_rpc::RmrkApi<
+		<Block as BlockT>::Hash,
+		AccountId,
+		CollectionInfo,
+		NftInfo,
+		ResourceInfo,
+		PropertyInfo,
+		BaseInfo,
+		PartType,
+		Theme,
+	> for Unique<C, Block>
+where
+	C: Send + Sync + 'static + ProvideRuntimeApi<Block> + HeaderBackend<Block>,
+	C::Api: RmrkRuntimeApi<
+		Block,
+		AccountId,
+		CollectionInfo,
+		NftInfo,
+		ResourceInfo,
+		PropertyInfo,
+		BaseInfo,
+		PartType,
+		Theme,
+	>,
+	AccountId: Decode + Encode,
+	CollectionInfo: Decode,
+	NftInfo: Decode,
+	ResourceInfo: Decode,
+	PropertyInfo: Decode,
+	BaseInfo: Decode,
+	PartType: Decode,
+	Theme: Decode,
+	Block: BlockT,
+{
+	pass_method!(last_collection_idx() -> RmrkCollectionId, rmrk_api);
+	pass_method!(collection_by_id(id: RmrkCollectionId) -> Option<CollectionInfo>, rmrk_api);
+	pass_method!(nft_by_id(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Option<NftInfo>, rmrk_api);
+	pass_method!(account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Vec<RmrkNftId>, rmrk_api);
+	pass_method!(nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Vec<RmrkNftChild>, rmrk_api);
+	pass_method!(
+		collection_properties(collection_id: RmrkCollectionId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Vec<PropertyInfo>,
+		rmrk_api
+	);
+	pass_method!(
+		nft_properties(collection_id: RmrkCollectionId, nft_id: RmrkNftId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Vec<PropertyInfo>,
+		rmrk_api
+	);
+	pass_method!(nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Vec<ResourceInfo>, rmrk_api);
+	pass_method!(nft_resource_priorities(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Vec<RmrkResourceId>, rmrk_api);
+	pass_method!(base(base_id: RmrkBaseId) -> Option<BaseInfo>, rmrk_api);
+	pass_method!(base_parts(base_id: RmrkBaseId) -> Vec<PartType>, rmrk_api);
+	pass_method!(theme_names(base_id: RmrkBaseId) -> Vec<RmrkThemeName>, rmrk_api);
+	pass_method!(theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Option<Theme>, rmrk_api);
 }
 
 fn string_keys_to_bytes_keys(keys: Option<Vec<String>>) -> Option<Vec<Vec<u8>>> {
-	keys.map(|keys| {
-		keys.into_iter().map(|key| key.into_bytes()).collect()
-	})
+	keys.map(|keys| keys.into_iter().map(|key| key.into_bytes()).collect())
 }
modifiednode/cli/Cargo.tomldiffbeforeafterboth
--- a/node/cli/Cargo.toml
+++ b/node/cli/Cargo.toml
@@ -276,6 +276,14 @@
 branch = "polkadot-v0.9.21"
 
 ################################################################################
+# RMRK dependencies
+
+# todo git
+[dependencies.rmrk-rpc]
+git = "https://github.com/UniqueNetwork/rmrk-substrate.git"
+branch = "feature/separate-types-and-traits"
+
+################################################################################
 # Package
 
 [package]
modifiednode/cli/src/service.rsdiffbeforeafterboth
--- a/node/cli/src/service.rs
+++ b/node/cli/src/service.rs
@@ -67,6 +67,12 @@
 
 use unique_runtime_common::types::{AuraId, RuntimeInstance, AccountId, Balance, Index, Hash, Block};
 
+// RMRK
+use up_data_structs::{
+	RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo,
+	RmrkPartType, RmrkTheme,
+};
+
 /// Unique native executor instance.
 #[cfg(feature = "unique-runtime")]
 pub struct UniqueRuntimeExecutor;
@@ -347,7 +353,17 @@
 		+ pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>
 		+ sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>
 		+ up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>
-		+ substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>
+		+ rmrk_rpc::RmrkApi<
+			Block,
+			AccountId,
+			RmrkCollectionInfo<AccountId>,
+			RmrkInstanceInfo<AccountId>,
+			RmrkResourceInfo,
+			RmrkPropertyInfo,
+			RmrkBaseInfo<AccountId>,
+			RmrkPartType,
+			RmrkTheme,
+		> + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>
 		+ sp_api::Metadata<Block>
 		+ sp_offchain::OffchainWorkerApi<Block>
 		+ cumulus_primitives_core::CollectCollationInfo<Block>,
@@ -628,7 +644,17 @@
 		+ pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>
 		+ sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>
 		+ up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>
-		+ substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>
+		+ rmrk_rpc::RmrkApi<
+			Block,
+			AccountId,
+			RmrkCollectionInfo<AccountId>,
+			RmrkInstanceInfo<AccountId>,
+			RmrkResourceInfo,
+			RmrkPropertyInfo,
+			RmrkBaseInfo<AccountId>,
+			RmrkPartType,
+			RmrkTheme,
+		> + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>
 		+ sp_api::Metadata<Block>
 		+ sp_offchain::OffchainWorkerApi<Block>
 		+ cumulus_primitives_core::CollectCollationInfo<Block>
@@ -761,7 +787,17 @@
 		+ pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<Block, Balance>
 		+ sp_api::ApiExt<Block, StateBackend = sc_client_api::StateBackendFor<FullBackend, Block>>
 		+ up_rpc::UniqueApi<Block, Runtime::CrossAccountId, AccountId>
-		+ substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>
+		+ rmrk_rpc::RmrkApi<
+			Block,
+			AccountId,
+			RmrkCollectionInfo<AccountId>,
+			RmrkInstanceInfo<AccountId>,
+			RmrkResourceInfo,
+			RmrkPropertyInfo,
+			RmrkBaseInfo<AccountId>,
+			RmrkPartType,
+			RmrkTheme,
+		> + substrate_frame_rpc_system::AccountNonceApi<Block, AccountId, Index>
 		+ sp_api::Metadata<Block>
 		+ sp_offchain::OffchainWorkerApi<Block>
 		+ cumulus_primitives_core::CollectCollationInfo<Block>
modifiednode/rpc/Cargo.tomldiffbeforeafterboth
--- a/node/rpc/Cargo.toml
+++ b/node/rpc/Cargo.toml
@@ -49,11 +49,16 @@
 fc-db = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
 fc-mapping-sync = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
 
+# RMRK
+# todo git
+rmrk-rpc = { git = "https://github.com/UniqueNetwork/rmrk-substrate.git", branch = "feature/separate-types-and-traits" }
+
 pallet-common = { default-features = false, path = "../../pallets/common" }
 unique-runtime-common = { default-features = false, path = "../../runtime/common" }
 pallet-unique = { path = "../../pallets/unique" }
 uc-rpc = { path = "../../client/rpc" }
 up-rpc = { path = "../../primitives/rpc" }
+up-data-structs = { default-features = false, path = "../../primitives/data-structs" }
 
 [dependencies.serde]
 features = ['derive']
modifiednode/rpc/src/lib.rsdiffbeforeafterboth
--- a/node/rpc/src/lib.rs
+++ b/node/rpc/src/lib.rs
@@ -43,6 +43,11 @@
 use unique_runtime_common::types::{
 	Hash, AccountId, RuntimeInstance, Index, Block, BlockNumber, Balance,
 };
+// RMRK
+use up_data_structs::{
+	RmrkCollectionInfo, RmrkInstanceInfo, RmrkResourceInfo, RmrkPropertyInfo, RmrkBaseInfo,
+	RmrkPartType, RmrkTheme,
+};
 
 /// Public io handler for exporting into other modules
 pub type IoHandler = jsonrpc_core::IoHandler<sc_rpc::Metadata>;
@@ -144,6 +149,17 @@
 	C::Api: fp_rpc::EthereumRuntimeRPCApi<Block>,
 	C::Api: fp_rpc::ConvertTransactionRuntimeApi<Block>,
 	C::Api: up_rpc::UniqueApi<Block, <R as RuntimeInstance>::CrossAccountId, AccountId>,
+	C::Api: rmrk_rpc::RmrkApi<
+		Block,
+		AccountId,
+		RmrkCollectionInfo<AccountId>,
+		RmrkInstanceInfo<AccountId>,
+		RmrkResourceInfo,
+		RmrkPropertyInfo,
+		RmrkBaseInfo<AccountId>,
+		RmrkPartType,
+		RmrkTheme,
+	>,
 	B: sc_client_api::Backend<Block> + Send + Sync + 'static,
 	B::State: sc_client_api::backend::StateBackend<sp_runtime::traits::HashFor<Block>>,
 	P: TransactionPool<Block = Block> + 'static,
@@ -157,7 +173,7 @@
 		EthPubSubApiServer, EthSigner, HexEncodedIdProvider, NetApi, NetApiServer, Web3Api,
 		Web3ApiServer,
 	};
-	use uc_rpc::{UniqueApi, Unique};
+	use uc_rpc::{UniqueApi, RmrkApi, Unique};
 	// use pallet_contracts_rpc::{Contracts, ContractsApi};
 	use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi};
 	use substrate_frame_rpc_system::{FullSystem, SystemApi};
@@ -213,7 +229,11 @@
 		fee_history_limit,
 		fee_history_cache,
 	)));
+
+	// todo look into
+	//let unique = Unique::new(client.clone());
 	io.extend_with(UniqueApi::to_delegate(Unique::new(client.clone())));
+	io.extend_with(RmrkApi::to_delegate(Unique::new(client.clone())));
 
 	if let Some(filter_pool) = filter_pool {
 		io.extend_with(EthFilterApiServer::to_delegate(EthFilterApi::new(
modifiedpallets/common/Cargo.tomldiffbeforeafterboth
--- a/pallets/common/Cargo.toml
+++ b/pallets/common/Cargo.toml
@@ -26,6 +26,10 @@
     "derive",
 ] }
 
+# RMRK
+# todo git
+rmrk-types = { default-features = false, git = "https://github.com/UniqueNetwork/rmrk-substrate.git", branch = "feature/separate-types-and-traits" }
+
 [features]
 default = ["std"]
 std = [
modifiedpallets/common/src/lib.rsdiffbeforeafterboth
--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -30,15 +30,52 @@
 };
 use pallet_evm::GasWeightMapping;
 use up_data_structs::{
-	COLLECTION_NUMBER_LIMIT, Collection, RpcCollection, CollectionId, CreateItemData,
-	MAX_TOKEN_PREFIX_LENGTH, COLLECTION_ADMINS_LIMIT, TokenId, CollectionStats,
-	MAX_TOKEN_OWNERSHIP, CollectionMode, NFT_SPONSOR_TRANSFER_TIMEOUT,
-	FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, MAX_SPONSOR_TIMEOUT,
-	CUSTOM_DATA_LIMIT, CollectionLimits, CreateCollectionData, SponsorshipState, CreateItemExData,
-	SponsoringRateLimit, budget::Budget, COLLECTION_FIELD_LIMIT, CollectionField, PhantomType,
-	Property, Properties, PropertiesPermissionMap, PropertyKey, PropertyPermission,
-	PropertiesError, PropertyKeyPermission, TokenData, TrySetProperty,
+	COLLECTION_NUMBER_LIMIT,
+	Collection,
+	RpcCollection,
+	CollectionId,
+	CreateItemData,
+	MAX_TOKEN_PREFIX_LENGTH,
+	COLLECTION_ADMINS_LIMIT,
+	TokenId,
+	CollectionStats,
+	MAX_TOKEN_OWNERSHIP,
+	CollectionMode,
+	NFT_SPONSOR_TRANSFER_TIMEOUT,
+	FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+	REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
+	MAX_SPONSOR_TIMEOUT,
+	CUSTOM_DATA_LIMIT,
+	CollectionLimits,
+	CreateCollectionData,
+	SponsorshipState,
+	CreateItemExData,
+	SponsoringRateLimit,
+	budget::Budget,
+	COLLECTION_FIELD_LIMIT,
+	CollectionField,
+	PhantomType,
+	Property,
+	Properties,
+	PropertiesPermissionMap,
+	PropertyKey,
+	PropertyPermission,
+	PropertiesError,
+	PropertyKeyPermission,
+	TokenData,
+	TrySetProperty,
+	PropertyScope,
+	// RMRK
+	RmrkCollectionInfo,
+	RmrkInstanceInfo,
+	RmrkResourceInfo,
+	RmrkPropertyInfo,
+	RmrkBaseInfo,
+	RmrkPartType,
+	RmrkTheme,
+	RmrkNftChild,
 };
+
 pub use pallet::*;
 use sp_core::H160;
 use sp_runtime::{ArithmeticError, DispatchError, DispatchResult};
@@ -441,6 +478,15 @@
 			TokenId,
 			PhantomType<TokenData<T::CrossAccountId>>,
 			PhantomType<RpcCollection<T::AccountId>>,
+			// RMRK
+			PhantomType<RmrkCollectionInfo<T::AccountId>>,
+			PhantomType<RmrkInstanceInfo<T::AccountId>>,
+			PhantomType<RmrkResourceInfo>,
+			PhantomType<RmrkPropertyInfo>,
+			PhantomType<RmrkBaseInfo<T::AccountId>>,
+			PhantomType<RmrkPartType>,
+			PhantomType<RmrkTheme>,
+			PhantomType<RmrkNftChild>,
 		),
 		QueryKind = OptionQuery,
 	>;
@@ -644,18 +690,14 @@
 
 		let mut collection_properties = up_data_structs::CollectionProperties::get();
 		collection_properties
-			.try_set_from_iter(data.properties.into_iter().map(|p| (p.key, p.value)))
+			.try_set_from_iter(data.properties.into_iter())
 			.map_err(<Error<T>>::from)?;
 
 		CollectionProperties::<T>::insert(id, collection_properties);
 
 		let mut token_props_permissions = PropertiesPermissionMap::new();
 		token_props_permissions
-			.try_set_from_iter(
-				data.token_property_permissions
-					.into_iter()
-					.map(|property| (property.key, property.permission)),
-			)
+			.try_set_from_iter(data.token_property_permissions.into_iter())
 			.map_err(<Error<T>>::from)?;
 
 		CollectionPropertyPermissions::<T>::insert(id, token_props_permissions);
@@ -720,6 +762,7 @@
 		<AdminAmount<T>>::remove(collection.id);
 		<IsAdmin<T>>::remove_prefix((collection.id,), None);
 		<Allowlist<T>>::remove_prefix((collection.id,), None);
+		<CollectionProperties<T>>::remove(collection.id);
 
 		<Pallet<T>>::deposit_event(Event::CollectionDestroyed(collection.id));
 		Ok(())
@@ -743,7 +786,34 @@
 		Ok(())
 	}
 
+	pub fn set_scoped_collection_property(
+		collection: &CollectionHandle<T>,
+		scope: PropertyScope,
+		property: Property,
+	) -> DispatchResult {
+		CollectionProperties::<T>::try_mutate(collection.id, |properties| {
+			properties.try_scoped_set(scope, property.key, property.value)
+		})
+		.map_err(<Error<T>>::from)?;
+
+		Ok(())
+	}
+
 	#[transactional]
+	pub fn set_scoped_collection_properties(
+		collection: &CollectionHandle<T>,
+		scope: PropertyScope,
+		properties: impl Iterator<Item=Property>,
+	) -> DispatchResult {
+		CollectionProperties::<T>::try_mutate(collection.id, |stored_properties| {
+			stored_properties.try_scoped_set_from_iter(scope, properties)
+		})
+		.map_err(<Error<T>>::from)?;
+
+		Ok(())
+	}
+
+	#[transactional]
 	pub fn set_collection_properties(
 		collection: &CollectionHandle<T>,
 		sender: &T::CrossAccountId,
@@ -849,23 +919,26 @@
 	) -> Result<Vec<Property>, DispatchError> {
 		let properties = Self::collection_properties(collection_id);
 
-		let properties = keys.map(|keys| {
-			keys.into_iter()
-			.filter_map(|key| {
-				properties.get(&key).map(|value| Property {
-					key,
-					value: value.clone(),
-				})
+		let properties = keys
+			.map(|keys| {
+				keys.into_iter()
+					.filter_map(|key| {
+						properties.get(&key).map(|value| Property {
+							key,
+							value: value.clone(),
+						})
+					})
+					.collect()
 			})
-			.collect()
-		}).unwrap_or(
-			properties.iter()
-				.map(|(key, value)| Property {
-					key: key.clone(),
-					value: value.clone(),
-				})
-				.collect()
-		);
+			.unwrap_or_else(|| {
+				properties
+					.iter()
+					.map(|(key, value)| Property {
+						key: key.clone(),
+						value: value.clone(),
+					})
+					.collect()
+			});
 
 		Ok(properties)
 	}
@@ -876,25 +949,28 @@
 	) -> Result<Vec<PropertyKeyPermission>, DispatchError> {
 		let permissions = Self::property_permissions(collection_id);
 
-		let key_permissions = keys.map(|keys| {
-			keys.into_iter()
-			.filter_map(|key| {
+		let key_permissions = keys
+			.map(|keys| {
+				keys.into_iter()
+					.filter_map(|key| {
+						permissions
+							.get(&key)
+							.map(|permission| PropertyKeyPermission {
+								key,
+								permission: permission.clone(),
+							})
+					})
+					.collect()
+			})
+			.unwrap_or_else(|| {
 				permissions
-					.get(&key)
-					.map(|permission| PropertyKeyPermission {
-						key,
+					.iter()
+					.map(|(key, permission)| PropertyKeyPermission {
+						key: key.clone(),
 						permission: permission.clone(),
 					})
-			})
-			.collect()
-		}).unwrap_or(
-			permissions.iter()
-				.map(|(key, permission)| PropertyKeyPermission {
-					key: key.clone(),
-					permission: permission.clone(),
-				})
-				.collect()
-		);
+					.collect()
+			});
 
 		Ok(key_permissions)
 	}
modifiedpallets/fungible/src/common.rsdiffbeforeafterboth
--- a/pallets/fungible/src/common.rs
+++ b/pallets/fungible/src/common.rs
@@ -319,7 +319,11 @@
 		Vec::new()
 	}
 
-	fn token_properties(&self, _token_id: TokenId, _keys: Option<Vec<PropertyKey>>) -> Vec<Property> {
+	fn token_properties(
+		&self,
+		_token_id: TokenId,
+		_keys: Option<Vec<PropertyKey>>,
+	) -> Vec<Property> {
 		Vec::new()
 	}
 
modifiedpallets/nonfungible/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/benchmarking.rs
+++ b/pallets/nonfungible/src/benchmarking.rs
@@ -28,10 +28,7 @@
 
 fn create_max_item_data<T: Config>(owner: T::CrossAccountId) -> CreateItemData<T> {
 	let const_data = create_data::<CUSTOM_DATA_LIMIT>();
-	CreateItemData::<T> {
-		const_data,
-		owner,
-	}
+	CreateItemData::<T> { const_data, owner }
 }
 fn create_max_item<T: Config>(
 	collection: &NonfungibleHandle<T>,
modifiedpallets/nonfungible/src/common.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -18,8 +18,8 @@
 
 use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};
 use up_data_structs::{
-	TokenId, CreateItemExData, CollectionId, budget::Budget, Property,
-	PropertyKey, PropertyKeyPermission,
+	TokenId, CreateItemExData, CollectionId, budget::Budget, Property, PropertyKey,
+	PropertyKeyPermission,
 };
 use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};
 use sp_runtime::DispatchError;
@@ -179,7 +179,7 @@
 		let weight = <CommonWeights<T>>::delete_collection_properties(property_keys.len() as u32);
 
 		with_weight(
-			<Pallet<T>>::delete_collection_properties(self, &sender, property_keys),
+			<Pallet<T>>::delete_collection_properties(self, sender, property_keys),
 			weight,
 		)
 	}
@@ -367,20 +367,23 @@
 
 		keys.map(|keys| {
 			keys.into_iter()
-			.filter_map(|key| {
-				properties.get(&key).map(|value| Property {
-					key,
+				.filter_map(|key| {
+					properties.get(&key).map(|value| Property {
+						key,
+						value: value.clone(),
+					})
+				})
+				.collect()
+		})
+		.unwrap_or_else(|| {
+			properties
+				.iter()
+				.map(|(key, value)| Property {
+					key: key.clone(),
 					value: value.clone(),
 				})
-			})
-			.collect()
-		}).unwrap_or(
-			properties.iter().map(|(key, value)| Property {
-				key: key.clone(),
-				value: value.clone(),
-			})
-			.collect()
-		)
+				.collect()
+		})
 	}
 
 	fn total_supply(&self) -> u32 {
modifiedpallets/nonfungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -257,6 +257,7 @@
 		<Owned<T>>::remove((collection.id, &token_data.owner, token));
 		<TokensBurnt<T>>::insert(collection.id, burnt);
 		<TokenData<T>>::remove((collection.id, token));
+		<TokenProperties<T>>::remove((collection.id, token));
 		let old_spender = <Allowance<T>>::take((collection.id, token));
 
 		if let Some(old_spender) = old_spender {
@@ -353,8 +354,8 @@
 	) -> DispatchResult {
 		let permission = <PalletCommon<T>>::property_permissions(collection.id)
 			.get(property_key)
-			.map(|p| p.clone())
-			.unwrap_or(PropertyPermission::none());
+			.cloned()
+			.unwrap_or_else(PropertyPermission::none);
 
 		let token_data = <TokenData<T>>::get((collection.id, token_id))
 			.ok_or(<CommonError<T>>::TokenNotFound)?;
modifiedpallets/refungible/src/common.rsdiffbeforeafterboth
--- a/pallets/refungible/src/common.rs
+++ b/pallets/refungible/src/common.rs
@@ -19,8 +19,8 @@
 use sp_std::collections::btree_map::BTreeMap;
 use frame_support::{dispatch::DispatchResultWithPostInfo, fail, weights::Weight};
 use up_data_structs::{
-	CollectionId, TokenId, CreateItemExData, CreateRefungibleExData,
-	budget::Budget, Property, PropertyKey, PropertyKeyPermission,
+	CollectionId, TokenId, CreateItemExData, CreateRefungibleExData, budget::Budget, Property,
+	PropertyKey, PropertyKeyPermission,
 };
 use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};
 use sp_runtime::DispatchError;
@@ -340,7 +340,11 @@
 			.into_inner()
 	}
 
-	fn token_properties(&self, _token_id: TokenId, _keys: Option<Vec<PropertyKey>>) -> Vec<Property> {
+	fn token_properties(
+		&self,
+		_token_id: TokenId,
+		_keys: Option<Vec<PropertyKey>>,
+	) -> Vec<Property> {
 		Vec::new()
 	}
 
modifiedpallets/refungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -53,7 +53,10 @@
 #[frame_support::pallet]
 pub mod pallet {
 	use super::*;
-	use frame_support::{Blake2_128, Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key, traits::StorageVersion};
+	use frame_support::{
+		Blake2_128, Blake2_128Concat, Twox64Concat, pallet_prelude::*, storage::Key,
+		traits::StorageVersion,
+	};
 	use frame_system::pallet_prelude::*;
 	use up_data_structs::{CollectionId, TokenId};
 	use super::weights::WeightInfo;
addedpallets/rmrk-proxy/Cargo.tomldiffbeforeafterboth
--- /dev/null
+++ b/pallets/rmrk-proxy/Cargo.toml
@@ -0,0 +1,49 @@
+[package]
+name = "pallet-rmrk-proxy"
+version = "0.1.0"
+license = "GPLv3"
+edition = "2021"
+
+[dependencies.codec]
+default-features = false
+features = ['derive']
+package = 'parity-scale-codec'
+version = '3.1.2'
+
+[dependencies]
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+pallet-common = { default-features = false, path = '../common' }
+pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }
+# pallet-structure = { default-features = false, path = '../structure' }
+up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
+# evm-coder = { default-features = false, path = '../../crates/evm-coder' }
+# pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }
+pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+scale-info = { version = "2.0.1", default-features = false, features = ["derive"] }
+
+[features]
+default = ["std"]
+std = [
+    "frame-support/std",
+    "frame-system/std",
+    "sp-runtime/std",
+    "sp-std/std",
+    "up-data-structs/std",
+    "pallet-common/std",
+    "pallet-nonfungible/std",
+    "pallet-evm/std",
+    # "pallet-structure/std",
+    # "evm-coder/std",
+    # "pallet-evm-coder-substrate/std",
+    'frame-benchmarking/std',
+]
+runtime-benchmarks = [
+    'frame-benchmarking',
+    'frame-support/runtime-benchmarks',
+    'frame-system/runtime-benchmarks',
+]
addedpallets/rmrk-proxy/src/lib.rsdiffbeforeafterboth
--- /dev/null
+++ b/pallets/rmrk-proxy/src/lib.rs
@@ -0,0 +1,232 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+#![cfg_attr(not(feature = "std"), no_std)]
+
+use frame_support::{pallet_prelude::*, transactional, BoundedVec, traits::ConstU32, dispatch::DispatchResult};
+use frame_system::{pallet_prelude::*, ensure_signed};
+use sp_runtime::DispatchError;
+use up_data_structs::*;
+use pallet_common::{Pallet as PalletCommon, Error as CommonError, CollectionHandle, CommonCollectionOperations};
+use pallet_nonfungible::{Pallet as PalletNft, NonfungibleHandle};
+use pallet_evm::account::CrossAccountId;
+
+pub use pallet::*;
+
+pub mod misc;
+
+use misc::*;
+
+#[frame_support::pallet]
+pub mod pallet {
+    use super::*;
+    use pallet_evm::account;
+
+	#[pallet::config]
+	pub trait Config: frame_system::Config
+                    + pallet_common::Config
+                    + pallet_nonfungible::Config
+                    + account::Config {
+		type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;
+	}
+
+	#[pallet::pallet]
+	#[pallet::generate_store(pub(super) trait Store)]
+	pub struct Pallet<T>(_);
+
+	#[pallet::event]
+	#[pallet::generate_deposit(pub(super) fn deposit_event)]
+	pub enum Event<T: Config> {
+        CollectionCreated {
+			issuer: T::AccountId,
+			collection_id: CollectionId,
+		},
+        CollectionDestroyed {
+			issuer: T::AccountId,
+			collection_id: CollectionId,
+		},
+        CollectionLocked {
+			issuer: T::AccountId,
+			collection_id: CollectionId,
+		},
+	}
+
+	#[pallet::error]
+	pub enum Error<T> {
+        /* Unique-specific events */
+        CorruptedCollectionType,
+        NotRmrkCollection,
+
+        /* RMRK compatible events */
+        CollectionNotEmpty,
+        NoAvailableCollectionId,
+        CollectionUnknown,
+	}
+
+	#[pallet::call]
+	impl<T: Config> Pallet<T> {
+        #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1))]
+		#[transactional]
+		pub fn create_collection(
+			origin: OriginFor<T>,
+			metadata: PropertyValue,
+			max: Option<u32>,
+			symbol: BoundedVec<u8, ConstU32<MAX_TOKEN_PREFIX_LENGTH>>,
+		) -> DispatchResult {
+            let sender = ensure_signed(origin)?;
+
+            let limits = max.map(|max| CollectionLimits {
+                token_limit: Some(max),
+                ..Default::default()
+            });
+
+            let data = CreateCollectionData {
+                limits,
+                token_prefix: symbol,
+                ..Default::default()
+            };
+
+            let collection_id_res = <PalletNft<T>>::init_collection(sender.clone(), data);
+
+            if let Err(DispatchError::Arithmetic(_)) = &collection_id_res {
+                return Err(<Error<T>>::NoAvailableCollectionId.into());
+            }
+
+            let collection_id = collection_id_res?;
+
+            let collection = Self::get_nft_collection(collection_id)?.into_inner();
+
+            <PalletCommon<T>>::set_scoped_collection_properties(
+                &collection,
+                PropertyScope::Rmrk,
+                [
+                    rmrk_property!(Metadata, metadata),
+                    rmrk_property!(CollectionType, CollectionType::Regular),
+                ].into_iter()
+            )?;
+
+            Self::deposit_event(Event::CollectionCreated { issuer: sender, collection_id });
+
+            Ok(())
+        }
+
+        #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1))]
+		#[transactional]
+		pub fn destroy_collection(
+			origin: OriginFor<T>,
+			collection_id: CollectionId,
+		) -> DispatchResult {
+            let sender = ensure_signed(origin)?;
+            let cross_sender = T::CrossAccountId::from_sub(sender.clone());
+
+            let collection = Self::get_nft_collection(collection_id)?;
+
+            Self::check_collection_type(collection_id, CollectionType::Regular)?;
+
+            ensure!(collection.total_supply() == 0, <Error<T>>::CollectionNotEmpty);
+
+            <PalletNft<T>>::destroy_collection(collection, &cross_sender)?;
+
+            Self::deposit_event(Event::CollectionDestroyed { issuer: sender, collection_id });
+
+            Ok(())
+        }
+
+        #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1))]
+		#[transactional]
+		pub fn change_collection_issuer(
+			origin: OriginFor<T>,
+			collection_id: CollectionId,
+			new_issuer: T::AccountId,
+		) -> DispatchResult {
+            let sender = ensure_signed(origin)?;
+
+            Self::change_collection_owner(
+                collection_id,
+                CollectionType::Regular,
+                sender,
+                new_issuer
+            )?;
+
+            Ok(())
+        }
+
+        #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1))]
+		#[transactional]
+		pub fn lock_collection(
+			origin: OriginFor<T>,
+			collection_id: CollectionId,
+		) -> DispatchResult {
+            let sender = ensure_signed(origin)?;
+            let cross_sender = T::CrossAccountId::from_sub(sender.clone());
+
+            let collection = Self::get_nft_collection(collection_id)?;
+            collection.check_is_owner(&cross_sender)?;
+
+            let token_count = collection.total_supply();
+
+            let mut collection = collection.into_inner();
+            collection.limits.token_limit = Some(token_count);
+            collection.save()?;
+
+			Self::deposit_event(Event::CollectionLocked { issuer: sender, collection_id });
+
+            Ok(())
+        }
+	}
+}
+
+impl<T: Config> Pallet<T> {
+    fn change_collection_owner(
+        collection_id: CollectionId,
+        collection_type: CollectionType,
+        sender: T::AccountId,
+        new_owner: T::AccountId,
+    ) -> DispatchResult {
+        let mut collection = Self::get_nft_collection(collection_id)?.into_inner();
+        collection.check_is_owner(&T::CrossAccountId::from_sub(sender))?;
+
+        Self::check_collection_type(collection_id, collection_type)?;
+
+        collection.owner = new_owner;
+        collection.save()
+    }
+
+    fn get_nft_collection(collection_id: CollectionId) -> Result<NonfungibleHandle<T>, DispatchError> {
+        let collection = <CollectionHandle<T>>::try_get(collection_id)
+            .map_err(|_| <Error<T>>::CollectionUnknown)?
+            .into_nft_collection()?;
+
+        Ok(collection)
+    }
+
+    fn get_collection_type(collection_id: CollectionId) -> Result<CollectionType, DispatchError> {
+        let collection_type: CollectionType = <PalletCommon<T>>::collection_properties(collection_id)
+            .get(&rmrk_property!(CollectionType))
+            .ok_or(<Error<T>>::NotRmrkCollection)?
+            .try_into()
+            .map_err(<Error<T>>::from)?;
+
+        Ok(collection_type)
+    }
+
+    fn check_collection_type(collection_id: CollectionId, collection_type: CollectionType) -> DispatchResult {
+        let actual_type = Self::get_collection_type(collection_id)?;
+        ensure!(actual_type == collection_type, <CommonError<T>>::NoPermission);
+
+        Ok(())
+    }
+}
addedpallets/rmrk-proxy/src/misc.rsdiffbeforeafterboth
--- /dev/null
+++ b/pallets/rmrk-proxy/src/misc.rs
@@ -0,0 +1,98 @@
+use super::*;
+use codec::{Encode, Decode};
+use frame_support::dispatch::Vec;
+use pallet_nonfungible::NonfungibleHandle;
+
+#[macro_export]
+macro_rules! rmrk_property {
+    ($key:ident, $value:expr) => {
+        Property {
+            key: rmrk_property!(@raw $key),
+            value: $value.into()
+        }
+    };
+
+    (@raw $key:ident) => {
+        RmrkProperty::$key.to_key()
+    };
+
+    ($key:ident) => {
+        PropertyScope::Rmrk.apply(rmrk_property!(@raw $key)).unwrap()
+    };
+}
+
+macro_rules! impl_rmrk_value {
+    ($enum_name:path, decode_error: $error:ident) => {
+        impl Into<PropertyValue> for $enum_name {
+            fn into(self) -> PropertyValue {
+                self.encode().try_into().unwrap()
+            }
+        }
+
+        impl TryFrom<&PropertyValue> for $enum_name {
+            type Error = MiscError;
+
+            fn try_from(value: &PropertyValue) -> Result<Self, Self::Error> {
+                let mut value = value.as_slice();
+
+                <$enum_name>::decode(&mut value)
+                    .map_err(|_| MiscError::$error)
+            }
+        }
+
+    };
+}
+
+pub enum MiscError {
+    CorruptedCollectionType,
+}
+
+impl<T: Config> From<MiscError> for Error<T> {
+    fn from(error: MiscError) -> Self {
+        match error {
+            MiscError::CorruptedCollectionType => Self::CorruptedCollectionType,
+        }
+    }
+}
+
+pub trait IntoNftCollection<T: Config> {
+    fn into_nft_collection(self) -> Result<NonfungibleHandle<T>, Error<T>>;
+}
+
+impl<T: Config> IntoNftCollection<T> for CollectionHandle<T> {
+    fn into_nft_collection(self) -> Result<NonfungibleHandle<T>, Error<T>> {
+        match self.mode {
+            CollectionMode::NFT => Ok(NonfungibleHandle::cast(self)),
+            _ => Err(<Error<T>>::NotRmrkCollection)
+        }
+    }
+}
+
+pub enum RmrkProperty {
+    Metadata,
+    CollectionType,
+}
+
+impl RmrkProperty {
+    pub fn to_key(self) -> PropertyKey {
+        let key = |str_key: &str| {
+            PropertyKey::try_from(
+                str_key.bytes().collect::<Vec<_>>()
+            ).unwrap()
+        };
+
+        match self {
+            Self::Metadata => key("metadata"),
+            Self::CollectionType => key("collection-type"),
+        }
+    }
+}
+
+#[derive(Encode, Decode, PartialEq, Eq)]
+pub enum CollectionType {
+    Regular,
+    Resource,
+    Base,
+}
+
+impl_rmrk_value!(CollectionType, decode_error: CorruptedCollectionType);
modifiedpallets/unique/src/lib.rsdiffbeforeafterboth
--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -35,16 +35,16 @@
 use frame_system::{self as system, ensure_signed};
 use sp_runtime::{sp_std::prelude::Vec};
 use up_data_structs::{
-	CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT,
-	MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH,
-	AccessMode, CreateItemData, CollectionLimits, CollectionId, CollectionMode, TokenId,
-	SchemaVersion, SponsorshipState, CreateCollectionData,
-	CreateItemExData, budget, CollectionField, Property, PropertyKey, PropertyKeyPermission,
+	CONST_ON_CHAIN_SCHEMA_LIMIT, OFFCHAIN_SCHEMA_LIMIT, MAX_COLLECTION_NAME_LENGTH,
+	MAX_COLLECTION_DESCRIPTION_LENGTH, MAX_TOKEN_PREFIX_LENGTH, AccessMode, CreateItemData,
+	CollectionLimits, CollectionId, CollectionMode, TokenId, SchemaVersion, SponsorshipState,
+	CreateCollectionData, CreateItemExData, budget, CollectionField, Property, PropertyKey,
+	PropertyKeyPermission,
 };
 use pallet_evm::account::CrossAccountId;
 use pallet_common::{
-	CollectionHandle, Pallet as PalletCommon, CommonWeightInfo,
-	dispatch::dispatch_call, dispatch::CollectionDispatch,
+	CollectionHandle, Pallet as PalletCommon, CommonWeightInfo, dispatch::dispatch_call,
+	dispatch::CollectionDispatch,
 };
 
 #[cfg(feature = "runtime-benchmarks")]
modifiedprimitives/data-structs/Cargo.tomldiffbeforeafterboth
--- a/primitives/data-structs/Cargo.toml
+++ b/primitives/data-structs/Cargo.toml
@@ -27,6 +27,10 @@
 struct-versioning = { path = "../../crates/struct-versioning" }
 pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
 
+# RMRK
+# todo git
+rmrk-types = { default-features = false, git = "https://github.com/UniqueNetwork/rmrk-substrate.git", branch = "feature/separate-types-and-traits" }
+
 [features]
 default = ["std"]
 std = [
modifiedprimitives/data-structs/src/lib.rsdiffbeforeafterboth
--- a/primitives/data-structs/src/lib.rs
+++ b/primitives/data-structs/src/lib.rs
@@ -23,18 +23,31 @@
 use frame_support::{
 	storage::{bounded_btree_map::BoundedBTreeMap, bounded_btree_set::BoundedBTreeSet},
 	traits::Get,
+	parameter_types,
 };
 
 #[cfg(feature = "serde")]
 use serde::{Serialize, Deserialize};
 
 use sp_core::U256;
-use sp_runtime::{ArithmeticError, sp_std::prelude::Vec};
+use sp_runtime::{ArithmeticError, sp_std::prelude::Vec, Permill};
 use codec::{Decode, Encode, EncodeLike, MaxEncodedLen};
 use frame_support::{BoundedVec, traits::ConstU32};
 use derivative::Derivative;
 use scale_info::TypeInfo;
 
+// RMRK
+use rmrk_types::{
+	CollectionInfo, NftInfo, ResourceInfo, PropertyInfo, BaseInfo, PartType, Theme, ThemeProperty,
+};
+pub use rmrk_types::{
+	primitives::{
+		CollectionId as RmrkCollectionId, NftId as RmrkNftId, BaseId as RmrkBaseId,
+		PartId as RmrkPartId, ResourceId as RmrkResourceId,
+	},
+	NftChild as RmrkNftChild, AccountIdOrCollectionNftTuple as RmrkAccountIdOrCollectionNftTuple,
+};
+
 mod bounded;
 pub mod budget;
 pub mod mapping;
@@ -96,6 +109,13 @@
 pub const MAX_COLLECTION_PROPERTIES_ENCODE_LEN: u32 =
 	MAX_PROPERTIES_PER_ITEM * MAX_PROPERTY_KEY_LENGTH + MAX_COLLECTION_PROPERTIES_SIZE;
 
+// RMRK constants
+pub const RMRK_STRING_LIMIT: u32 = 128;
+pub const RMRK_COLLECTION_SYMBOL_LIMIT: u32 = 100;
+pub const RMRK_RESOURCE_SYMBOL_LIMIT: u32 = 10;
+pub const RMRK_KEY_LIMIT: u32 = 32;
+pub const RMRK_VALUE_LIMIT: u32 = 256;
+
 pub struct MaxPropertiesPermissionsEncodeLen;
 
 impl Get<u32> for MaxPropertiesPermissionsEncodeLen {
@@ -581,7 +601,8 @@
 	pub alive: u32,
 }
 
-#[derive(Encode, Decode, PartialEq, Clone, Debug)]
+#[derive(Encode, Decode, Clone, Debug)]
+#[cfg_attr(feature = "std", derive(PartialEq))]
 pub struct PhantomType<T>(core::marker::PhantomData<T>);
 
 impl<T: TypeInfo + 'static> TypeInfo for PhantomType<T> {
@@ -636,6 +657,12 @@
 	pub value: PropertyValue,
 }
 
+impl Into<(PropertyKey, PropertyValue)> for Property {
+	fn into(self) -> (PropertyKey, PropertyValue) {
+		(self.key, self.value)
+	}
+}
+
 #[derive(Encode, Decode, TypeInfo, Debug, MaxEncodedLen, PartialEq, Clone)]
 #[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]
 pub struct PropertyKeyPermission {
@@ -645,6 +672,13 @@
 	pub permission: PropertyPermission,
 }
 
+impl Into<(PropertyKey, PropertyPermission)> for PropertyKeyPermission {
+	fn into(self) -> (PropertyKey, PropertyPermission) {
+		(self.key, self.permission)
+	}
+}
+
+#[derive(Debug)]
 pub enum PropertiesError {
 	NoSpaceForProperty,
 	PropertyLimitReached,
@@ -660,7 +694,7 @@
 }
 
 impl PropertyScope {
-	fn apply(self, key: PropertyKey) -> Result<PropertyKey, PropertiesError> {
+	pub fn apply(self, key: PropertyKey) -> Result<PropertyKey, PropertiesError> {
 		let scope_str: &[u8] = match self {
 			Self::None => return Ok(key),
 			Self::Rmrk => b"rmrk",
@@ -680,18 +714,20 @@
 		&mut self,
 		scope: PropertyScope,
 		key: PropertyKey,
-		value: Self::Value
+		value: Self::Value,
 	) -> Result<(), PropertiesError>;
 
-	fn try_scoped_set_from_iter<I>(
+	fn try_scoped_set_from_iter<I, KV>(
 		&mut self,
 		scope: PropertyScope,
-		iter: I
+		iter: I,
 	) -> Result<(), PropertiesError>
 	where
-		I: Iterator<Item=(PropertyKey, Self::Value)>
+		I: Iterator<Item=KV>,
+		KV: Into<(PropertyKey, Self::Value)>
 	{
-		for (key, value) in iter {
+		for kv in iter {
+			let (key, value) = kv.into();
 			self.try_scoped_set(scope, key, value)?;
 		}
 
@@ -702,9 +738,10 @@
 		self.try_scoped_set(PropertyScope::None, key, value)
 	}
 
-	fn try_set_from_iter<I>(&mut self, iter: I) -> Result<(), PropertiesError>
+	fn try_set_from_iter<I, KV>(&mut self, iter: I) -> Result<(), PropertiesError>
 	where
-		I: Iterator<Item = (PropertyKey, Self::Value)>,
+		I: Iterator<Item=KV>,
+		KV: Into<(PropertyKey, Self::Value)>
 	{
 		self.try_scoped_set_from_iter(PropertyScope::None, iter)
 	}
@@ -743,10 +780,8 @@
 		for byte in key.as_slice().iter() {
 			let byte = *byte;
 
-			if !byte.is_ascii_alphanumeric()
-				&& byte != b'_'
-				&& byte != b'-' {
-				return Err(PropertiesError::InvalidCharacterInPropertyKey)
+			if !byte.is_ascii_alphanumeric() && byte != b'_' && byte != b'-' {
+				return Err(PropertiesError::InvalidCharacterInPropertyKey);
 			}
 		}
 
@@ -761,7 +796,7 @@
 		&mut self,
 		scope: PropertyScope,
 		key: PropertyKey,
-		value: Self::Value
+		value: Self::Value,
 	) -> Result<(), PropertiesError> {
 		Self::check_property_key(&key)?;
 
@@ -819,7 +854,7 @@
 		&mut self,
 		scope: PropertyScope,
 		key: PropertyKey,
-		value: Self::Value
+		value: Self::Value,
 	) -> Result<(), PropertiesError> {
 		let value_len = value.len();
 
@@ -850,3 +885,43 @@
 		Properties::new(MAX_TOKEN_PROPERTIES_SIZE)
 	}
 }
+
+// RMRK
+// todo document?
+parameter_types! {
+	#[derive(PartialEq, TypeInfo)]
+	pub const RmrkStringLimit: u32 = 128;
+	#[derive(PartialEq)]
+	pub const RmrkCollectionSymbolLimit: u32 = 100;
+	#[derive(PartialEq)]
+	pub const RmrkResourceSymbolLimit: u32 = 10;
+	#[derive(PartialEq)]
+	pub const RmrkKeyLimit: u32 = 32;
+	#[derive(PartialEq)]
+	pub const RmrkValueLimit: u32 = 256;
+	#[derive(PartialEq)]
+	pub const RmrkMaxCollectionsEquippablePerPart: u32 = 100;
+	#[derive(PartialEq)]
+	pub const RmrkPartsLimit: u32 = 3;
+}
+
+pub type RmrkCollectionInfo<AccountId> =
+	CollectionInfo<RmrkString, BoundedVec<u8, RmrkCollectionSymbolLimit>, AccountId>;
+pub type RmrkInstanceInfo<AccountId> = NftInfo<AccountId, Permill, RmrkString>;
+pub type RmrkResourceInfo = ResourceInfo<
+	BoundedVec<u8, RmrkResourceSymbolLimit>,
+	RmrkString,
+	BoundedVec<RmrkPartId, RmrkPartsLimit>,
+>;
+pub type RmrkPropertyInfo =
+	PropertyInfo<BoundedVec<u8, RmrkKeyLimit>, BoundedVec<u8, RmrkValueLimit>>;
+pub type RmrkBaseInfo<AccountId> = BaseInfo<AccountId, RmrkString>;
+pub type RmrkPartType =
+	PartType<RmrkString, BoundedVec<RmrkCollectionId, RmrkMaxCollectionsEquippablePerPart>>;
+pub type RmrkTheme = Theme<RmrkString, Vec<ThemeProperty<RmrkString>>>;
+
+pub type RmrkRpcString = Vec<u8>;
+pub type RmrkThemeName = RmrkRpcString;
+pub type RmrkPropertyKey = RmrkRpcString;
+
+type RmrkString = BoundedVec<u8, RmrkStringLimit>;
modifiedruntime/common/Cargo.tomldiffbeforeafterboth
--- a/runtime/common/Cargo.toml
+++ b/runtime/common/Cargo.toml
@@ -106,4 +106,9 @@
 [dependencies]
 pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
 evm-coder = { default-features = false, path = '../../crates/evm-coder' }
-up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.21' }
+up-sponsorship = { default-features = false, git = "https://github.com/UniqueNetwork/pallet-sponsoring", branch = 'polkadot-v0.9.21' }
+
+# RMRK
+# todo git
+rmrk-rpc = { default-features = false, git = "https://github.com/UniqueNetwork/rmrk-substrate.git", branch = "feature/separate-types-and-traits" } 
+rmrk-types = { default-features = false, git = "https://github.com/UniqueNetwork/rmrk-substrate.git", branch = "feature/separate-types-and-traits" } 
modifiedruntime/common/src/runtime_apis.rsdiffbeforeafterboth
--- a/runtime/common/src/runtime_apis.rs
+++ b/runtime/common/src/runtime_apis.rs
@@ -130,6 +130,200 @@
                 }
             }
 
+            impl rmrk_rpc::RmrkApi<
+                Block,
+                AccountId,
+                RmrkCollectionInfo<AccountId>,
+                RmrkInstanceInfo<AccountId>,
+                RmrkResourceInfo,
+                RmrkPropertyInfo,
+                RmrkBaseInfo<AccountId>,
+                RmrkPartType,
+                RmrkTheme
+            > for Runtime {
+                fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {
+                    Ok(<pallet_common::CreatedCollectionCount<Runtime>>::get().0)
+                }
+                fn collection_by_id(collection_id: RmrkCollectionId) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {
+                    // TODO decide on displacement to palettes -- does RMRK belong there, spread across common and nonfungible?
+                    use frame_support::BoundedVec;
+
+                    let collection_id = CollectionId(collection_id);
+                    let collection = match <pallet_common::CollectionById<Runtime>>::get(collection_id) {
+                        Some(c) => c,
+                        None => return Ok(None)
+                    };
+                    let nfts_count: Result<u32, DispatchError> = dispatch_unique_runtime!(collection_id.total_supply());
+                    Ok(Some(RmrkCollectionInfo {
+                        issuer: collection.owner,
+                        metadata: BoundedVec::default(), // todo property - namespace:metadata
+                        max: Some(collection.limits.token_limit()), // must have some effective limits
+                        symbol: BoundedVec::try_from(collection.token_prefix.into_inner()).unwrap_or_default() /*{ // todo map_err
+                            Ok(s) => s,
+                            Err(_) => return Err(pallet_common::Error::<Runtime>::CollectionTokenPrefixLimitExceeded)
+                        }*/,
+                        nfts_count: nfts_count? // todo? <Runtime>::total_supply(collection_id)
+                    }))
+                }
+                fn nft_by_id(collection_id: RmrkCollectionId, nft_by_id: RmrkNftId) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {
+                    use frame_support::BoundedVec;
+                    use up_data_structs::mapping::TokenAddressMapping;
+
+                    let collection_id = CollectionId(collection_id);
+                    let nft_id = TokenId(nft_by_id);
+
+                    let owner = match (dispatch_unique_runtime!(collection_id.token_owner(nft_id)) as Result<Option<CrossAccountId>, DispatchError>)? {
+                        Some(owner) => match <Runtime as pallet_common::Config>::CrossTokenAddressMapping::address_to_token(&owner) {
+                            Some((col, tok)) => RmrkAccountIdOrCollectionNftTuple::CollectionAndNftTuple(col.0, tok.0),
+                            None => RmrkAccountIdOrCollectionNftTuple::AccountId(owner.as_sub().clone())
+                        },
+                        None => return Ok(None)
+                    };
+
+                    Ok(Some(RmrkInstanceInfo {
+                        owner: owner,
+                        //recipient: , // prop
+                        royalty: None,//Permill::from_percent(0), // prop
+                        metadata: BoundedVec::default(), // prop
+                        equipped: false, // prop
+                        pending: false, // prop
+                    }))
+                }
+                fn account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Result<Vec<RmrkNftId>, DispatchError> {
+                    let cross_account_id = CrossAccountId::from_sub(account_id);
+                    let collection_id = CollectionId(collection_id);
+                    Ok(
+                        (dispatch_unique_runtime!(collection_id.account_tokens(cross_account_id)) as Result<Vec<TokenId>, DispatchError>)?
+                        //<Runtime as up_rpc::UniqueApi<Block, CrossAccountId, AccountId>>::account_tokens(collection_id, cross_account_id)?
+                            .into_iter()
+                            .map(|token| token.0)
+                            .collect::<Vec<_>>()
+                    )
+                }
+                fn nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkNftChild>, DispatchError> {
+                    use up_data_structs::mapping::TokenAddressMapping;
+
+                    let collection_id = CollectionId(collection_id);
+                    let nft_id = TokenId(nft_id);
+                    let cross_account_id = CrossAccountId::from_eth(
+                        EvmTokenAddressMapping::token_to_address(collection_id, nft_id)
+                    );
+
+                    Ok(
+                        pallet_nonfungible::Owned::<Runtime>::iter_prefix((collection_id, cross_account_id))
+                            .map(|(child_id, _)| RmrkNftChild {
+                                collection_id: collection_id.0, // todo make sure they're always from this collection
+                                nft_id: child_id.0,
+                            })
+                            .collect()
+                    )
+                }
+                fn collection_properties(collection_id: RmrkCollectionId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
+                    use frame_support::BoundedVec;
+
+                    let collection_id = CollectionId(collection_id);
+                    let properties = pallet_common::Pallet::<Runtime>::collection_properties(collection_id);
+
+                    return Ok(match filter_keys {
+                        Some(keys) => {
+                            let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;
+                            let properties = keys
+                                .into_iter()
+                                .filter_map(|key| {
+                                    properties.get(&key).map(|value| RmrkPropertyInfo {
+                                        key: BoundedVec::try_from(key.into_inner()).unwrap_or_default(),
+                                        value: BoundedVec::try_from(value.clone().into_inner()).unwrap_or_default(),
+                                    })
+                                })
+                                .collect();
+
+                            properties
+                        }
+                        None => {
+                            properties
+                                .iter()
+                                .map(|(key, value)| RmrkPropertyInfo {
+                                    key: BoundedVec::try_from(key.clone().into_inner()).unwrap_or_default(),
+                                    value: BoundedVec::try_from(value.clone().into_inner()).unwrap_or_default(),
+                                })
+                                .collect()
+                        }
+                    });
+                }
+                fn nft_properties(collection_id: RmrkCollectionId, nft_id: RmrkNftId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
+                    use frame_support::BoundedVec;
+
+                    let collection_id = CollectionId(collection_id);
+                    let token_id = TokenId(nft_id);
+
+		            let properties = pallet_nonfungible::Pallet::<Runtime>::token_properties((collection_id, token_id)); // todo look into usage of nonfungible
+
+                    return Ok(match filter_keys {
+                        Some(keys) => {
+                            let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(keys)?;
+                            let properties = keys
+                                .into_iter()
+                                .filter_map(|key| {
+                                    properties.get(&key).map(|value| RmrkPropertyInfo {
+                                        key: BoundedVec::try_from(key.into_inner()).unwrap_or_default(),
+                                        value: BoundedVec::try_from(value.clone().into_inner()).unwrap_or_default(),
+                                    })
+                                })
+                                .collect();
+
+                            properties
+                        }
+                        None => {
+                            properties
+                                .iter()
+                                .map(|(key, value)| RmrkPropertyInfo {
+                                    key: BoundedVec::try_from(key.clone().into_inner()).unwrap_or_default(),
+                                    value: BoundedVec::try_from(value.clone().into_inner()).unwrap_or_default(),
+                                })
+                                .collect()
+                        }
+                    });
+                }
+                fn nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
+                    todo!()
+                }
+                fn nft_resource_priorities(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkResourceId>, DispatchError> {
+                    todo!()
+                }
+                fn base(base_id: RmrkBaseId) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {
+                    use frame_support::{BoundedVec, ensure};
+                    use scale_info::prelude::string::String;
+
+                    let collection_id = CollectionId(base_id);
+                    let collection = match <pallet_common::CollectionById<Runtime>>::get(collection_id) {
+                        Some(c) => c,
+                        None => return Ok(None)
+                    };
+
+                    // string_keys_to_bytes_keys
+                    let keys = pallet_common::Pallet::<Runtime>::bytes_keys_to_property_keys(
+                        Vec::from([String::from("rmrk:base-type").into_bytes()])
+                    )?;
+                    let properties = pallet_common::Pallet::<Runtime>::filter_collection_properties(collection_id, Some(keys))?;
+                    //ensure!(properties.len() == 1); // todo make sure it's fine to have ensure in place // no access to errors from here? displace?
+
+                    Ok(Some( RmrkBaseInfo {
+                        issuer: collection.owner,
+                        base_type: BoundedVec::try_from(properties[0].value.clone().into_inner()).unwrap_or_default(), // todo map_err? no access to errors
+                        symbol: BoundedVec::try_from(collection.token_prefix.into_inner()).unwrap_or_default(),
+                    }))
+                }
+                fn base_parts(base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {
+                    todo!()
+                }
+                fn theme_names(base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {
+                    todo!()
+                }
+                fn theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Option<RmrkTheme>, DispatchError> {
+                    todo!()
+                }
+            }
+
             impl sp_api::Core<Block> for Runtime {
                 fn version() -> RuntimeVersion {
                     VERSION
modifiedruntime/common/src/sponsoring.rsdiffbeforeafterboth
--- a/runtime/common/src/sponsoring.rs
+++ b/runtime/common/src/sponsoring.rs
@@ -21,17 +21,16 @@
 	storage::{StorageMap, StorageDoubleMap, StorageNMap},
 };
 use up_data_structs::{
-	CollectionId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
-	NFT_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, TokenId, CollectionMode,
-	CreateItemData,
+	CollectionId, FUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, NFT_SPONSOR_TRANSFER_TIMEOUT,
+	REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, TokenId, CollectionMode, CreateItemData,
 };
 use sp_runtime::traits::Saturating;
 use pallet_common::{CollectionHandle};
 use pallet_evm::account::CrossAccountId;
 use pallet_unique::{
 	Call as UniqueCall, Config as UniqueConfig, FungibleApproveBasket, RefungibleApproveBasket,
-	NftApproveBasket, CreateItemBasket, ReFungibleTransferBasket,
-	FungibleTransferBasket, NftTransferBasket,
+	NftApproveBasket, CreateItemBasket, ReFungibleTransferBasket, FungibleTransferBasket,
+	NftTransferBasket,
 };
 use pallet_fungible::Config as FungibleConfig;
 use pallet_nonfungible::Config as NonfungibleConfig;
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -33,6 +33,7 @@
     'pallet-fungible/runtime-benchmarks',
     'pallet-refungible/runtime-benchmarks',
     'pallet-nonfungible/runtime-benchmarks',
+    'pallet-rmrk-proxy/runtime-benchmarks',
     'pallet-unique/runtime-benchmarks',
     'pallet-inflation/runtime-benchmarks',
     'pallet-xcm/runtime-benchmarks',
@@ -89,6 +90,7 @@
     'pallet-fungible/std',
     'pallet-refungible/std',
     'pallet-nonfungible/std',
+    'pallet-rmrk-proxy/std',
     'pallet-unique/std',
     'pallet-unq-scheduler/std',
     'pallet-charge-transaction/std',
@@ -109,6 +111,7 @@
     'xcm-builder/std',
     'xcm-executor/std',
     'unique-runtime-common/std',
+    'rmrk-rpc/std',
 
     "orml-vesting/std",
 ]
@@ -386,6 +389,15 @@
 default-features = false
 
 ################################################################################
+# RMRK dependencies
+
+# todo git
+[dependencies.rmrk-rpc]
+default-features = false
+git = "https://github.com/UniqueNetwork/rmrk-substrate.git"
+branch = "feature/separate-types-and-traits"
+
+################################################################################
 # local dependencies
 
 [dependencies]
@@ -405,6 +417,7 @@
 pallet-fungible = { default-features = false, path = "../../pallets/fungible" }
 pallet-refungible = { default-features = false, path = "../../pallets/refungible" }
 pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }
+pallet-rmrk-proxy = { default-features = false, path = "../../pallets/rmrk-proxy" }
 pallet-unq-scheduler = { path = '../../pallets/scheduler', default-features = false }
 # pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }
 pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.21", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }
modifiedruntime/opal/src/lib.rsdiffbeforeafterboth
--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -901,6 +901,10 @@
 	type WeightInfo = pallet_nonfungible::weights::SubstrateWeight<Self>;
 }
 
+impl pallet_rmrk_proxy::Config for Runtime {
+	type Event = Event;
+}
+
 impl pallet_unique::Config for Runtime {
 	type Event = Event;
 	type WeightInfo = pallet_unique::weights::SubstrateWeight<Self>;
@@ -1013,6 +1017,7 @@
 		Refungible: pallet_refungible::{Pallet, Storage} = 68,
 		Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,
 		Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,
+		RmrkProxy: pallet_rmrk_proxy::{Pallet, Call, Storage, Event<T>} = 71,
 
 		// Frontier
 		EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -386,6 +386,15 @@
 default-features = false
 
 ################################################################################
+# RMRK dependencies
+
+# todo git
+[dependencies.rmrk-rpc]
+default-features = false
+git = "https://github.com/UniqueNetwork/rmrk-substrate.git"
+branch = "feature/separate-types-and-traits"
+
+################################################################################
 # local dependencies
 
 [dependencies]
modifiedruntime/tests/src/tests.rsdiffbeforeafterboth
--- a/runtime/tests/src/tests.rs
+++ b/runtime/tests/src/tests.rs
@@ -18,9 +18,9 @@
 use crate::{Test, TestCrossAccountId, CollectionCreationPrice, Origin, Unique, new_test_ext};
 use up_data_structs::{
 	COLLECTION_NUMBER_LIMIT, CollectionId, CreateItemData, CreateFungibleData, CreateNftData,
-	CreateReFungibleData, MAX_DECIMAL_POINTS, COLLECTION_ADMINS_LIMIT,
-	TokenId, MAX_TOKEN_OWNERSHIP, CreateCollectionData, CollectionField, SchemaVersion,
-	CollectionMode, AccessMode,
+	CreateReFungibleData, MAX_DECIMAL_POINTS, COLLECTION_ADMINS_LIMIT, TokenId,
+	MAX_TOKEN_OWNERSHIP, CreateCollectionData, CollectionField, SchemaVersion, CollectionMode,
+	AccessMode,
 };
 use frame_support::{assert_noop, assert_ok, assert_err};
 use sp_std::convert::TryInto;
@@ -47,6 +47,7 @@
 fn default_nft_data() -> CreateNftData {
 	CreateNftData {
 		const_data: vec![1, 2, 3].try_into().unwrap(),
+		properties: vec![].try_into().unwrap(),
 	}
 }
 
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -386,6 +386,15 @@
 default-features = false
 
 ################################################################################
+# RMRK dependencies
+
+# todo git
+[dependencies.rmrk-rpc]
+default-features = false
+git = "https://github.com/UniqueNetwork/rmrk-substrate.git"
+branch = "feature/separate-types-and-traits"
+
+################################################################################
 # local dependencies
 
 [dependencies]
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -5,7 +5,7 @@
 import type { BTreeMap, Bytes, Option, U256, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types-codec';
 import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportWeightsPerDispatchClassU64, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftChild, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission } from '@polkadot/types/lookup';
 import type { Observable } from '@polkadot/types/types';
 
 declare module '@polkadot/api-base/types/storage' {
@@ -92,7 +92,7 @@
       /**
        * Not used by code, exists only to provide some types to metadata
        **/
-      dummyStorageValue: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[UpDataStructsCollectionStats, u32, u32, PhantomTypeUpDataStructsTokenData, PhantomTypeUpDataStructsRpcCollection]>>>, []> & QueryableStorageEntry<ApiType, []>;
+      dummyStorageValue: AugmentedQuery<ApiType, () => Observable<Option<ITuple<[UpDataStructsCollectionStats, u32, u32, PhantomTypeUpDataStructsTokenData, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsNftChild]>>>, []> & QueryableStorageEntry<ApiType, []>;
       /**
        * List of collection admins
        **/
modifiedtests/src/interfaces/augment-api-rpc.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-rpc.ts
+++ b/tests/src/interfaces/augment-api-rpc.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-chain`, do not edit
 /* eslint-disable */
 
-import type { PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenData } from './unique';
+import type { PalletEvmAccountBasicCrossAccountIdRepr, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionStats, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsRpcCollection, UpDataStructsTokenData } from './unique';
 import type { AugmentedRpc } from '@polkadot/rpc-core/types';
 import type { Metadata, StorageKey } from '@polkadot/types';
 import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, u128, u32, u64 } from '@polkadot/types-codec';
@@ -22,7 +22,7 @@
 import type { StorageKind } from '@polkadot/types/interfaces/offchain';
 import type { FeeDetails, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
 import type { RpcMethods } from '@polkadot/types/interfaces/rpc';
-import type { AccountId, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@polkadot/types/interfaces/runtime';
+import type { AccountId, AccountId32, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@polkadot/types/interfaces/runtime';
 import type { MigrationStatusResult, ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state';
 import type { ApplyExtrinsicResult, ChainProperties, ChainType, Health, NetworkState, NodeRole, PeerInfo, SyncState } from '@polkadot/types/interfaces/system';
 import type { IExtrinsic, Observable } from '@polkadot/types/types';
@@ -393,6 +393,60 @@
        **/
       queryInfo: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<RuntimeDispatchInfo>>;
     };
+    rmrk: {
+      /**
+       * Get tokens owned by an account in a collection
+       **/
+      accountTokens: AugmentedRpc<(accountId: AccountId32 | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<u32>>>;
+      /**
+       * Get base info
+       **/
+      base: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesBaseInfo>>>;
+      /**
+       * Get all Base's parts
+       **/
+      baseParts: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPartType>>>;
+      /**
+       * Get collection by id
+       **/
+      collectionById: AugmentedRpc<(id: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesCollectionInfo>>>;
+      /**
+       * Get collection properties
+       **/
+      collectionProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPropertyInfo>>>;
+      /**
+       * Get the latest created collection id
+       **/
+      lastCollectionIdx: AugmentedRpc<(at?: Hash | string | Uint8Array) => Observable<u32>>;
+      /**
+       * Get NFT by collection id and NFT id
+       **/
+      nftById: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesNftInfo>>>;
+      /**
+       * Get NFT children
+       **/
+      nftChildren: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesNftChild>>>;
+      /**
+       * Get NFT properties
+       **/
+      nftProperties: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesPropertyInfo>>>;
+      /**
+       * Get NFT resource priorities
+       **/
+      nftResourcePriorities: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<Bytes>>>;
+      /**
+       * Get NFT resources
+       **/
+      nftResources: AugmentedRpc<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<RmrkTypesResourceInfo>>>;
+      /**
+       * Get Base's theme names
+       **/
+      themeNames: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Vec<Bytes>>>;
+      /**
+       * Get Theme's keys values
+       **/
+      themes: AugmentedRpc<(baseId: u32 | AnyNumber | Uint8Array, themeName: Text | string, keys: Option<Vec<Text>> | null | object | string | Uint8Array, at?: Hash | string | Uint8Array) => Observable<Option<RmrkTypesTheme>>>;
+    };
     rpc: {
       /**
        * Retrieves the list of RPC methods that are exposed by the node
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -3,7 +3,7 @@
 
 import type { ApiTypes } from '@polkadot/api-base/types';
 import type { Bytes, Compact, Option, U256, Vec, bool, u128, u16, u32, u64 } from '@polkadot/types-codec';
-import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
+import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime';
 import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsAccessMode, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsSchemaVersion, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
@@ -378,7 +378,7 @@
        * - Weight of derivative `call` execution + 10,000.
        * # </weight>
        **/
-      sudo: AugmentedSubmittable<(call: Call) => SubmittableExtrinsic<ApiType>, [Call]>;
+      sudo: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>;
       /**
        * Authenticates the sudo key and dispatches a function call with `Signed` origin from
        * a given account.
@@ -392,7 +392,7 @@
        * - Weight of derivative `call` execution + 10,000.
        * # </weight>
        **/
-      sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: Call) => SubmittableExtrinsic<ApiType>, [MultiAddress, Call]>;
+      sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Call]>;
       /**
        * Authenticates the sudo key and dispatches a function call with `Root` origin.
        * This function does not check the weight of the call, and instead allows the
@@ -405,7 +405,7 @@
        * - The weight of this call is defined by the caller.
        * # </weight>
        **/
-      sudoUncheckedWeight: AugmentedSubmittable<(call: Call, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;
+      sudoUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;
       /**
        * Generic tx
        **/
modifiedtests/src/interfaces/augment-types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-defs`, do not edit
 /* eslint-disable */
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportPalletId, FrameSupportStorageBoundedBTreeSet, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './unique';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftChild, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTypesAccountIdOrCollectionNftTuple, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesEquippableList, RmrkTypesFixedPart, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesRoyaltyInfo, RmrkTypesSlotPart, RmrkTypesTheme, RmrkTypesThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './unique';
 import type { Data, StorageKey } from '@polkadot/types';
 import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';
 import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
@@ -478,7 +478,6 @@
     ForkTreePendingChangeNode: ForkTreePendingChangeNode;
     FpRpcTransactionStatus: FpRpcTransactionStatus;
     FrameSupportPalletId: FrameSupportPalletId;
-    FrameSupportStorageBoundedBTreeSet: FrameSupportStorageBoundedBTreeSet;
     FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;
     FrameSupportWeightsDispatchClass: FrameSupportWeightsDispatchClass;
     FrameSupportWeightsDispatchInfo: FrameSupportWeightsDispatchInfo;
@@ -850,7 +849,15 @@
     PerU16: PerU16;
     Phantom: Phantom;
     PhantomData: PhantomData;
+    PhantomTypeUpDataStructsBaseInfo: PhantomTypeUpDataStructsBaseInfo;
+    PhantomTypeUpDataStructsCollectionInfo: PhantomTypeUpDataStructsCollectionInfo;
+    PhantomTypeUpDataStructsNftChild: PhantomTypeUpDataStructsNftChild;
+    PhantomTypeUpDataStructsNftInfo: PhantomTypeUpDataStructsNftInfo;
+    PhantomTypeUpDataStructsPartType: PhantomTypeUpDataStructsPartType;
+    PhantomTypeUpDataStructsPropertyInfo: PhantomTypeUpDataStructsPropertyInfo;
+    PhantomTypeUpDataStructsResourceInfo: PhantomTypeUpDataStructsResourceInfo;
     PhantomTypeUpDataStructsRpcCollection: PhantomTypeUpDataStructsRpcCollection;
+    PhantomTypeUpDataStructsTheme: PhantomTypeUpDataStructsTheme;
     PhantomTypeUpDataStructsTokenData: PhantomTypeUpDataStructsTokenData;
     Phase: Phase;
     PhragmenScore: PhragmenScore;
@@ -943,6 +950,20 @@
     Retriable: Retriable;
     RewardDestination: RewardDestination;
     RewardPoint: RewardPoint;
+    RmrkTypesAccountIdOrCollectionNftTuple: RmrkTypesAccountIdOrCollectionNftTuple;
+    RmrkTypesBaseInfo: RmrkTypesBaseInfo;
+    RmrkTypesCollectionInfo: RmrkTypesCollectionInfo;
+    RmrkTypesEquippableList: RmrkTypesEquippableList;
+    RmrkTypesFixedPart: RmrkTypesFixedPart;
+    RmrkTypesNftChild: RmrkTypesNftChild;
+    RmrkTypesNftInfo: RmrkTypesNftInfo;
+    RmrkTypesPartType: RmrkTypesPartType;
+    RmrkTypesPropertyInfo: RmrkTypesPropertyInfo;
+    RmrkTypesResourceInfo: RmrkTypesResourceInfo;
+    RmrkTypesRoyaltyInfo: RmrkTypesRoyaltyInfo;
+    RmrkTypesSlotPart: RmrkTypesSlotPart;
+    RmrkTypesTheme: RmrkTypesTheme;
+    RmrkTypesThemeProperty: RmrkTypesThemeProperty;
     RoundSnapshot: RoundSnapshot;
     RoundState: RoundState;
     RpcMethods: RpcMethods;
modifiedtests/src/interfaces/definitions.tsdiffbeforeafterboth
--- a/tests/src/interfaces/definitions.ts
+++ b/tests/src/interfaces/definitions.ts
@@ -15,3 +15,4 @@
 // along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
 
 export {default as unique} from './unique/definitions';
+export {default as rmrk} from './rmrk/definitions';
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -1448,14 +1448,10 @@
     _enum: {
       Disabled: 'Null',
       Owner: 'Null',
-      OwnerRestricted: 'FrameSupportStorageBoundedBTreeSet'
+      OwnerRestricted: 'BTreeSet<u32>'
     }
   },
   /**
-   * Lookup171: frame_support::storage::bounded_btree_set::BoundedBTreeSet<up_data_structs::CollectionId, S>
-   **/
-  FrameSupportStorageBoundedBTreeSet: 'BTreeSet<u32>',
-  /**
    * Lookup177: up_data_structs::PropertyKeyPermission
    **/
   UpDataStructsPropertyKeyPermission: {
@@ -2351,56 +2347,212 @@
     properties: 'Vec<UpDataStructsProperty>'
   },
   /**
-   * Lookup333: pallet_common::pallet::Error<T>
+   * Lookup333: PhantomType::up_data_structs<rmrk_types::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>>
+   **/
+  PhantomTypeUpDataStructsCollectionInfo: '[Lookup334;0]',
+  /**
+   * Lookup334: rmrk_types::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
+   **/
+  RmrkTypesCollectionInfo: {
+    issuer: 'AccountId32',
+    metadata: 'Bytes',
+    max: 'Option<u32>',
+    symbol: 'Bytes',
+    nftsCount: 'u32'
+  },
+  /**
+   * Lookup338: PhantomType::up_data_structs<rmrk_types::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
+   **/
+  PhantomTypeUpDataStructsNftInfo: '[Lookup339;0]',
+  /**
+   * Lookup339: rmrk_types::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesNftInfo: {
+    owner: 'RmrkTypesAccountIdOrCollectionNftTuple',
+    royalty: 'Option<RmrkTypesRoyaltyInfo>',
+    metadata: 'Bytes',
+    equipped: 'bool',
+    pending: 'bool'
+  },
+  /**
+   * Lookup340: rmrk_types::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
+   **/
+  RmrkTypesAccountIdOrCollectionNftTuple: {
+    _enum: {
+      AccountId: 'AccountId32',
+      CollectionAndNftTuple: '(u32,u32)'
+    }
+  },
+  /**
+   * Lookup342: rmrk_types::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
+   **/
+  RmrkTypesRoyaltyInfo: {
+    recipient: 'AccountId32',
+    amount: 'Permill'
+  },
+  /**
+   * Lookup344: PhantomType::up_data_structs<rmrk_types::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
+   **/
+  PhantomTypeUpDataStructsResourceInfo: '[Lookup345;0]',
+  /**
+   * Lookup345: rmrk_types::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesResourceInfo: {
+    id: 'Bytes',
+    pending: 'bool',
+    pendingRemoval: 'bool',
+    parts: 'Option<Vec<u32>>',
+    base: 'Option<u32>',
+    src: 'Option<Bytes>',
+    metadata: 'Option<Bytes>',
+    slot: 'Option<u32>',
+    license: 'Option<Bytes>',
+    thumb: 'Option<Bytes>'
+  },
+  /**
+   * Lookup351: PhantomType::up_data_structs<rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
+   **/
+  PhantomTypeUpDataStructsPropertyInfo: '[Lookup352;0]',
+  /**
+   * Lookup352: rmrk_types::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesPropertyInfo: {
+    key: 'Bytes',
+    value: 'Bytes'
+  },
+  /**
+   * Lookup356: PhantomType::up_data_structs<rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
+   **/
+  PhantomTypeUpDataStructsBaseInfo: '[Lookup357;0]',
+  /**
+   * Lookup357: rmrk_types::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesBaseInfo: {
+    issuer: 'AccountId32',
+    baseType: 'Bytes',
+    symbol: 'Bytes'
+  },
+  /**
+   * Lookup359: PhantomType::up_data_structs<rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>>
+   **/
+  PhantomTypeUpDataStructsPartType: '[Lookup360;0]',
+  /**
+   * Lookup360: rmrk_types::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesPartType: {
+    _enum: {
+      FixedPart: 'RmrkTypesFixedPart',
+      SlotPart: 'RmrkTypesSlotPart'
+    }
+  },
+  /**
+   * Lookup362: rmrk_types::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesFixedPart: {
+    id: 'u32',
+    z: 'u32',
+    src: 'Bytes'
+  },
+  /**
+   * Lookup363: rmrk_types::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesSlotPart: {
+    id: 'u32',
+    equippable: 'RmrkTypesEquippableList',
+    src: 'Bytes',
+    z: 'u32'
+  },
+  /**
+   * Lookup364: rmrk_types::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesEquippableList: {
+    _enum: {
+      All: 'Null',
+      Empty: 'Null',
+      Custom: 'Vec<u32>'
+    }
+  },
+  /**
+   * Lookup366: PhantomType::up_data_structs<rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>>
+   **/
+  PhantomTypeUpDataStructsTheme: '[Lookup367;0]',
+  /**
+   * Lookup367: rmrk_types::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, BoundedPropertyList>
+   **/
+  RmrkTypesTheme: {
+    name: 'Bytes',
+    properties: 'Vec<RmrkTypesThemeProperty>',
+    inherit: 'bool'
+  },
+  /**
+   * Lookup369: rmrk_types::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   **/
+  RmrkTypesThemeProperty: {
+    key: 'Bytes',
+    value: 'Bytes'
+  },
+  /**
+   * Lookup371: PhantomType::up_data_structs<rmrk_types::NftChild>
+   **/
+  PhantomTypeUpDataStructsNftChild: '[Lookup372;0]',
+  /**
+   * Lookup372: rmrk_types::NftChild
+   **/
+  RmrkTypesNftChild: {
+    collectionId: 'u32',
+    nftId: 'u32'
+  },
+  /**
+   * Lookup374: pallet_common::pallet::Error<T>
    **/
   PalletCommonError: {
     _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'NestingIsDisabled', 'OnlyOwnerAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey']
   },
   /**
-   * Lookup335: pallet_fungible::pallet::Error<T>
+   * Lookup376: pallet_fungible::pallet::Error<T>
    **/
   PalletFungibleError: {
     _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup336: pallet_refungible::ItemData
+   * Lookup377: pallet_refungible::ItemData
    **/
   PalletRefungibleItemData: {
     constData: 'Bytes'
   },
   /**
-   * Lookup340: pallet_refungible::pallet::Error<T>
+   * Lookup381: pallet_refungible::pallet::Error<T>
    **/
   PalletRefungibleError: {
     _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup341: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup382: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   PalletNonfungibleItemData: {
     constData: 'Bytes',
     owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
   },
   /**
-   * Lookup342: pallet_nonfungible::pallet::Error<T>
+   * Lookup383: pallet_nonfungible::pallet::Error<T>
    **/
   PalletNonfungibleError: {
     _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount']
   },
   /**
-   * Lookup343: pallet_structure::pallet::Error<T>
+   * Lookup384: pallet_structure::pallet::Error<T>
    **/
   PalletStructureError: {
     _enum: ['OuroborosDetected', 'DepthLimit', 'TokenNotFound']
   },
   /**
-   * Lookup346: pallet_evm::pallet::Error<T>
+   * Lookup387: pallet_evm::pallet::Error<T>
    **/
   PalletEvmError: {
     _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
   },
   /**
-   * Lookup349: fp_rpc::TransactionStatus
+   * Lookup390: fp_rpc::TransactionStatus
    **/
   FpRpcTransactionStatus: {
     transactionHash: 'H256',
@@ -2412,11 +2564,11 @@
     logsBloom: 'EthbloomBloom'
   },
   /**
-   * Lookup351: ethbloom::Bloom
+   * Lookup392: ethbloom::Bloom
    **/
   EthbloomBloom: '[u8;256]',
   /**
-   * Lookup353: ethereum::receipt::ReceiptV3
+   * Lookup394: ethereum::receipt::ReceiptV3
    **/
   EthereumReceiptReceiptV3: {
     _enum: {
@@ -2426,7 +2578,7 @@
     }
   },
   /**
-   * Lookup354: ethereum::receipt::EIP658ReceiptData
+   * Lookup395: ethereum::receipt::EIP658ReceiptData
    **/
   EthereumReceiptEip658ReceiptData: {
     statusCode: 'u8',
@@ -2435,7 +2587,7 @@
     logs: 'Vec<EthereumLog>'
   },
   /**
-   * Lookup355: ethereum::block::Block<ethereum::transaction::TransactionV2>
+   * Lookup396: ethereum::block::Block<ethereum::transaction::TransactionV2>
    **/
   EthereumBlock: {
     header: 'EthereumHeader',
@@ -2443,7 +2595,7 @@
     ommers: 'Vec<EthereumHeader>'
   },
   /**
-   * Lookup356: ethereum::header::Header
+   * Lookup397: ethereum::header::Header
    **/
   EthereumHeader: {
     parentHash: 'H256',
@@ -2463,41 +2615,41 @@
     nonce: 'EthereumTypesHashH64'
   },
   /**
-   * Lookup357: ethereum_types::hash::H64
+   * Lookup398: ethereum_types::hash::H64
    **/
   EthereumTypesHashH64: '[u8;8]',
   /**
-   * Lookup362: pallet_ethereum::pallet::Error<T>
+   * Lookup403: pallet_ethereum::pallet::Error<T>
    **/
   PalletEthereumError: {
     _enum: ['InvalidSignature', 'PreLogExists']
   },
   /**
-   * Lookup363: pallet_evm_coder_substrate::pallet::Error<T>
+   * Lookup404: pallet_evm_coder_substrate::pallet::Error<T>
    **/
   PalletEvmCoderSubstrateError: {
     _enum: ['OutOfGas', 'OutOfFund']
   },
   /**
-   * Lookup364: pallet_evm_contract_helpers::SponsoringModeT
+   * Lookup405: pallet_evm_contract_helpers::SponsoringModeT
    **/
   PalletEvmContractHelpersSponsoringModeT: {
     _enum: ['Disabled', 'Allowlisted', 'Generous']
   },
   /**
-   * Lookup366: pallet_evm_contract_helpers::pallet::Error<T>
+   * Lookup407: pallet_evm_contract_helpers::pallet::Error<T>
    **/
   PalletEvmContractHelpersError: {
     _enum: ['NoPermission']
   },
   /**
-   * Lookup367: pallet_evm_migration::pallet::Error<T>
+   * Lookup408: pallet_evm_migration::pallet::Error<T>
    **/
   PalletEvmMigrationError: {
     _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
   },
   /**
-   * Lookup369: sp_runtime::MultiSignature
+   * Lookup410: sp_runtime::MultiSignature
    **/
   SpRuntimeMultiSignature: {
     _enum: {
@@ -2507,43 +2659,43 @@
     }
   },
   /**
-   * Lookup370: sp_core::ed25519::Signature
+   * Lookup411: sp_core::ed25519::Signature
    **/
   SpCoreEd25519Signature: '[u8;64]',
   /**
-   * Lookup372: sp_core::sr25519::Signature
+   * Lookup413: sp_core::sr25519::Signature
    **/
   SpCoreSr25519Signature: '[u8;64]',
   /**
-   * Lookup373: sp_core::ecdsa::Signature
+   * Lookup414: sp_core::ecdsa::Signature
    **/
   SpCoreEcdsaSignature: '[u8;65]',
   /**
-   * Lookup376: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
+   * Lookup417: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
    **/
   FrameSystemExtensionsCheckSpecVersion: 'Null',
   /**
-   * Lookup377: frame_system::extensions::check_genesis::CheckGenesis<T>
+   * Lookup418: frame_system::extensions::check_genesis::CheckGenesis<T>
    **/
   FrameSystemExtensionsCheckGenesis: 'Null',
   /**
-   * Lookup380: frame_system::extensions::check_nonce::CheckNonce<T>
+   * Lookup421: frame_system::extensions::check_nonce::CheckNonce<T>
    **/
   FrameSystemExtensionsCheckNonce: 'Compact<u32>',
   /**
-   * Lookup381: frame_system::extensions::check_weight::CheckWeight<T>
+   * Lookup422: frame_system::extensions::check_weight::CheckWeight<T>
    **/
   FrameSystemExtensionsCheckWeight: 'Null',
   /**
-   * Lookup382: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
+   * Lookup423: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
    **/
   PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
   /**
-   * Lookup383: opal_runtime::Runtime
+   * Lookup424: opal_runtime::Runtime
    **/
   OpalRuntimeRuntime: 'Null',
   /**
-   * Lookup384: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
+   * Lookup425: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
    **/
   PalletEthereumFakeTransactionFinalizer: 'Null'
 };
modifiedtests/src/interfaces/registry.tsdiffbeforeafterboth
--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-defs`, do not edit
 /* eslint-disable */
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportPalletId, FrameSupportStorageBoundedBTreeSet, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, 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, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSupportWeightsWeightToFeeCoefficient, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructsBaseInfo, PhantomTypeUpDataStructsCollectionInfo, PhantomTypeUpDataStructsNftChild, PhantomTypeUpDataStructsNftInfo, PhantomTypeUpDataStructsPartType, PhantomTypeUpDataStructsPropertyInfo, PhantomTypeUpDataStructsResourceInfo, PhantomTypeUpDataStructsRpcCollection, PhantomTypeUpDataStructsTheme, PhantomTypeUpDataStructsTokenData, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTypesAccountIdOrCollectionNftTuple, RmrkTypesBaseInfo, RmrkTypesCollectionInfo, RmrkTypesEquippableList, RmrkTypesFixedPart, RmrkTypesNftChild, RmrkTypesNftInfo, RmrkTypesPartType, RmrkTypesPropertyInfo, RmrkTypesResourceInfo, RmrkTypesRoyaltyInfo, RmrkTypesSlotPart, RmrkTypesTheme, RmrkTypesThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionField, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExData, UpDataStructsNestingRule, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsRpcCollection, UpDataStructsSchemaVersion, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 declare module '@polkadot/types/types/registry' {
   export interface InterfaceTypes {
@@ -47,7 +47,6 @@
     EvmCoreErrorExitSucceed: EvmCoreErrorExitSucceed;
     FpRpcTransactionStatus: FpRpcTransactionStatus;
     FrameSupportPalletId: FrameSupportPalletId;
-    FrameSupportStorageBoundedBTreeSet: FrameSupportStorageBoundedBTreeSet;
     FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;
     FrameSupportWeightsDispatchClass: FrameSupportWeightsDispatchClass;
     FrameSupportWeightsDispatchInfo: FrameSupportWeightsDispatchInfo;
@@ -125,7 +124,15 @@
     PalletXcmCall: PalletXcmCall;
     PalletXcmError: PalletXcmError;
     PalletXcmEvent: PalletXcmEvent;
+    PhantomTypeUpDataStructsBaseInfo: PhantomTypeUpDataStructsBaseInfo;
+    PhantomTypeUpDataStructsCollectionInfo: PhantomTypeUpDataStructsCollectionInfo;
+    PhantomTypeUpDataStructsNftChild: PhantomTypeUpDataStructsNftChild;
+    PhantomTypeUpDataStructsNftInfo: PhantomTypeUpDataStructsNftInfo;
+    PhantomTypeUpDataStructsPartType: PhantomTypeUpDataStructsPartType;
+    PhantomTypeUpDataStructsPropertyInfo: PhantomTypeUpDataStructsPropertyInfo;
+    PhantomTypeUpDataStructsResourceInfo: PhantomTypeUpDataStructsResourceInfo;
     PhantomTypeUpDataStructsRpcCollection: PhantomTypeUpDataStructsRpcCollection;
+    PhantomTypeUpDataStructsTheme: PhantomTypeUpDataStructsTheme;
     PhantomTypeUpDataStructsTokenData: PhantomTypeUpDataStructsTokenData;
     PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage;
     PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage;
@@ -135,6 +142,20 @@
     PolkadotPrimitivesV2AbridgedHrmpChannel: PolkadotPrimitivesV2AbridgedHrmpChannel;
     PolkadotPrimitivesV2PersistedValidationData: PolkadotPrimitivesV2PersistedValidationData;
     PolkadotPrimitivesV2UpgradeRestriction: PolkadotPrimitivesV2UpgradeRestriction;
+    RmrkTypesAccountIdOrCollectionNftTuple: RmrkTypesAccountIdOrCollectionNftTuple;
+    RmrkTypesBaseInfo: RmrkTypesBaseInfo;
+    RmrkTypesCollectionInfo: RmrkTypesCollectionInfo;
+    RmrkTypesEquippableList: RmrkTypesEquippableList;
+    RmrkTypesFixedPart: RmrkTypesFixedPart;
+    RmrkTypesNftChild: RmrkTypesNftChild;
+    RmrkTypesNftInfo: RmrkTypesNftInfo;
+    RmrkTypesPartType: RmrkTypesPartType;
+    RmrkTypesPropertyInfo: RmrkTypesPropertyInfo;
+    RmrkTypesResourceInfo: RmrkTypesResourceInfo;
+    RmrkTypesRoyaltyInfo: RmrkTypesRoyaltyInfo;
+    RmrkTypesSlotPart: RmrkTypesSlotPart;
+    RmrkTypesTheme: RmrkTypesTheme;
+    RmrkTypesThemeProperty: RmrkTypesThemeProperty;
     SpCoreEcdsaSignature: SpCoreEcdsaSignature;
     SpCoreEd25519Signature: SpCoreEd25519Signature;
     SpCoreSr25519Signature: SpCoreSr25519Signature;
addedtests/src/interfaces/rmrk/definitions.tsdiffbeforeafterboth
--- /dev/null
+++ b/tests/src/interfaces/rmrk/definitions.ts
@@ -0,0 +1,115 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+import types from '../lookup';
+
+type RpcParam = {
+  name: string;
+  type: string;
+  isOptional?: true;
+};
+
+const atParam = {name: 'at', type: 'Hash', isOptional: true};
+const fn = (description: string, params: RpcParam[], type: string) => ({
+    description,
+    params: [...params, atParam],
+    type,
+});
+
+export default {
+    types,
+    rpc: {
+        lastCollectionIdx: fn('Get the latest created collection id', [], 'u32'),
+        collectionById: fn('Get collection by id', [{name: 'id', type: 'u32'}], 'Option<RmrkTypesCollectionInfo>'),
+        nftById: fn(
+            'Get NFT by collection id and NFT id',
+            [
+                {name: 'collectionId', type: 'u32'},
+                {name: 'nftId', type: 'u32'},
+            ],
+            'Option<RmrkTypesNftInfo>'
+        ),
+        accountTokens: fn(
+            'Get tokens owned by an account in a collection',
+            [
+                {name: 'accountId', type: 'AccountId32'},
+                {name: 'collectionId', type: 'u32'}
+            ],
+            'Vec<u32>'
+        ),
+        nftChildren: fn(
+            'Get NFT children',
+            [
+                {name: 'collectionId', type: 'u32'},
+                {name: 'nftId', type: 'u32'},
+            ],
+            'Vec<RmrkTypesNftChild>'
+        ),
+        collectionProperties: fn(
+            'Get collection properties',
+            [{name: 'collectionId', type: 'u32'}],
+            'Vec<RmrkTypesPropertyInfo>'
+        ),
+        nftProperties: fn(
+            'Get NFT properties',
+            [
+                {name: 'collectionId', type: 'u32'},
+                {name: 'nftId', type: 'u32'}
+            ],
+            'Vec<RmrkTypesPropertyInfo>'
+        ),
+        nftResources: fn(
+            'Get NFT resources',
+            [
+                {name: 'collectionId', type: 'u32'},
+                {name: 'nftId', type: 'u32'}
+            ],
+            'Vec<RmrkTypesResourceInfo>'
+        ),
+        nftResourcePriorities: fn(
+            'Get NFT resource priorities',
+            [
+                {name: 'collectionId', type: 'u32'},
+                {name: 'nftId', type: 'u32'}
+            ],
+            'Vec<Bytes>'
+        ),
+        base: fn(
+            'Get base info',
+            [{name: 'baseId', type: 'u32'}],
+            'Option<RmrkTypesBaseInfo>'
+        ),
+        baseParts: fn(
+            'Get all Base\'s parts',
+            [{name: 'baseId', type: 'u32'}],
+            'Vec<RmrkTypesPartType>'
+        ),
+        themeNames: fn(
+            'Get Base\'s theme names',
+            [{name: 'baseId', type: 'u32'}],
+            'Vec<Bytes>'
+        ),
+        themes: fn(
+            'Get Theme\'s keys values',
+            [
+                {name: 'baseId', type: 'u32'},
+                {name: 'themeName', type: 'String'},
+                {name: 'keys', type: 'Option<Vec<String>>'}
+            ],
+            'Option<RmrkTypesTheme>'
+        )
+    }
+};
addedtests/src/interfaces/rmrk/index.tsdiffbeforeafterboth
--- /dev/null
+++ b/tests/src/interfaces/rmrk/index.ts
@@ -0,0 +1,4 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+export * from './types';
addedtests/src/interfaces/rmrk/types.tsdiffbeforeafterboth
--- /dev/null
+++ b/tests/src/interfaces/rmrk/types.ts
@@ -0,0 +1,2910 @@
+// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
+/* eslint-disable */
+
+import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
+import type { ITuple } from '@polkadot/types-codec/types';
+import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';
+import type { Event } from '@polkadot/types/interfaces/system';
+
+/** @name CumulusPalletDmpQueueCall */
+export interface CumulusPalletDmpQueueCall extends Enum {
+  readonly isServiceOverweight: boolean;
+  readonly asServiceOverweight: {
+    readonly index: u64;
+    readonly weightLimit: u64;
+  } & Struct;
+  readonly type: 'ServiceOverweight';
+}
+
+/** @name CumulusPalletDmpQueueConfigData */
+export interface CumulusPalletDmpQueueConfigData extends Struct {
+  readonly maxIndividual: u64;
+}
+
+/** @name CumulusPalletDmpQueueError */
+export interface CumulusPalletDmpQueueError extends Enum {
+  readonly isUnknown: boolean;
+  readonly isOverLimit: boolean;
+  readonly type: 'Unknown' | 'OverLimit';
+}
+
+/** @name CumulusPalletDmpQueueEvent */
+export interface CumulusPalletDmpQueueEvent extends Enum {
+  readonly isInvalidFormat: boolean;
+  readonly asInvalidFormat: U8aFixed;
+  readonly isUnsupportedVersion: boolean;
+  readonly asUnsupportedVersion: U8aFixed;
+  readonly isExecutedDownward: boolean;
+  readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;
+  readonly isWeightExhausted: boolean;
+  readonly asWeightExhausted: ITuple<[U8aFixed, u64, u64]>;
+  readonly isOverweightEnqueued: boolean;
+  readonly asOverweightEnqueued: ITuple<[U8aFixed, u64, u64]>;
+  readonly isOverweightServiced: boolean;
+  readonly asOverweightServiced: ITuple<[u64, u64]>;
+  readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';
+}
+
+/** @name CumulusPalletDmpQueuePageIndexData */
+export interface CumulusPalletDmpQueuePageIndexData extends Struct {
+  readonly beginUsed: u32;
+  readonly endUsed: u32;
+  readonly overweightCount: u64;
+}
+
+/** @name CumulusPalletParachainSystemCall */
+export interface CumulusPalletParachainSystemCall extends Enum {
+  readonly isSetValidationData: boolean;
+  readonly asSetValidationData: {
+    readonly data: CumulusPrimitivesParachainInherentParachainInherentData;
+  } & Struct;
+  readonly isSudoSendUpwardMessage: boolean;
+  readonly asSudoSendUpwardMessage: {
+    readonly message: Bytes;
+  } & Struct;
+  readonly isAuthorizeUpgrade: boolean;
+  readonly asAuthorizeUpgrade: {
+    readonly codeHash: H256;
+  } & Struct;
+  readonly isEnactAuthorizedUpgrade: boolean;
+  readonly asEnactAuthorizedUpgrade: {
+    readonly code: Bytes;
+  } & Struct;
+  readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';
+}
+
+/** @name CumulusPalletParachainSystemError */
+export interface CumulusPalletParachainSystemError extends Enum {
+  readonly isOverlappingUpgrades: boolean;
+  readonly isProhibitedByPolkadot: boolean;
+  readonly isTooBig: boolean;
+  readonly isValidationDataNotAvailable: boolean;
+  readonly isHostConfigurationNotAvailable: boolean;
+  readonly isNotScheduled: boolean;
+  readonly isNothingAuthorized: boolean;
+  readonly isUnauthorized: boolean;
+  readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';
+}
+
+/** @name CumulusPalletParachainSystemEvent */
+export interface CumulusPalletParachainSystemEvent extends Enum {
+  readonly isValidationFunctionStored: boolean;
+  readonly isValidationFunctionApplied: boolean;
+  readonly asValidationFunctionApplied: u32;
+  readonly isValidationFunctionDiscarded: boolean;
+  readonly isUpgradeAuthorized: boolean;
+  readonly asUpgradeAuthorized: H256;
+  readonly isDownwardMessagesReceived: boolean;
+  readonly asDownwardMessagesReceived: u32;
+  readonly isDownwardMessagesProcessed: boolean;
+  readonly asDownwardMessagesProcessed: ITuple<[u64, H256]>;
+  readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';
+}
+
+/** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot */
+export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {
+  readonly dmqMqcHead: H256;
+  readonly relayDispatchQueueSize: ITuple<[u32, u32]>;
+  readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;
+  readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;
+}
+
+/** @name CumulusPalletXcmCall */
+export interface CumulusPalletXcmCall extends Null {}
+
+/** @name CumulusPalletXcmError */
+export interface CumulusPalletXcmError extends Null {}
+
+/** @name CumulusPalletXcmEvent */
+export interface CumulusPalletXcmEvent extends Enum {
+  readonly isInvalidFormat: boolean;
+  readonly asInvalidFormat: U8aFixed;
+  readonly isUnsupportedVersion: boolean;
+  readonly asUnsupportedVersion: U8aFixed;
+  readonly isExecutedDownward: boolean;
+  readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;
+  readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';
+}
+
+/** @name CumulusPalletXcmpQueueCall */
+export interface CumulusPalletXcmpQueueCall extends Enum {
+  readonly isServiceOverweight: boolean;
+  readonly asServiceOverweight: {
+    readonly index: u64;
+    readonly weightLimit: u64;
+  } & Struct;
+  readonly isSuspendXcmExecution: boolean;
+  readonly isResumeXcmExecution: boolean;
+  readonly isUpdateSuspendThreshold: boolean;
+  readonly asUpdateSuspendThreshold: {
+    readonly new_: u32;
+  } & Struct;
+  readonly isUpdateDropThreshold: boolean;
+  readonly asUpdateDropThreshold: {
+    readonly new_: u32;
+  } & Struct;
+  readonly isUpdateResumeThreshold: boolean;
+  readonly asUpdateResumeThreshold: {
+    readonly new_: u32;
+  } & Struct;
+  readonly isUpdateThresholdWeight: boolean;
+  readonly asUpdateThresholdWeight: {
+    readonly new_: u64;
+  } & Struct;
+  readonly isUpdateWeightRestrictDecay: boolean;
+  readonly asUpdateWeightRestrictDecay: {
+    readonly new_: u64;
+  } & Struct;
+  readonly isUpdateXcmpMaxIndividualWeight: boolean;
+  readonly asUpdateXcmpMaxIndividualWeight: {
+    readonly new_: u64;
+  } & Struct;
+  readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';
+}
+
+/** @name CumulusPalletXcmpQueueError */
+export interface CumulusPalletXcmpQueueError extends Enum {
+  readonly isFailedToSend: boolean;
+  readonly isBadXcmOrigin: boolean;
+  readonly isBadXcm: boolean;
+  readonly isBadOverweightIndex: boolean;
+  readonly isWeightOverLimit: boolean;
+  readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
+}
+
+/** @name CumulusPalletXcmpQueueEvent */
+export interface CumulusPalletXcmpQueueEvent extends Enum {
+  readonly isSuccess: boolean;
+  readonly asSuccess: Option<H256>;
+  readonly isFail: boolean;
+  readonly asFail: ITuple<[Option<H256>, XcmV2TraitsError]>;
+  readonly isBadVersion: boolean;
+  readonly asBadVersion: Option<H256>;
+  readonly isBadFormat: boolean;
+  readonly asBadFormat: Option<H256>;
+  readonly isUpwardMessageSent: boolean;
+  readonly asUpwardMessageSent: Option<H256>;
+  readonly isXcmpMessageSent: boolean;
+  readonly asXcmpMessageSent: Option<H256>;
+  readonly isOverweightEnqueued: boolean;
+  readonly asOverweightEnqueued: ITuple<[u32, u32, u64, u64]>;
+  readonly isOverweightServiced: boolean;
+  readonly asOverweightServiced: ITuple<[u64, u64]>;
+  readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';
+}
+
+/** @name CumulusPalletXcmpQueueInboundChannelDetails */
+export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
+  readonly sender: u32;
+  readonly state: CumulusPalletXcmpQueueInboundState;
+  readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
+}
+
+/** @name CumulusPalletXcmpQueueInboundState */
+export interface CumulusPalletXcmpQueueInboundState extends Enum {
+  readonly isOk: boolean;
+  readonly isSuspended: boolean;
+  readonly type: 'Ok' | 'Suspended';
+}
+
+/** @name CumulusPalletXcmpQueueOutboundChannelDetails */
+export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
+  readonly recipient: u32;
+  readonly state: CumulusPalletXcmpQueueOutboundState;
+  readonly signalsExist: bool;
+  readonly firstIndex: u16;
+  readonly lastIndex: u16;
+}
+
+/** @name CumulusPalletXcmpQueueOutboundState */
+export interface CumulusPalletXcmpQueueOutboundState extends Enum {
+  readonly isOk: boolean;
+  readonly isSuspended: boolean;
+  readonly type: 'Ok' | 'Suspended';
+}
+
+/** @name CumulusPalletXcmpQueueQueueConfigData */
+export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
+  readonly suspendThreshold: u32;
+  readonly dropThreshold: u32;
+  readonly resumeThreshold: u32;
+  readonly thresholdWeight: u64;
+  readonly weightRestrictDecay: u64;
+  readonly xcmpMaxIndividualWeight: u64;
+}
+
+/** @name CumulusPrimitivesParachainInherentParachainInherentData */
+export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {
+  readonly validationData: PolkadotPrimitivesV2PersistedValidationData;
+  readonly relayChainState: SpTrieStorageProof;
+  readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;
+  readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;
+}
+
+/** @name EthbloomBloom */
+export interface EthbloomBloom extends U8aFixed {}
+
+/** @name EthereumBlock */
+export interface EthereumBlock extends Struct {
+  readonly header: EthereumHeader;
+  readonly transactions: Vec<EthereumTransactionTransactionV2>;
+  readonly ommers: Vec<EthereumHeader>;
+}
+
+/** @name EthereumHeader */
+export interface EthereumHeader extends Struct {
+  readonly parentHash: H256;
+  readonly ommersHash: H256;
+  readonly beneficiary: H160;
+  readonly stateRoot: H256;
+  readonly transactionsRoot: H256;
+  readonly receiptsRoot: H256;
+  readonly logsBloom: EthbloomBloom;
+  readonly difficulty: U256;
+  readonly number: U256;
+  readonly gasLimit: U256;
+  readonly gasUsed: U256;
+  readonly timestamp: u64;
+  readonly extraData: Bytes;
+  readonly mixHash: H256;
+  readonly nonce: EthereumTypesHashH64;
+}
+
+/** @name EthereumLog */
+export interface EthereumLog extends Struct {
+  readonly address: H160;
+  readonly topics: Vec<H256>;
+  readonly data: Bytes;
+}
+
+/** @name EthereumReceiptEip658ReceiptData */
+export interface EthereumReceiptEip658ReceiptData extends Struct {
+  readonly statusCode: u8;
+  readonly usedGas: U256;
+  readonly logsBloom: EthbloomBloom;
+  readonly logs: Vec<EthereumLog>;
+}
+
+/** @name EthereumReceiptReceiptV3 */
+export interface EthereumReceiptReceiptV3 extends Enum {
+  readonly isLegacy: boolean;
+  readonly asLegacy: EthereumReceiptEip658ReceiptData;
+  readonly isEip2930: boolean;
+  readonly asEip2930: EthereumReceiptEip658ReceiptData;
+  readonly isEip1559: boolean;
+  readonly asEip1559: EthereumReceiptEip658ReceiptData;
+  readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
+}
+
+/** @name EthereumTransactionAccessListItem */
+export interface EthereumTransactionAccessListItem extends Struct {
+  readonly address: H160;
+  readonly storageKeys: Vec<H256>;
+}
+
+/** @name EthereumTransactionEip1559Transaction */
+export interface EthereumTransactionEip1559Transaction extends Struct {
+  readonly chainId: u64;
+  readonly nonce: U256;
+  readonly maxPriorityFeePerGas: U256;
+  readonly maxFeePerGas: U256;
+  readonly gasLimit: U256;
+  readonly action: EthereumTransactionTransactionAction;
+  readonly value: U256;
+  readonly input: Bytes;
+  readonly accessList: Vec<EthereumTransactionAccessListItem>;
+  readonly oddYParity: bool;
+  readonly r: H256;
+  readonly s: H256;
+}
+
+/** @name EthereumTransactionEip2930Transaction */
+export interface EthereumTransactionEip2930Transaction extends Struct {
+  readonly chainId: u64;
+  readonly nonce: U256;
+  readonly gasPrice: U256;
+  readonly gasLimit: U256;
+  readonly action: EthereumTransactionTransactionAction;
+  readonly value: U256;
+  readonly input: Bytes;
+  readonly accessList: Vec<EthereumTransactionAccessListItem>;
+  readonly oddYParity: bool;
+  readonly r: H256;
+  readonly s: H256;
+}
+
+/** @name EthereumTransactionLegacyTransaction */
+export interface EthereumTransactionLegacyTransaction extends Struct {
+  readonly nonce: U256;
+  readonly gasPrice: U256;
+  readonly gasLimit: U256;
+  readonly action: EthereumTransactionTransactionAction;
+  readonly value: U256;
+  readonly input: Bytes;
+  readonly signature: EthereumTransactionTransactionSignature;
+}
+
+/** @name EthereumTransactionTransactionAction */
+export interface EthereumTransactionTransactionAction extends Enum {
+  readonly isCall: boolean;
+  readonly asCall: H160;
+  readonly isCreate: boolean;
+  readonly type: 'Call' | 'Create';
+}
+
+/** @name EthereumTransactionTransactionSignature */
+export interface EthereumTransactionTransactionSignature extends Struct {
+  readonly v: u64;
+  readonly r: H256;
+  readonly s: H256;
+}
+
+/** @name EthereumTransactionTransactionV2 */
+export interface EthereumTransactionTransactionV2 extends Enum {
+  readonly isLegacy: boolean;
+  readonly asLegacy: EthereumTransactionLegacyTransaction;
+  readonly isEip2930: boolean;
+  readonly asEip2930: EthereumTransactionEip2930Transaction;
+  readonly isEip1559: boolean;
+  readonly asEip1559: EthereumTransactionEip1559Transaction;
+  readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
+}
+
+/** @name EthereumTypesHashH64 */
+export interface EthereumTypesHashH64 extends U8aFixed {}
+
+/** @name EvmCoreErrorExitError */
+export interface EvmCoreErrorExitError extends Enum {
+  readonly isStackUnderflow: boolean;
+  readonly isStackOverflow: boolean;
+  readonly isInvalidJump: boolean;
+  readonly isInvalidRange: boolean;
+  readonly isDesignatedInvalid: boolean;
+  readonly isCallTooDeep: boolean;
+  readonly isCreateCollision: boolean;
+  readonly isCreateContractLimit: boolean;
+  readonly isOutOfOffset: boolean;
+  readonly isOutOfGas: boolean;
+  readonly isOutOfFund: boolean;
+  readonly isPcUnderflow: boolean;
+  readonly isCreateEmpty: boolean;
+  readonly isOther: boolean;
+  readonly asOther: Text;
+  readonly isInvalidCode: boolean;
+  readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';
+}
+
+/** @name EvmCoreErrorExitFatal */
+export interface EvmCoreErrorExitFatal extends Enum {
+  readonly isNotSupported: boolean;
+  readonly isUnhandledInterrupt: boolean;
+  readonly isCallErrorAsFatal: boolean;
+  readonly asCallErrorAsFatal: EvmCoreErrorExitError;
+  readonly isOther: boolean;
+  readonly asOther: Text;
+  readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';
+}
+
+/** @name EvmCoreErrorExitReason */
+export interface EvmCoreErrorExitReason extends Enum {
+  readonly isSucceed: boolean;
+  readonly asSucceed: EvmCoreErrorExitSucceed;
+  readonly isError: boolean;
+  readonly asError: EvmCoreErrorExitError;
+  readonly isRevert: boolean;
+  readonly asRevert: EvmCoreErrorExitRevert;
+  readonly isFatal: boolean;
+  readonly asFatal: EvmCoreErrorExitFatal;
+  readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';
+}
+
+/** @name EvmCoreErrorExitRevert */
+export interface EvmCoreErrorExitRevert extends Enum {
+  readonly isReverted: boolean;
+  readonly type: 'Reverted';
+}
+
+/** @name EvmCoreErrorExitSucceed */
+export interface EvmCoreErrorExitSucceed extends Enum {
+  readonly isStopped: boolean;
+  readonly isReturned: boolean;
+  readonly isSuicided: boolean;
+  readonly type: 'Stopped' | 'Returned' | 'Suicided';
+}
+
+/** @name FpRpcTransactionStatus */
+export interface FpRpcTransactionStatus extends Struct {
+  readonly transactionHash: H256;
+  readonly transactionIndex: u32;
+  readonly from: H160;
+  readonly to: Option<H160>;
+  readonly contractAddress: Option<H160>;
+  readonly logs: Vec<EthereumLog>;
+  readonly logsBloom: EthbloomBloom;
+}
+
+/** @name FrameSupportPalletId */
+export interface FrameSupportPalletId extends U8aFixed {}
+
+/** @name FrameSupportTokensMiscBalanceStatus */
+export interface FrameSupportTokensMiscBalanceStatus extends Enum {
+  readonly isFree: boolean;
+  readonly isReserved: boolean;
+  readonly type: 'Free' | 'Reserved';
+}
+
+/** @name FrameSupportWeightsDispatchClass */
+export interface FrameSupportWeightsDispatchClass extends Enum {
+  readonly isNormal: boolean;
+  readonly isOperational: boolean;
+  readonly isMandatory: boolean;
+  readonly type: 'Normal' | 'Operational' | 'Mandatory';
+}
+
+/** @name FrameSupportWeightsDispatchInfo */
+export interface FrameSupportWeightsDispatchInfo extends Struct {
+  readonly weight: u64;
+  readonly class: FrameSupportWeightsDispatchClass;
+  readonly paysFee: FrameSupportWeightsPays;
+}
+
+/** @name FrameSupportWeightsPays */
+export interface FrameSupportWeightsPays extends Enum {
+  readonly isYes: boolean;
+  readonly isNo: boolean;
+  readonly type: 'Yes' | 'No';
+}
+
+/** @name FrameSupportWeightsPerDispatchClassU32 */
+export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {
+  readonly normal: u32;
+  readonly operational: u32;
+  readonly mandatory: u32;
+}
+
+/** @name FrameSupportWeightsPerDispatchClassU64 */
+export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {
+  readonly normal: u64;
+  readonly operational: u64;
+  readonly mandatory: u64;
+}
+
+/** @name FrameSupportWeightsPerDispatchClassWeightsPerClass */
+export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {
+  readonly normal: FrameSystemLimitsWeightsPerClass;
+  readonly operational: FrameSystemLimitsWeightsPerClass;
+  readonly mandatory: FrameSystemLimitsWeightsPerClass;
+}
+
+/** @name FrameSupportWeightsRuntimeDbWeight */
+export interface FrameSupportWeightsRuntimeDbWeight extends Struct {
+  readonly read: u64;
+  readonly write: u64;
+}
+
+/** @name FrameSupportWeightsWeightToFeeCoefficient */
+export interface FrameSupportWeightsWeightToFeeCoefficient extends Struct {
+  readonly coeffInteger: u128;
+  readonly coeffFrac: Perbill;
+  readonly negative: bool;
+  readonly degree: u8;
+}
+
+/** @name FrameSystemAccountInfo */
+export interface FrameSystemAccountInfo extends Struct {
+  readonly nonce: u32;
+  readonly consumers: u32;
+  readonly providers: u32;
+  readonly sufficients: u32;
+  readonly data: PalletBalancesAccountData;
+}
+
+/** @name FrameSystemCall */
+export interface FrameSystemCall extends Enum {
+  readonly isFillBlock: boolean;
+  readonly asFillBlock: {
+    readonly ratio: Perbill;
+  } & Struct;
+  readonly isRemark: boolean;
+  readonly asRemark: {
+    readonly remark: Bytes;
+  } & Struct;
+  readonly isSetHeapPages: boolean;
+  readonly asSetHeapPages: {
+    readonly pages: u64;
+  } & Struct;
+  readonly isSetCode: boolean;
+  readonly asSetCode: {
+    readonly code: Bytes;
+  } & Struct;
+  readonly isSetCodeWithoutChecks: boolean;
+  readonly asSetCodeWithoutChecks: {
+    readonly code: Bytes;
+  } & Struct;
+  readonly isSetStorage: boolean;
+  readonly asSetStorage: {
+    readonly items: Vec<ITuple<[Bytes, Bytes]>>;
+  } & Struct;
+  readonly isKillStorage: boolean;
+  readonly asKillStorage: {
+    readonly keys_: Vec<Bytes>;
+  } & Struct;
+  readonly isKillPrefix: boolean;
+  readonly asKillPrefix: {
+    readonly prefix: Bytes;
+    readonly subkeys: u32;
+  } & Struct;
+  readonly isRemarkWithEvent: boolean;
+  readonly asRemarkWithEvent: {
+    readonly remark: Bytes;
+  } & Struct;
+  readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';
+}
+
+/** @name FrameSystemError */
+export interface FrameSystemError extends Enum {
+  readonly isInvalidSpecName: boolean;
+  readonly isSpecVersionNeedsToIncrease: boolean;
+  readonly isFailedToExtractRuntimeVersion: boolean;
+  readonly isNonDefaultComposite: boolean;
+  readonly isNonZeroRefCount: boolean;
+  readonly isCallFiltered: boolean;
+  readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';
+}
+
+/** @name FrameSystemEvent */
+export interface FrameSystemEvent extends Enum {
+  readonly isExtrinsicSuccess: boolean;
+  readonly asExtrinsicSuccess: {
+    readonly dispatchInfo: FrameSupportWeightsDispatchInfo;
+  } & Struct;
+  readonly isExtrinsicFailed: boolean;
+  readonly asExtrinsicFailed: {
+    readonly dispatchError: SpRuntimeDispatchError;
+    readonly dispatchInfo: FrameSupportWeightsDispatchInfo;
+  } & Struct;
+  readonly isCodeUpdated: boolean;
+  readonly isNewAccount: boolean;
+  readonly asNewAccount: {
+    readonly account: AccountId32;
+  } & Struct;
+  readonly isKilledAccount: boolean;
+  readonly asKilledAccount: {
+    readonly account: AccountId32;
+  } & Struct;
+  readonly isRemarked: boolean;
+  readonly asRemarked: {
+    readonly sender: AccountId32;
+    readonly hash_: H256;
+  } & Struct;
+  readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';
+}
+
+/** @name FrameSystemEventRecord */
+export interface FrameSystemEventRecord extends Struct {
+  readonly phase: FrameSystemPhase;
+  readonly event: Event;
+  readonly topics: Vec<H256>;
+}
+
+/** @name FrameSystemExtensionsCheckGenesis */
+export interface FrameSystemExtensionsCheckGenesis extends Null {}
+
+/** @name FrameSystemExtensionsCheckNonce */
+export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
+
+/** @name FrameSystemExtensionsCheckSpecVersion */
+export interface FrameSystemExtensionsCheckSpecVersion extends Null {}
+
+/** @name FrameSystemExtensionsCheckWeight */
+export interface FrameSystemExtensionsCheckWeight extends Null {}
+
+/** @name FrameSystemLastRuntimeUpgradeInfo */
+export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {
+  readonly specVersion: Compact<u32>;
+  readonly specName: Text;
+}
+
+/** @name FrameSystemLimitsBlockLength */
+export interface FrameSystemLimitsBlockLength extends Struct {
+  readonly max: FrameSupportWeightsPerDispatchClassU32;
+}
+
+/** @name FrameSystemLimitsBlockWeights */
+export interface FrameSystemLimitsBlockWeights extends Struct {
+  readonly baseBlock: u64;
+  readonly maxBlock: u64;
+  readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;
+}
+
+/** @name FrameSystemLimitsWeightsPerClass */
+export interface FrameSystemLimitsWeightsPerClass extends Struct {
+  readonly baseExtrinsic: u64;
+  readonly maxExtrinsic: Option<u64>;
+  readonly maxTotal: Option<u64>;
+  readonly reserved: Option<u64>;
+}
+
+/** @name FrameSystemPhase */
+export interface FrameSystemPhase extends Enum {
+  readonly isApplyExtrinsic: boolean;
+  readonly asApplyExtrinsic: u32;
+  readonly isFinalization: boolean;
+  readonly isInitialization: boolean;
+  readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';
+}
+
+/** @name OpalRuntimeRuntime */
+export interface OpalRuntimeRuntime extends Null {}
+
+/** @name OrmlVestingModuleCall */
+export interface OrmlVestingModuleCall extends Enum {
+  readonly isClaim: boolean;
+  readonly isVestedTransfer: boolean;
+  readonly asVestedTransfer: {
+    readonly dest: MultiAddress;
+    readonly schedule: OrmlVestingVestingSchedule;
+  } & Struct;
+  readonly isUpdateVestingSchedules: boolean;
+  readonly asUpdateVestingSchedules: {
+    readonly who: MultiAddress;
+    readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;
+  } & Struct;
+  readonly isClaimFor: boolean;
+  readonly asClaimFor: {
+    readonly dest: MultiAddress;
+  } & Struct;
+  readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';
+}
+
+/** @name OrmlVestingModuleError */
+export interface OrmlVestingModuleError extends Enum {
+  readonly isZeroVestingPeriod: boolean;
+  readonly isZeroVestingPeriodCount: boolean;
+  readonly isInsufficientBalanceToLock: boolean;
+  readonly isTooManyVestingSchedules: boolean;
+  readonly isAmountLow: boolean;
+  readonly isMaxVestingSchedulesExceeded: boolean;
+  readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
+}
+
+/** @name OrmlVestingModuleEvent */
+export interface OrmlVestingModuleEvent extends Enum {
+  readonly isVestingScheduleAdded: boolean;
+  readonly asVestingScheduleAdded: {
+    readonly from: AccountId32;
+    readonly to: AccountId32;
+    readonly vestingSchedule: OrmlVestingVestingSchedule;
+  } & Struct;
+  readonly isClaimed: boolean;
+  readonly asClaimed: {
+    readonly who: AccountId32;
+    readonly amount: u128;
+  } & Struct;
+  readonly isVestingSchedulesUpdated: boolean;
+  readonly asVestingSchedulesUpdated: {
+    readonly who: AccountId32;
+  } & Struct;
+  readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';
+}
+
+/** @name OrmlVestingVestingSchedule */
+export interface OrmlVestingVestingSchedule extends Struct {
+  readonly start: u32;
+  readonly period: u32;
+  readonly periodCount: u32;
+  readonly perPeriod: Compact<u128>;
+}
+
+/** @name PalletBalancesAccountData */
+export interface PalletBalancesAccountData extends Struct {
+  readonly free: u128;
+  readonly reserved: u128;
+  readonly miscFrozen: u128;
+  readonly feeFrozen: u128;
+}
+
+/** @name PalletBalancesBalanceLock */
+export interface PalletBalancesBalanceLock extends Struct {
+  readonly id: U8aFixed;
+  readonly amount: u128;
+  readonly reasons: PalletBalancesReasons;
+}
+
+/** @name PalletBalancesCall */
+export interface PalletBalancesCall extends Enum {
+  readonly isTransfer: boolean;
+  readonly asTransfer: {
+    readonly dest: MultiAddress;
+    readonly value: Compact<u128>;
+  } & Struct;
+  readonly isSetBalance: boolean;
+  readonly asSetBalance: {
+    readonly who: MultiAddress;
+    readonly newFree: Compact<u128>;
+    readonly newReserved: Compact<u128>;
+  } & Struct;
+  readonly isForceTransfer: boolean;
+  readonly asForceTransfer: {
+    readonly source: MultiAddress;
+    readonly dest: MultiAddress;
+    readonly value: Compact<u128>;
+  } & Struct;
+  readonly isTransferKeepAlive: boolean;
+  readonly asTransferKeepAlive: {
+    readonly dest: MultiAddress;
+    readonly value: Compact<u128>;
+  } & Struct;
+  readonly isTransferAll: boolean;
+  readonly asTransferAll: {
+    readonly dest: MultiAddress;
+    readonly keepAlive: bool;
+  } & Struct;
+  readonly isForceUnreserve: boolean;
+  readonly asForceUnreserve: {
+    readonly who: MultiAddress;
+    readonly amount: u128;
+  } & Struct;
+  readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';
+}
+
+/** @name PalletBalancesError */
+export interface PalletBalancesError extends Enum {
+  readonly isVestingBalance: boolean;
+  readonly isLiquidityRestrictions: boolean;
+  readonly isInsufficientBalance: boolean;
+  readonly isExistentialDeposit: boolean;
+  readonly isKeepAlive: boolean;
+  readonly isExistingVestingSchedule: boolean;
+  readonly isDeadAccount: boolean;
+  readonly isTooManyReserves: boolean;
+  readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';
+}
+
+/** @name PalletBalancesEvent */
+export interface PalletBalancesEvent extends Enum {
+  readonly isEndowed: boolean;
+  readonly asEndowed: {
+    readonly account: AccountId32;
+    readonly freeBalance: u128;
+  } & Struct;
+  readonly isDustLost: boolean;
+  readonly asDustLost: {
+    readonly account: AccountId32;
+    readonly amount: u128;
+  } & Struct;
+  readonly isTransfer: boolean;
+  readonly asTransfer: {
+    readonly from: AccountId32;
+    readonly to: AccountId32;
+    readonly amount: u128;
+  } & Struct;
+  readonly isBalanceSet: boolean;
+  readonly asBalanceSet: {
+    readonly who: AccountId32;
+    readonly free: u128;
+    readonly reserved: u128;
+  } & Struct;
+  readonly isReserved: boolean;
+  readonly asReserved: {
+    readonly who: AccountId32;
+    readonly amount: u128;
+  } & Struct;
+  readonly isUnreserved: boolean;
+  readonly asUnreserved: {
+    readonly who: AccountId32;
+    readonly amount: u128;
+  } & Struct;
+  readonly isReserveRepatriated: boolean;
+  readonly asReserveRepatriated: {
+    readonly from: AccountId32;
+    readonly to: AccountId32;
+    readonly amount: u128;
+    readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;
+  } & Struct;
+  readonly isDeposit: boolean;
+  readonly asDeposit: {
+    readonly who: AccountId32;
+    readonly amount: u128;
+  } & Struct;
+  readonly isWithdraw: boolean;
+  readonly asWithdraw: {
+    readonly who: AccountId32;
+    readonly amount: u128;
+  } & Struct;
+  readonly isSlashed: boolean;
+  readonly asSlashed: {
+    readonly who: AccountId32;
+    readonly amount: u128;
+  } & Struct;
+  readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';
+}
+
+/** @name PalletBalancesReasons */
+export interface PalletBalancesReasons extends Enum {
+  readonly isFee: boolean;
+  readonly isMisc: boolean;
+  readonly isAll: boolean;
+  readonly type: 'Fee' | 'Misc' | 'All';
+}
+
+/** @name PalletBalancesReleases */
+export interface PalletBalancesReleases extends Enum {
+  readonly isV100: boolean;
+  readonly isV200: boolean;
+  readonly type: 'V100' | 'V200';
+}
+
+/** @name PalletBalancesReserveData */
+export interface PalletBalancesReserveData extends Struct {
+  readonly id: U8aFixed;
+  readonly amount: u128;
+}
+
+/** @name PalletCommonError */
+export interface PalletCommonError extends Enum {
+  readonly isCollectionNotFound: boolean;
+  readonly isMustBeTokenOwner: boolean;
+  readonly isNoPermission: boolean;
+  readonly isPublicMintingNotAllowed: boolean;
+  readonly isAddressNotInAllowlist: boolean;
+  readonly isCollectionNameLimitExceeded: boolean;
+  readonly isCollectionDescriptionLimitExceeded: boolean;
+  readonly isCollectionTokenPrefixLimitExceeded: boolean;
+  readonly isTotalCollectionsLimitExceeded: boolean;
+  readonly isCollectionAdminCountExceeded: boolean;
+  readonly isCollectionLimitBoundsExceeded: boolean;
+  readonly isOwnerPermissionsCantBeReverted: boolean;
+  readonly isTransferNotAllowed: boolean;
+  readonly isAccountTokenLimitExceeded: boolean;
+  readonly isCollectionTokenLimitExceeded: boolean;
+  readonly isMetadataFlagFrozen: boolean;
+  readonly isTokenNotFound: boolean;
+  readonly isTokenValueTooLow: boolean;
+  readonly isApprovedValueTooLow: boolean;
+  readonly isCantApproveMoreThanOwned: boolean;
+  readonly isAddressIsZero: boolean;
+  readonly isUnsupportedOperation: boolean;
+  readonly isNotSufficientFounds: boolean;
+  readonly isNestingIsDisabled: boolean;
+  readonly isOnlyOwnerAllowedToNest: boolean;
+  readonly isSourceCollectionIsNotAllowedToNest: boolean;
+  readonly isCollectionFieldSizeExceeded: boolean;
+  readonly isNoSpaceForProperty: boolean;
+  readonly isPropertyLimitReached: boolean;
+  readonly isPropertyKeyIsTooLong: boolean;
+  readonly isInvalidCharacterInPropertyKey: boolean;
+  readonly isEmptyPropertyKey: boolean;
+  readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';
+}
+
+/** @name PalletCommonEvent */
+export interface PalletCommonEvent extends Enum {
+  readonly isCollectionCreated: boolean;
+  readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;
+  readonly isCollectionDestroyed: boolean;
+  readonly asCollectionDestroyed: u32;
+  readonly isItemCreated: boolean;
+  readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
+  readonly isItemDestroyed: boolean;
+  readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
+  readonly isTransfer: boolean;
+  readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
+  readonly isApproved: boolean;
+  readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;
+  readonly isCollectionPropertySet: boolean;
+  readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;
+  readonly isCollectionPropertyDeleted: boolean;
+  readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;
+  readonly isTokenPropertySet: boolean;
+  readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;
+  readonly isTokenPropertyDeleted: boolean;
+  readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;
+  readonly isPropertyPermissionSet: boolean;
+  readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;
+  readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
+}
+
+/** @name PalletEthereumCall */
+export interface PalletEthereumCall extends Enum {
+  readonly isTransact: boolean;
+  readonly asTransact: {
+    readonly transaction: EthereumTransactionTransactionV2;
+  } & Struct;
+  readonly type: 'Transact';
+}
+
+/** @name PalletEthereumError */
+export interface PalletEthereumError extends Enum {
+  readonly isInvalidSignature: boolean;
+  readonly isPreLogExists: boolean;
+  readonly type: 'InvalidSignature' | 'PreLogExists';
+}
+
+/** @name PalletEthereumEvent */
+export interface PalletEthereumEvent extends Enum {
+  readonly isExecuted: boolean;
+  readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;
+  readonly type: 'Executed';
+}
+
+/** @name PalletEthereumFakeTransactionFinalizer */
+export interface PalletEthereumFakeTransactionFinalizer extends Null {}
+
+/** @name PalletEvmAccountBasicCrossAccountIdRepr */
+export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {
+  readonly isSubstrate: boolean;
+  readonly asSubstrate: AccountId32;
+  readonly isEthereum: boolean;
+  readonly asEthereum: H160;
+  readonly type: 'Substrate' | 'Ethereum';
+}
+
+/** @name PalletEvmCall */
+export interface PalletEvmCall extends Enum {
+  readonly isWithdraw: boolean;
+  readonly asWithdraw: {
+    readonly address: H160;
+    readonly value: u128;
+  } & Struct;
+  readonly isCall: boolean;
+  readonly asCall: {
+    readonly source: H160;
+    readonly target: H160;
+    readonly input: Bytes;
+    readonly value: U256;
+    readonly gasLimit: u64;
+    readonly maxFeePerGas: U256;
+    readonly maxPriorityFeePerGas: Option<U256>;
+    readonly nonce: Option<U256>;
+    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;
+  } & Struct;
+  readonly isCreate: boolean;
+  readonly asCreate: {
+    readonly source: H160;
+    readonly init: Bytes;
+    readonly value: U256;
+    readonly gasLimit: u64;
+    readonly maxFeePerGas: U256;
+    readonly maxPriorityFeePerGas: Option<U256>;
+    readonly nonce: Option<U256>;
+    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;
+  } & Struct;
+  readonly isCreate2: boolean;
+  readonly asCreate2: {
+    readonly source: H160;
+    readonly init: Bytes;
+    readonly salt: H256;
+    readonly value: U256;
+    readonly gasLimit: u64;
+    readonly maxFeePerGas: U256;
+    readonly maxPriorityFeePerGas: Option<U256>;
+    readonly nonce: Option<U256>;
+    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;
+  } & Struct;
+  readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
+}
+
+/** @name PalletEvmCoderSubstrateError */
+export interface PalletEvmCoderSubstrateError extends Enum {
+  readonly isOutOfGas: boolean;
+  readonly isOutOfFund: boolean;
+  readonly type: 'OutOfGas' | 'OutOfFund';
+}
+
+/** @name PalletEvmContractHelpersError */
+export interface PalletEvmContractHelpersError extends Enum {
+  readonly isNoPermission: boolean;
+  readonly type: 'NoPermission';
+}
+
+/** @name PalletEvmContractHelpersSponsoringModeT */
+export interface PalletEvmContractHelpersSponsoringModeT extends Enum {
+  readonly isDisabled: boolean;
+  readonly isAllowlisted: boolean;
+  readonly isGenerous: boolean;
+  readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
+}
+
+/** @name PalletEvmError */
+export interface PalletEvmError extends Enum {
+  readonly isBalanceLow: boolean;
+  readonly isFeeOverflow: boolean;
+  readonly isPaymentOverflow: boolean;
+  readonly isWithdrawFailed: boolean;
+  readonly isGasPriceTooLow: boolean;
+  readonly isInvalidNonce: boolean;
+  readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';
+}
+
+/** @name PalletEvmEvent */
+export interface PalletEvmEvent extends Enum {
+  readonly isLog: boolean;
+  readonly asLog: EthereumLog;
+  readonly isCreated: boolean;
+  readonly asCreated: H160;
+  readonly isCreatedFailed: boolean;
+  readonly asCreatedFailed: H160;
+  readonly isExecuted: boolean;
+  readonly asExecuted: H160;
+  readonly isExecutedFailed: boolean;
+  readonly asExecutedFailed: H160;
+  readonly isBalanceDeposit: boolean;
+  readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;
+  readonly isBalanceWithdraw: boolean;
+  readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;
+  readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';
+}
+
+/** @name PalletEvmMigrationCall */
+export interface PalletEvmMigrationCall extends Enum {
+  readonly isBegin: boolean;
+  readonly asBegin: {
+    readonly address: H160;
+  } & Struct;
+  readonly isSetData: boolean;
+  readonly asSetData: {
+    readonly address: H160;
+    readonly data: Vec<ITuple<[H256, H256]>>;
+  } & Struct;
+  readonly isFinish: boolean;
+  readonly asFinish: {
+    readonly address: H160;
+    readonly code: Bytes;
+  } & Struct;
+  readonly type: 'Begin' | 'SetData' | 'Finish';
+}
+
+/** @name PalletEvmMigrationError */
+export interface PalletEvmMigrationError extends Enum {
+  readonly isAccountNotEmpty: boolean;
+  readonly isAccountIsNotMigrating: boolean;
+  readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
+}
+
+/** @name PalletFungibleError */
+export interface PalletFungibleError extends Enum {
+  readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
+  readonly isFungibleItemsHaveNoId: boolean;
+  readonly isFungibleItemsDontHaveData: boolean;
+  readonly isFungibleDisallowsNesting: boolean;
+  readonly isSettingPropertiesNotAllowed: boolean;
+  readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
+}
+
+/** @name PalletInflationCall */
+export interface PalletInflationCall extends Enum {
+  readonly isStartInflation: boolean;
+  readonly asStartInflation: {
+    readonly inflationStartRelayBlock: u32;
+  } & Struct;
+  readonly type: 'StartInflation';
+}
+
+/** @name PalletNonfungibleError */
+export interface PalletNonfungibleError extends Enum {
+  readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
+  readonly isNonfungibleItemsHaveNoAmount: boolean;
+  readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';
+}
+
+/** @name PalletNonfungibleItemData */
+export interface PalletNonfungibleItemData extends Struct {
+  readonly constData: Bytes;
+  readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
+}
+
+/** @name PalletRefungibleError */
+export interface PalletRefungibleError extends Enum {
+  readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
+  readonly isWrongRefungiblePieces: boolean;
+  readonly isRefungibleDisallowsNesting: boolean;
+  readonly isSettingPropertiesNotAllowed: boolean;
+  readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
+}
+
+/** @name PalletRefungibleItemData */
+export interface PalletRefungibleItemData extends Struct {
+  readonly constData: Bytes;
+}
+
+/** @name PalletStructureCall */
+export interface PalletStructureCall extends Null {}
+
+/** @name PalletStructureError */
+export interface PalletStructureError extends Enum {
+  readonly isOuroborosDetected: boolean;
+  readonly isDepthLimit: boolean;
+  readonly isTokenNotFound: boolean;
+  readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';
+}
+
+/** @name PalletStructureEvent */
+export interface PalletStructureEvent extends Enum {
+  readonly isExecuted: boolean;
+  readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
+  readonly type: 'Executed';
+}
+
+/** @name PalletSudoCall */
+export interface PalletSudoCall extends Enum {
+  readonly isSudo: boolean;
+  readonly asSudo: {
+    readonly call: Call;
+  } & Struct;
+  readonly isSudoUncheckedWeight: boolean;
+  readonly asSudoUncheckedWeight: {
+    readonly call: Call;
+    readonly weight: u64;
+  } & Struct;
+  readonly isSetKey: boolean;
+  readonly asSetKey: {
+    readonly new_: MultiAddress;
+  } & Struct;
+  readonly isSudoAs: boolean;
+  readonly asSudoAs: {
+    readonly who: MultiAddress;
+    readonly call: Call;
+  } & Struct;
+  readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';
+}
+
+/** @name PalletSudoError */
+export interface PalletSudoError extends Enum {
+  readonly isRequireSudo: boolean;
+  readonly type: 'RequireSudo';
+}
+
+/** @name PalletSudoEvent */
+export interface PalletSudoEvent extends Enum {
+  readonly isSudid: boolean;
+  readonly asSudid: {
+    readonly sudoResult: Result<Null, SpRuntimeDispatchError>;
+  } & Struct;
+  readonly isKeyChanged: boolean;
+  readonly asKeyChanged: {
+    readonly oldSudoer: Option<AccountId32>;
+  } & Struct;
+  readonly isSudoAsDone: boolean;
+  readonly asSudoAsDone: {
+    readonly sudoResult: Result<Null, SpRuntimeDispatchError>;
+  } & Struct;
+  readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';
+}
+
+/** @name PalletTemplateTransactionPaymentCall */
+export interface PalletTemplateTransactionPaymentCall extends Null {}
+
+/** @name PalletTemplateTransactionPaymentChargeTransactionPayment */
+export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
+
+/** @name PalletTimestampCall */
+export interface PalletTimestampCall extends Enum {
+  readonly isSet: boolean;
+  readonly asSet: {
+    readonly now: Compact<u64>;
+  } & Struct;
+  readonly type: 'Set';
+}
+
+/** @name PalletTransactionPaymentReleases */
+export interface PalletTransactionPaymentReleases extends Enum {
+  readonly isV1Ancient: boolean;
+  readonly isV2: boolean;
+  readonly type: 'V1Ancient' | 'V2';
+}
+
+/** @name PalletTreasuryCall */
+export interface PalletTreasuryCall extends Enum {
+  readonly isProposeSpend: boolean;
+  readonly asProposeSpend: {
+    readonly value: Compact<u128>;
+    readonly beneficiary: MultiAddress;
+  } & Struct;
+  readonly isRejectProposal: boolean;
+  readonly asRejectProposal: {
+    readonly proposalId: Compact<u32>;
+  } & Struct;
+  readonly isApproveProposal: boolean;
+  readonly asApproveProposal: {
+    readonly proposalId: Compact<u32>;
+  } & Struct;
+  readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal';
+}
+
+/** @name PalletTreasuryError */
+export interface PalletTreasuryError extends Enum {
+  readonly isInsufficientProposersBalance: boolean;
+  readonly isInvalidIndex: boolean;
+  readonly isTooManyApprovals: boolean;
+  readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals';
+}
+
+/** @name PalletTreasuryEvent */
+export interface PalletTreasuryEvent extends Enum {
+  readonly isProposed: boolean;
+  readonly asProposed: {
+    readonly proposalIndex: u32;
+  } & Struct;
+  readonly isSpending: boolean;
+  readonly asSpending: {
+    readonly budgetRemaining: u128;
+  } & Struct;
+  readonly isAwarded: boolean;
+  readonly asAwarded: {
+    readonly proposalIndex: u32;
+    readonly award: u128;
+    readonly account: AccountId32;
+  } & Struct;
+  readonly isRejected: boolean;
+  readonly asRejected: {
+    readonly proposalIndex: u32;
+    readonly slashed: u128;
+  } & Struct;
+  readonly isBurnt: boolean;
+  readonly asBurnt: {
+    readonly burntFunds: u128;
+  } & Struct;
+  readonly isRollover: boolean;
+  readonly asRollover: {
+    readonly rolloverBalance: u128;
+  } & Struct;
+  readonly isDeposit: boolean;
+  readonly asDeposit: {
+    readonly value: u128;
+  } & Struct;
+  readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit';
+}
+
+/** @name PalletTreasuryProposal */
+export interface PalletTreasuryProposal extends Struct {
+  readonly proposer: AccountId32;
+  readonly value: u128;
+  readonly beneficiary: AccountId32;
+  readonly bond: u128;
+}
+
+/** @name PalletUniqueCall */
+export interface PalletUniqueCall extends Enum {
+  readonly isCreateCollection: boolean;
+  readonly asCreateCollection: {
+    readonly collectionName: Vec<u16>;
+    readonly collectionDescription: Vec<u16>;
+    readonly tokenPrefix: Bytes;
+    readonly mode: UpDataStructsCollectionMode;
+  } & Struct;
+  readonly isCreateCollectionEx: boolean;
+  readonly asCreateCollectionEx: {
+    readonly data: UpDataStructsCreateCollectionData;
+  } & Struct;
+  readonly isDestroyCollection: boolean;
+  readonly asDestroyCollection: {
+    readonly collectionId: u32;
+  } & Struct;
+  readonly isAddToAllowList: boolean;
+  readonly asAddToAllowList: {
+    readonly collectionId: u32;
+    readonly address: PalletEvmAccountBasicCrossAccountIdRepr;
+  } & Struct;
+  readonly isRemoveFromAllowList: boolean;
+  readonly asRemoveFromAllowList: {
+    readonly collectionId: u32;
+    readonly address: PalletEvmAccountBasicCrossAccountIdRepr;
+  } & Struct;
+  readonly isSetPublicAccessMode: boolean;
+  readonly asSetPublicAccessMode: {
+    readonly collectionId: u32;
+    readonly mode: UpDataStructsAccessMode;
+  } & Struct;
+  readonly isSetMintPermission: boolean;
+  readonly asSetMintPermission: {
+    readonly collectionId: u32;
+    readonly mintPermission: bool;
+  } & Struct;
+  readonly isChangeCollectionOwner: boolean;
+  readonly asChangeCollectionOwner: {
+    readonly collectionId: u32;
+    readonly newOwner: AccountId32;
+  } & Struct;
+  readonly isAddCollectionAdmin: boolean;
+  readonly asAddCollectionAdmin: {
+    readonly collectionId: u32;
+    readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;
+  } & Struct;
+  readonly isRemoveCollectionAdmin: boolean;
+  readonly asRemoveCollectionAdmin: {
+    readonly collectionId: u32;
+    readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;
+  } & Struct;
+  readonly isSetCollectionSponsor: boolean;
+  readonly asSetCollectionSponsor: {
+    readonly collectionId: u32;
+    readonly newSponsor: AccountId32;
+  } & Struct;
+  readonly isConfirmSponsorship: boolean;
+  readonly asConfirmSponsorship: {
+    readonly collectionId: u32;
+  } & Struct;
+  readonly isRemoveCollectionSponsor: boolean;
+  readonly asRemoveCollectionSponsor: {
+    readonly collectionId: u32;
+  } & Struct;
+  readonly isCreateItem: boolean;
+  readonly asCreateItem: {
+    readonly collectionId: u32;
+    readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
+    readonly data: UpDataStructsCreateItemData;
+  } & Struct;
+  readonly isCreateMultipleItems: boolean;
+  readonly asCreateMultipleItems: {
+    readonly collectionId: u32;
+    readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
+    readonly itemsData: Vec<UpDataStructsCreateItemData>;
+  } & Struct;
+  readonly isSetCollectionProperties: boolean;
+  readonly asSetCollectionProperties: {
+    readonly collectionId: u32;
+    readonly properties: Vec<UpDataStructsProperty>;
+  } & Struct;
+  readonly isDeleteCollectionProperties: boolean;
+  readonly asDeleteCollectionProperties: {
+    readonly collectionId: u32;
+    readonly propertyKeys: Vec<Bytes>;
+  } & Struct;
+  readonly isSetTokenProperties: boolean;
+  readonly asSetTokenProperties: {
+    readonly collectionId: u32;
+    readonly tokenId: u32;
+    readonly properties: Vec<UpDataStructsProperty>;
+  } & Struct;
+  readonly isDeleteTokenProperties: boolean;
+  readonly asDeleteTokenProperties: {
+    readonly collectionId: u32;
+    readonly tokenId: u32;
+    readonly propertyKeys: Vec<Bytes>;
+  } & Struct;
+  readonly isSetPropertyPermissions: boolean;
+  readonly asSetPropertyPermissions: {
+    readonly collectionId: u32;
+    readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
+  } & Struct;
+  readonly isCreateMultipleItemsEx: boolean;
+  readonly asCreateMultipleItemsEx: {
+    readonly collectionId: u32;
+    readonly data: UpDataStructsCreateItemExData;
+  } & Struct;
+  readonly isSetTransfersEnabledFlag: boolean;
+  readonly asSetTransfersEnabledFlag: {
+    readonly collectionId: u32;
+    readonly value: bool;
+  } & Struct;
+  readonly isBurnItem: boolean;
+  readonly asBurnItem: {
+    readonly collectionId: u32;
+    readonly itemId: u32;
+    readonly value: u128;
+  } & Struct;
+  readonly isBurnFrom: boolean;
+  readonly asBurnFrom: {
+    readonly collectionId: u32;
+    readonly from: PalletEvmAccountBasicCrossAccountIdRepr;
+    readonly itemId: u32;
+    readonly value: u128;
+  } & Struct;
+  readonly isTransfer: boolean;
+  readonly asTransfer: {
+    readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;
+    readonly collectionId: u32;
+    readonly itemId: u32;
+    readonly value: u128;
+  } & Struct;
+  readonly isApprove: boolean;
+  readonly asApprove: {
+    readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;
+    readonly collectionId: u32;
+    readonly itemId: u32;
+    readonly amount: u128;
+  } & Struct;
+  readonly isTransferFrom: boolean;
+  readonly asTransferFrom: {
+    readonly from: PalletEvmAccountBasicCrossAccountIdRepr;
+    readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;
+    readonly collectionId: u32;
+    readonly itemId: u32;
+    readonly value: u128;
+  } & Struct;
+  readonly isSetSchemaVersion: boolean;
+  readonly asSetSchemaVersion: {
+    readonly collectionId: u32;
+    readonly version: UpDataStructsSchemaVersion;
+  } & Struct;
+  readonly isSetOffchainSchema: boolean;
+  readonly asSetOffchainSchema: {
+    readonly collectionId: u32;
+    readonly schema: Bytes;
+  } & Struct;
+  readonly isSetConstOnChainSchema: boolean;
+  readonly asSetConstOnChainSchema: {
+    readonly collectionId: u32;
+    readonly schema: Bytes;
+  } & Struct;
+  readonly isSetCollectionLimits: boolean;
+  readonly asSetCollectionLimits: {
+    readonly collectionId: u32;
+    readonly newLimit: UpDataStructsCollectionLimits;
+  } & Struct;
+  readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'SetPublicAccessMode' | 'SetMintPermission' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetSchemaVersion' | 'SetOffchainSchema' | 'SetConstOnChainSchema' | 'SetCollectionLimits';
+}
+
+/** @name PalletUniqueError */
+export interface PalletUniqueError extends Enum {
+  readonly isCollectionDecimalPointLimitExceeded: boolean;
+  readonly isConfirmUnsetSponsorFail: boolean;
+  readonly isEmptyArgument: boolean;
+  readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument';
+}
+
+/** @name PalletUniqueRawEvent */
+export interface PalletUniqueRawEvent extends Enum {
+  readonly isCollectionSponsorRemoved: boolean;
+  readonly asCollectionSponsorRemoved: u32;
+  readonly isCollectionAdminAdded: boolean;
+  readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
+  readonly isCollectionOwnedChanged: boolean;
+  readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;
+  readonly isCollectionSponsorSet: boolean;
+  readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;
+  readonly isConstOnChainSchemaSet: boolean;
+  readonly asConstOnChainSchemaSet: u32;
+  readonly isSponsorshipConfirmed: boolean;
+  readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;
+  readonly isCollectionAdminRemoved: boolean;
+  readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
+  readonly isAllowListAddressRemoved: boolean;
+  readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
+  readonly isAllowListAddressAdded: boolean;
+  readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
+  readonly isCollectionLimitSet: boolean;
+  readonly asCollectionLimitSet: u32;
+  readonly isMintPermissionSet: boolean;
+  readonly asMintPermissionSet: u32;
+  readonly isOffchainSchemaSet: boolean;
+  readonly asOffchainSchemaSet: u32;
+  readonly isPublicAccessModeSet: boolean;
+  readonly asPublicAccessModeSet: ITuple<[u32, UpDataStructsAccessMode]>;
+  readonly isSchemaVersionSet: boolean;
+  readonly asSchemaVersionSet: u32;
+  readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'ConstOnChainSchemaSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'MintPermissionSet' | 'OffchainSchemaSet' | 'PublicAccessModeSet' | 'SchemaVersionSet';
+}
+
+/** @name PalletXcmCall */
+export interface PalletXcmCall extends Enum {
+  readonly isSend: boolean;
+  readonly asSend: {
+    readonly dest: XcmVersionedMultiLocation;
+    readonly message: XcmVersionedXcm;
+  } & Struct;
+  readonly isTeleportAssets: boolean;
+  readonly asTeleportAssets: {
+    readonly dest: XcmVersionedMultiLocation;
+    readonly beneficiary: XcmVersionedMultiLocation;
+    readonly assets: XcmVersionedMultiAssets;
+    readonly feeAssetItem: u32;
+  } & Struct;
+  readonly isReserveTransferAssets: boolean;
+  readonly asReserveTransferAssets: {
+    readonly dest: XcmVersionedMultiLocation;
+    readonly beneficiary: XcmVersionedMultiLocation;
+    readonly assets: XcmVersionedMultiAssets;
+    readonly feeAssetItem: u32;
+  } & Struct;
+  readonly isExecute: boolean;
+  readonly asExecute: {
+    readonly message: XcmVersionedXcm;
+    readonly maxWeight: u64;
+  } & Struct;
+  readonly isForceXcmVersion: boolean;
+  readonly asForceXcmVersion: {
+    readonly location: XcmV1MultiLocation;
+    readonly xcmVersion: u32;
+  } & Struct;
+  readonly isForceDefaultXcmVersion: boolean;
+  readonly asForceDefaultXcmVersion: {
+    readonly maybeXcmVersion: Option<u32>;
+  } & Struct;
+  readonly isForceSubscribeVersionNotify: boolean;
+  readonly asForceSubscribeVersionNotify: {
+    readonly location: XcmVersionedMultiLocation;
+  } & Struct;
+  readonly isForceUnsubscribeVersionNotify: boolean;
+  readonly asForceUnsubscribeVersionNotify: {
+    readonly location: XcmVersionedMultiLocation;
+  } & Struct;
+  readonly isLimitedReserveTransferAssets: boolean;
+  readonly asLimitedReserveTransferAssets: {
+    readonly dest: XcmVersionedMultiLocation;
+    readonly beneficiary: XcmVersionedMultiLocation;
+    readonly assets: XcmVersionedMultiAssets;
+    readonly feeAssetItem: u32;
+    readonly weightLimit: XcmV2WeightLimit;
+  } & Struct;
+  readonly isLimitedTeleportAssets: boolean;
+  readonly asLimitedTeleportAssets: {
+    readonly dest: XcmVersionedMultiLocation;
+    readonly beneficiary: XcmVersionedMultiLocation;
+    readonly assets: XcmVersionedMultiAssets;
+    readonly feeAssetItem: u32;
+    readonly weightLimit: XcmV2WeightLimit;
+  } & Struct;
+  readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';
+}
+
+/** @name PalletXcmError */
+export interface PalletXcmError extends Enum {
+  readonly isUnreachable: boolean;
+  readonly isSendFailure: boolean;
+  readonly isFiltered: boolean;
+  readonly isUnweighableMessage: boolean;
+  readonly isDestinationNotInvertible: boolean;
+  readonly isEmpty: boolean;
+  readonly isCannotReanchor: boolean;
+  readonly isTooManyAssets: boolean;
+  readonly isInvalidOrigin: boolean;
+  readonly isBadVersion: boolean;
+  readonly isBadLocation: boolean;
+  readonly isNoSubscription: boolean;
+  readonly isAlreadySubscribed: boolean;
+  readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
+}
+
+/** @name PalletXcmEvent */
+export interface PalletXcmEvent extends Enum {
+  readonly isAttempted: boolean;
+  readonly asAttempted: XcmV2TraitsOutcome;
+  readonly isSent: boolean;
+  readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;
+  readonly isUnexpectedResponse: boolean;
+  readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;
+  readonly isResponseReady: boolean;
+  readonly asResponseReady: ITuple<[u64, XcmV2Response]>;
+  readonly isNotified: boolean;
+  readonly asNotified: ITuple<[u64, u8, u8]>;
+  readonly isNotifyOverweight: boolean;
+  readonly asNotifyOverweight: ITuple<[u64, u8, u8, u64, u64]>;
+  readonly isNotifyDispatchError: boolean;
+  readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;
+  readonly isNotifyDecodeFailed: boolean;
+  readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;
+  readonly isInvalidResponder: boolean;
+  readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;
+  readonly isInvalidResponderVersion: boolean;
+  readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;
+  readonly isResponseTaken: boolean;
+  readonly asResponseTaken: u64;
+  readonly isAssetsTrapped: boolean;
+  readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;
+  readonly isVersionChangeNotified: boolean;
+  readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;
+  readonly isSupportedVersionChanged: boolean;
+  readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;
+  readonly isNotifyTargetSendFail: boolean;
+  readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;
+  readonly isNotifyTargetMigrationFail: boolean;
+  readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;
+  readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';
+}
+
+/** @name PhantomTypeUpDataStructsBaseInfo */
+export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup357> {}
+
+/** @name PhantomTypeUpDataStructsCollectionInfo */
+export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup334> {}
+
+/** @name PhantomTypeUpDataStructsNftChild */
+export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup372> {}
+
+/** @name PhantomTypeUpDataStructsNftInfo */
+export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup339> {}
+
+/** @name PhantomTypeUpDataStructsPartType */
+export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup360> {}
+
+/** @name PhantomTypeUpDataStructsPropertyInfo */
+export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup352> {}
+
+/** @name PhantomTypeUpDataStructsResourceInfo */
+export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup345> {}
+
+/** @name PhantomTypeUpDataStructsRpcCollection */
+export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup331> {}
+
+/** @name PhantomTypeUpDataStructsTheme */
+export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup367> {}
+
+/** @name PhantomTypeUpDataStructsTokenData */
+export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup327> {}
+
+/** @name PolkadotCorePrimitivesInboundDownwardMessage */
+export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {
+  readonly sentAt: u32;
+  readonly msg: Bytes;
+}
+
+/** @name PolkadotCorePrimitivesInboundHrmpMessage */
+export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {
+  readonly sentAt: u32;
+  readonly data: Bytes;
+}
+
+/** @name PolkadotCorePrimitivesOutboundHrmpMessage */
+export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {
+  readonly recipient: u32;
+  readonly data: Bytes;
+}
+
+/** @name PolkadotParachainPrimitivesXcmpMessageFormat */
+export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
+  readonly isConcatenatedVersionedXcm: boolean;
+  readonly isConcatenatedEncodedBlob: boolean;
+  readonly isSignals: boolean;
+  readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
+}
+
+/** @name PolkadotPrimitivesV2AbridgedHostConfiguration */
+export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {
+  readonly maxCodeSize: u32;
+  readonly maxHeadDataSize: u32;
+  readonly maxUpwardQueueCount: u32;
+  readonly maxUpwardQueueSize: u32;
+  readonly maxUpwardMessageSize: u32;
+  readonly maxUpwardMessageNumPerCandidate: u32;
+  readonly hrmpMaxMessageNumPerCandidate: u32;
+  readonly validationUpgradeCooldown: u32;
+  readonly validationUpgradeDelay: u32;
+}
+
+/** @name PolkadotPrimitivesV2AbridgedHrmpChannel */
+export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {
+  readonly maxCapacity: u32;
+  readonly maxTotalSize: u32;
+  readonly maxMessageSize: u32;
+  readonly msgCount: u32;
+  readonly totalSize: u32;
+  readonly mqcHead: Option<H256>;
+}
+
+/** @name PolkadotPrimitivesV2PersistedValidationData */
+export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {
+  readonly parentHead: Bytes;
+  readonly relayParentNumber: u32;
+  readonly relayParentStorageRoot: H256;
+  readonly maxPovSize: u32;
+}
+
+/** @name PolkadotPrimitivesV2UpgradeRestriction */
+export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {
+  readonly isPresent: boolean;
+  readonly type: 'Present';
+}
+
+/** @name RmrkTypesAccountIdOrCollectionNftTuple */
+export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {
+  readonly isAccountId: boolean;
+  readonly asAccountId: AccountId32;
+  readonly isCollectionAndNftTuple: boolean;
+  readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;
+  readonly type: 'AccountId' | 'CollectionAndNftTuple';
+}
+
+/** @name RmrkTypesBaseInfo */
+export interface RmrkTypesBaseInfo extends Struct {
+  readonly issuer: AccountId32;
+  readonly baseType: Bytes;
+  readonly symbol: Bytes;
+}
+
+/** @name RmrkTypesCollectionInfo */
+export interface RmrkTypesCollectionInfo extends Struct {
+  readonly issuer: AccountId32;
+  readonly metadata: Bytes;
+  readonly max: Option<u32>;
+  readonly symbol: Bytes;
+  readonly nftsCount: u32;
+}
+
+/** @name RmrkTypesEquippableList */
+export interface RmrkTypesEquippableList extends Enum {
+  readonly isAll: boolean;
+  readonly isEmpty: boolean;
+  readonly isCustom: boolean;
+  readonly asCustom: Vec<u32>;
+  readonly type: 'All' | 'Empty' | 'Custom';
+}
+
+/** @name RmrkTypesFixedPart */
+export interface RmrkTypesFixedPart extends Struct {
+  readonly id: u32;
+  readonly z: u32;
+  readonly src: Bytes;
+}
+
+/** @name RmrkTypesNftChild */
+export interface RmrkTypesNftChild extends Struct {
+  readonly collectionId: u32;
+  readonly nftId: u32;
+}
+
+/** @name RmrkTypesNftInfo */
+export interface RmrkTypesNftInfo extends Struct {
+  readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;
+  readonly royalty: Option<RmrkTypesRoyaltyInfo>;
+  readonly metadata: Bytes;
+  readonly equipped: bool;
+  readonly pending: bool;
+}
+
+/** @name RmrkTypesPartType */
+export interface RmrkTypesPartType extends Enum {
+  readonly isFixedPart: boolean;
+  readonly asFixedPart: RmrkTypesFixedPart;
+  readonly isSlotPart: boolean;
+  readonly asSlotPart: RmrkTypesSlotPart;
+  readonly type: 'FixedPart' | 'SlotPart';
+}
+
+/** @name RmrkTypesPropertyInfo */
+export interface RmrkTypesPropertyInfo extends Struct {
+  readonly key: Bytes;
+  readonly value: Bytes;
+}
+
+/** @name RmrkTypesResourceInfo */
+export interface RmrkTypesResourceInfo extends Struct {
+  readonly id: Bytes;
+  readonly pending: bool;
+  readonly pendingRemoval: bool;
+  readonly parts: Option<Vec<u32>>;
+  readonly base: Option<u32>;
+  readonly src: Option<Bytes>;
+  readonly metadata: Option<Bytes>;
+  readonly slot: Option<u32>;
+  readonly license: Option<Bytes>;
+  readonly thumb: Option<Bytes>;
+}
+
+/** @name RmrkTypesRoyaltyInfo */
+export interface RmrkTypesRoyaltyInfo extends Struct {
+  readonly recipient: AccountId32;
+  readonly amount: Permill;
+}
+
+/** @name RmrkTypesSlotPart */
+export interface RmrkTypesSlotPart extends Struct {
+  readonly id: u32;
+  readonly equippable: RmrkTypesEquippableList;
+  readonly src: Bytes;
+  readonly z: u32;
+}
+
+/** @name RmrkTypesTheme */
+export interface RmrkTypesTheme extends Struct {
+  readonly name: Bytes;
+  readonly properties: Vec<RmrkTypesThemeProperty>;
+  readonly inherit: bool;
+}
+
+/** @name RmrkTypesThemeProperty */
+export interface RmrkTypesThemeProperty extends Struct {
+  readonly key: Bytes;
+  readonly value: Bytes;
+}
+
+/** @name SpCoreEcdsaSignature */
+export interface SpCoreEcdsaSignature extends U8aFixed {}
+
+/** @name SpCoreEd25519Signature */
+export interface SpCoreEd25519Signature extends U8aFixed {}
+
+/** @name SpCoreSr25519Signature */
+export interface SpCoreSr25519Signature extends U8aFixed {}
+
+/** @name SpRuntimeArithmeticError */
+export interface SpRuntimeArithmeticError extends Enum {
+  readonly isUnderflow: boolean;
+  readonly isOverflow: boolean;
+  readonly isDivisionByZero: boolean;
+  readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';
+}
+
+/** @name SpRuntimeDigest */
+export interface SpRuntimeDigest extends Struct {
+  readonly logs: Vec<SpRuntimeDigestDigestItem>;
+}
+
+/** @name SpRuntimeDigestDigestItem */
+export interface SpRuntimeDigestDigestItem extends Enum {
+  readonly isOther: boolean;
+  readonly asOther: Bytes;
+  readonly isConsensus: boolean;
+  readonly asConsensus: ITuple<[U8aFixed, Bytes]>;
+  readonly isSeal: boolean;
+  readonly asSeal: ITuple<[U8aFixed, Bytes]>;
+  readonly isPreRuntime: boolean;
+  readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;
+  readonly isRuntimeEnvironmentUpdated: boolean;
+  readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';
+}
+
+/** @name SpRuntimeDispatchError */
+export interface SpRuntimeDispatchError extends Enum {
+  readonly isOther: boolean;
+  readonly isCannotLookup: boolean;
+  readonly isBadOrigin: boolean;
+  readonly isModule: boolean;
+  readonly asModule: SpRuntimeModuleError;
+  readonly isConsumerRemaining: boolean;
+  readonly isNoProviders: boolean;
+  readonly isTooManyConsumers: boolean;
+  readonly isToken: boolean;
+  readonly asToken: SpRuntimeTokenError;
+  readonly isArithmetic: boolean;
+  readonly asArithmetic: SpRuntimeArithmeticError;
+  readonly isTransactional: boolean;
+  readonly asTransactional: SpRuntimeTransactionalError;
+  readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';
+}
+
+/** @name SpRuntimeModuleError */
+export interface SpRuntimeModuleError extends Struct {
+  readonly index: u8;
+  readonly error: U8aFixed;
+}
+
+/** @name SpRuntimeMultiSignature */
+export interface SpRuntimeMultiSignature extends Enum {
+  readonly isEd25519: boolean;
+  readonly asEd25519: SpCoreEd25519Signature;
+  readonly isSr25519: boolean;
+  readonly asSr25519: SpCoreSr25519Signature;
+  readonly isEcdsa: boolean;
+  readonly asEcdsa: SpCoreEcdsaSignature;
+  readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
+}
+
+/** @name SpRuntimeTokenError */
+export interface SpRuntimeTokenError extends Enum {
+  readonly isNoFunds: boolean;
+  readonly isWouldDie: boolean;
+  readonly isBelowMinimum: boolean;
+  readonly isCannotCreate: boolean;
+  readonly isUnknownAsset: boolean;
+  readonly isFrozen: boolean;
+  readonly isUnsupported: boolean;
+  readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';
+}
+
+/** @name SpRuntimeTransactionalError */
+export interface SpRuntimeTransactionalError extends Enum {
+  readonly isLimitReached: boolean;
+  readonly isNoLayer: boolean;
+  readonly type: 'LimitReached' | 'NoLayer';
+}
+
+/** @name SpTrieStorageProof */
+export interface SpTrieStorageProof extends Struct {
+  readonly trieNodes: BTreeSet<Bytes>;
+}
+
+/** @name SpVersionRuntimeVersion */
+export interface SpVersionRuntimeVersion extends Struct {
+  readonly specName: Text;
+  readonly implName: Text;
+  readonly authoringVersion: u32;
+  readonly specVersion: u32;
+  readonly implVersion: u32;
+  readonly apis: Vec<ITuple<[U8aFixed, u32]>>;
+  readonly transactionVersion: u32;
+  readonly stateVersion: u8;
+}
+
+/** @name UpDataStructsAccessMode */
+export interface UpDataStructsAccessMode extends Enum {
+  readonly isNormal: boolean;
+  readonly isAllowList: boolean;
+  readonly type: 'Normal' | 'AllowList';
+}
+
+/** @name UpDataStructsCollection */
+export interface UpDataStructsCollection extends Struct {
+  readonly owner: AccountId32;
+  readonly mode: UpDataStructsCollectionMode;
+  readonly access: UpDataStructsAccessMode;
+  readonly name: Vec<u16>;
+  readonly description: Vec<u16>;
+  readonly tokenPrefix: Bytes;
+  readonly mintMode: bool;
+  readonly schemaVersion: UpDataStructsSchemaVersion;
+  readonly sponsorship: UpDataStructsSponsorshipState;
+  readonly limits: UpDataStructsCollectionLimits;
+}
+
+/** @name UpDataStructsCollectionField */
+export interface UpDataStructsCollectionField extends Enum {
+  readonly isConstOnChainSchema: boolean;
+  readonly isOffchainSchema: boolean;
+  readonly type: 'ConstOnChainSchema' | 'OffchainSchema';
+}
+
+/** @name UpDataStructsCollectionLimits */
+export interface UpDataStructsCollectionLimits extends Struct {
+  readonly accountTokenOwnershipLimit: Option<u32>;
+  readonly sponsoredDataSize: Option<u32>;
+  readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;
+  readonly tokenLimit: Option<u32>;
+  readonly sponsorTransferTimeout: Option<u32>;
+  readonly sponsorApproveTimeout: Option<u32>;
+  readonly ownerCanTransfer: Option<bool>;
+  readonly ownerCanDestroy: Option<bool>;
+  readonly transfersEnabled: Option<bool>;
+  readonly nestingRule: Option<UpDataStructsNestingRule>;
+}
+
+/** @name UpDataStructsCollectionMode */
+export interface UpDataStructsCollectionMode extends Enum {
+  readonly isNft: boolean;
+  readonly isFungible: boolean;
+  readonly asFungible: u8;
+  readonly isReFungible: boolean;
+  readonly type: 'Nft' | 'Fungible' | 'ReFungible';
+}
+
+/** @name UpDataStructsCollectionStats */
+export interface UpDataStructsCollectionStats extends Struct {
+  readonly created: u32;
+  readonly destroyed: u32;
+  readonly alive: u32;
+}
+
+/** @name UpDataStructsCreateCollectionData */
+export interface UpDataStructsCreateCollectionData extends Struct {
+  readonly mode: UpDataStructsCollectionMode;
+  readonly access: Option<UpDataStructsAccessMode>;
+  readonly name: Vec<u16>;
+  readonly description: Vec<u16>;
+  readonly tokenPrefix: Bytes;
+  readonly offchainSchema: Bytes;
+  readonly schemaVersion: Option<UpDataStructsSchemaVersion>;
+  readonly pendingSponsor: Option<AccountId32>;
+  readonly limits: Option<UpDataStructsCollectionLimits>;
+  readonly constOnChainSchema: Bytes;
+  readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
+  readonly properties: Vec<UpDataStructsProperty>;
+}
+
+/** @name UpDataStructsCreateFungibleData */
+export interface UpDataStructsCreateFungibleData extends Struct {
+  readonly value: u128;
+}
+
+/** @name UpDataStructsCreateItemData */
+export interface UpDataStructsCreateItemData extends Enum {
+  readonly isNft: boolean;
+  readonly asNft: UpDataStructsCreateNftData;
+  readonly isFungible: boolean;
+  readonly asFungible: UpDataStructsCreateFungibleData;
+  readonly isReFungible: boolean;
+  readonly asReFungible: UpDataStructsCreateReFungibleData;
+  readonly type: 'Nft' | 'Fungible' | 'ReFungible';
+}
+
+/** @name UpDataStructsCreateItemExData */
+export interface UpDataStructsCreateItemExData extends Enum {
+  readonly isNft: boolean;
+  readonly asNft: Vec<UpDataStructsCreateNftExData>;
+  readonly isFungible: boolean;
+  readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr,u128>;
+  readonly isRefungibleMultipleItems: boolean;
+  readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExData>;
+  readonly isRefungibleMultipleOwners: boolean;
+  readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExData;
+  readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';
+}
+
+/** @name UpDataStructsCreateNftData */
+export interface UpDataStructsCreateNftData extends Struct {
+  readonly constData: Bytes;
+  readonly properties: Vec<UpDataStructsProperty>;
+}
+
+/** @name UpDataStructsCreateNftExData */
+export interface UpDataStructsCreateNftExData extends Struct {
+  readonly constData: Bytes;
+  readonly properties: Vec<UpDataStructsProperty>;
+  readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
+}
+
+/** @name UpDataStructsCreateReFungibleData */
+export interface UpDataStructsCreateReFungibleData extends Struct {
+  readonly constData: Bytes;
+  readonly pieces: u128;
+}
+
+/** @name UpDataStructsCreateRefungibleExData */
+export interface UpDataStructsCreateRefungibleExData extends Struct {
+  readonly constData: Bytes;
+  readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;
+}
+
+/** @name UpDataStructsNestingRule */
+export interface UpDataStructsNestingRule extends Enum {
+  readonly isDisabled: boolean;
+  readonly isOwner: boolean;
+  readonly isOwnerRestricted: boolean;
+  readonly asOwnerRestricted: BTreeSet<u32>;
+  readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';
+}
+
+/** @name UpDataStructsProperties */
+export interface UpDataStructsProperties extends Struct {
+  readonly map: UpDataStructsPropertiesMapBoundedVec;
+  readonly consumedSpace: u32;
+  readonly spaceLimit: u32;
+}
+
+/** @name UpDataStructsPropertiesMapBoundedVec */
+export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
+
+/** @name UpDataStructsPropertiesMapPropertyPermission */
+export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
+
+/** @name UpDataStructsProperty */
+export interface UpDataStructsProperty extends Struct {
+  readonly key: Bytes;
+  readonly value: Bytes;
+}
+
+/** @name UpDataStructsPropertyKeyPermission */
+export interface UpDataStructsPropertyKeyPermission extends Struct {
+  readonly key: Bytes;
+  readonly permission: UpDataStructsPropertyPermission;
+}
+
+/** @name UpDataStructsPropertyPermission */
+export interface UpDataStructsPropertyPermission extends Struct {
+  readonly mutable: bool;
+  readonly collectionAdmin: bool;
+  readonly tokenOwner: bool;
+}
+
+/** @name UpDataStructsRpcCollection */
+export interface UpDataStructsRpcCollection extends Struct {
+  readonly owner: AccountId32;
+  readonly mode: UpDataStructsCollectionMode;
+  readonly access: UpDataStructsAccessMode;
+  readonly name: Vec<u16>;
+  readonly description: Vec<u16>;
+  readonly tokenPrefix: Bytes;
+  readonly mintMode: bool;
+  readonly offchainSchema: Bytes;
+  readonly schemaVersion: UpDataStructsSchemaVersion;
+  readonly sponsorship: UpDataStructsSponsorshipState;
+  readonly limits: UpDataStructsCollectionLimits;
+  readonly constOnChainSchema: Bytes;
+  readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;
+  readonly properties: Vec<UpDataStructsProperty>;
+}
+
+/** @name UpDataStructsSchemaVersion */
+export interface UpDataStructsSchemaVersion extends Enum {
+  readonly isImageURL: boolean;
+  readonly isUnique: boolean;
+  readonly type: 'ImageURL' | 'Unique';
+}
+
+/** @name UpDataStructsSponsoringRateLimit */
+export interface UpDataStructsSponsoringRateLimit extends Enum {
+  readonly isSponsoringDisabled: boolean;
+  readonly isBlocks: boolean;
+  readonly asBlocks: u32;
+  readonly type: 'SponsoringDisabled' | 'Blocks';
+}
+
+/** @name UpDataStructsSponsorshipState */
+export interface UpDataStructsSponsorshipState extends Enum {
+  readonly isDisabled: boolean;
+  readonly isUnconfirmed: boolean;
+  readonly asUnconfirmed: AccountId32;
+  readonly isConfirmed: boolean;
+  readonly asConfirmed: AccountId32;
+  readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
+}
+
+/** @name UpDataStructsTokenData */
+export interface UpDataStructsTokenData extends Struct {
+  readonly constData: Bytes;
+  readonly properties: Vec<UpDataStructsProperty>;
+  readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
+}
+
+/** @name XcmDoubleEncoded */
+export interface XcmDoubleEncoded extends Struct {
+  readonly encoded: Bytes;
+}
+
+/** @name XcmV0Junction */
+export interface XcmV0Junction extends Enum {
+  readonly isParent: boolean;
+  readonly isParachain: boolean;
+  readonly asParachain: Compact<u32>;
+  readonly isAccountId32: boolean;
+  readonly asAccountId32: {
+    readonly network: XcmV0JunctionNetworkId;
+    readonly id: U8aFixed;
+  } & Struct;
+  readonly isAccountIndex64: boolean;
+  readonly asAccountIndex64: {
+    readonly network: XcmV0JunctionNetworkId;
+    readonly index: Compact<u64>;
+  } & Struct;
+  readonly isAccountKey20: boolean;
+  readonly asAccountKey20: {
+    readonly network: XcmV0JunctionNetworkId;
+    readonly key: U8aFixed;
+  } & Struct;
+  readonly isPalletInstance: boolean;
+  readonly asPalletInstance: u8;
+  readonly isGeneralIndex: boolean;
+  readonly asGeneralIndex: Compact<u128>;
+  readonly isGeneralKey: boolean;
+  readonly asGeneralKey: Bytes;
+  readonly isOnlyChild: boolean;
+  readonly isPlurality: boolean;
+  readonly asPlurality: {
+    readonly id: XcmV0JunctionBodyId;
+    readonly part: XcmV0JunctionBodyPart;
+  } & Struct;
+  readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';
+}
+
+/** @name XcmV0JunctionBodyId */
+export interface XcmV0JunctionBodyId extends Enum {
+  readonly isUnit: boolean;
+  readonly isNamed: boolean;
+  readonly asNamed: Bytes;
+  readonly isIndex: boolean;
+  readonly asIndex: Compact<u32>;
+  readonly isExecutive: boolean;
+  readonly isTechnical: boolean;
+  readonly isLegislative: boolean;
+  readonly isJudicial: boolean;
+  readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';
+}
+
+/** @name XcmV0JunctionBodyPart */
+export interface XcmV0JunctionBodyPart extends Enum {
+  readonly isVoice: boolean;
+  readonly isMembers: boolean;
+  readonly asMembers: {
+    readonly count: Compact<u32>;
+  } & Struct;
+  readonly isFraction: boolean;
+  readonly asFraction: {
+    readonly nom: Compact<u32>;
+    readonly denom: Compact<u32>;
+  } & Struct;
+  readonly isAtLeastProportion: boolean;
+  readonly asAtLeastProportion: {
+    readonly nom: Compact<u32>;
+    readonly denom: Compact<u32>;
+  } & Struct;
+  readonly isMoreThanProportion: boolean;
+  readonly asMoreThanProportion: {
+    readonly nom: Compact<u32>;
+    readonly denom: Compact<u32>;
+  } & Struct;
+  readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';
+}
+
+/** @name XcmV0JunctionNetworkId */
+export interface XcmV0JunctionNetworkId extends Enum {
+  readonly isAny: boolean;
+  readonly isNamed: boolean;
+  readonly asNamed: Bytes;
+  readonly isPolkadot: boolean;
+  readonly isKusama: boolean;
+  readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';
+}
+
+/** @name XcmV0MultiAsset */
+export interface XcmV0MultiAsset extends Enum {
+  readonly isNone: boolean;
+  readonly isAll: boolean;
+  readonly isAllFungible: boolean;
+  readonly isAllNonFungible: boolean;
+  readonly isAllAbstractFungible: boolean;
+  readonly asAllAbstractFungible: {
+    readonly id: Bytes;
+  } & Struct;
+  readonly isAllAbstractNonFungible: boolean;
+  readonly asAllAbstractNonFungible: {
+    readonly class: Bytes;
+  } & Struct;
+  readonly isAllConcreteFungible: boolean;
+  readonly asAllConcreteFungible: {
+    readonly id: XcmV0MultiLocation;
+  } & Struct;
+  readonly isAllConcreteNonFungible: boolean;
+  readonly asAllConcreteNonFungible: {
+    readonly class: XcmV0MultiLocation;
+  } & Struct;
+  readonly isAbstractFungible: boolean;
+  readonly asAbstractFungible: {
+    readonly id: Bytes;
+    readonly amount: Compact<u128>;
+  } & Struct;
+  readonly isAbstractNonFungible: boolean;
+  readonly asAbstractNonFungible: {
+    readonly class: Bytes;
+    readonly instance: XcmV1MultiassetAssetInstance;
+  } & Struct;
+  readonly isConcreteFungible: boolean;
+  readonly asConcreteFungible: {
+    readonly id: XcmV0MultiLocation;
+    readonly amount: Compact<u128>;
+  } & Struct;
+  readonly isConcreteNonFungible: boolean;
+  readonly asConcreteNonFungible: {
+    readonly class: XcmV0MultiLocation;
+    readonly instance: XcmV1MultiassetAssetInstance;
+  } & Struct;
+  readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';
+}
+
+/** @name XcmV0MultiLocation */
+export interface XcmV0MultiLocation extends Enum {
+  readonly isNull: boolean;
+  readonly isX1: boolean;
+  readonly asX1: XcmV0Junction;
+  readonly isX2: boolean;
+  readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;
+  readonly isX3: boolean;
+  readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;
+  readonly isX4: boolean;
+  readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;
+  readonly isX5: boolean;
+  readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;
+  readonly isX6: boolean;
+  readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;
+  readonly isX7: boolean;
+  readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;
+  readonly isX8: boolean;
+  readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;
+  readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';
+}
+
+/** @name XcmV0Order */
+export interface XcmV0Order extends Enum {
+  readonly isNull: boolean;
+  readonly isDepositAsset: boolean;
+  readonly asDepositAsset: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly dest: XcmV0MultiLocation;
+  } & Struct;
+  readonly isDepositReserveAsset: boolean;
+  readonly asDepositReserveAsset: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly dest: XcmV0MultiLocation;
+    readonly effects: Vec<XcmV0Order>;
+  } & Struct;
+  readonly isExchangeAsset: boolean;
+  readonly asExchangeAsset: {
+    readonly give: Vec<XcmV0MultiAsset>;
+    readonly receive: Vec<XcmV0MultiAsset>;
+  } & Struct;
+  readonly isInitiateReserveWithdraw: boolean;
+  readonly asInitiateReserveWithdraw: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly reserve: XcmV0MultiLocation;
+    readonly effects: Vec<XcmV0Order>;
+  } & Struct;
+  readonly isInitiateTeleport: boolean;
+  readonly asInitiateTeleport: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly dest: XcmV0MultiLocation;
+    readonly effects: Vec<XcmV0Order>;
+  } & Struct;
+  readonly isQueryHolding: boolean;
+  readonly asQueryHolding: {
+    readonly queryId: Compact<u64>;
+    readonly dest: XcmV0MultiLocation;
+    readonly assets: Vec<XcmV0MultiAsset>;
+  } & Struct;
+  readonly isBuyExecution: boolean;
+  readonly asBuyExecution: {
+    readonly fees: XcmV0MultiAsset;
+    readonly weight: u64;
+    readonly debt: u64;
+    readonly haltOnError: bool;
+    readonly xcm: Vec<XcmV0Xcm>;
+  } & Struct;
+  readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';
+}
+
+/** @name XcmV0OriginKind */
+export interface XcmV0OriginKind extends Enum {
+  readonly isNative: boolean;
+  readonly isSovereignAccount: boolean;
+  readonly isSuperuser: boolean;
+  readonly isXcm: boolean;
+  readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';
+}
+
+/** @name XcmV0Response */
+export interface XcmV0Response extends Enum {
+  readonly isAssets: boolean;
+  readonly asAssets: Vec<XcmV0MultiAsset>;
+  readonly type: 'Assets';
+}
+
+/** @name XcmV0Xcm */
+export interface XcmV0Xcm extends Enum {
+  readonly isWithdrawAsset: boolean;
+  readonly asWithdrawAsset: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly effects: Vec<XcmV0Order>;
+  } & Struct;
+  readonly isReserveAssetDeposit: boolean;
+  readonly asReserveAssetDeposit: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly effects: Vec<XcmV0Order>;
+  } & Struct;
+  readonly isTeleportAsset: boolean;
+  readonly asTeleportAsset: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly effects: Vec<XcmV0Order>;
+  } & Struct;
+  readonly isQueryResponse: boolean;
+  readonly asQueryResponse: {
+    readonly queryId: Compact<u64>;
+    readonly response: XcmV0Response;
+  } & Struct;
+  readonly isTransferAsset: boolean;
+  readonly asTransferAsset: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly dest: XcmV0MultiLocation;
+  } & Struct;
+  readonly isTransferReserveAsset: boolean;
+  readonly asTransferReserveAsset: {
+    readonly assets: Vec<XcmV0MultiAsset>;
+    readonly dest: XcmV0MultiLocation;
+    readonly effects: Vec<XcmV0Order>;
+  } & Struct;
+  readonly isTransact: boolean;
+  readonly asTransact: {
+    readonly originType: XcmV0OriginKind;
+    readonly requireWeightAtMost: u64;
+    readonly call: XcmDoubleEncoded;
+  } & Struct;
+  readonly isHrmpNewChannelOpenRequest: boolean;
+  readonly asHrmpNewChannelOpenRequest: {
+    readonly sender: Compact<u32>;
+    readonly maxMessageSize: Compact<u32>;
+    readonly maxCapacity: Compact<u32>;
+  } & Struct;
+  readonly isHrmpChannelAccepted: boolean;
+  readonly asHrmpChannelAccepted: {
+    readonly recipient: Compact<u32>;
+  } & Struct;
+  readonly isHrmpChannelClosing: boolean;
+  readonly asHrmpChannelClosing: {
+    readonly initiator: Compact<u32>;
+    readonly sender: Compact<u32>;
+    readonly recipient: Compact<u32>;
+  } & Struct;
+  readonly isRelayedFrom: boolean;
+  readonly asRelayedFrom: {
+    readonly who: XcmV0MultiLocation;
+    readonly message: XcmV0Xcm;
+  } & Struct;
+  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';
+}
+
+/** @name XcmV1Junction */
+export interface XcmV1Junction extends Enum {
+  readonly isParachain: boolean;
+  readonly asParachain: Compact<u32>;
+  readonly isAccountId32: boolean;
+  readonly asAccountId32: {
+    readonly network: XcmV0JunctionNetworkId;
+    readonly id: U8aFixed;
+  } & Struct;
+  readonly isAccountIndex64: boolean;
+  readonly asAccountIndex64: {
+    readonly network: XcmV0JunctionNetworkId;
+    readonly index: Compact<u64>;
+  } & Struct;
+  readonly isAccountKey20: boolean;
+  readonly asAccountKey20: {
+    readonly network: XcmV0JunctionNetworkId;
+    readonly key: U8aFixed;
+  } & Struct;
+  readonly isPalletInstance: boolean;
+  readonly asPalletInstance: u8;
+  readonly isGeneralIndex: boolean;
+  readonly asGeneralIndex: Compact<u128>;
+  readonly isGeneralKey: boolean;
+  readonly asGeneralKey: Bytes;
+  readonly isOnlyChild: boolean;
+  readonly isPlurality: boolean;
+  readonly asPlurality: {
+    readonly id: XcmV0JunctionBodyId;
+    readonly part: XcmV0JunctionBodyPart;
+  } & Struct;
+  readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';
+}
+
+/** @name XcmV1MultiAsset */
+export interface XcmV1MultiAsset extends Struct {
+  readonly id: XcmV1MultiassetAssetId;
+  readonly fun: XcmV1MultiassetFungibility;
+}
+
+/** @name XcmV1MultiassetAssetId */
+export interface XcmV1MultiassetAssetId extends Enum {
+  readonly isConcrete: boolean;
+  readonly asConcrete: XcmV1MultiLocation;
+  readonly isAbstract: boolean;
+  readonly asAbstract: Bytes;
+  readonly type: 'Concrete' | 'Abstract';
+}
+
+/** @name XcmV1MultiassetAssetInstance */
+export interface XcmV1MultiassetAssetInstance extends Enum {
+  readonly isUndefined: boolean;
+  readonly isIndex: boolean;
+  readonly asIndex: Compact<u128>;
+  readonly isArray4: boolean;
+  readonly asArray4: U8aFixed;
+  readonly isArray8: boolean;
+  readonly asArray8: U8aFixed;
+  readonly isArray16: boolean;
+  readonly asArray16: U8aFixed;
+  readonly isArray32: boolean;
+  readonly asArray32: U8aFixed;
+  readonly isBlob: boolean;
+  readonly asBlob: Bytes;
+  readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';
+}
+
+/** @name XcmV1MultiassetFungibility */
+export interface XcmV1MultiassetFungibility extends Enum {
+  readonly isFungible: boolean;
+  readonly asFungible: Compact<u128>;
+  readonly isNonFungible: boolean;
+  readonly asNonFungible: XcmV1MultiassetAssetInstance;
+  readonly type: 'Fungible' | 'NonFungible';
+}
+
+/** @name XcmV1MultiassetMultiAssetFilter */
+export interface XcmV1MultiassetMultiAssetFilter extends Enum {
+  readonly isDefinite: boolean;
+  readonly asDefinite: XcmV1MultiassetMultiAssets;
+  readonly isWild: boolean;
+  readonly asWild: XcmV1MultiassetWildMultiAsset;
+  readonly type: 'Definite' | 'Wild';
+}
+
+/** @name XcmV1MultiassetMultiAssets */
+export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}
+
+/** @name XcmV1MultiassetWildFungibility */
+export interface XcmV1MultiassetWildFungibility extends Enum {
+  readonly isFungible: boolean;
+  readonly isNonFungible: boolean;
+  readonly type: 'Fungible' | 'NonFungible';
+}
+
+/** @name XcmV1MultiassetWildMultiAsset */
+export interface XcmV1MultiassetWildMultiAsset extends Enum {
+  readonly isAll: boolean;
+  readonly isAllOf: boolean;
+  readonly asAllOf: {
+    readonly id: XcmV1MultiassetAssetId;
+    readonly fun: XcmV1MultiassetWildFungibility;
+  } & Struct;
+  readonly type: 'All' | 'AllOf';
+}
+
+/** @name XcmV1MultiLocation */
+export interface XcmV1MultiLocation extends Struct {
+  readonly parents: u8;
+  readonly interior: XcmV1MultilocationJunctions;
+}
+
+/** @name XcmV1MultilocationJunctions */
+export interface XcmV1MultilocationJunctions extends Enum {
+  readonly isHere: boolean;
+  readonly isX1: boolean;
+  readonly asX1: XcmV1Junction;
+  readonly isX2: boolean;
+  readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;
+  readonly isX3: boolean;
+  readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;
+  readonly isX4: boolean;
+  readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;
+  readonly isX5: boolean;
+  readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;
+  readonly isX6: boolean;
+  readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;
+  readonly isX7: boolean;
+  readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;
+  readonly isX8: boolean;
+  readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;
+  readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';
+}
+
+/** @name XcmV1Order */
+export interface XcmV1Order extends Enum {
+  readonly isNoop: boolean;
+  readonly isDepositAsset: boolean;
+  readonly asDepositAsset: {
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly maxAssets: u32;
+    readonly beneficiary: XcmV1MultiLocation;
+  } & Struct;
+  readonly isDepositReserveAsset: boolean;
+  readonly asDepositReserveAsset: {
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly maxAssets: u32;
+    readonly dest: XcmV1MultiLocation;
+    readonly effects: Vec<XcmV1Order>;
+  } & Struct;
+  readonly isExchangeAsset: boolean;
+  readonly asExchangeAsset: {
+    readonly give: XcmV1MultiassetMultiAssetFilter;
+    readonly receive: XcmV1MultiassetMultiAssets;
+  } & Struct;
+  readonly isInitiateReserveWithdraw: boolean;
+  readonly asInitiateReserveWithdraw: {
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly reserve: XcmV1MultiLocation;
+    readonly effects: Vec<XcmV1Order>;
+  } & Struct;
+  readonly isInitiateTeleport: boolean;
+  readonly asInitiateTeleport: {
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly dest: XcmV1MultiLocation;
+    readonly effects: Vec<XcmV1Order>;
+  } & Struct;
+  readonly isQueryHolding: boolean;
+  readonly asQueryHolding: {
+    readonly queryId: Compact<u64>;
+    readonly dest: XcmV1MultiLocation;
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+  } & Struct;
+  readonly isBuyExecution: boolean;
+  readonly asBuyExecution: {
+    readonly fees: XcmV1MultiAsset;
+    readonly weight: u64;
+    readonly debt: u64;
+    readonly haltOnError: bool;
+    readonly instructions: Vec<XcmV1Xcm>;
+  } & Struct;
+  readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';
+}
+
+/** @name XcmV1Response */
+export interface XcmV1Response extends Enum {
+  readonly isAssets: boolean;
+  readonly asAssets: XcmV1MultiassetMultiAssets;
+  readonly isVersion: boolean;
+  readonly asVersion: u32;
+  readonly type: 'Assets' | 'Version';
+}
+
+/** @name XcmV1Xcm */
+export interface XcmV1Xcm extends Enum {
+  readonly isWithdrawAsset: boolean;
+  readonly asWithdrawAsset: {
+    readonly assets: XcmV1MultiassetMultiAssets;
+    readonly effects: Vec<XcmV1Order>;
+  } & Struct;
+  readonly isReserveAssetDeposited: boolean;
+  readonly asReserveAssetDeposited: {
+    readonly assets: XcmV1MultiassetMultiAssets;
+    readonly effects: Vec<XcmV1Order>;
+  } & Struct;
+  readonly isReceiveTeleportedAsset: boolean;
+  readonly asReceiveTeleportedAsset: {
+    readonly assets: XcmV1MultiassetMultiAssets;
+    readonly effects: Vec<XcmV1Order>;
+  } & Struct;
+  readonly isQueryResponse: boolean;
+  readonly asQueryResponse: {
+    readonly queryId: Compact<u64>;
+    readonly response: XcmV1Response;
+  } & Struct;
+  readonly isTransferAsset: boolean;
+  readonly asTransferAsset: {
+    readonly assets: XcmV1MultiassetMultiAssets;
+    readonly beneficiary: XcmV1MultiLocation;
+  } & Struct;
+  readonly isTransferReserveAsset: boolean;
+  readonly asTransferReserveAsset: {
+    readonly assets: XcmV1MultiassetMultiAssets;
+    readonly dest: XcmV1MultiLocation;
+    readonly effects: Vec<XcmV1Order>;
+  } & Struct;
+  readonly isTransact: boolean;
+  readonly asTransact: {
+    readonly originType: XcmV0OriginKind;
+    readonly requireWeightAtMost: u64;
+    readonly call: XcmDoubleEncoded;
+  } & Struct;
+  readonly isHrmpNewChannelOpenRequest: boolean;
+  readonly asHrmpNewChannelOpenRequest: {
+    readonly sender: Compact<u32>;
+    readonly maxMessageSize: Compact<u32>;
+    readonly maxCapacity: Compact<u32>;
+  } & Struct;
+  readonly isHrmpChannelAccepted: boolean;
+  readonly asHrmpChannelAccepted: {
+    readonly recipient: Compact<u32>;
+  } & Struct;
+  readonly isHrmpChannelClosing: boolean;
+  readonly asHrmpChannelClosing: {
+    readonly initiator: Compact<u32>;
+    readonly sender: Compact<u32>;
+    readonly recipient: Compact<u32>;
+  } & Struct;
+  readonly isRelayedFrom: boolean;
+  readonly asRelayedFrom: {
+    readonly who: XcmV1MultilocationJunctions;
+    readonly message: XcmV1Xcm;
+  } & Struct;
+  readonly isSubscribeVersion: boolean;
+  readonly asSubscribeVersion: {
+    readonly queryId: Compact<u64>;
+    readonly maxResponseWeight: Compact<u64>;
+  } & Struct;
+  readonly isUnsubscribeVersion: boolean;
+  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';
+}
+
+/** @name XcmV2Instruction */
+export interface XcmV2Instruction extends Enum {
+  readonly isWithdrawAsset: boolean;
+  readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;
+  readonly isReserveAssetDeposited: boolean;
+  readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;
+  readonly isReceiveTeleportedAsset: boolean;
+  readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;
+  readonly isQueryResponse: boolean;
+  readonly asQueryResponse: {
+    readonly queryId: Compact<u64>;
+    readonly response: XcmV2Response;
+    readonly maxWeight: Compact<u64>;
+  } & Struct;
+  readonly isTransferAsset: boolean;
+  readonly asTransferAsset: {
+    readonly assets: XcmV1MultiassetMultiAssets;
+    readonly beneficiary: XcmV1MultiLocation;
+  } & Struct;
+  readonly isTransferReserveAsset: boolean;
+  readonly asTransferReserveAsset: {
+    readonly assets: XcmV1MultiassetMultiAssets;
+    readonly dest: XcmV1MultiLocation;
+    readonly xcm: XcmV2Xcm;
+  } & Struct;
+  readonly isTransact: boolean;
+  readonly asTransact: {
+    readonly originType: XcmV0OriginKind;
+    readonly requireWeightAtMost: Compact<u64>;
+    readonly call: XcmDoubleEncoded;
+  } & Struct;
+  readonly isHrmpNewChannelOpenRequest: boolean;
+  readonly asHrmpNewChannelOpenRequest: {
+    readonly sender: Compact<u32>;
+    readonly maxMessageSize: Compact<u32>;
+    readonly maxCapacity: Compact<u32>;
+  } & Struct;
+  readonly isHrmpChannelAccepted: boolean;
+  readonly asHrmpChannelAccepted: {
+    readonly recipient: Compact<u32>;
+  } & Struct;
+  readonly isHrmpChannelClosing: boolean;
+  readonly asHrmpChannelClosing: {
+    readonly initiator: Compact<u32>;
+    readonly sender: Compact<u32>;
+    readonly recipient: Compact<u32>;
+  } & Struct;
+  readonly isClearOrigin: boolean;
+  readonly isDescendOrigin: boolean;
+  readonly asDescendOrigin: XcmV1MultilocationJunctions;
+  readonly isReportError: boolean;
+  readonly asReportError: {
+    readonly queryId: Compact<u64>;
+    readonly dest: XcmV1MultiLocation;
+    readonly maxResponseWeight: Compact<u64>;
+  } & Struct;
+  readonly isDepositAsset: boolean;
+  readonly asDepositAsset: {
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly maxAssets: Compact<u32>;
+    readonly beneficiary: XcmV1MultiLocation;
+  } & Struct;
+  readonly isDepositReserveAsset: boolean;
+  readonly asDepositReserveAsset: {
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly maxAssets: Compact<u32>;
+    readonly dest: XcmV1MultiLocation;
+    readonly xcm: XcmV2Xcm;
+  } & Struct;
+  readonly isExchangeAsset: boolean;
+  readonly asExchangeAsset: {
+    readonly give: XcmV1MultiassetMultiAssetFilter;
+    readonly receive: XcmV1MultiassetMultiAssets;
+  } & Struct;
+  readonly isInitiateReserveWithdraw: boolean;
+  readonly asInitiateReserveWithdraw: {
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly reserve: XcmV1MultiLocation;
+    readonly xcm: XcmV2Xcm;
+  } & Struct;
+  readonly isInitiateTeleport: boolean;
+  readonly asInitiateTeleport: {
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly dest: XcmV1MultiLocation;
+    readonly xcm: XcmV2Xcm;
+  } & Struct;
+  readonly isQueryHolding: boolean;
+  readonly asQueryHolding: {
+    readonly queryId: Compact<u64>;
+    readonly dest: XcmV1MultiLocation;
+    readonly assets: XcmV1MultiassetMultiAssetFilter;
+    readonly maxResponseWeight: Compact<u64>;
+  } & Struct;
+  readonly isBuyExecution: boolean;
+  readonly asBuyExecution: {
+    readonly fees: XcmV1MultiAsset;
+    readonly weightLimit: XcmV2WeightLimit;
+  } & Struct;
+  readonly isRefundSurplus: boolean;
+  readonly isSetErrorHandler: boolean;
+  readonly asSetErrorHandler: XcmV2Xcm;
+  readonly isSetAppendix: boolean;
+  readonly asSetAppendix: XcmV2Xcm;
+  readonly isClearError: boolean;
+  readonly isClaimAsset: boolean;
+  readonly asClaimAsset: {
+    readonly assets: XcmV1MultiassetMultiAssets;
+    readonly ticket: XcmV1MultiLocation;
+  } & Struct;
+  readonly isTrap: boolean;
+  readonly asTrap: Compact<u64>;
+  readonly isSubscribeVersion: boolean;
+  readonly asSubscribeVersion: {
+    readonly queryId: Compact<u64>;
+    readonly maxResponseWeight: Compact<u64>;
+  } & Struct;
+  readonly isUnsubscribeVersion: boolean;
+  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';
+}
+
+/** @name XcmV2Response */
+export interface XcmV2Response extends Enum {
+  readonly isNull: boolean;
+  readonly isAssets: boolean;
+  readonly asAssets: XcmV1MultiassetMultiAssets;
+  readonly isExecutionResult: boolean;
+  readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;
+  readonly isVersion: boolean;
+  readonly asVersion: u32;
+  readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';
+}
+
+/** @name XcmV2TraitsError */
+export interface XcmV2TraitsError extends Enum {
+  readonly isOverflow: boolean;
+  readonly isUnimplemented: boolean;
+  readonly isUntrustedReserveLocation: boolean;
+  readonly isUntrustedTeleportLocation: boolean;
+  readonly isMultiLocationFull: boolean;
+  readonly isMultiLocationNotInvertible: boolean;
+  readonly isBadOrigin: boolean;
+  readonly isInvalidLocation: boolean;
+  readonly isAssetNotFound: boolean;
+  readonly isFailedToTransactAsset: boolean;
+  readonly isNotWithdrawable: boolean;
+  readonly isLocationCannotHold: boolean;
+  readonly isExceedsMaxMessageSize: boolean;
+  readonly isDestinationUnsupported: boolean;
+  readonly isTransport: boolean;
+  readonly isUnroutable: boolean;
+  readonly isUnknownClaim: boolean;
+  readonly isFailedToDecode: boolean;
+  readonly isMaxWeightInvalid: boolean;
+  readonly isNotHoldingFees: boolean;
+  readonly isTooExpensive: boolean;
+  readonly isTrap: boolean;
+  readonly asTrap: u64;
+  readonly isUnhandledXcmVersion: boolean;
+  readonly isWeightLimitReached: boolean;
+  readonly asWeightLimitReached: u64;
+  readonly isBarrier: boolean;
+  readonly isWeightNotComputable: boolean;
+  readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';
+}
+
+/** @name XcmV2TraitsOutcome */
+export interface XcmV2TraitsOutcome extends Enum {
+  readonly isComplete: boolean;
+  readonly asComplete: u64;
+  readonly isIncomplete: boolean;
+  readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;
+  readonly isError: boolean;
+  readonly asError: XcmV2TraitsError;
+  readonly type: 'Complete' | 'Incomplete' | 'Error';
+}
+
+/** @name XcmV2WeightLimit */
+export interface XcmV2WeightLimit extends Enum {
+  readonly isUnlimited: boolean;
+  readonly isLimited: boolean;
+  readonly asLimited: Compact<u64>;
+  readonly type: 'Unlimited' | 'Limited';
+}
+
+/** @name XcmV2Xcm */
+export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}
+
+/** @name XcmVersionedMultiAssets */
+export interface XcmVersionedMultiAssets extends Enum {
+  readonly isV0: boolean;
+  readonly asV0: Vec<XcmV0MultiAsset>;
+  readonly isV1: boolean;
+  readonly asV1: XcmV1MultiassetMultiAssets;
+  readonly type: 'V0' | 'V1';
+}
+
+/** @name XcmVersionedMultiLocation */
+export interface XcmVersionedMultiLocation extends Enum {
+  readonly isV0: boolean;
+  readonly asV0: XcmV0MultiLocation;
+  readonly isV1: boolean;
+  readonly asV1: XcmV1MultiLocation;
+  readonly type: 'V0' | 'V1';
+}
+
+/** @name XcmVersionedXcm */
+export interface XcmVersionedXcm extends Enum {
+  readonly isV0: boolean;
+  readonly asV0: XcmV0Xcm;
+  readonly isV1: boolean;
+  readonly asV1: XcmV1Xcm;
+  readonly isV2: boolean;
+  readonly asV2: XcmV2Xcm;
+  readonly type: 'V0' | 'V1' | 'V2';
+}
+
+export type PHANTOM_RMRK = 'rmrk';
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -4,7 +4,7 @@
 declare module '@polkadot/types/lookup' {
   import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
   import type { ITuple } from '@polkadot/types-codec/types';
-  import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime';
+  import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';
   import type { Event } from '@polkadot/types/interfaces/system';
 
   /** @name PolkadotPrimitivesV2PersistedValidationData (2) */
@@ -1582,12 +1582,9 @@
     readonly isDisabled: boolean;
     readonly isOwner: boolean;
     readonly isOwnerRestricted: boolean;
-    readonly asOwnerRestricted: FrameSupportStorageBoundedBTreeSet;
+    readonly asOwnerRestricted: BTreeSet<u32>;
     readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';
   }
-
-  /** @name FrameSupportStorageBoundedBTreeSet (171) */
-  export interface FrameSupportStorageBoundedBTreeSet extends BTreeSet<u32> {}
 
   /** @name UpDataStructsPropertyKeyPermission (177) */
   export interface UpDataStructsPropertyKeyPermission extends Struct {
@@ -2544,7 +2541,143 @@
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name PalletCommonError (333) */
+  /** @name PhantomTypeUpDataStructsCollectionInfo (333) */
+  export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<RmrkTypesCollectionInfo> {}
+
+  /** @name RmrkTypesCollectionInfo (334) */
+  export interface RmrkTypesCollectionInfo extends Struct {
+    readonly issuer: AccountId32;
+    readonly metadata: Bytes;
+    readonly max: Option<u32>;
+    readonly symbol: Bytes;
+    readonly nftsCount: u32;
+  }
+
+  /** @name PhantomTypeUpDataStructsNftInfo (338) */
+  export interface PhantomTypeUpDataStructsNftInfo extends Vec<RmrkTypesNftInfo> {}
+
+  /** @name RmrkTypesNftInfo (339) */
+  export interface RmrkTypesNftInfo extends Struct {
+    readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;
+    readonly royalty: Option<RmrkTypesRoyaltyInfo>;
+    readonly metadata: Bytes;
+    readonly equipped: bool;
+    readonly pending: bool;
+  }
+
+  /** @name RmrkTypesAccountIdOrCollectionNftTuple (340) */
+  export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {
+    readonly isAccountId: boolean;
+    readonly asAccountId: AccountId32;
+    readonly isCollectionAndNftTuple: boolean;
+    readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;
+    readonly type: 'AccountId' | 'CollectionAndNftTuple';
+  }
+
+  /** @name RmrkTypesRoyaltyInfo (342) */
+  export interface RmrkTypesRoyaltyInfo extends Struct {
+    readonly recipient: AccountId32;
+    readonly amount: Permill;
+  }
+
+  /** @name PhantomTypeUpDataStructsResourceInfo (344) */
+  export interface PhantomTypeUpDataStructsResourceInfo extends Vec<RmrkTypesResourceInfo> {}
+
+  /** @name RmrkTypesResourceInfo (345) */
+  export interface RmrkTypesResourceInfo extends Struct {
+    readonly id: Bytes;
+    readonly pending: bool;
+    readonly pendingRemoval: bool;
+    readonly parts: Option<Vec<u32>>;
+    readonly base: Option<u32>;
+    readonly src: Option<Bytes>;
+    readonly metadata: Option<Bytes>;
+    readonly slot: Option<u32>;
+    readonly license: Option<Bytes>;
+    readonly thumb: Option<Bytes>;
+  }
+
+  /** @name PhantomTypeUpDataStructsPropertyInfo (351) */
+  export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<RmrkTypesPropertyInfo> {}
+
+  /** @name RmrkTypesPropertyInfo (352) */
+  export interface RmrkTypesPropertyInfo extends Struct {
+    readonly key: Bytes;
+    readonly value: Bytes;
+  }
+
+  /** @name PhantomTypeUpDataStructsBaseInfo (356) */
+  export interface PhantomTypeUpDataStructsBaseInfo extends Vec<RmrkTypesBaseInfo> {}
+
+  /** @name RmrkTypesBaseInfo (357) */
+  export interface RmrkTypesBaseInfo extends Struct {
+    readonly issuer: AccountId32;
+    readonly baseType: Bytes;
+    readonly symbol: Bytes;
+  }
+
+  /** @name PhantomTypeUpDataStructsPartType (359) */
+  export interface PhantomTypeUpDataStructsPartType extends Vec<RmrkTypesPartType> {}
+
+  /** @name RmrkTypesPartType (360) */
+  export interface RmrkTypesPartType extends Enum {
+    readonly isFixedPart: boolean;
+    readonly asFixedPart: RmrkTypesFixedPart;
+    readonly isSlotPart: boolean;
+    readonly asSlotPart: RmrkTypesSlotPart;
+    readonly type: 'FixedPart' | 'SlotPart';
+  }
+
+  /** @name RmrkTypesFixedPart (362) */
+  export interface RmrkTypesFixedPart extends Struct {
+    readonly id: u32;
+    readonly z: u32;
+    readonly src: Bytes;
+  }
+
+  /** @name RmrkTypesSlotPart (363) */
+  export interface RmrkTypesSlotPart extends Struct {
+    readonly id: u32;
+    readonly equippable: RmrkTypesEquippableList;
+    readonly src: Bytes;
+    readonly z: u32;
+  }
+
+  /** @name RmrkTypesEquippableList (364) */
+  export interface RmrkTypesEquippableList extends Enum {
+    readonly isAll: boolean;
+    readonly isEmpty: boolean;
+    readonly isCustom: boolean;
+    readonly asCustom: Vec<u32>;
+    readonly type: 'All' | 'Empty' | 'Custom';
+  }
+
+  /** @name PhantomTypeUpDataStructsTheme (366) */
+  export interface PhantomTypeUpDataStructsTheme extends Vec<RmrkTypesTheme> {}
+
+  /** @name RmrkTypesTheme (367) */
+  export interface RmrkTypesTheme extends Struct {
+    readonly name: Bytes;
+    readonly properties: Vec<RmrkTypesThemeProperty>;
+    readonly inherit: bool;
+  }
+
+  /** @name RmrkTypesThemeProperty (369) */
+  export interface RmrkTypesThemeProperty extends Struct {
+    readonly key: Bytes;
+    readonly value: Bytes;
+  }
+
+  /** @name PhantomTypeUpDataStructsNftChild (371) */
+  export interface PhantomTypeUpDataStructsNftChild extends Vec<RmrkTypesNftChild> {}
+
+  /** @name RmrkTypesNftChild (372) */
+  export interface RmrkTypesNftChild extends Struct {
+    readonly collectionId: u32;
+    readonly nftId: u32;
+  }
+
+  /** @name PalletCommonError (374) */
   export interface PalletCommonError extends Enum {
     readonly isCollectionNotFound: boolean;
     readonly isMustBeTokenOwner: boolean;
@@ -2581,7 +2714,7 @@
     readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'NestingIsDisabled' | 'OnlyOwnerAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey';
   }
 
-  /** @name PalletFungibleError (335) */
+  /** @name PalletFungibleError (376) */
   export interface PalletFungibleError extends Enum {
     readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isFungibleItemsHaveNoId: boolean;
@@ -2591,12 +2724,12 @@
     readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletRefungibleItemData (336) */
+  /** @name PalletRefungibleItemData (377) */
   export interface PalletRefungibleItemData extends Struct {
     readonly constData: Bytes;
   }
 
-  /** @name PalletRefungibleError (340) */
+  /** @name PalletRefungibleError (381) */
   export interface PalletRefungibleError extends Enum {
     readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isWrongRefungiblePieces: boolean;
@@ -2605,20 +2738,20 @@
     readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletNonfungibleItemData (341) */
+  /** @name PalletNonfungibleItemData (382) */
   export interface PalletNonfungibleItemData extends Struct {
     readonly constData: Bytes;
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name PalletNonfungibleError (342) */
+  /** @name PalletNonfungibleError (383) */
   export interface PalletNonfungibleError extends Enum {
     readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isNonfungibleItemsHaveNoAmount: boolean;
     readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount';
   }
 
-  /** @name PalletStructureError (343) */
+  /** @name PalletStructureError (384) */
   export interface PalletStructureError extends Enum {
     readonly isOuroborosDetected: boolean;
     readonly isDepthLimit: boolean;
@@ -2626,7 +2759,7 @@
     readonly type: 'OuroborosDetected' | 'DepthLimit' | 'TokenNotFound';
   }
 
-  /** @name PalletEvmError (346) */
+  /** @name PalletEvmError (387) */
   export interface PalletEvmError extends Enum {
     readonly isBalanceLow: boolean;
     readonly isFeeOverflow: boolean;
@@ -2637,7 +2770,7 @@
     readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';
   }
 
-  /** @name FpRpcTransactionStatus (349) */
+  /** @name FpRpcTransactionStatus (390) */
   export interface FpRpcTransactionStatus extends Struct {
     readonly transactionHash: H256;
     readonly transactionIndex: u32;
@@ -2648,10 +2781,10 @@
     readonly logsBloom: EthbloomBloom;
   }
 
-  /** @name EthbloomBloom (351) */
+  /** @name EthbloomBloom (392) */
   export interface EthbloomBloom extends U8aFixed {}
 
-  /** @name EthereumReceiptReceiptV3 (353) */
+  /** @name EthereumReceiptReceiptV3 (394) */
   export interface EthereumReceiptReceiptV3 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -2662,7 +2795,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumReceiptEip658ReceiptData (354) */
+  /** @name EthereumReceiptEip658ReceiptData (395) */
   export interface EthereumReceiptEip658ReceiptData extends Struct {
     readonly statusCode: u8;
     readonly usedGas: U256;
@@ -2670,14 +2803,14 @@
     readonly logs: Vec<EthereumLog>;
   }
 
-  /** @name EthereumBlock (355) */
+  /** @name EthereumBlock (396) */
   export interface EthereumBlock extends Struct {
     readonly header: EthereumHeader;
     readonly transactions: Vec<EthereumTransactionTransactionV2>;
     readonly ommers: Vec<EthereumHeader>;
   }
 
-  /** @name EthereumHeader (356) */
+  /** @name EthereumHeader (397) */
   export interface EthereumHeader extends Struct {
     readonly parentHash: H256;
     readonly ommersHash: H256;
@@ -2696,24 +2829,24 @@
     readonly nonce: EthereumTypesHashH64;
   }
 
-  /** @name EthereumTypesHashH64 (357) */
+  /** @name EthereumTypesHashH64 (398) */
   export interface EthereumTypesHashH64 extends U8aFixed {}
 
-  /** @name PalletEthereumError (362) */
+  /** @name PalletEthereumError (403) */
   export interface PalletEthereumError extends Enum {
     readonly isInvalidSignature: boolean;
     readonly isPreLogExists: boolean;
     readonly type: 'InvalidSignature' | 'PreLogExists';
   }
 
-  /** @name PalletEvmCoderSubstrateError (363) */
+  /** @name PalletEvmCoderSubstrateError (404) */
   export interface PalletEvmCoderSubstrateError extends Enum {
     readonly isOutOfGas: boolean;
     readonly isOutOfFund: boolean;
     readonly type: 'OutOfGas' | 'OutOfFund';
   }
 
-  /** @name PalletEvmContractHelpersSponsoringModeT (364) */
+  /** @name PalletEvmContractHelpersSponsoringModeT (405) */
   export interface PalletEvmContractHelpersSponsoringModeT extends Enum {
     readonly isDisabled: boolean;
     readonly isAllowlisted: boolean;
@@ -2721,20 +2854,20 @@
     readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
   }
 
-  /** @name PalletEvmContractHelpersError (366) */
+  /** @name PalletEvmContractHelpersError (407) */
   export interface PalletEvmContractHelpersError extends Enum {
     readonly isNoPermission: boolean;
     readonly type: 'NoPermission';
   }
 
-  /** @name PalletEvmMigrationError (367) */
+  /** @name PalletEvmMigrationError (408) */
   export interface PalletEvmMigrationError extends Enum {
     readonly isAccountNotEmpty: boolean;
     readonly isAccountIsNotMigrating: boolean;
     readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
   }
 
-  /** @name SpRuntimeMultiSignature (369) */
+  /** @name SpRuntimeMultiSignature (410) */
   export interface SpRuntimeMultiSignature extends Enum {
     readonly isEd25519: boolean;
     readonly asEd25519: SpCoreEd25519Signature;
@@ -2745,34 +2878,34 @@
     readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
   }
 
-  /** @name SpCoreEd25519Signature (370) */
+  /** @name SpCoreEd25519Signature (411) */
   export interface SpCoreEd25519Signature extends U8aFixed {}
 
-  /** @name SpCoreSr25519Signature (372) */
+  /** @name SpCoreSr25519Signature (413) */
   export interface SpCoreSr25519Signature extends U8aFixed {}
 
-  /** @name SpCoreEcdsaSignature (373) */
+  /** @name SpCoreEcdsaSignature (414) */
   export interface SpCoreEcdsaSignature extends U8aFixed {}
 
-  /** @name FrameSystemExtensionsCheckSpecVersion (376) */
+  /** @name FrameSystemExtensionsCheckSpecVersion (417) */
   export type FrameSystemExtensionsCheckSpecVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckGenesis (377) */
+  /** @name FrameSystemExtensionsCheckGenesis (418) */
   export type FrameSystemExtensionsCheckGenesis = Null;
 
-  /** @name FrameSystemExtensionsCheckNonce (380) */
+  /** @name FrameSystemExtensionsCheckNonce (421) */
   export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
 
-  /** @name FrameSystemExtensionsCheckWeight (381) */
+  /** @name FrameSystemExtensionsCheckWeight (422) */
   export type FrameSystemExtensionsCheckWeight = Null;
 
-  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (382) */
+  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (423) */
   export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
 
-  /** @name OpalRuntimeRuntime (383) */
+  /** @name OpalRuntimeRuntime (424) */
   export type OpalRuntimeRuntime = Null;
 
-  /** @name PalletEthereumFakeTransactionFinalizer (384) */
+  /** @name PalletEthereumFakeTransactionFinalizer (425) */
   export type PalletEthereumFakeTransactionFinalizer = Null;
 
 } // declare module
modifiedtests/src/interfaces/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types.ts
+++ b/tests/src/interfaces/types.ts
@@ -2,3 +2,4 @@
 /* eslint-disable */
 
 export * from './unique/types';
+export * from './rmrk/types';
modifiedtests/src/interfaces/unique/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/unique/types.ts
+++ b/tests/src/interfaces/unique/types.ts
@@ -3,7 +3,7 @@
 
 import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
 import type { ITuple } from '@polkadot/types-codec/types';
-import type { AccountId32, Call, H160, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime';
+import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';
 import type { Event } from '@polkadot/types/interfaces/system';
 
 /** @name CumulusPalletDmpQueueCall */
@@ -445,9 +445,6 @@
 
 /** @name FrameSupportPalletId */
 export interface FrameSupportPalletId extends U8aFixed {}
-
-/** @name FrameSupportStorageBoundedBTreeSet */
-export interface FrameSupportStorageBoundedBTreeSet extends BTreeSet<u32> {}
 
 /** @name FrameSupportTokensMiscBalanceStatus */
 export interface FrameSupportTokensMiscBalanceStatus extends Enum {
@@ -1617,9 +1614,33 @@
   readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';
 }
 
+/** @name PhantomTypeUpDataStructsBaseInfo */
+export interface PhantomTypeUpDataStructsBaseInfo extends Vec<Lookup357> {}
+
+/** @name PhantomTypeUpDataStructsCollectionInfo */
+export interface PhantomTypeUpDataStructsCollectionInfo extends Vec<Lookup334> {}
+
+/** @name PhantomTypeUpDataStructsNftChild */
+export interface PhantomTypeUpDataStructsNftChild extends Vec<Lookup372> {}
+
+/** @name PhantomTypeUpDataStructsNftInfo */
+export interface PhantomTypeUpDataStructsNftInfo extends Vec<Lookup339> {}
+
+/** @name PhantomTypeUpDataStructsPartType */
+export interface PhantomTypeUpDataStructsPartType extends Vec<Lookup360> {}
+
+/** @name PhantomTypeUpDataStructsPropertyInfo */
+export interface PhantomTypeUpDataStructsPropertyInfo extends Vec<Lookup352> {}
+
+/** @name PhantomTypeUpDataStructsResourceInfo */
+export interface PhantomTypeUpDataStructsResourceInfo extends Vec<Lookup345> {}
+
 /** @name PhantomTypeUpDataStructsRpcCollection */
 export interface PhantomTypeUpDataStructsRpcCollection extends Vec<Lookup331> {}
 
+/** @name PhantomTypeUpDataStructsTheme */
+export interface PhantomTypeUpDataStructsTheme extends Vec<Lookup367> {}
+
 /** @name PhantomTypeUpDataStructsTokenData */
 export interface PhantomTypeUpDataStructsTokenData extends Vec<Lookup327> {}
 
@@ -1686,6 +1707,118 @@
   readonly type: 'Present';
 }
 
+/** @name RmrkTypesAccountIdOrCollectionNftTuple */
+export interface RmrkTypesAccountIdOrCollectionNftTuple extends Enum {
+  readonly isAccountId: boolean;
+  readonly asAccountId: AccountId32;
+  readonly isCollectionAndNftTuple: boolean;
+  readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;
+  readonly type: 'AccountId' | 'CollectionAndNftTuple';
+}
+
+/** @name RmrkTypesBaseInfo */
+export interface RmrkTypesBaseInfo extends Struct {
+  readonly issuer: AccountId32;
+  readonly baseType: Bytes;
+  readonly symbol: Bytes;
+}
+
+/** @name RmrkTypesCollectionInfo */
+export interface RmrkTypesCollectionInfo extends Struct {
+  readonly issuer: AccountId32;
+  readonly metadata: Bytes;
+  readonly max: Option<u32>;
+  readonly symbol: Bytes;
+  readonly nftsCount: u32;
+}
+
+/** @name RmrkTypesEquippableList */
+export interface RmrkTypesEquippableList extends Enum {
+  readonly isAll: boolean;
+  readonly isEmpty: boolean;
+  readonly isCustom: boolean;
+  readonly asCustom: Vec<u32>;
+  readonly type: 'All' | 'Empty' | 'Custom';
+}
+
+/** @name RmrkTypesFixedPart */
+export interface RmrkTypesFixedPart extends Struct {
+  readonly id: u32;
+  readonly z: u32;
+  readonly src: Bytes;
+}
+
+/** @name RmrkTypesNftChild */
+export interface RmrkTypesNftChild extends Struct {
+  readonly collectionId: u32;
+  readonly nftId: u32;
+}
+
+/** @name RmrkTypesNftInfo */
+export interface RmrkTypesNftInfo extends Struct {
+  readonly owner: RmrkTypesAccountIdOrCollectionNftTuple;
+  readonly royalty: Option<RmrkTypesRoyaltyInfo>;
+  readonly metadata: Bytes;
+  readonly equipped: bool;
+  readonly pending: bool;
+}
+
+/** @name RmrkTypesPartType */
+export interface RmrkTypesPartType extends Enum {
+  readonly isFixedPart: boolean;
+  readonly asFixedPart: RmrkTypesFixedPart;
+  readonly isSlotPart: boolean;
+  readonly asSlotPart: RmrkTypesSlotPart;
+  readonly type: 'FixedPart' | 'SlotPart';
+}
+
+/** @name RmrkTypesPropertyInfo */
+export interface RmrkTypesPropertyInfo extends Struct {
+  readonly key: Bytes;
+  readonly value: Bytes;
+}
+
+/** @name RmrkTypesResourceInfo */
+export interface RmrkTypesResourceInfo extends Struct {
+  readonly id: Bytes;
+  readonly pending: bool;
+  readonly pendingRemoval: bool;
+  readonly parts: Option<Vec<u32>>;
+  readonly base: Option<u32>;
+  readonly src: Option<Bytes>;
+  readonly metadata: Option<Bytes>;
+  readonly slot: Option<u32>;
+  readonly license: Option<Bytes>;
+  readonly thumb: Option<Bytes>;
+}
+
+/** @name RmrkTypesRoyaltyInfo */
+export interface RmrkTypesRoyaltyInfo extends Struct {
+  readonly recipient: AccountId32;
+  readonly amount: Permill;
+}
+
+/** @name RmrkTypesSlotPart */
+export interface RmrkTypesSlotPart extends Struct {
+  readonly id: u32;
+  readonly equippable: RmrkTypesEquippableList;
+  readonly src: Bytes;
+  readonly z: u32;
+}
+
+/** @name RmrkTypesTheme */
+export interface RmrkTypesTheme extends Struct {
+  readonly name: Bytes;
+  readonly properties: Vec<RmrkTypesThemeProperty>;
+  readonly inherit: bool;
+}
+
+/** @name RmrkTypesThemeProperty */
+export interface RmrkTypesThemeProperty extends Struct {
+  readonly key: Bytes;
+  readonly value: Bytes;
+}
+
 /** @name SpCoreEcdsaSignature */
 export interface SpCoreEcdsaSignature extends U8aFixed {}
 
@@ -1927,7 +2060,7 @@
   readonly isDisabled: boolean;
   readonly isOwner: boolean;
   readonly isOwnerRestricted: boolean;
-  readonly asOwnerRestricted: FrameSupportStorageBoundedBTreeSet;
+  readonly asOwnerRestricted: BTreeSet<u32>;
   readonly type: 'Disabled' | 'Owner' | 'OwnerRestricted';
 }
 
modifiedtests/src/substrate/substrate-api.tsdiffbeforeafterboth
--- a/tests/src/substrate/substrate-api.ts
+++ b/tests/src/substrate/substrate-api.ts
@@ -41,6 +41,7 @@
     },
     rpc: {
       unique: defs.unique.rpc,
+      rmrk: defs.rmrk.rpc,
       eth: {
         feeHistory: {
           description: 'Dummy',