difftreelog
Merge pull request #794 from UniqueNetwork/feature/polkadot-v0.9.36
in: master
Upgrade to polkadot v0.9.36
92 files changed
Cargo.lockdiffbeforeafterboth18source = "registry+https://github.com/rust-lang/crates.io-index"18source = "registry+https://github.com/rust-lang/crates.io-index"19checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"19checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"20dependencies = [20dependencies = [21 "gimli",21 "gimli 0.26.2",22]22]232324[[package]]24[[package]]25name = "addr2line"26version = "0.19.0"27source = "registry+https://github.com/rust-lang/crates.io-index"28checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"29dependencies = [30 "gimli 0.27.0",31]3233[[package]]25name = "adler"34name = "adler"26version = "1.0.2"35version = "1.0.2"27source = "registry+https://github.com/rust-lang/crates.io-index"36source = "registry+https://github.com/rust-lang/crates.io-index"108117109[[package]]118[[package]]110name = "anyhow"119name = "anyhow"111version = "1.0.66"120version = "1.0.68"112source = "registry+https://github.com/rust-lang/crates.io-index"121source = "registry+https://github.com/rust-lang/crates.io-index"113checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"122checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"114123115[[package]]124[[package]]116name = "app-promotion-rpc"125name = "app-promotion-rpc"142checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6"151checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6"143152144[[package]]153[[package]]154name = "array-bytes"155version = "6.0.0"156source = "registry+https://github.com/rust-lang/crates.io-index"157checksum = "22f72e9d6fac4bc80778ea470b20197b88d28c292bb7d60c3fb099280003cd19"158159[[package]]145name = "arrayref"160name = "arrayref"146version = "0.3.6"161version = "0.3.6"147source = "registry+https://github.com/rust-lang/crates.io-index"162source = "registry+https://github.com/rust-lang/crates.io-index"148checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"163checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"149164150[[package]]165[[package]]151name = "arrayvec"166name = "arrayvec"152version = "0.4.12"153source = "registry+https://github.com/rust-lang/crates.io-index"154checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"155dependencies = [156 "nodrop",157]158159[[package]]160name = "arrayvec"161version = "0.5.2"167version = "0.5.2"162source = "registry+https://github.com/rust-lang/crates.io-index"168source = "registry+https://github.com/rust-lang/crates.io-index"163checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"169checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"289 "async-global-executor",295 "async-global-executor",290 "async-io",296 "async-io",291 "async-lock",297 "async-lock",292 "async-process",293 "crossbeam-utils",298 "crossbeam-utils",294 "futures-channel",299 "futures-channel",295 "futures-core",300 "futures-core",307]312]308313309[[package]]314[[package]]310name = "async-std-resolver"311version = "0.22.0"312source = "registry+https://github.com/rust-lang/crates.io-index"313checksum = "6ba50e24d9ee0a8950d3d03fc6d0dd10aa14b5de3b101949b4e160f7fee7c723"314dependencies = [315 "async-std",316 "async-trait",317 "futures-io",318 "futures-util",319 "pin-utils",320 "socket2",321 "trust-dns-resolver",322]323324[[package]]325name = "async-task"315name = "async-task"326version = "4.3.0"316version = "4.3.0"327source = "registry+https://github.com/rust-lang/crates.io-index"317source = "registry+https://github.com/rust-lang/crates.io-index"328checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"318checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"329319330[[package]]320[[package]]331name = "async-trait"321name = "async-trait"332version = "0.1.59"322version = "0.1.60"333source = "registry+https://github.com/rust-lang/crates.io-index"323source = "registry+https://github.com/rust-lang/crates.io-index"334checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364"324checksum = "677d1d8ab452a3936018a687b20e6f7cf5363d713b732b8884001317b0e48aa3"335dependencies = [325dependencies = [336 "proc-macro2",326 "proc-macro2",337 "quote",327 "quote",387checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"377checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"388378389[[package]]379[[package]]390name = "backoff"391version = "0.4.0"392source = "registry+https://github.com/rust-lang/crates.io-index"393checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"394dependencies = [395 "futures-core",396 "getrandom 0.2.8",397 "instant",398 "pin-project-lite 0.2.9",399 "rand 0.8.5",400 "tokio",401]402403[[package]]404name = "backtrace"380name = "backtrace"405version = "0.3.66"381version = "0.3.67"406source = "registry+https://github.com/rust-lang/crates.io-index"382source = "registry+https://github.com/rust-lang/crates.io-index"407checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7"383checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"408dependencies = [384dependencies = [409 "addr2line",385 "addr2line 0.19.0",410 "cc",386 "cc",411 "cfg-if",387 "cfg-if",412 "libc",388 "libc",413 "miniz_oxide 0.5.4",389 "miniz_oxide",414 "object",390 "object 0.30.0",415 "rustc-demangle",391 "rustc-demangle",416]392]417393457[[package]]433[[package]]458name = "beefy-gadget"434name = "beefy-gadget"459version = "4.0.0-dev"435version = "4.0.0-dev"460source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"436source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"461dependencies = [437dependencies = [462 "array-bytes",438 "array-bytes 4.2.0",463 "async-trait",439 "async-trait",464 "beefy-primitives",465 "fnv",440 "fnv",466 "futures 0.3.25",441 "futures 0.3.25",467 "futures-timer",442 "futures-timer",480 "sp-api",455 "sp-api",481 "sp-application-crypto",456 "sp-application-crypto",482 "sp-arithmetic",457 "sp-arithmetic",458 "sp-beefy",483 "sp-blockchain",459 "sp-blockchain",484 "sp-consensus",460 "sp-consensus",485 "sp-core",461 "sp-core",494[[package]]470[[package]]495name = "beefy-gadget-rpc"471name = "beefy-gadget-rpc"496version = "4.0.0-dev"472version = "4.0.0-dev"497source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"473source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"498dependencies = [474dependencies = [499 "beefy-gadget",475 "beefy-gadget",500 "beefy-primitives",501 "futures 0.3.25",476 "futures 0.3.25",502 "jsonrpsee",477 "jsonrpsee",503 "log",478 "log",506 "sc-rpc",481 "sc-rpc",507 "sc-utils",482 "sc-utils",508 "serde",483 "serde",484 "sp-beefy",509 "sp-core",485 "sp-core",510 "sp-runtime",486 "sp-runtime",511 "thiserror",487 "thiserror",514[[package]]490[[package]]515name = "beefy-merkle-tree"491name = "beefy-merkle-tree"516version = "4.0.0-dev"492version = "4.0.0-dev"517source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"493source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"518dependencies = [494dependencies = [519 "beefy-primitives",520 "sp-api",495 "sp-api",496 "sp-beefy",521 "sp-runtime",497 "sp-runtime",522]498]523499524[[package]]500[[package]]525name = "beefy-primitives"526version = "4.0.0-dev"527source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"528dependencies = [529 "parity-scale-codec 3.2.1",530 "scale-info",531 "serde",532 "sp-api",533 "sp-application-crypto",534 "sp-core",535 "sp-io",536 "sp-mmr-primitives",537 "sp-runtime",538 "sp-std",539]540541[[package]]542name = "bincode"501name = "bincode"543version = "1.3.3"502version = "1.3.3"544source = "registry+https://github.com/rust-lang/crates.io-index"503source = "registry+https://github.com/rust-lang/crates.io-index"598557599[[package]]558[[package]]600name = "blake2"559name = "blake2"601version = "0.10.5"560version = "0.10.6"602source = "registry+https://github.com/rust-lang/crates.io-index"561source = "registry+https://github.com/rust-lang/crates.io-index"603checksum = "b12e5fd123190ce1c2e559308a94c9bacad77907d4c6005d9e58fe1a0689e55e"562checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"604dependencies = [563dependencies = [605 "digest 0.10.6",564 "digest 0.10.6",606]565]607566608[[package]]567[[package]]609name = "blake2-rfc"610version = "0.2.18"611source = "registry+https://github.com/rust-lang/crates.io-index"612checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"613dependencies = [614 "arrayvec 0.4.12",615 "constant_time_eq 0.1.5",616]617618[[package]]619name = "blake2b_simd"568name = "blake2b_simd"620version = "1.0.0"569version = "1.0.0"621source = "registry+https://github.com/rust-lang/crates.io-index"570source = "registry+https://github.com/rust-lang/crates.io-index"826dependencies = [775dependencies = [827 "camino",776 "camino",828 "cargo-platform",777 "cargo-platform",829 "semver 1.0.14",778 "semver 1.0.16",830 "serde",779 "serde",831 "serde_json",780 "serde_json",832]781]833782834[[package]]783[[package]]835name = "cc"784name = "cc"836version = "1.0.77"785version = "1.0.78"837source = "registry+https://github.com/rust-lang/crates.io-index"786source = "registry+https://github.com/rust-lang/crates.io-index"838checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"787checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"839dependencies = [788dependencies = [840 "jobserver",789 "jobserver",841]790]905 "js-sys",854 "js-sys",906 "num-integer",855 "num-integer",907 "num-traits",856 "num-traits",908 "time 0.1.45",857 "time",909 "wasm-bindgen",858 "wasm-bindgen",910 "winapi",859 "winapi",911]860]954903955[[package]]904[[package]]956name = "clap"905name = "clap"957version = "4.0.29"906version = "4.0.30"958source = "registry+https://github.com/rust-lang/crates.io-index"907source = "registry+https://github.com/rust-lang/crates.io-index"959checksum = "4d63b9e9c07271b9957ad22c173bae2a4d9a81127680962039296abcd2f8251d"908checksum = "656ad1e55e23d287773f7d8192c300dc715c3eeded93b3da651d11c42cfd74d2"960dependencies = [909dependencies = [961 "bitflags",910 "bitflags",962 "clap_derive",911 "clap_derive",1103]1052]110410531105[[package]]1054[[package]]1055name = "cpu-time"1056version = "1.0.0"1057source = "registry+https://github.com/rust-lang/crates.io-index"1058checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded"1059dependencies = [1060 "libc",1061 "winapi",1062]10631064[[package]]1106name = "cpufeatures"1065name = "cpufeatures"1107version = "0.2.5"1066version = "0.2.5"1108source = "registry+https://github.com/rust-lang/crates.io-index"1067source = "registry+https://github.com/rust-lang/crates.io-index"1133 "cranelift-codegen-shared",1092 "cranelift-codegen-shared",1134 "cranelift-entity",1093 "cranelift-entity",1135 "cranelift-isle",1094 "cranelift-isle",1136 "gimli",1095 "gimli 0.26.2",1137 "log",1096 "log",1138 "regalloc2",1097 "regalloc2",1139 "smallvec",1098 "smallvec",1341[[package]]1300[[package]]1342name = "cumulus-client-cli"1301name = "cumulus-client-cli"1343version = "0.1.0"1302version = "0.1.0"1344source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1303source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1345dependencies = [1304dependencies = [1346 "clap",1305 "clap",1347 "parity-scale-codec 3.2.1",1306 "parity-scale-codec 3.2.1",1356[[package]]1315[[package]]1357name = "cumulus-client-collator"1316name = "cumulus-client-collator"1358version = "0.1.0"1317version = "0.1.0"1359source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1318source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1360dependencies = [1319dependencies = [1361 "cumulus-client-consensus-common",1320 "cumulus-client-consensus-common",1362 "cumulus-client-network",1321 "cumulus-client-network",1379[[package]]1338[[package]]1380name = "cumulus-client-consensus-aura"1339name = "cumulus-client-consensus-aura"1381version = "0.1.0"1340version = "0.1.0"1382source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1341source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1383dependencies = [1342dependencies = [1384 "async-trait",1343 "async-trait",1385 "cumulus-client-consensus-common",1344 "cumulus-client-consensus-common",1408[[package]]1367[[package]]1409name = "cumulus-client-consensus-common"1368name = "cumulus-client-consensus-common"1410version = "0.1.0"1369version = "0.1.0"1411source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1370source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1412dependencies = [1371dependencies = [1413 "async-trait",1372 "async-trait",1373 "cumulus-client-pov-recovery",1374 "cumulus-primitives-core",1414 "cumulus-relay-chain-interface",1375 "cumulus-relay-chain-interface",1415 "dyn-clone",1376 "dyn-clone",1416 "futures 0.3.25",1377 "futures 0.3.25",1378 "log",1417 "parity-scale-codec 3.2.1",1379 "parity-scale-codec 3.2.1",1418 "polkadot-primitives",1380 "polkadot-primitives",1419 "sc-client-api",1381 "sc-client-api",1428[[package]]1390[[package]]1429name = "cumulus-client-network"1391name = "cumulus-client-network"1430version = "0.1.0"1392version = "0.1.0"1431source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1393source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1432dependencies = [1394dependencies = [1433 "async-trait",1395 "async-trait",1434 "cumulus-relay-chain-interface",1396 "cumulus-relay-chain-interface",1451[[package]]1413[[package]]1452name = "cumulus-client-pov-recovery"1414name = "cumulus-client-pov-recovery"1453version = "0.1.0"1415version = "0.1.0"1454source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1416source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1455dependencies = [1417dependencies = [1456 "cumulus-primitives-core",1418 "cumulus-primitives-core",1457 "cumulus-relay-chain-interface",1419 "cumulus-relay-chain-interface",1474[[package]]1436[[package]]1475name = "cumulus-client-service"1437name = "cumulus-client-service"1476version = "0.1.0"1438version = "0.1.0"1477source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1439source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1478dependencies = [1440dependencies = [1479 "cumulus-client-cli",1441 "cumulus-client-cli",1480 "cumulus-client-collator",1442 "cumulus-client-collator",1481 "cumulus-client-consensus-common",1443 "cumulus-client-consensus-common",1482 "cumulus-client-pov-recovery",1444 "cumulus-client-pov-recovery",1483 "cumulus-primitives-core",1445 "cumulus-primitives-core",1446 "cumulus-relay-chain-inprocess-interface",1484 "cumulus-relay-chain-interface",1447 "cumulus-relay-chain-interface",1448 "cumulus-relay-chain-minimal-node",1449 "futures 0.3.25",1485 "parking_lot 0.12.1",1450 "parking_lot 0.12.1",1486 "polkadot-primitives",1451 "polkadot-primitives",1487 "sc-client-api",1452 "sc-client-api",1488 "sc-consensus",1453 "sc-consensus",1489 "sc-service",1454 "sc-service",1455 "sc-sysinfo",1456 "sc-telemetry",1490 "sp-api",1457 "sp-api",1491 "sp-blockchain",1458 "sp-blockchain",1492 "sp-consensus",1459 "sp-consensus",1497[[package]]1464[[package]]1498name = "cumulus-pallet-aura-ext"1465name = "cumulus-pallet-aura-ext"1499version = "0.1.0"1466version = "0.1.0"1500source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1467source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1501dependencies = [1468dependencies = [1502 "frame-support",1469 "frame-support",1503 "frame-system",1470 "frame-system",1513[[package]]1480[[package]]1514name = "cumulus-pallet-dmp-queue"1481name = "cumulus-pallet-dmp-queue"1515version = "0.1.0"1482version = "0.1.0"1516source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1483source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1517dependencies = [1484dependencies = [1518 "cumulus-primitives-core",1485 "cumulus-primitives-core",1519 "frame-support",1486 "frame-support",1530[[package]]1497[[package]]1531name = "cumulus-pallet-parachain-system"1498name = "cumulus-pallet-parachain-system"1532version = "0.1.0"1499version = "0.1.0"1533source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1500source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1534dependencies = [1501dependencies = [1535 "bytes",1502 "bytes",1536 "cumulus-pallet-parachain-system-proc-macro",1503 "cumulus-pallet-parachain-system-proc-macro",1558[[package]]1525[[package]]1559name = "cumulus-pallet-parachain-system-proc-macro"1526name = "cumulus-pallet-parachain-system-proc-macro"1560version = "0.1.0"1527version = "0.1.0"1561source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1528source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1562dependencies = [1529dependencies = [1563 "proc-macro-crate",1530 "proc-macro-crate",1564 "proc-macro2",1531 "proc-macro2",1569[[package]]1536[[package]]1570name = "cumulus-pallet-xcm"1537name = "cumulus-pallet-xcm"1571version = "0.1.0"1538version = "0.1.0"1572source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1539source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1573dependencies = [1540dependencies = [1574 "cumulus-primitives-core",1541 "cumulus-primitives-core",1575 "frame-support",1542 "frame-support",1585[[package]]1552[[package]]1586name = "cumulus-pallet-xcmp-queue"1553name = "cumulus-pallet-xcmp-queue"1587version = "0.1.0"1554version = "0.1.0"1588source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1555source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1589dependencies = [1556dependencies = [1590 "cumulus-primitives-core",1557 "cumulus-primitives-core",1591 "frame-support",1558 "frame-support",1603[[package]]1570[[package]]1604name = "cumulus-primitives-core"1571name = "cumulus-primitives-core"1605version = "0.1.0"1572version = "0.1.0"1606source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1573source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1607dependencies = [1574dependencies = [1608 "parity-scale-codec 3.2.1",1575 "parity-scale-codec 3.2.1",1609 "polkadot-core-primitives",1576 "polkadot-core-primitives",1618[[package]]1585[[package]]1619name = "cumulus-primitives-parachain-inherent"1586name = "cumulus-primitives-parachain-inherent"1620version = "0.1.0"1587version = "0.1.0"1621source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1588source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1622dependencies = [1589dependencies = [1623 "async-trait",1590 "async-trait",1624 "cumulus-primitives-core",1591 "cumulus-primitives-core",1641[[package]]1608[[package]]1642name = "cumulus-primitives-timestamp"1609name = "cumulus-primitives-timestamp"1643version = "0.1.0"1610version = "0.1.0"1644source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1611source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1645dependencies = [1612dependencies = [1646 "cumulus-primitives-core",1613 "cumulus-primitives-core",1647 "futures 0.3.25",1614 "futures 0.3.25",1654[[package]]1621[[package]]1655name = "cumulus-primitives-utility"1622name = "cumulus-primitives-utility"1656version = "0.1.0"1623version = "0.1.0"1657source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1624source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1658dependencies = [1625dependencies = [1659 "cumulus-primitives-core",1626 "cumulus-primitives-core",1660 "frame-support",1627 "frame-support",1670[[package]]1637[[package]]1671name = "cumulus-relay-chain-inprocess-interface"1638name = "cumulus-relay-chain-inprocess-interface"1672version = "0.1.0"1639version = "0.1.0"1673source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1640source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1674dependencies = [1641dependencies = [1675 "async-trait",1642 "async-trait",1676 "cumulus-primitives-core",1643 "cumulus-primitives-core",1695[[package]]1662[[package]]1696name = "cumulus-relay-chain-interface"1663name = "cumulus-relay-chain-interface"1697version = "0.1.0"1664version = "0.1.0"1698source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1665source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1699dependencies = [1666dependencies = [1700 "async-trait",1667 "async-trait",1701 "cumulus-primitives-core",1668 "cumulus-primitives-core",1709 "sp-blockchain",1676 "sp-blockchain",1710 "sp-state-machine",1677 "sp-state-machine",1711 "thiserror",1678 "thiserror",1679 "tokio",1712]1680]171316811714[[package]]1682[[package]]1715name = "cumulus-relay-chain-minimal-node"1683name = "cumulus-relay-chain-minimal-node"1716version = "0.1.0"1684version = "0.1.0"1717source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1685source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1718dependencies = [1686dependencies = [1719 "array-bytes",1687 "array-bytes 6.0.0",1720 "async-trait",1688 "async-trait",1721 "cumulus-primitives-core",1689 "cumulus-primitives-core",1722 "cumulus-relay-chain-interface",1690 "cumulus-relay-chain-interface",1723 "cumulus-relay-chain-rpc-interface",1691 "cumulus-relay-chain-rpc-interface",1724 "futures 0.3.25",1692 "futures 0.3.25",1725 "lru",1693 "lru",1726 "polkadot-availability-distribution",1727 "polkadot-core-primitives",1694 "polkadot-core-primitives",1728 "polkadot-network-bridge",1695 "polkadot-network-bridge",1729 "polkadot-node-core-av-store",1730 "polkadot-node-network-protocol",1696 "polkadot-node-network-protocol",1731 "polkadot-node-subsystem-util",1697 "polkadot-node-subsystem-util",1732 "polkadot-overseer",1698 "polkadot-overseer",1738 "sc-keystore",1704 "sc-keystore",1739 "sc-network",1705 "sc-network",1740 "sc-network-common",1706 "sc-network-common",1741 "sc-network-light",1742 "sc-network-sync",1743 "sc-service",1707 "sc-service",1744 "sc-telemetry",1708 "sc-telemetry",1745 "sc-tracing",1709 "sc-tracing",1758[[package]]1722[[package]]1759name = "cumulus-relay-chain-rpc-interface"1723name = "cumulus-relay-chain-rpc-interface"1760version = "0.1.0"1724version = "0.1.0"1761source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1725source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1762dependencies = [1726dependencies = [1763 "async-trait",1727 "async-trait",1764 "backoff",1765 "cumulus-primitives-core",1728 "cumulus-primitives-core",1766 "cumulus-relay-chain-interface",1729 "cumulus-relay-chain-interface",1767 "futures 0.3.25",1730 "futures 0.3.25",1768 "futures-timer",1731 "futures-timer",1769 "jsonrpsee",1732 "jsonrpsee",1733 "lru",1770 "parity-scale-codec 3.2.1",1734 "parity-scale-codec 3.2.1",1771 "polkadot-service",1735 "polkadot-service",1772 "sc-client-api",1736 "sc-client-api",1773 "sc-rpc-api",1737 "sc-rpc-api",1738 "serde",1739 "serde_json",1774 "sp-api",1740 "sp-api",1775 "sp-authority-discovery",1741 "sp-authority-discovery",1776 "sp-consensus-babe",1742 "sp-consensus-babe",1777 "sp-core",1743 "sp-core",1778 "sp-runtime",1779 "sp-state-machine",1744 "sp-state-machine",1780 "sp-storage",1745 "sp-storage",1781 "tokio",1746 "tokio",1786[[package]]1751[[package]]1787name = "cumulus-test-relay-sproof-builder"1752name = "cumulus-test-relay-sproof-builder"1788version = "0.1.0"1753version = "0.1.0"1789source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"1754source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"1790dependencies = [1755dependencies = [1791 "cumulus-primitives-core",1756 "cumulus-primitives-core",1792 "parity-scale-codec 3.2.1",1757 "parity-scale-codec 3.2.1",182417891825[[package]]1790[[package]]1826name = "curve25519-dalek"1791name = "curve25519-dalek"1827version = "4.0.0-pre.1"1792version = "4.0.0-pre.5"1828source = "registry+https://github.com/rust-lang/crates.io-index"1793source = "registry+https://github.com/rust-lang/crates.io-index"1829checksum = "4033478fbf70d6acf2655ac70da91ee65852d69daf7a67bf7a2f518fb47aafcf"1794checksum = "67bc65846be335cb20f4e52d49a437b773a2c1fdb42b19fc84e79e6f6771536f"1830dependencies = [1795dependencies = [1831 "byteorder",1796 "cfg-if",1832 "digest 0.9.0",1797 "fiat-crypto",1798 "packed_simd_2",1833 "rand_core 0.6.4",1799 "platforms 3.0.2",1834 "subtle",1800 "subtle",1835 "zeroize",1801 "zeroize",1836]1802]183718031838[[package]]1804[[package]]1839name = "cxx"1805name = "cxx"1840version = "1.0.83"1806version = "1.0.85"1841source = "registry+https://github.com/rust-lang/crates.io-index"1807source = "registry+https://github.com/rust-lang/crates.io-index"1842checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf"1808checksum = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd"1843dependencies = [1809dependencies = [1844 "cc",1810 "cc",1845 "cxxbridge-flags",1811 "cxxbridge-flags",184918151850[[package]]1816[[package]]1851name = "cxx-build"1817name = "cxx-build"1852version = "1.0.83"1818version = "1.0.85"1853source = "registry+https://github.com/rust-lang/crates.io-index"1819source = "registry+https://github.com/rust-lang/crates.io-index"1854checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39"1820checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0"1855dependencies = [1821dependencies = [1856 "cc",1822 "cc",1857 "codespan-reporting",1823 "codespan-reporting",186418301865[[package]]1831[[package]]1866name = "cxxbridge-flags"1832name = "cxxbridge-flags"1867version = "1.0.83"1833version = "1.0.85"1868source = "registry+https://github.com/rust-lang/crates.io-index"1834source = "registry+https://github.com/rust-lang/crates.io-index"1869checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12"1835checksum = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59"187018361871[[package]]1837[[package]]1872name = "cxxbridge-macro"1838name = "cxxbridge-macro"1873version = "1.0.83"1839version = "1.0.85"1874source = "registry+https://github.com/rust-lang/crates.io-index"1840source = "registry+https://github.com/rust-lang/crates.io-index"1875checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6"1841checksum = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6"1876dependencies = [1842dependencies = [1877 "proc-macro2",1843 "proc-macro2",1878 "quote",1844 "quote",190718731908[[package]]1874[[package]]1909name = "der"1875name = "der"1910version = "0.6.0"1876version = "0.6.1"1911source = "registry+https://github.com/rust-lang/crates.io-index"1877source = "registry+https://github.com/rust-lang/crates.io-index"1912checksum = "13dd2ae565c0a381dde7fade45fce95984c568bdcb4700a4fdbe3175e0380b2f"1878checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"1913dependencies = [1879dependencies = [1914 "const-oid",1880 "const-oid",1915 "zeroize",1881 "zeroize",203920052040[[package]]2006[[package]]2041name = "dtoa"2007name = "dtoa"2042version = "1.0.4"2008version = "1.0.5"2043source = "registry+https://github.com/rust-lang/crates.io-index"2009source = "registry+https://github.com/rust-lang/crates.io-index"2044checksum = "f8a6eee2d5d0d113f015688310da018bd1d864d86bd567c8fca9c266889e1bfa"2010checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313"204520112046[[package]]2012[[package]]2047name = "dyn-clonable"2013name = "dyn-clonable"206620322067[[package]]2033[[package]]2068name = "dyn-clone"2034name = "dyn-clone"2069version = "1.0.9"2035version = "1.0.10"2070source = "registry+https://github.com/rust-lang/crates.io-index"2036source = "registry+https://github.com/rust-lang/crates.io-index"2071checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2"2037checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60"207220382073[[package]]2039[[package]]2074name = "ecdsa"2040name = "ecdsa"218421502185[[package]]2151[[package]]2186name = "enumn"2152name = "enumn"2187version = "0.1.5"2153version = "0.1.6"2188source = "registry+https://github.com/rust-lang/crates.io-index"2154source = "registry+https://github.com/rust-lang/crates.io-index"2189checksum = "038b1afa59052df211f9efd58f8b1d84c242935ede1c3dbaed26b018a9e06ae2"2155checksum = "e88bcb3a067a6555d577aba299e75eff9942da276e6506fc6274327daa026132"2190dependencies = [2156dependencies = [2191 "proc-macro2",2157 "proc-macro2",2192 "quote",2158 "quote",2336[[package]]2302[[package]]2337name = "evm"2303name = "evm"2338version = "0.35.0"2304version = "0.35.0"2339source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.33#a68cd3ea5ee2eb310e3452e660a8e9e56a474d2a"2305source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.36#a68cd3ea5ee2eb310e3452e660a8e9e56a474d2a"2340dependencies = [2306dependencies = [2341 "auto_impl",2307 "auto_impl",2342 "environmental",2308 "environmental",2387[[package]]2353[[package]]2388name = "evm-core"2354name = "evm-core"2389version = "0.35.0"2355version = "0.35.0"2390source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.33#a68cd3ea5ee2eb310e3452e660a8e9e56a474d2a"2356source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.36#a68cd3ea5ee2eb310e3452e660a8e9e56a474d2a"2391dependencies = [2357dependencies = [2392 "parity-scale-codec 3.2.1",2358 "parity-scale-codec 3.2.1",2393 "primitive-types 0.12.1",2359 "primitive-types 0.12.1",2398[[package]]2364[[package]]2399name = "evm-gasometer"2365name = "evm-gasometer"2400version = "0.35.0"2366version = "0.35.0"2401source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.33#a68cd3ea5ee2eb310e3452e660a8e9e56a474d2a"2367source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.36#a68cd3ea5ee2eb310e3452e660a8e9e56a474d2a"2402dependencies = [2368dependencies = [2403 "environmental",2369 "environmental",2404 "evm-core",2370 "evm-core",2409[[package]]2375[[package]]2410name = "evm-runtime"2376name = "evm-runtime"2411version = "0.35.0"2377version = "0.35.0"2412source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.33#a68cd3ea5ee2eb310e3452e660a8e9e56a474d2a"2378source = "git+https://github.com/uniquenetwork/evm?branch=unique-polkadot-v0.9.36#a68cd3ea5ee2eb310e3452e660a8e9e56a474d2a"2413dependencies = [2379dependencies = [2414 "auto_impl",2380 "auto_impl",2415 "environmental",2381 "environmental",2501[[package]]2467[[package]]2502name = "fc-consensus"2468name = "fc-consensus"2503version = "2.0.0-dev"2469version = "2.0.0-dev"2504source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2470source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2505dependencies = [2471dependencies = [2506 "async-trait",2472 "async-trait",2507 "fc-db",2473 "fc-db",2520[[package]]2486[[package]]2521name = "fc-db"2487name = "fc-db"2522version = "2.0.0-dev"2488version = "2.0.0-dev"2523source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2489source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2524dependencies = [2490dependencies = [2525 "fp-storage",2491 "fp-storage",2526 "kvdb-rocksdb",2492 "kvdb-rocksdb",2527 "log",2493 "log",2528 "parity-db 0.3.17",2494 "parity-db",2529 "parity-scale-codec 3.2.1",2495 "parity-scale-codec 3.2.1",2530 "parking_lot 0.12.1",2496 "parking_lot 0.12.1",2531 "sc-client-db",2497 "sc-client-db",2498 "smallvec",2532 "sp-blockchain",2499 "sp-blockchain",2533 "sp-core",2500 "sp-core",2534 "sp-database",2501 "sp-database",2538[[package]]2505[[package]]2539name = "fc-mapping-sync"2506name = "fc-mapping-sync"2540version = "2.0.0-dev"2507version = "2.0.0-dev"2541source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2508source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2542dependencies = [2509dependencies = [2543 "fc-db",2510 "fc-db",2544 "fp-consensus",2511 "fp-consensus",2555[[package]]2522[[package]]2556name = "fc-rpc"2523name = "fc-rpc"2557version = "2.0.0-dev"2524version = "2.0.0-dev"2558source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2525source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2559dependencies = [2526dependencies = [2560 "ethereum 0.14.0",2527 "ethereum 0.14.0",2561 "ethereum-types 0.14.1",2528 "ethereum-types 0.14.1",2598[[package]]2565[[package]]2599name = "fc-rpc-core"2566name = "fc-rpc-core"2600version = "1.1.0-dev"2567version = "1.1.0-dev"2601source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2568source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2602dependencies = [2569dependencies = [2603 "ethereum 0.14.0",2570 "ethereum 0.14.0",2604 "ethereum-types 0.14.1",2571 "ethereum-types 0.14.1",2629]2596]263025972631[[package]]2598[[package]]2599name = "fiat-crypto"2600version = "0.1.17"2601source = "registry+https://github.com/rust-lang/crates.io-index"2602checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90"26032604[[package]]2632name = "file-per-thread-logger"2605name = "file-per-thread-logger"2633version = "0.1.5"2606version = "0.1.5"2634source = "registry+https://github.com/rust-lang/crates.io-index"2607source = "registry+https://github.com/rust-lang/crates.io-index"264026132641[[package]]2614[[package]]2642name = "filetime"2615name = "filetime"2643version = "0.2.18"2616version = "0.2.19"2644source = "registry+https://github.com/rust-lang/crates.io-index"2617source = "registry+https://github.com/rust-lang/crates.io-index"2645checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3"2618checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9"2646dependencies = [2619dependencies = [2647 "cfg-if",2620 "cfg-if",2648 "libc",2621 "libc",2703dependencies = [2676dependencies = [2704 "crc32fast",2677 "crc32fast",2705 "libz-sys",2678 "libz-sys",2706 "miniz_oxide 0.6.2",2679 "miniz_oxide",2707]2680]270826812709[[package]]2682[[package]]2710name = "flexi_logger"2683name = "flexi_logger"2711version = "0.22.6"2684version = "0.24.2"2712source = "registry+https://github.com/rust-lang/crates.io-index"2685source = "registry+https://github.com/rust-lang/crates.io-index"2713checksum = "0c76a80dd14a27fc3d8bc696502132cb52b3f227256fd8601166c3a35e45f409"2686checksum = "ade8e86c48285f138a4d6ca15a2912e39bd6c74d62db42da4f1985f651a0b057"2714dependencies = [2687dependencies = [2715 "ansi_term",2716 "atty",2688 "atty",2689 "chrono",2717 "glob",2690 "glob",2718 "lazy_static",2691 "lazy_static",2719 "log",2692 "log",2693 "nu-ansi-term",2720 "regex",2694 "regex",2721 "rustversion",2722 "thiserror",2695 "thiserror",2723 "time 0.3.9",2724]2696]272526972726[[package]]2698[[package]]2741[[package]]2713[[package]]2742name = "fork-tree"2714name = "fork-tree"2743version = "3.0.0"2715version = "3.0.0"2744source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"2716source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"2745dependencies = [2717dependencies = [2746 "parity-scale-codec 3.2.1",2718 "parity-scale-codec 3.2.1",2747]2719]2758[[package]]2730[[package]]2759name = "fp-consensus"2731name = "fp-consensus"2760version = "2.0.0-dev"2732version = "2.0.0-dev"2761source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2733source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2762dependencies = [2734dependencies = [2763 "ethereum 0.14.0",2735 "ethereum 0.14.0",2764 "parity-scale-codec 3.2.1",2736 "parity-scale-codec 3.2.1",2770[[package]]2742[[package]]2771name = "fp-ethereum"2743name = "fp-ethereum"2772version = "1.0.0-dev"2744version = "1.0.0-dev"2773source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2745source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2774dependencies = [2746dependencies = [2775 "ethereum 0.14.0",2747 "ethereum 0.14.0",2776 "ethereum-types 0.14.1",2748 "ethereum-types 0.14.1",2785[[package]]2757[[package]]2786name = "fp-evm"2758name = "fp-evm"2787version = "3.0.0-dev"2759version = "3.0.0-dev"2788source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2760source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2789dependencies = [2761dependencies = [2790 "evm",2762 "evm",2791 "frame-support",2763 "frame-support",2799[[package]]2771[[package]]2800name = "fp-evm-mapping"2772name = "fp-evm-mapping"2801version = "0.1.0"2773version = "0.1.0"2802source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2774source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2803dependencies = [2775dependencies = [2804 "frame-support",2776 "frame-support",2805 "sp-core",2777 "sp-core",2808[[package]]2780[[package]]2809name = "fp-rpc"2781name = "fp-rpc"2810version = "3.0.0-dev"2782version = "3.0.0-dev"2811source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2783source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2812dependencies = [2784dependencies = [2813 "ethereum 0.14.0",2785 "ethereum 0.14.0",2814 "ethereum-types 0.14.1",2786 "ethereum-types 0.14.1",2825[[package]]2797[[package]]2826name = "fp-self-contained"2798name = "fp-self-contained"2827version = "1.0.0-dev"2799version = "1.0.0-dev"2828source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2800source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2829dependencies = [2801dependencies = [2830 "ethereum 0.14.0",2802 "ethereum 0.14.0",2831 "frame-support",2803 "frame-support",2832 "parity-scale-codec 3.2.1",2804 "parity-scale-codec 3.2.1",2833 "parity-util-mem",2834 "scale-info",2805 "scale-info",2835 "serde",2806 "serde",2836 "sp-runtime",2807 "sp-runtime",2839[[package]]2810[[package]]2840name = "fp-storage"2811name = "fp-storage"2841version = "2.0.0"2812version = "2.0.0"2842source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"2813source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"2843dependencies = [2814dependencies = [2844 "parity-scale-codec 3.2.1",2815 "parity-scale-codec 3.2.1",2845 "serde",2816 "serde",2854[[package]]2825[[package]]2855name = "frame-benchmarking"2826name = "frame-benchmarking"2856version = "4.0.0-dev"2827version = "4.0.0-dev"2857source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"2828source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"2858dependencies = [2829dependencies = [2859 "frame-support",2830 "frame-support",2860 "frame-system",2831 "frame-system",2877[[package]]2848[[package]]2878name = "frame-benchmarking-cli"2849name = "frame-benchmarking-cli"2879version = "4.0.0-dev"2850version = "4.0.0-dev"2880source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"2851source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"2881dependencies = [2852dependencies = [2882 "Inflector",2853 "Inflector",2883 "array-bytes",2854 "array-bytes 4.2.0",2884 "chrono",2855 "chrono",2885 "clap",2856 "clap",2886 "comfy-table",2857 "comfy-table",2929[[package]]2900[[package]]2930name = "frame-election-provider-solution-type"2901name = "frame-election-provider-solution-type"2931version = "4.0.0-dev"2902version = "4.0.0-dev"2932source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"2903source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"2933dependencies = [2904dependencies = [2934 "proc-macro-crate",2905 "proc-macro-crate",2935 "proc-macro2",2906 "proc-macro2",2940[[package]]2911[[package]]2941name = "frame-election-provider-support"2912name = "frame-election-provider-support"2942version = "4.0.0-dev"2913version = "4.0.0-dev"2943source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"2914source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"2944dependencies = [2915dependencies = [2945 "frame-election-provider-solution-type",2916 "frame-election-provider-solution-type",2946 "frame-support",2917 "frame-support",2947 "frame-system",2918 "frame-system",2948 "parity-scale-codec 3.2.1",2919 "parity-scale-codec 3.2.1",2949 "scale-info",2920 "scale-info",2950 "sp-arithmetic",2921 "sp-arithmetic",2922 "sp-core",2951 "sp-npos-elections",2923 "sp-npos-elections",2952 "sp-runtime",2924 "sp-runtime",2953 "sp-std",2925 "sp-std",2956[[package]]2928[[package]]2957name = "frame-executive"2929name = "frame-executive"2958version = "4.0.0-dev"2930version = "4.0.0-dev"2959source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"2931source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"2960dependencies = [2932dependencies = [2961 "frame-support",2933 "frame-support",2962 "frame-system",2934 "frame-system",2983]2955]298429562985[[package]]2957[[package]]2958name = "frame-remote-externalities"2959version = "0.10.0-dev"2960source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"2961dependencies = [2962 "env_logger",2963 "futures 0.3.25",2964 "log",2965 "parity-scale-codec 3.2.1",2966 "serde",2967 "serde_json",2968 "sp-core",2969 "sp-io",2970 "sp-runtime",2971 "sp-version",2972 "substrate-rpc-client",2973 "tokio",2974]29752976[[package]]2986name = "frame-support"2977name = "frame-support"2987version = "4.0.0-dev"2978version = "4.0.0-dev"2988source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"2979source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"2989dependencies = [2980dependencies = [2990 "bitflags",2981 "bitflags",2991 "frame-metadata",2982 "frame-metadata",3017[[package]]3008[[package]]3018name = "frame-support-procedural"3009name = "frame-support-procedural"3019version = "4.0.0-dev"3010version = "4.0.0-dev"3020source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"3011source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"3021dependencies = [3012dependencies = [3022 "Inflector",3013 "Inflector",3023 "cfg-expr",3014 "cfg-expr",3031[[package]]3022[[package]]3032name = "frame-support-procedural-tools"3023name = "frame-support-procedural-tools"3033version = "4.0.0-dev"3024version = "4.0.0-dev"3034source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"3025source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"3035dependencies = [3026dependencies = [3036 "frame-support-procedural-tools-derive",3027 "frame-support-procedural-tools-derive",3037 "proc-macro-crate",3028 "proc-macro-crate",3043[[package]]3034[[package]]3044name = "frame-support-procedural-tools-derive"3035name = "frame-support-procedural-tools-derive"3045version = "3.0.0"3036version = "3.0.0"3046source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"3037source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"3047dependencies = [3038dependencies = [3048 "proc-macro2",3039 "proc-macro2",3049 "quote",3040 "quote",3053[[package]]3044[[package]]3054name = "frame-system"3045name = "frame-system"3055version = "4.0.0-dev"3046version = "4.0.0-dev"3056source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"3047source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"3057dependencies = [3048dependencies = [3058 "frame-support",3049 "frame-support",3059 "log",3050 "log",3071[[package]]3062[[package]]3072name = "frame-system-benchmarking"3063name = "frame-system-benchmarking"3073version = "4.0.0-dev"3064version = "4.0.0-dev"3074source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"3065source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"3075dependencies = [3066dependencies = [3076 "frame-benchmarking",3067 "frame-benchmarking",3077 "frame-support",3068 "frame-support",3086[[package]]3077[[package]]3087name = "frame-system-rpc-runtime-api"3078name = "frame-system-rpc-runtime-api"3088version = "4.0.0-dev"3079version = "4.0.0-dev"3089source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"3080source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"3090dependencies = [3081dependencies = [3091 "parity-scale-codec 3.2.1",3082 "parity-scale-codec 3.2.1",3092 "sp-api",3083 "sp-api",3095[[package]]3086[[package]]3096name = "frame-try-runtime"3087name = "frame-try-runtime"3097version = "0.10.0-dev"3088version = "0.10.0-dev"3098source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"3089source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"3099dependencies = [3090dependencies = [3100 "frame-support",3091 "frame-support",3101 "parity-scale-codec 3.2.1",3092 "parity-scale-codec 3.2.1",3351]3342]335233433353[[package]]3344[[package]]3345name = "gimli"3346version = "0.27.0"3347source = "registry+https://github.com/rust-lang/crates.io-index"3348checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793"33493350[[package]]3354name = "glob"3351name = "glob"3355version = "0.3.0"3352version = "0.3.0"3356source = "registry+https://github.com/rust-lang/crates.io-index"3353source = "registry+https://github.com/rust-lang/crates.io-index"341334103414[[package]]3411[[package]]3415name = "handlebars"3412name = "handlebars"3416version = "4.3.5"3413version = "4.3.6"3417source = "registry+https://github.com/rust-lang/crates.io-index"3414source = "registry+https://github.com/rust-lang/crates.io-index"3418checksum = "433e4ab33f1213cdc25b5fa45c76881240cfe79284cf2b395e8b9e312a30a2fd"3415checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a"3419dependencies = [3416dependencies = [3420 "log",3417 "log",3421 "pest",3418 "pest",3559]3556]356035573561[[package]]3558[[package]]3559name = "http-range-header"3560version = "0.3.0"3561source = "registry+https://github.com/rust-lang/crates.io-index"3562checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29"35633564[[package]]3562name = "httparse"3565name = "httparse"3563version = "1.8.0"3566version = "1.8.0"3564source = "registry+https://github.com/rust-lang/crates.io-index"3567source = "registry+https://github.com/rust-lang/crates.io-index"360236053603[[package]]3606[[package]]3604name = "hyper-rustls"3607name = "hyper-rustls"3605version = "0.23.1"3608version = "0.23.2"3606source = "registry+https://github.com/rust-lang/crates.io-index"3609source = "registry+https://github.com/rust-lang/crates.io-index"3607checksum = "59df7c4e19c950e6e0e868dcc0a300b09a9b88e9ec55bd879ca819087a77355d"3610checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"3608dependencies = [3611dependencies = [3609 "http",3612 "http",3610 "hyper",3613 "hyper",379738003798[[package]]3801[[package]]3799name = "ipnet"3802name = "ipnet"3800version = "2.5.1"3803version = "2.7.0"3801source = "registry+https://github.com/rust-lang/crates.io-index"3804source = "registry+https://github.com/rust-lang/crates.io-index"3802checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745"3805checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e"380338063804[[package]]3807[[package]]3805name = "is-terminal"3808name = "is-terminal"3806version = "0.4.1"3809version = "0.4.2"3807source = "registry+https://github.com/rust-lang/crates.io-index"3810source = "registry+https://github.com/rust-lang/crates.io-index"3808checksum = "927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330"3811checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"3809dependencies = [3812dependencies = [3810 "hermit-abi 0.2.6",3813 "hermit-abi 0.2.6",3811 "io-lifetimes 1.0.3",3814 "io-lifetimes 1.0.3",382438273825[[package]]3828[[package]]3826name = "itoa"3829name = "itoa"3827version = "1.0.4"3830version = "1.0.5"3828source = "registry+https://github.com/rust-lang/crates.io-index"3831source = "registry+https://github.com/rust-lang/crates.io-index"3829checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"3832checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"383038333831[[package]]3834[[package]]3832name = "jobserver"3835name = "jobserver"384838513849[[package]]3852[[package]]3850name = "jsonrpsee"3853name = "jsonrpsee"3851version = "0.15.1"3854version = "0.16.2"3852source = "registry+https://github.com/rust-lang/crates.io-index"3855source = "registry+https://github.com/rust-lang/crates.io-index"3853checksum = "8bd0d559d5e679b1ab2f869b486a11182923863b1b3ee8b421763cdd707b783a"3856checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e"3854dependencies = [3857dependencies = [3855 "jsonrpsee-core",3858 "jsonrpsee-core",3856 "jsonrpsee-http-server",3857 "jsonrpsee-proc-macros",3859 "jsonrpsee-proc-macros",3860 "jsonrpsee-server",3858 "jsonrpsee-types",3861 "jsonrpsee-types",3859 "jsonrpsee-ws-client",3862 "jsonrpsee-ws-client",3860 "jsonrpsee-ws-server",3861 "tracing",3863 "tracing",3862]3864]386338653864[[package]]3866[[package]]3865name = "jsonrpsee-client-transport"3867name = "jsonrpsee-client-transport"3866version = "0.15.1"3868version = "0.16.2"3867source = "registry+https://github.com/rust-lang/crates.io-index"3869source = "registry+https://github.com/rust-lang/crates.io-index"3868checksum = "8752740ecd374bcbf8b69f3e80b0327942df76f793f8d4e60d3355650c31fb74"3870checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb"3869dependencies = [3871dependencies = [3870 "futures-util",3872 "futures-util",3871 "http",3873 "http",388438863885[[package]]3887[[package]]3886name = "jsonrpsee-core"3888name = "jsonrpsee-core"3887version = "0.15.1"3889version = "0.16.2"3888source = "registry+https://github.com/rust-lang/crates.io-index"3890source = "registry+https://github.com/rust-lang/crates.io-index"3889checksum = "f3dc3e9cf2ba50b7b1d7d76a667619f82846caa39e8e8daa8a4962d74acaddca"3891checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b"3890dependencies = [3892dependencies = [3891 "anyhow",3893 "anyhow",3892 "arrayvec 0.7.2",3894 "arrayvec 0.7.2",3897 "futures-timer",3899 "futures-timer",3898 "futures-util",3900 "futures-util",3899 "globset",3901 "globset",3900 "http",3901 "hyper",3902 "hyper",3902 "jsonrpsee-types",3903 "jsonrpsee-types",3903 "lazy_static",3904 "parking_lot 0.12.1",3904 "parking_lot 0.12.1",3905 "rand 0.8.5",3905 "rand 0.8.5",3906 "rustc-hash",3906 "rustc-hash",3910 "thiserror",3910 "thiserror",3911 "tokio",3911 "tokio",3912 "tracing",3912 "tracing",3913 "tracing-futures",3914 "unicase",3915]3913]391639143917[[package]]3915[[package]]3918name = "jsonrpsee-http-server"3916name = "jsonrpsee-proc-macros"3919version = "0.15.1"3917version = "0.16.2"3920source = "registry+https://github.com/rust-lang/crates.io-index"3918source = "registry+https://github.com/rust-lang/crates.io-index"3921checksum = "03802f0373a38c2420c70b5144742d800b509e2937edc4afb116434f07120117"3919checksum = "baa6da1e4199c10d7b1d0a6e5e8bd8e55f351163b6f4b3cbb044672a69bd4c1c"3922dependencies = [3920dependencies = [3921 "heck",3922 "proc-macro-crate",3923 "proc-macro2",3924 "quote",3925 "syn",3926]39273928[[package]]3929name = "jsonrpsee-server"3930version = "0.16.2"3931source = "registry+https://github.com/rust-lang/crates.io-index"3932checksum = "1fb69dad85df79527c019659a992498d03f8495390496da2f07e6c24c2b356fc"3933dependencies = [3923 "futures-channel",3934 "futures-channel",3924 "futures-util",3935 "futures-util",3936 "http",3925 "hyper",3937 "hyper",3926 "jsonrpsee-core",3938 "jsonrpsee-core",3927 "jsonrpsee-types",3939 "jsonrpsee-types",3928 "serde",3940 "serde",3929 "serde_json",3941 "serde_json",3942 "soketto",3930 "tokio",3943 "tokio",3944 "tokio-stream",3945 "tokio-util",3946 "tower",3931 "tracing",3947 "tracing",3932 "tracing-futures",3933]3948]393439493935[[package]]3950[[package]]3936name = "jsonrpsee-proc-macros"3937version = "0.15.1"3938source = "registry+https://github.com/rust-lang/crates.io-index"3939checksum = "bd67957d4280217247588ac86614ead007b301ca2fa9f19c19f880a536f029e3"3940dependencies = [3941 "proc-macro-crate",3942 "proc-macro2",3943 "quote",3944 "syn",3945]39463947[[package]]3948name = "jsonrpsee-types"3951name = "jsonrpsee-types"3949version = "0.15.1"3952version = "0.16.2"3950source = "registry+https://github.com/rust-lang/crates.io-index"3953source = "registry+https://github.com/rust-lang/crates.io-index"3951checksum = "e290bba767401b646812f608c099b922d8142603c9e73a50fb192d3ac86f4a0d"3954checksum = "5bd522fe1ce3702fd94812965d7bb7a3364b1c9aba743944c5a00529aae80f8c"3952dependencies = [3955dependencies = [3953 "anyhow",3956 "anyhow",3954 "beef",3957 "beef",396039633961[[package]]3964[[package]]3962name = "jsonrpsee-ws-client"3965name = "jsonrpsee-ws-client"3963version = "0.15.1"3966version = "0.16.2"3964source = "registry+https://github.com/rust-lang/crates.io-index"3967source = "registry+https://github.com/rust-lang/crates.io-index"3965checksum = "6ee5feddd5188e62ac08fcf0e56478138e581509d4730f3f7be9b57dd402a4ff"3968checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9"3966dependencies = [3969dependencies = [3967 "http",3970 "http",3968 "jsonrpsee-client-transport",3971 "jsonrpsee-client-transport",3971]3974]397239753973[[package]]3976[[package]]3974name = "jsonrpsee-ws-server"3975version = "0.15.1"3976source = "registry+https://github.com/rust-lang/crates.io-index"3977checksum = "d488ba74fb369e5ab68926feb75a483458b88e768d44319f37e4ecad283c7325"3978dependencies = [3979 "futures-channel",3980 "futures-util",3981 "http",3982 "jsonrpsee-core",3983 "jsonrpsee-types",3984 "serde_json",3985 "soketto",3986 "tokio",3987 "tokio-stream",3988 "tokio-util",3989 "tracing",3990 "tracing-futures",3991]39923993[[package]]3994name = "k256"3977name = "k256"3995version = "0.11.6"3978version = "0.11.6"3996source = "registry+https://github.com/rust-lang/crates.io-index"3979source = "registry+https://github.com/rust-lang/crates.io-index"401339964014[[package]]3997[[package]]4015name = "kusama-runtime"3998name = "kusama-runtime"4016version = "0.9.33"3999version = "0.9.36"4017source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"4000source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"4018dependencies = [4001dependencies = [4019 "beefy-primitives",4020 "bitvec 1.0.1",4002 "bitvec 1.0.1",4021 "frame-benchmarking",4003 "frame-benchmarking",4022 "frame-election-provider-support",4004 "frame-election-provider-support",4043 "pallet-election-provider-support-benchmarking",4025 "pallet-election-provider-support-benchmarking",4044 "pallet-elections-phragmen",4026 "pallet-elections-phragmen",4045 "pallet-fast-unstake",4027 "pallet-fast-unstake",4046 "pallet-gilt",4047 "pallet-grandpa",4028 "pallet-grandpa",4048 "pallet-identity",4029 "pallet-identity",4049 "pallet-im-online",4030 "pallet-im-online",4050 "pallet-indices",4031 "pallet-indices",4051 "pallet-membership",4032 "pallet-membership",4052 "pallet-multisig",4033 "pallet-multisig",4034 "pallet-nis",4053 "pallet-nomination-pools",4035 "pallet-nomination-pools",4054 "pallet-nomination-pools-benchmarking",4036 "pallet-nomination-pools-benchmarking",4055 "pallet-nomination-pools-runtime-api",4037 "pallet-nomination-pools-runtime-api",4087 "sp-api",4069 "sp-api",4088 "sp-arithmetic",4070 "sp-arithmetic",4089 "sp-authority-discovery",4071 "sp-authority-discovery",4072 "sp-beefy",4090 "sp-block-builder",4073 "sp-block-builder",4091 "sp-consensus-babe",4074 "sp-consensus-babe",4092 "sp-core",4075 "sp-core",411040934111[[package]]4094[[package]]4112name = "kusama-runtime-constants"4095name = "kusama-runtime-constants"4113version = "0.9.33"4096version = "0.9.36"4114source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"4097source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"4115dependencies = [4098dependencies = [4116 "frame-support",4099 "frame-support",4117 "polkadot-primitives",4100 "polkadot-primitives",413341164134[[package]]4117[[package]]4135name = "kvdb"4118name = "kvdb"4136version = "0.12.0"4119version = "0.13.0"4137source = "registry+https://github.com/rust-lang/crates.io-index"4120source = "registry+https://github.com/rust-lang/crates.io-index"4138checksum = "585089ceadba0197ffe9af6740ab350b325e3c1f5fccfbc3522e0250c750409b"4121checksum = "e7d770dcb02bf6835887c3a979b5107a04ff4bbde97a5f0928d27404a155add9"4139dependencies = [4122dependencies = [4140 "parity-util-mem",4141 "smallvec",4123 "smallvec",4142]4124]414341254144[[package]]4126[[package]]4145name = "kvdb-memorydb"4127name = "kvdb-memorydb"4146version = "0.12.0"4128version = "0.13.0"4147source = "registry+https://github.com/rust-lang/crates.io-index"4129source = "registry+https://github.com/rust-lang/crates.io-index"4148checksum = "40d109c87bfb7759edd2a49b2649c1afe25af785d930ad6a38479b4dc70dd873"4130checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2"4149dependencies = [4131dependencies = [4150 "kvdb",4132 "kvdb",4151 "parity-util-mem",4152 "parking_lot 0.12.1",4133 "parking_lot 0.12.1",4153]4134]415441354155[[package]]4136[[package]]4156name = "kvdb-rocksdb"4137name = "kvdb-rocksdb"4157version = "0.16.0"4138version = "0.17.0"4158source = "registry+https://github.com/rust-lang/crates.io-index"4139source = "registry+https://github.com/rust-lang/crates.io-index"4159checksum = "c076cc2cdbac89b9910c853a36c957d3862a779f31c2661174222cefb49ee597"4140checksum = "2182b8219fee6bd83aacaab7344e840179ae079d5216aa4e249b4d704646a844"4160dependencies = [4141dependencies = [4161 "kvdb",4142 "kvdb",4162 "log",4163 "num_cpus",4143 "num_cpus",4164 "parity-util-mem",4165 "parking_lot 0.12.1",4144 "parking_lot 0.12.1",4166 "regex",4145 "regex",4167 "rocksdb",4146 "rocksdb",418241614183[[package]]4162[[package]]4184name = "libc"4163name = "libc"4185version = "0.2.138"4164version = "0.2.139"4186source = "registry+https://github.com/rust-lang/crates.io-index"4165source = "registry+https://github.com/rust-lang/crates.io-index"4187checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"4166checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"418841674189[[package]]4168[[package]]4190name = "libloading"4169name = "libloading"419841774199[[package]]4178[[package]]4200name = "libm"4179name = "libm"4180version = "0.1.4"4181source = "registry+https://github.com/rust-lang/crates.io-index"4182checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"41834184[[package]]4185name = "libm"4201version = "0.2.6"4186version = "0.2.6"4202source = "registry+https://github.com/rust-lang/crates.io-index"4187source = "registry+https://github.com/rust-lang/crates.io-index"4203checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"4188checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"4275source = "registry+https://github.com/rust-lang/crates.io-index"4260source = "registry+https://github.com/rust-lang/crates.io-index"4276checksum = "2322c9fb40d99101def6a01612ee30500c89abbbecb6297b3cd252903a4c1720"4261checksum = "2322c9fb40d99101def6a01612ee30500c89abbbecb6297b3cd252903a4c1720"4277dependencies = [4262dependencies = [4278 "async-std-resolver",4279 "futures 0.3.25",4263 "futures 0.3.25",4280 "libp2p-core",4264 "libp2p-core",4281 "log",4265 "log",4339source = "registry+https://github.com/rust-lang/crates.io-index"4323source = "registry+https://github.com/rust-lang/crates.io-index"4340checksum = "761704e727f7d68d58d7bc2231eafae5fc1b9814de24290f126df09d4bd37a15"4324checksum = "761704e727f7d68d58d7bc2231eafae5fc1b9814de24290f126df09d4bd37a15"4341dependencies = [4325dependencies = [4342 "async-io",4343 "data-encoding",4326 "data-encoding",4344 "dns-parser",4327 "dns-parser",4345 "futures 0.3.25",4328 "futures 0.3.25",4350 "rand 0.8.5",4333 "rand 0.8.5",4351 "smallvec",4334 "smallvec",4352 "socket2",4335 "socket2",4336 "tokio",4353 "void",4337 "void",4354]4338]435543394478source = "registry+https://github.com/rust-lang/crates.io-index"4462source = "registry+https://github.com/rust-lang/crates.io-index"4479checksum = "9839d96761491c6d3e238e70554b856956fca0ab60feb9de2cd08eed4473fa92"4463checksum = "9839d96761491c6d3e238e70554b856956fca0ab60feb9de2cd08eed4473fa92"4480dependencies = [4464dependencies = [4481 "async-io",4482 "futures 0.3.25",4465 "futures 0.3.25",4483 "futures-timer",4466 "futures-timer",4484 "if-watch",4467 "if-watch",4485 "libc",4468 "libc",4486 "libp2p-core",4469 "libp2p-core",4487 "log",4470 "log",4488 "socket2",4471 "socket2",4472 "tokio",4489]4473]449044744491[[package]]4475[[package]]461145954612[[package]]4596[[package]]4613name = "link-cplusplus"4597name = "link-cplusplus"4614version = "1.0.7"4598version = "1.0.8"4615source = "registry+https://github.com/rust-lang/crates.io-index"4599source = "registry+https://github.com/rust-lang/crates.io-index"4616checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"4600checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"4617dependencies = [4601dependencies = [4618 "cc",4602 "cc",4619]4603]465146354652[[package]]4636[[package]]4653name = "linux-raw-sys"4637name = "linux-raw-sys"4654version = "0.1.3"4638version = "0.1.4"4655source = "registry+https://github.com/rust-lang/crates.io-index"4639source = "registry+https://github.com/rust-lang/crates.io-index"4656checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f"4640checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"465746414658[[package]]4642[[package]]4659name = "lock_api"4643name = "lock_api"480647904807[[package]]4791[[package]]4808name = "memory-db"4792name = "memory-db"4809version = "0.30.0"4793version = "0.31.0"4810source = "registry+https://github.com/rust-lang/crates.io-index"4794source = "registry+https://github.com/rust-lang/crates.io-index"4811checksum = "34ac11bb793c28fa095b7554466f53b3a60a2cd002afdac01bcf135cbd73a269"4795checksum = "5e0c7cba9ce19ac7ffd2053ac9f49843bbd3f4318feedfd74e85c19d5fb0ba66"4812dependencies = [4796dependencies = [4813 "hash-db",4797 "hash-db",4814 "hashbrown",4798 "hashbrown",4815 "parity-util-mem",4816]4799]481748004818[[package]]4801[[package]]4819name = "memory-lru"4820version = "0.1.1"4821source = "registry+https://github.com/rust-lang/crates.io-index"4822checksum = "ce95ae042940bad7e312857b929ee3d11b8f799a80cb7b9c7ec5125516906395"4823dependencies = [4824 "lru",4825]48264827[[package]]4828name = "memory_units"4802name = "memory_units"4829version = "0.4.0"4803version = "0.4.0"4830source = "registry+https://github.com/rust-lang/crates.io-index"4804source = "registry+https://github.com/rust-lang/crates.io-index"486148354862[[package]]4836[[package]]4863name = "miniz_oxide"4837name = "miniz_oxide"4864version = "0.5.4"4865source = "registry+https://github.com/rust-lang/crates.io-index"4866checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"4867dependencies = [4868 "adler",4869]48704871[[package]]4872name = "miniz_oxide"4873version = "0.6.2"4838version = "0.6.2"4874source = "registry+https://github.com/rust-lang/crates.io-index"4839source = "registry+https://github.com/rust-lang/crates.io-index"4875checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"4840checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"4890]4855]489148564892[[package]]4857[[package]]4858name = "mmr-gadget"4859version = "4.0.0-dev"4860source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"4861dependencies = [4862 "futures 0.3.25",4863 "log",4864 "parity-scale-codec 3.2.1",4865 "sc-client-api",4866 "sc-offchain",4867 "sp-api",4868 "sp-beefy",4869 "sp-blockchain",4870 "sp-consensus",4871 "sp-core",4872 "sp-io",4873 "sp-mmr-primitives",4874 "sp-runtime",4875]48764877[[package]]4878name = "mmr-rpc"4879version = "4.0.0-dev"4880source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"4881dependencies = [4882 "anyhow",4883 "jsonrpsee",4884 "parity-scale-codec 3.2.1",4885 "serde",4886 "sp-api",4887 "sp-blockchain",4888 "sp-core",4889 "sp-mmr-primitives",4890 "sp-runtime",4891]48924893[[package]]4893name = "mockall"4894name = "mockall"4894version = "0.11.3"4895version = "0.11.3"4895source = "registry+https://github.com/rust-lang/crates.io-index"4896source = "registry+https://github.com/rust-lang/crates.io-index"5118]5119]511951205120[[package]]5121[[package]]5121name = "nodrop"5122version = "0.1.14"5123source = "registry+https://github.com/rust-lang/crates.io-index"5124checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"51255126[[package]]5127name = "nohash-hasher"5122name = "nohash-hasher"5128version = "0.2.0"5123version = "0.2.0"5129source = "registry+https://github.com/rust-lang/crates.io-index"5124source = "registry+https://github.com/rust-lang/crates.io-index"5146checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"5141checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"514751425148[[package]]5143[[package]]5144name = "nu-ansi-term"5145version = "0.46.0"5146source = "registry+https://github.com/rust-lang/crates.io-index"5147checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"5148dependencies = [5149 "overload",5150 "winapi",5151]51525153[[package]]5149name = "num-bigint"5154name = "num-bigint"5150version = "0.4.3"5155version = "0.4.3"5151source = "registry+https://github.com/rust-lang/crates.io-index"5156source = "registry+https://github.com/rust-lang/crates.io-index"5204checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"5209checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"5205dependencies = [5210dependencies = [5206 "autocfg",5211 "autocfg",5207 "libm",5212 "libm 0.2.6",5208]5213]520952145210[[package]]5215[[package]]5211name = "num_cpus"5216name = "num_cpus"5212version = "1.14.0"5217version = "1.15.0"5213source = "registry+https://github.com/rust-lang/crates.io-index"5218source = "registry+https://github.com/rust-lang/crates.io-index"5214checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"5219checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"5215dependencies = [5220dependencies = [5216 "hermit-abi 0.1.19",5221 "hermit-abi 0.2.6",5217 "libc",5222 "libc",5218]5223]521952245239]5244]524052455241[[package]]5246[[package]]5242name = "num_threads"5243version = "0.1.6"5244source = "registry+https://github.com/rust-lang/crates.io-index"5245checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"5246dependencies = [5247 "libc",5248]52495250[[package]]5251name = "object"5247name = "object"5252version = "0.29.0"5248version = "0.29.0"5253source = "registry+https://github.com/rust-lang/crates.io-index"5249source = "registry+https://github.com/rust-lang/crates.io-index"5260]5256]526152575262[[package]]5258[[package]]5259name = "object"5260version = "0.30.0"5261source = "registry+https://github.com/rust-lang/crates.io-index"5262checksum = "239da7f290cfa979f43f85a8efeee9a8a76d0827c356d37f9d3d7254d6b537fb"5263dependencies = [5264 "memchr",5265]52665267[[package]]5263name = "once_cell"5268name = "once_cell"5264version = "1.16.0"5269version = "1.16.0"5265source = "registry+https://github.com/rust-lang/crates.io-index"5270source = "registry+https://github.com/rust-lang/crates.io-index"5266checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"5271checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"526752725268[[package]]5273[[package]]5269name = "opal-runtime"5274name = "opal-runtime"5270version = "0.9.33"5275version = "0.9.36"5271dependencies = [5276dependencies = [5272 "app-promotion-rpc",5277 "app-promotion-rpc",5273 "cumulus-pallet-aura-ext",5278 "cumulus-pallet-aura-ext",5426[[package]]5431[[package]]5427name = "orml-tokens"5432name = "orml-tokens"5428version = "0.4.1-dev"5433version = "0.4.1-dev"5429source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.33#0256c9e9365cebd297e8b0c9f639d068c24b5af0"5434source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=feature/polkadot-v0.9.36#3f70b9adb6c0599db7b8688abb49d0d459634b68"5430dependencies = [5435dependencies = [5431 "frame-support",5436 "frame-support",5432 "frame-system",5437 "frame-system",5441[[package]]5446[[package]]5442name = "orml-traits"5447name = "orml-traits"5443version = "0.4.1-dev"5448version = "0.4.1-dev"5444source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.33#0256c9e9365cebd297e8b0c9f639d068c24b5af0"5449source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=feature/polkadot-v0.9.36#3f70b9adb6c0599db7b8688abb49d0d459634b68"5445dependencies = [5450dependencies = [5446 "frame-support",5451 "frame-support",5447 "impl-trait-for-tuples",5452 "impl-trait-for-tuples",5459[[package]]5464[[package]]5460name = "orml-utilities"5465name = "orml-utilities"5461version = "0.4.1-dev"5466version = "0.4.1-dev"5462source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.33#0256c9e9365cebd297e8b0c9f639d068c24b5af0"5467source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=feature/polkadot-v0.9.36#3f70b9adb6c0599db7b8688abb49d0d459634b68"5463dependencies = [5468dependencies = [5464 "frame-support",5469 "frame-support",5465 "parity-scale-codec 3.2.1",5470 "parity-scale-codec 3.2.1",5473[[package]]5478[[package]]5474name = "orml-vesting"5479name = "orml-vesting"5475version = "0.4.1-dev"5480version = "0.4.1-dev"5476source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.33#0256c9e9365cebd297e8b0c9f639d068c24b5af0"5481source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=feature/polkadot-v0.9.36#3f70b9adb6c0599db7b8688abb49d0d459634b68"5477dependencies = [5482dependencies = [5478 "frame-support",5483 "frame-support",5479 "frame-system",5484 "frame-system",5488[[package]]5493[[package]]5489name = "orml-xcm-support"5494name = "orml-xcm-support"5490version = "0.4.1-dev"5495version = "0.4.1-dev"5491source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.33#0256c9e9365cebd297e8b0c9f639d068c24b5af0"5496source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=feature/polkadot-v0.9.36#3f70b9adb6c0599db7b8688abb49d0d459634b68"5492dependencies = [5497dependencies = [5493 "frame-support",5498 "frame-support",5494 "orml-traits",5499 "orml-traits",5502[[package]]5507[[package]]5503name = "orml-xtokens"5508name = "orml-xtokens"5504version = "0.4.1-dev"5509version = "0.4.1-dev"5505source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=polkadot-v0.9.33#0256c9e9365cebd297e8b0c9f639d068c24b5af0"5510source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=feature/polkadot-v0.9.36#3f70b9adb6c0599db7b8688abb49d0d459634b68"5506dependencies = [5511dependencies = [5507 "cumulus-primitives-core",5512 "cumulus-primitives-core",5508 "frame-support",5513 "frame-support",5527checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"5532checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"552855335529[[package]]5534[[package]]5535name = "overload"5536version = "0.1.1"5537source = "registry+https://github.com/rust-lang/crates.io-index"5538checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"55395540[[package]]5541name = "packed_simd_2"5542version = "0.3.8"5543source = "registry+https://github.com/rust-lang/crates.io-index"5544checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"5545dependencies = [5546 "cfg-if",5547 "libm 0.1.4",5548]55495550[[package]]5530name = "pallet-app-promotion"5551name = "pallet-app-promotion"5531version = "0.1.1"5552version = "0.1.1"5532dependencies = [5553dependencies = [5555[[package]]5576[[package]]5556name = "pallet-aura"5577name = "pallet-aura"5557version = "4.0.0-dev"5578version = "4.0.0-dev"5558source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5579source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5559dependencies = [5580dependencies = [5560 "frame-support",5581 "frame-support",5561 "frame-system",5582 "frame-system",5571[[package]]5592[[package]]5572name = "pallet-authority-discovery"5593name = "pallet-authority-discovery"5573version = "4.0.0-dev"5594version = "4.0.0-dev"5574source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5595source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5575dependencies = [5596dependencies = [5576 "frame-support",5597 "frame-support",5577 "frame-system",5598 "frame-system",5587[[package]]5608[[package]]5588name = "pallet-authorship"5609name = "pallet-authorship"5589version = "4.0.0-dev"5610version = "4.0.0-dev"5590source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5611source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5591dependencies = [5612dependencies = [5592 "frame-support",5613 "frame-support",5593 "frame-system",5614 "frame-system",5602[[package]]5623[[package]]5603name = "pallet-babe"5624name = "pallet-babe"5604version = "4.0.0-dev"5625version = "4.0.0-dev"5605source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5626source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5606dependencies = [5627dependencies = [5607 "frame-benchmarking",5628 "frame-benchmarking",5608 "frame-support",5629 "frame-support",5626[[package]]5647[[package]]5627name = "pallet-bags-list"5648name = "pallet-bags-list"5628version = "4.0.0-dev"5649version = "4.0.0-dev"5629source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5650source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5630dependencies = [5651dependencies = [5631 "frame-benchmarking",5652 "frame-benchmarking",5632 "frame-election-provider-support",5653 "frame-election-provider-support",5646[[package]]5667[[package]]5647name = "pallet-balances"5668name = "pallet-balances"5648version = "4.0.0-dev"5669version = "4.0.0-dev"5649source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5670source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5650dependencies = [5671dependencies = [5651 "frame-benchmarking",5672 "frame-benchmarking",5652 "frame-support",5673 "frame-support",5661[[package]]5682[[package]]5662name = "pallet-base-fee"5683name = "pallet-base-fee"5663version = "1.0.0"5684version = "1.0.0"5664source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"5685source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"5665dependencies = [5686dependencies = [5666 "fp-evm",5687 "fp-evm",5667 "frame-support",5688 "frame-support",5676[[package]]5697[[package]]5677name = "pallet-beefy"5698name = "pallet-beefy"5678version = "4.0.0-dev"5699version = "4.0.0-dev"5679source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5700source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5680dependencies = [5701dependencies = [5681 "beefy-primitives",5682 "frame-support",5702 "frame-support",5683 "frame-system",5703 "frame-system",5684 "pallet-session",5704 "pallet-session",5685 "parity-scale-codec 3.2.1",5705 "parity-scale-codec 3.2.1",5686 "scale-info",5706 "scale-info",5687 "serde",5707 "serde",5708 "sp-beefy",5688 "sp-runtime",5709 "sp-runtime",5689 "sp-std",5710 "sp-std",5690]5711]569157125692[[package]]5713[[package]]5693name = "pallet-beefy-mmr"5714name = "pallet-beefy-mmr"5694version = "4.0.0-dev"5715version = "4.0.0-dev"5695source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5716source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5696dependencies = [5717dependencies = [5697 "array-bytes",5718 "array-bytes 4.2.0",5698 "beefy-merkle-tree",5719 "beefy-merkle-tree",5699 "beefy-primitives",5700 "frame-support",5720 "frame-support",5701 "frame-system",5721 "frame-system",5702 "log",5722 "log",5706 "parity-scale-codec 3.2.1",5726 "parity-scale-codec 3.2.1",5707 "scale-info",5727 "scale-info",5708 "serde",5728 "serde",5729 "sp-beefy",5709 "sp-core",5730 "sp-core",5710 "sp-io",5731 "sp-io",5711 "sp-runtime",5732 "sp-runtime",5715[[package]]5736[[package]]5716name = "pallet-bounties"5737name = "pallet-bounties"5717version = "4.0.0-dev"5738version = "4.0.0-dev"5718source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5739source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5719dependencies = [5740dependencies = [5720 "frame-benchmarking",5741 "frame-benchmarking",5721 "frame-support",5742 "frame-support",5733[[package]]5754[[package]]5734name = "pallet-child-bounties"5755name = "pallet-child-bounties"5735version = "4.0.0-dev"5756version = "4.0.0-dev"5736source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5757source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5737dependencies = [5758dependencies = [5738 "frame-benchmarking",5759 "frame-benchmarking",5739 "frame-support",5760 "frame-support",5752[[package]]5773[[package]]5753name = "pallet-collective"5774name = "pallet-collective"5754version = "4.0.0-dev"5775version = "4.0.0-dev"5755source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5776source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5756dependencies = [5777dependencies = [5757 "frame-benchmarking",5778 "frame-benchmarking",5758 "frame-support",5779 "frame-support",5807[[package]]5828[[package]]5808name = "pallet-conviction-voting"5829name = "pallet-conviction-voting"5809version = "4.0.0-dev"5830version = "4.0.0-dev"5810source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5831source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5811dependencies = [5832dependencies = [5812 "assert_matches",5833 "assert_matches",5813 "frame-benchmarking",5834 "frame-benchmarking",5824[[package]]5845[[package]]5825name = "pallet-democracy"5846name = "pallet-democracy"5826version = "4.0.0-dev"5847version = "4.0.0-dev"5827source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5848source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5828dependencies = [5849dependencies = [5829 "frame-benchmarking",5850 "frame-benchmarking",5830 "frame-support",5851 "frame-support",5842[[package]]5863[[package]]5843name = "pallet-election-provider-multi-phase"5864name = "pallet-election-provider-multi-phase"5844version = "4.0.0-dev"5865version = "4.0.0-dev"5845source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5866source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5846dependencies = [5867dependencies = [5847 "frame-benchmarking",5868 "frame-benchmarking",5848 "frame-election-provider-support",5869 "frame-election-provider-support",5866[[package]]5887[[package]]5867name = "pallet-election-provider-support-benchmarking"5888name = "pallet-election-provider-support-benchmarking"5868version = "4.0.0-dev"5889version = "4.0.0-dev"5869source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5890source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5870dependencies = [5891dependencies = [5871 "frame-benchmarking",5892 "frame-benchmarking",5872 "frame-election-provider-support",5893 "frame-election-provider-support",5879[[package]]5900[[package]]5880name = "pallet-elections-phragmen"5901name = "pallet-elections-phragmen"5881version = "5.0.0-dev"5902version = "5.0.0-dev"5882source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"5903source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"5883dependencies = [5904dependencies = [5884 "frame-benchmarking",5905 "frame-benchmarking",5885 "frame-support",5906 "frame-support",5897[[package]]5918[[package]]5898name = "pallet-ethereum"5919name = "pallet-ethereum"5899version = "4.0.0-dev"5920version = "4.0.0-dev"5900source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"5921source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"5901dependencies = [5922dependencies = [5902 "ethereum 0.14.0",5923 "ethereum 0.14.0",5903 "ethereum-types 0.14.1",5924 "ethereum-types 0.14.1",5925[[package]]5946[[package]]5926name = "pallet-evm"5947name = "pallet-evm"5927version = "6.0.0-dev"5948version = "6.0.0-dev"5928source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"5949source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"5929dependencies = [5950dependencies = [5930 "environmental",5951 "environmental",5931 "evm",5952 "evm",6011[[package]]6032[[package]]6012name = "pallet-evm-precompile-simple"6033name = "pallet-evm-precompile-simple"6013version = "2.0.0-dev"6034version = "2.0.0-dev"6014source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.33#c37ced433a29baad45899d6ab364fe437f97570e"6035source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#db60b911813df1d82e60e0de7f3dfa290e60d2f0"6015dependencies = [6036dependencies = [6016 "fp-evm",6037 "fp-evm",6017 "ripemd",6038 "ripemd",6040[[package]]6061[[package]]6041name = "pallet-fast-unstake"6062name = "pallet-fast-unstake"6042version = "4.0.0-dev"6063version = "4.0.0-dev"6043source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6064source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6044dependencies = [6065dependencies = [6045 "frame-benchmarking",6066 "frame-benchmarking",6046 "frame-election-provider-support",6067 "frame-election-provider-support",6105]6126]610661276107[[package]]6128[[package]]6108name = "pallet-gilt"6109version = "4.0.0-dev"6110source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6111dependencies = [6112 "frame-benchmarking",6113 "frame-support",6114 "frame-system",6115 "parity-scale-codec 3.2.1",6116 "scale-info",6117 "sp-arithmetic",6118 "sp-runtime",6119 "sp-std",6120]61216122[[package]]6123name = "pallet-grandpa"6129name = "pallet-grandpa"6124version = "4.0.0-dev"6130version = "4.0.0-dev"6125source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6131source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6126dependencies = [6132dependencies = [6127 "frame-benchmarking",6133 "frame-benchmarking",6128 "frame-support",6134 "frame-support",6145[[package]]6151[[package]]6146name = "pallet-identity"6152name = "pallet-identity"6147version = "4.0.0-dev"6153version = "4.0.0-dev"6148source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6154source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6149dependencies = [6155dependencies = [6150 "enumflags2",6156 "enumflags2",6151 "frame-benchmarking",6157 "frame-benchmarking",6161[[package]]6167[[package]]6162name = "pallet-im-online"6168name = "pallet-im-online"6163version = "4.0.0-dev"6169version = "4.0.0-dev"6164source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6170source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6165dependencies = [6171dependencies = [6166 "frame-benchmarking",6172 "frame-benchmarking",6167 "frame-support",6173 "frame-support",6181[[package]]6187[[package]]6182name = "pallet-indices"6188name = "pallet-indices"6183version = "4.0.0-dev"6189version = "4.0.0-dev"6184source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6190source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6185dependencies = [6191dependencies = [6186 "frame-benchmarking",6192 "frame-benchmarking",6187 "frame-support",6193 "frame-support",6229[[package]]6235[[package]]6230name = "pallet-membership"6236name = "pallet-membership"6231version = "4.0.0-dev"6237version = "4.0.0-dev"6232source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6238source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6233dependencies = [6239dependencies = [6234 "frame-benchmarking",6240 "frame-benchmarking",6235 "frame-support",6241 "frame-support",6246[[package]]6252[[package]]6247name = "pallet-mmr"6253name = "pallet-mmr"6248version = "4.0.0-dev"6254version = "4.0.0-dev"6249source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6255source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6250dependencies = [6256dependencies = [6251 "ckb-merkle-mountain-range",6252 "frame-benchmarking",6257 "frame-benchmarking",6253 "frame-support",6258 "frame-support",6254 "frame-system",6259 "frame-system",6262]6267]626362686264[[package]]6269[[package]]6265name = "pallet-mmr-rpc"6270name = "pallet-multisig"6266version = "3.0.0"6271version = "4.0.0-dev"6267source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6272source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6268dependencies = [6273dependencies = [6269 "anyhow",6274 "frame-benchmarking",6270 "jsonrpsee",6275 "frame-support",6276 "frame-system",6277 "log",6271 "parity-scale-codec 3.2.1",6278 "parity-scale-codec 3.2.1",6272 "serde",6279 "scale-info",6273 "sp-api",6274 "sp-blockchain",6280 "sp-io",6275 "sp-core",6276 "sp-mmr-primitives",6277 "sp-runtime",6281 "sp-runtime",6282 "sp-std",6278]6283]627962846280[[package]]6285[[package]]6281name = "pallet-multisig"6286name = "pallet-nis"6282version = "4.0.0-dev"6287version = "4.0.0-dev"6283source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6288source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6284dependencies = [6289dependencies = [6285 "frame-benchmarking",6290 "frame-benchmarking",6286 "frame-support",6291 "frame-support",6287 "frame-system",6292 "frame-system",6288 "log",6289 "parity-scale-codec 3.2.1",6293 "parity-scale-codec 3.2.1",6290 "scale-info",6294 "scale-info",6291 "sp-io",6295 "sp-arithmetic",6296 "sp-core",6292 "sp-runtime",6297 "sp-runtime",6293 "sp-std",6298 "sp-std",6294]6299]629563006296[[package]]6301[[package]]6297name = "pallet-nomination-pools"6302name = "pallet-nomination-pools"6298version = "1.0.0"6303version = "1.0.0"6299source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6304source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6300dependencies = [6305dependencies = [6301 "frame-support",6306 "frame-support",6302 "frame-system",6307 "frame-system",6313[[package]]6318[[package]]6314name = "pallet-nomination-pools-benchmarking"6319name = "pallet-nomination-pools-benchmarking"6315version = "1.0.0"6320version = "1.0.0"6316source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6321source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6317dependencies = [6322dependencies = [6318 "frame-benchmarking",6323 "frame-benchmarking",6319 "frame-election-provider-support",6324 "frame-election-provider-support",6333[[package]]6338[[package]]6334name = "pallet-nomination-pools-runtime-api"6339name = "pallet-nomination-pools-runtime-api"6335version = "1.0.0-dev"6340version = "1.0.0-dev"6336source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6341source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6337dependencies = [6342dependencies = [6338 "parity-scale-codec 3.2.1",6343 "parity-scale-codec 3.2.1",6339 "sp-api",6344 "sp-api",6365[[package]]6370[[package]]6366name = "pallet-offences"6371name = "pallet-offences"6367version = "4.0.0-dev"6372version = "4.0.0-dev"6368source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6373source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6369dependencies = [6374dependencies = [6370 "frame-support",6375 "frame-support",6371 "frame-system",6376 "frame-system",6382[[package]]6387[[package]]6383name = "pallet-offences-benchmarking"6388name = "pallet-offences-benchmarking"6384version = "4.0.0-dev"6389version = "4.0.0-dev"6385source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6390source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6386dependencies = [6391dependencies = [6387 "frame-benchmarking",6392 "frame-benchmarking",6388 "frame-election-provider-support",6393 "frame-election-provider-support",6405[[package]]6410[[package]]6406name = "pallet-preimage"6411name = "pallet-preimage"6407version = "4.0.0-dev"6412version = "4.0.0-dev"6408source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6413source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6409dependencies = [6414dependencies = [6410 "frame-benchmarking",6415 "frame-benchmarking",6411 "frame-support",6416 "frame-support",6422[[package]]6427[[package]]6423name = "pallet-proxy"6428name = "pallet-proxy"6424version = "4.0.0-dev"6429version = "4.0.0-dev"6425source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6430source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6426dependencies = [6431dependencies = [6427 "frame-benchmarking",6432 "frame-benchmarking",6428 "frame-support",6433 "frame-support",6437[[package]]6442[[package]]6438name = "pallet-randomness-collective-flip"6443name = "pallet-randomness-collective-flip"6439version = "4.0.0-dev"6444version = "4.0.0-dev"6440source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6445source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6441dependencies = [6446dependencies = [6442 "frame-support",6447 "frame-support",6443 "frame-system",6448 "frame-system",6451[[package]]6456[[package]]6452name = "pallet-ranked-collective"6457name = "pallet-ranked-collective"6453version = "4.0.0-dev"6458version = "4.0.0-dev"6454source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6459source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6455dependencies = [6460dependencies = [6456 "frame-benchmarking",6461 "frame-benchmarking",6457 "frame-support",6462 "frame-support",6469[[package]]6474[[package]]6470name = "pallet-recovery"6475name = "pallet-recovery"6471version = "4.0.0-dev"6476version = "4.0.0-dev"6472source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6477source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6473dependencies = [6478dependencies = [6474 "frame-benchmarking",6479 "frame-benchmarking",6475 "frame-support",6480 "frame-support",6484[[package]]6489[[package]]6485name = "pallet-referenda"6490name = "pallet-referenda"6486version = "4.0.0-dev"6491version = "4.0.0-dev"6487source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6492source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6488dependencies = [6493dependencies = [6489 "assert_matches",6494 "assert_matches",6490 "frame-benchmarking",6495 "frame-benchmarking",6491 "frame-support",6496 "frame-support",6492 "frame-system",6497 "frame-system",6498 "log",6493 "parity-scale-codec 3.2.1",6499 "parity-scale-codec 3.2.1",6494 "scale-info",6500 "scale-info",6495 "serde",6501 "serde",6566[[package]]6572[[package]]6567name = "pallet-scheduler"6573name = "pallet-scheduler"6568version = "4.0.0-dev"6574version = "4.0.0-dev"6569source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6575source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6570dependencies = [6576dependencies = [6571 "frame-benchmarking",6577 "frame-benchmarking",6572 "frame-support",6578 "frame-support",6577 "sp-io",6583 "sp-io",6578 "sp-runtime",6584 "sp-runtime",6579 "sp-std",6585 "sp-std",6586 "sp-weights",6580]6587]658165886582[[package]]6589[[package]]6583name = "pallet-session"6590name = "pallet-session"6584version = "4.0.0-dev"6591version = "4.0.0-dev"6585source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6592source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6586dependencies = [6593dependencies = [6587 "frame-support",6594 "frame-support",6588 "frame-system",6595 "frame-system",6603[[package]]6610[[package]]6604name = "pallet-session-benchmarking"6611name = "pallet-session-benchmarking"6605version = "4.0.0-dev"6612version = "4.0.0-dev"6606source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6613source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6607dependencies = [6614dependencies = [6608 "frame-benchmarking",6615 "frame-benchmarking",6609 "frame-support",6616 "frame-support",6619[[package]]6626[[package]]6620name = "pallet-society"6627name = "pallet-society"6621version = "4.0.0-dev"6628version = "4.0.0-dev"6622source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6629source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6623dependencies = [6630dependencies = [6624 "frame-support",6631 "frame-support",6625 "frame-system",6632 "frame-system",6633[[package]]6640[[package]]6634name = "pallet-staking"6641name = "pallet-staking"6635version = "4.0.0-dev"6642version = "4.0.0-dev"6636source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6643source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6637dependencies = [6644dependencies = [6638 "frame-benchmarking",6645 "frame-benchmarking",6639 "frame-election-provider-support",6646 "frame-election-provider-support",6656[[package]]6663[[package]]6657name = "pallet-staking-reward-curve"6664name = "pallet-staking-reward-curve"6658version = "4.0.0-dev"6665version = "4.0.0-dev"6659source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6666source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6660dependencies = [6667dependencies = [6661 "proc-macro-crate",6668 "proc-macro-crate",6662 "proc-macro2",6669 "proc-macro2",6667[[package]]6674[[package]]6668name = "pallet-staking-reward-fn"6675name = "pallet-staking-reward-fn"6669version = "4.0.0-dev"6676version = "4.0.0-dev"6670source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6677source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6671dependencies = [6678dependencies = [6672 "log",6679 "log",6673 "sp-arithmetic",6680 "sp-arithmetic",6676[[package]]6683[[package]]6677name = "pallet-state-trie-migration"6684name = "pallet-state-trie-migration"6678version = "4.0.0-dev"6685version = "4.0.0-dev"6679source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6686source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6680dependencies = [6687dependencies = [6681 "frame-benchmarking",6688 "frame-benchmarking",6682 "frame-support",6689 "frame-support",6708[[package]]6715[[package]]6709name = "pallet-sudo"6716name = "pallet-sudo"6710version = "4.0.0-dev"6717version = "4.0.0-dev"6711source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6718source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6712dependencies = [6719dependencies = [6713 "frame-support",6720 "frame-support",6714 "frame-system",6721 "frame-system",6722[[package]]6729[[package]]6723name = "pallet-template-transaction-payment"6730name = "pallet-template-transaction-payment"6724version = "3.0.0"6731version = "3.0.0"6725source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.33#994d4a8dc6cc630b73d19f97315272a8795317e7"6732source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.36#55943b982e9b0b80465885f31f76db3dba91dac4"6726dependencies = [6733dependencies = [6727 "frame-benchmarking",6734 "frame-benchmarking",6728 "frame-support",6735 "frame-support",6754[[package]]6761[[package]]6755name = "pallet-timestamp"6762name = "pallet-timestamp"6756version = "4.0.0-dev"6763version = "4.0.0-dev"6757source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6764source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6758dependencies = [6765dependencies = [6759 "frame-benchmarking",6766 "frame-benchmarking",6760 "frame-support",6767 "frame-support",6772[[package]]6779[[package]]6773name = "pallet-tips"6780name = "pallet-tips"6774version = "4.0.0-dev"6781version = "4.0.0-dev"6775source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6782source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6776dependencies = [6783dependencies = [6777 "frame-benchmarking",6784 "frame-benchmarking",6778 "frame-support",6785 "frame-support",6791[[package]]6798[[package]]6792name = "pallet-transaction-payment"6799name = "pallet-transaction-payment"6793version = "4.0.0-dev"6800version = "4.0.0-dev"6794source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6801source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6795dependencies = [6802dependencies = [6796 "frame-support",6803 "frame-support",6797 "frame-system",6804 "frame-system",6807[[package]]6814[[package]]6808name = "pallet-transaction-payment-rpc"6815name = "pallet-transaction-payment-rpc"6809version = "4.0.0-dev"6816version = "4.0.0-dev"6810source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6817source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6811dependencies = [6818dependencies = [6812 "jsonrpsee",6819 "jsonrpsee",6813 "pallet-transaction-payment-rpc-runtime-api",6820 "pallet-transaction-payment-rpc-runtime-api",6823[[package]]6830[[package]]6824name = "pallet-transaction-payment-rpc-runtime-api"6831name = "pallet-transaction-payment-rpc-runtime-api"6825version = "4.0.0-dev"6832version = "4.0.0-dev"6826source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6833source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6827dependencies = [6834dependencies = [6828 "pallet-transaction-payment",6835 "pallet-transaction-payment",6829 "parity-scale-codec 3.2.1",6836 "parity-scale-codec 3.2.1",6835[[package]]6842[[package]]6836name = "pallet-treasury"6843name = "pallet-treasury"6837version = "4.0.0-dev"6844version = "4.0.0-dev"6838source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6845source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6839dependencies = [6846dependencies = [6840 "frame-benchmarking",6847 "frame-benchmarking",6841 "frame-support",6848 "frame-support",6894[[package]]6901[[package]]6895name = "pallet-utility"6902name = "pallet-utility"6896version = "4.0.0-dev"6903version = "4.0.0-dev"6897source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6904source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6898dependencies = [6905dependencies = [6899 "frame-benchmarking",6906 "frame-benchmarking",6900 "frame-support",6907 "frame-support",6910[[package]]6917[[package]]6911name = "pallet-vesting"6918name = "pallet-vesting"6912version = "4.0.0-dev"6919version = "4.0.0-dev"6913source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6920source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6914dependencies = [6921dependencies = [6915 "frame-benchmarking",6922 "frame-benchmarking",6916 "frame-support",6923 "frame-support",6925[[package]]6932[[package]]6926name = "pallet-whitelist"6933name = "pallet-whitelist"6927version = "4.0.0-dev"6934version = "4.0.0-dev"6928source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"6935source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"6929dependencies = [6936dependencies = [6930 "frame-benchmarking",6937 "frame-benchmarking",6931 "frame-support",6938 "frame-support",693969466940[[package]]6947[[package]]6941name = "pallet-xcm"6948name = "pallet-xcm"6942version = "0.9.33"6949version = "0.9.36"6943source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"6950source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"6944dependencies = [6951dependencies = [6945 "frame-support",6952 "frame-support",6946 "frame-system",6953 "frame-system",695769646958[[package]]6965[[package]]6959name = "pallet-xcm-benchmarks"6966name = "pallet-xcm-benchmarks"6960version = "0.9.33"6967version = "0.9.36"6961source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"6968source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"6962dependencies = [6969dependencies = [6963 "frame-benchmarking",6970 "frame-benchmarking",6964 "frame-support",6971 "frame-support",6975[[package]]6982[[package]]6976name = "parachain-info"6983name = "parachain-info"6977version = "0.1.0"6984version = "0.1.0"6978source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.33#27721d794ee63aae42317a7eeda21595dd3200d9"6985source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.36#a4e825c9500acab6cc3deccffea7b01350f12ed1"6979dependencies = [6986dependencies = [6980 "cumulus-primitives-core",6987 "cumulus-primitives-core",6981 "frame-support",6988 "frame-support",698669936987[[package]]6994[[package]]6988name = "parity-db"6995name = "parity-db"6989version = "0.3.17"6990source = "registry+https://github.com/rust-lang/crates.io-index"6991checksum = "2c8fdb726a43661fa54b43e7114e6b88b2289cae388eb3ad766d9d1754d83fce"6992dependencies = [6993 "blake2-rfc",6994 "crc32fast",6995 "fs2",6996 "hex",6997 "libc",6998 "log",6999 "lz4",7000 "memmap2",7001 "parking_lot 0.12.1",7002 "rand 0.8.5",7003 "snap",7004]70057006[[package]]7007name = "parity-db"7008version = "0.4.2"6996version = "0.4.2"7009source = "registry+https://github.com/rust-lang/crates.io-index"6997source = "registry+https://github.com/rust-lang/crates.io-index"7010checksum = "3a7511a0bec4a336b5929999d02b560d2439c993cccf98c26481484e811adc43"6998checksum = "3a7511a0bec4a336b5929999d02b560d2439c993cccf98c26481484e811adc43"7082checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f"7070checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f"708370717084[[package]]7072[[package]]7085name = "parity-util-mem"7086version = "0.12.0"7087source = "registry+https://github.com/rust-lang/crates.io-index"7088checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8"7089dependencies = [7090 "cfg-if",7091 "ethereum-types 0.14.1",7092 "hashbrown",7093 "impl-trait-for-tuples",7094 "lru",7095 "parity-util-mem-derive",7096 "parking_lot 0.12.1",7097 "primitive-types 0.12.1",7098 "smallvec",7099 "winapi",7100]71017102[[package]]7103name = "parity-util-mem-derive"7104version = "0.1.0"7105source = "registry+https://github.com/rust-lang/crates.io-index"7106checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2"7107dependencies = [7108 "proc-macro2",7109 "syn",7110 "synstructure",7111]71127113[[package]]7114name = "parity-wasm"7073name = "parity-wasm"7115version = "0.45.0"7074version = "0.45.0"7116source = "registry+https://github.com/rust-lang/crates.io-index"7075source = "registry+https://github.com/rust-lang/crates.io-index"7130dependencies = [7089dependencies = [7131 "instant",7090 "instant",7132 "lock_api",7091 "lock_api",7133 "parking_lot_core 0.8.5",7092 "parking_lot_core 0.8.6",7134]7093]713570947136[[package]]7095[[package]]714571047146[[package]]7105[[package]]7147name = "parking_lot_core"7106name = "parking_lot_core"7148version = "0.8.5"7107version = "0.8.6"7149source = "registry+https://github.com/rust-lang/crates.io-index"7108source = "registry+https://github.com/rust-lang/crates.io-index"7150checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"7109checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"7151dependencies = [7110dependencies = [7152 "cfg-if",7111 "cfg-if",7153 "instant",7112 "instant",717271317173[[package]]7132[[package]]7174name = "paste"7133name = "paste"7175version = "1.0.9"7134version = "1.0.11"7176source = "registry+https://github.com/rust-lang/crates.io-index"7135source = "registry+https://github.com/rust-lang/crates.io-index"7177checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1"7136checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"717871377179[[package]]7138[[package]]7180name = "pbkdf2"7139name = "pbkdf2"7321checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94"7280checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94"732272817323[[package]]7282[[package]]7283name = "platforms"7284version = "3.0.2"7285source = "registry+https://github.com/rust-lang/crates.io-index"7286checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"72877288[[package]]7324name = "polkadot-approval-distribution"7289name = "polkadot-approval-distribution"7325version = "0.9.33"7290version = "0.9.36"7326source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7291source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7327dependencies = [7292dependencies = [7328 "futures 0.3.25",7293 "futures 0.3.25",7329 "polkadot-node-network-protocol",7294 "polkadot-node-network-protocol",733773027338[[package]]7303[[package]]7339name = "polkadot-availability-bitfield-distribution"7304name = "polkadot-availability-bitfield-distribution"7340version = "0.9.33"7305version = "0.9.36"7341source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7306source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7342dependencies = [7307dependencies = [7343 "futures 0.3.25",7308 "futures 0.3.25",7344 "polkadot-node-network-protocol",7309 "polkadot-node-network-protocol",735173167352[[package]]7317[[package]]7353name = "polkadot-availability-distribution"7318name = "polkadot-availability-distribution"7354version = "0.9.33"7319version = "0.9.36"7355source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7320source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7356dependencies = [7321dependencies = [7357 "derive_more",7322 "derive_more",7358 "fatality",7323 "fatality",737473397375[[package]]7340[[package]]7376name = "polkadot-availability-recovery"7341name = "polkadot-availability-recovery"7377version = "0.9.33"7342version = "0.9.36"7378source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7343source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7379dependencies = [7344dependencies = [7380 "fatality",7345 "fatality",7381 "futures 0.3.25",7346 "futures 0.3.25",739573607396[[package]]7361[[package]]7397name = "polkadot-cli"7362name = "polkadot-cli"7398version = "0.9.33"7363version = "0.9.36"7399source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7364source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7400dependencies = [7365dependencies = [7401 "clap",7366 "clap",7402 "frame-benchmarking-cli",7367 "frame-benchmarking-cli",7408 "polkadot-performance-test",7373 "polkadot-performance-test",7409 "polkadot-service",7374 "polkadot-service",7410 "sc-cli",7375 "sc-cli",7376 "sc-executor",7411 "sc-service",7377 "sc-service",7412 "sc-sysinfo",7378 "sc-sysinfo",7413 "sc-tracing",7379 "sc-tracing",7414 "sp-core",7380 "sp-core",7381 "sp-io",7415 "sp-keyring",7382 "sp-keyring",7416 "sp-trie",7417 "substrate-build-script-utils",7383 "substrate-build-script-utils",7418 "thiserror",7384 "thiserror",7419 "try-runtime-cli",7385 "try-runtime-cli",7420]7386]742173877422[[package]]7388[[package]]7423name = "polkadot-client"7389name = "polkadot-client"7424version = "0.9.33"7390version = "0.9.36"7425source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7391source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7426dependencies = [7392dependencies = [7427 "beefy-primitives",7393 "async-trait",7428 "frame-benchmarking",7394 "frame-benchmarking",7429 "frame-benchmarking-cli",7395 "frame-benchmarking-cli",7430 "frame-system",7396 "frame-system",7431 "frame-system-rpc-runtime-api",7397 "frame-system-rpc-runtime-api",7398 "futures 0.3.25",7432 "pallet-transaction-payment",7399 "pallet-transaction-payment",7433 "pallet-transaction-payment-rpc-runtime-api",7400 "pallet-transaction-payment-rpc-runtime-api",7434 "polkadot-core-primitives",7401 "polkadot-core-primitives",7442 "sc-service",7409 "sc-service",7443 "sp-api",7410 "sp-api",7444 "sp-authority-discovery",7411 "sp-authority-discovery",7412 "sp-beefy",7445 "sp-block-builder",7413 "sp-block-builder",7446 "sp-blockchain",7414 "sp-blockchain",7447 "sp-consensus",7415 "sp-consensus",746174297462[[package]]7430[[package]]7463name = "polkadot-collator-protocol"7431name = "polkadot-collator-protocol"7464version = "0.9.33"7432version = "0.9.36"7465source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7433source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7466dependencies = [7434dependencies = [7467 "always-assert",7435 "always-assert",7468 "bitvec 1.0.1",7436 "bitvec 1.0.1",748374517484[[package]]7452[[package]]7485name = "polkadot-core-primitives"7453name = "polkadot-core-primitives"7486version = "0.9.33"7454version = "0.9.36"7487source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7455source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7488dependencies = [7456dependencies = [7489 "parity-scale-codec 3.2.1",7457 "parity-scale-codec 3.2.1",7490 "parity-util-mem",7491 "scale-info",7458 "scale-info",7492 "sp-core",7459 "sp-core",7493 "sp-runtime",7460 "sp-runtime",749674637497[[package]]7464[[package]]7498name = "polkadot-dispute-distribution"7465name = "polkadot-dispute-distribution"7499version = "0.9.33"7466version = "0.9.36"7500source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7467source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7501dependencies = [7468dependencies = [7502 "derive_more",7469 "derive_more",7503 "fatality",7470 "fatality",752174887522[[package]]7489[[package]]7523name = "polkadot-erasure-coding"7490name = "polkadot-erasure-coding"7524version = "0.9.33"7491version = "0.9.36"7525source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7492source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7526dependencies = [7493dependencies = [7527 "parity-scale-codec 3.2.1",7494 "parity-scale-codec 3.2.1",7528 "polkadot-node-primitives",7495 "polkadot-node-primitives",753575027536[[package]]7503[[package]]7537name = "polkadot-gossip-support"7504name = "polkadot-gossip-support"7538version = "0.9.33"7505version = "0.9.36"7539source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7506source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7540dependencies = [7507dependencies = [7541 "futures 0.3.25",7508 "futures 0.3.25",7542 "futures-timer",7509 "futures-timer",755575227556[[package]]7523[[package]]7557name = "polkadot-network-bridge"7524name = "polkadot-network-bridge"7558version = "0.9.33"7525version = "0.9.36"7559source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7526source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7560dependencies = [7527dependencies = [7561 "always-assert",7528 "always-assert",7562 "async-trait",7529 "async-trait",757975467580[[package]]7547[[package]]7581name = "polkadot-node-collation-generation"7548name = "polkadot-node-collation-generation"7582version = "0.9.33"7549version = "0.9.36"7583source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7550source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7584dependencies = [7551dependencies = [7585 "futures 0.3.25",7552 "futures 0.3.25",7586 "parity-scale-codec 3.2.1",7553 "parity-scale-codec 3.2.1",759775647598[[package]]7565[[package]]7599name = "polkadot-node-core-approval-voting"7566name = "polkadot-node-core-approval-voting"7600version = "0.9.33"7567version = "0.9.36"7601source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7568source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7602dependencies = [7569dependencies = [7603 "bitvec 1.0.1",7570 "bitvec 1.0.1",7604 "derive_more",7571 "derive_more",762675937627[[package]]7594[[package]]7628name = "polkadot-node-core-av-store"7595name = "polkadot-node-core-av-store"7629version = "0.9.33"7596version = "0.9.36"7630source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7597source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7631dependencies = [7598dependencies = [7632 "bitvec 1.0.1",7599 "bitvec 1.0.1",7633 "futures 0.3.25",7600 "futures 0.3.25",764676137647[[package]]7614[[package]]7648name = "polkadot-node-core-backing"7615name = "polkadot-node-core-backing"7649version = "0.9.33"7616version = "0.9.36"7650source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7617source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7651dependencies = [7618dependencies = [7652 "bitvec 1.0.1",7619 "bitvec 1.0.1",7653 "fatality",7620 "fatality",766576327666[[package]]7633[[package]]7667name = "polkadot-node-core-bitfield-signing"7634name = "polkadot-node-core-bitfield-signing"7668version = "0.9.33"7635version = "0.9.36"7669source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7636source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7670dependencies = [7637dependencies = [7671 "futures 0.3.25",7638 "futures 0.3.25",7672 "polkadot-node-subsystem",7639 "polkadot-node-subsystem",768076477681[[package]]7648[[package]]7682name = "polkadot-node-core-candidate-validation"7649name = "polkadot-node-core-candidate-validation"7683version = "0.9.33"7650version = "0.9.36"7684source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7651source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7685dependencies = [7652dependencies = [7686 "async-trait",7653 "async-trait",7687 "futures 0.3.25",7654 "futures 0.3.25",769976667700[[package]]7667[[package]]7701name = "polkadot-node-core-chain-api"7668name = "polkadot-node-core-chain-api"7702version = "0.9.33"7669version = "0.9.36"7703source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7670source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7704dependencies = [7671dependencies = [7705 "futures 0.3.25",7672 "futures 0.3.25",7706 "polkadot-node-subsystem",7673 "polkadot-node-subsystem",771476817715[[package]]7682[[package]]7716name = "polkadot-node-core-chain-selection"7683name = "polkadot-node-core-chain-selection"7717version = "0.9.33"7684version = "0.9.36"7718source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7685source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7719dependencies = [7686dependencies = [7720 "futures 0.3.25",7687 "futures 0.3.25",7721 "futures-timer",7688 "futures-timer",773176987732[[package]]7699[[package]]7733name = "polkadot-node-core-dispute-coordinator"7700name = "polkadot-node-core-dispute-coordinator"7734version = "0.9.33"7701version = "0.9.36"7735source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7702source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7736dependencies = [7703dependencies = [7737 "fatality",7704 "fatality",7738 "futures 0.3.25",7705 "futures 0.3.25",775077177751[[package]]7718[[package]]7752name = "polkadot-node-core-parachains-inherent"7719name = "polkadot-node-core-parachains-inherent"7753version = "0.9.33"7720version = "0.9.36"7754source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7721source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7755dependencies = [7722dependencies = [7756 "async-trait",7723 "async-trait",7757 "futures 0.3.25",7724 "futures 0.3.25",7758 "futures-timer",7725 "futures-timer",7759 "polkadot-node-subsystem",7726 "polkadot-node-subsystem",7727 "polkadot-overseer",7760 "polkadot-primitives",7728 "polkadot-primitives",7761 "sp-blockchain",7729 "sp-blockchain",7762 "sp-inherents",7730 "sp-inherents",776777357768[[package]]7736[[package]]7769name = "polkadot-node-core-provisioner"7737name = "polkadot-node-core-provisioner"7770version = "0.9.33"7738version = "0.9.36"7771source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7739source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7772dependencies = [7740dependencies = [7773 "bitvec 1.0.1",7741 "bitvec 1.0.1",7774 "fatality",7742 "fatality",778577537786[[package]]7754[[package]]7787name = "polkadot-node-core-pvf"7755name = "polkadot-node-core-pvf"7788version = "0.9.33"7756version = "0.9.36"7789source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7757source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7790dependencies = [7758dependencies = [7791 "always-assert",7759 "always-assert",7792 "assert_matches",7760 "assert_matches",7793 "async-process",7761 "async-process",7794 "async-std",7762 "async-std",7763 "cpu-time",7795 "futures 0.3.25",7764 "futures 0.3.25",7796 "futures-timer",7765 "futures-timer",7797 "parity-scale-codec 3.2.1",7766 "parity-scale-codec 3.2.1",781777867818[[package]]7787[[package]]7819name = "polkadot-node-core-pvf-checker"7788name = "polkadot-node-core-pvf-checker"7820version = "0.9.33"7789version = "0.9.36"7821source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7790source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7822dependencies = [7791dependencies = [7823 "futures 0.3.25",7792 "futures 0.3.25",7824 "polkadot-node-primitives",7793 "polkadot-node-primitives",783378027834[[package]]7803[[package]]7835name = "polkadot-node-core-runtime-api"7804name = "polkadot-node-core-runtime-api"7836version = "0.9.33"7805version = "0.9.36"7837source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7806source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7838dependencies = [7807dependencies = [7839 "futures 0.3.25",7808 "futures 0.3.25",7840 "memory-lru",7809 "lru",7841 "parity-util-mem",7842 "polkadot-node-subsystem",7810 "polkadot-node-subsystem",7843 "polkadot-node-subsystem-types",7811 "polkadot-node-subsystem-types",7844 "polkadot-node-subsystem-util",7812 "polkadot-node-subsystem-util",784978177850[[package]]7818[[package]]7851name = "polkadot-node-jaeger"7819name = "polkadot-node-jaeger"7852version = "0.9.33"7820version = "0.9.36"7853source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7821source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7854dependencies = [7822dependencies = [7855 "async-std",7856 "lazy_static",7823 "lazy_static",7857 "log",7824 "log",7858 "mick-jaeger",7825 "mick-jaeger",7863 "sc-network",7830 "sc-network",7864 "sp-core",7831 "sp-core",7865 "thiserror",7832 "thiserror",7833 "tokio",7866]7834]786778357868[[package]]7836[[package]]7869name = "polkadot-node-metrics"7837name = "polkadot-node-metrics"7870version = "0.9.33"7838version = "0.9.36"7871source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7839source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7872dependencies = [7840dependencies = [7873 "bs58",7841 "bs58",7874 "futures 0.3.25",7842 "futures 0.3.25",788678547887[[package]]7855[[package]]7888name = "polkadot-node-network-protocol"7856name = "polkadot-node-network-protocol"7889version = "0.9.33"7857version = "0.9.36"7890source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7858source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7891dependencies = [7859dependencies = [7892 "async-trait",7860 "async-trait",7893 "derive_more",7861 "derive_more",790978777910[[package]]7878[[package]]7911name = "polkadot-node-primitives"7879name = "polkadot-node-primitives"7912version = "0.9.33"7880version = "0.9.36"7913source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7881source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7914dependencies = [7882dependencies = [7915 "bounded-vec",7883 "bounded-vec",7916 "futures 0.3.25",7884 "futures 0.3.25",793178997932[[package]]7900[[package]]7933name = "polkadot-node-subsystem"7901name = "polkadot-node-subsystem"7934version = "0.9.33"7902version = "0.9.36"7935source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7903source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7936dependencies = [7904dependencies = [7937 "polkadot-node-jaeger",7905 "polkadot-node-jaeger",7938 "polkadot-node-subsystem-types",7906 "polkadot-node-subsystem-types",794179097942[[package]]7910[[package]]7943name = "polkadot-node-subsystem-types"7911name = "polkadot-node-subsystem-types"7944version = "0.9.33"7912version = "0.9.36"7945source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7913source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7946dependencies = [7914dependencies = [7947 "async-trait",7915 "async-trait",7948 "derive_more",7916 "derive_more",796479327965[[package]]7933[[package]]7966name = "polkadot-node-subsystem-util"7934name = "polkadot-node-subsystem-util"7967version = "0.9.33"7935version = "0.9.36"7968source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7936source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"7969dependencies = [7937dependencies = [7970 "async-trait",7938 "async-trait",7971 "derive_more",7939 "derive_more",7974 "itertools",7942 "itertools",7975 "kvdb",7943 "kvdb",7976 "lru",7944 "lru",7977 "parity-db 0.4.2",7945 "parity-db",7978 "parity-scale-codec 3.2.1",7946 "parity-scale-codec 3.2.1",7979 "parity-util-mem",7980 "parking_lot 0.11.2",7947 "parking_lot 0.11.2",7981 "pin-project",7948 "pin-project",7982 "polkadot-node-jaeger",7949 "polkadot-node-jaeger",799779647998[[package]]7965[[package]]7999name = "polkadot-overseer"7966name = "polkadot-overseer"8000version = "0.9.33"7967version = "0.9.36"8001source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7968source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8002dependencies = [7969dependencies = [8003 "async-trait",7970 "async-trait",8004 "futures 0.3.25",7971 "futures 0.3.25",8005 "futures-timer",7972 "futures-timer",8006 "lru",7973 "lru",8007 "orchestra",7974 "orchestra",8008 "parity-util-mem",8009 "parking_lot 0.12.1",7975 "parking_lot 0.12.1",8010 "polkadot-node-metrics",7976 "polkadot-node-metrics",8011 "polkadot-node-network-protocol",7977 "polkadot-node-network-protocol",8015 "sc-client-api",7981 "sc-client-api",8016 "sp-api",7982 "sp-api",8017 "sp-core",7983 "sp-core",7984 "tikv-jemalloc-ctl",8018 "tracing-gum",7985 "tracing-gum",8019]7986]802079878021[[package]]7988[[package]]8022name = "polkadot-parachain"7989name = "polkadot-parachain"8023version = "0.9.33"7990version = "0.9.36"8024source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"7991source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8025dependencies = [7992dependencies = [8026 "derive_more",7993 "derive_more",8027 "frame-support",7994 "frame-support",8028 "parity-scale-codec 3.2.1",7995 "parity-scale-codec 3.2.1",8029 "parity-util-mem",8030 "polkadot-core-primitives",7996 "polkadot-core-primitives",8031 "scale-info",7997 "scale-info",8032 "serde",7998 "serde",803780038038[[package]]8004[[package]]8039name = "polkadot-performance-test"8005name = "polkadot-performance-test"8040version = "0.9.33"8006version = "0.9.36"8041source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8007source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8042dependencies = [8008dependencies = [8043 "env_logger",8009 "env_logger",8044 "kusama-runtime",8010 "kusama-runtime",805280188053[[package]]8019[[package]]8054name = "polkadot-primitives"8020name = "polkadot-primitives"8055version = "0.9.33"8021version = "0.9.36"8056source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8022source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8057dependencies = [8023dependencies = [8058 "bitvec 1.0.1",8024 "bitvec 1.0.1",8059 "hex-literal",8025 "hex-literal",8060 "parity-scale-codec 3.2.1",8026 "parity-scale-codec 3.2.1",8061 "parity-util-mem",8062 "polkadot-core-primitives",8027 "polkadot-core-primitives",8063 "polkadot-parachain",8028 "polkadot-parachain",8064 "scale-info",8029 "scale-info",807980448080[[package]]8045[[package]]8081name = "polkadot-rpc"8046name = "polkadot-rpc"8082version = "0.9.33"8047version = "0.9.36"8083source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8048source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8084dependencies = [8049dependencies = [8085 "beefy-gadget",8050 "beefy-gadget",8086 "beefy-gadget-rpc",8051 "beefy-gadget-rpc",8087 "jsonrpsee",8052 "jsonrpsee",8088 "pallet-mmr-rpc",8053 "mmr-rpc",8089 "pallet-transaction-payment-rpc",8054 "pallet-transaction-payment-rpc",8090 "polkadot-primitives",8055 "polkadot-primitives",8091 "sc-chain-spec",8056 "sc-chain-spec",811180768112[[package]]8077[[package]]8113name = "polkadot-runtime"8078name = "polkadot-runtime"8114version = "0.9.33"8079version = "0.9.36"8115source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8080source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8116dependencies = [8081dependencies = [8117 "beefy-primitives",8118 "bitvec 1.0.1",8082 "bitvec 1.0.1",8119 "frame-benchmarking",8083 "frame-benchmarking",8120 "frame-election-provider-support",8084 "frame-election-provider-support",8177 "smallvec",8141 "smallvec",8178 "sp-api",8142 "sp-api",8179 "sp-authority-discovery",8143 "sp-authority-discovery",8144 "sp-beefy",8180 "sp-block-builder",8145 "sp-block-builder",8181 "sp-consensus-babe",8146 "sp-consensus-babe",8182 "sp-core",8147 "sp-core",820081658201[[package]]8166[[package]]8202name = "polkadot-runtime-common"8167name = "polkadot-runtime-common"8203version = "0.9.33"8168version = "0.9.36"8204source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8169source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8205dependencies = [8170dependencies = [8206 "beefy-primitives",8207 "bitvec 1.0.1",8171 "bitvec 1.0.1",8208 "frame-benchmarking",8172 "frame-benchmarking",8209 "frame-election-provider-support",8173 "frame-election-provider-support",8234 "serde_derive",8198 "serde_derive",8235 "slot-range-helper",8199 "slot-range-helper",8236 "sp-api",8200 "sp-api",8201 "sp-beefy",8237 "sp-core",8202 "sp-core",8238 "sp-inherents",8203 "sp-inherents",8239 "sp-io",8204 "sp-io",824882138249[[package]]8214[[package]]8250name = "polkadot-runtime-constants"8215name = "polkadot-runtime-constants"8251version = "0.9.33"8216version = "0.9.36"8252source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8217source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8253dependencies = [8218dependencies = [8254 "frame-support",8219 "frame-support",8255 "polkadot-primitives",8220 "polkadot-primitives",826282278263[[package]]8228[[package]]8264name = "polkadot-runtime-metrics"8229name = "polkadot-runtime-metrics"8265version = "0.9.33"8230version = "0.9.36"8266source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8231source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8267dependencies = [8232dependencies = [8268 "bs58",8233 "bs58",8269 "parity-scale-codec 3.2.1",8234 "parity-scale-codec 3.2.1",827482398275[[package]]8240[[package]]8276name = "polkadot-runtime-parachains"8241name = "polkadot-runtime-parachains"8277version = "0.9.33"8242version = "0.9.36"8278source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8243source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8279dependencies = [8244dependencies = [8280 "bitflags",8245 "bitflags",8281 "bitvec 1.0.1",8246 "bitvec 1.0.1",831782828318[[package]]8283[[package]]8319name = "polkadot-service"8284name = "polkadot-service"8320version = "0.9.33"8285version = "0.9.36"8321source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8286source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8322dependencies = [8287dependencies = [8323 "async-trait",8288 "async-trait",8324 "beefy-gadget",8289 "beefy-gadget",8325 "beefy-primitives",8326 "frame-support",8290 "frame-support",8327 "frame-system-rpc-runtime-api",8291 "frame-system-rpc-runtime-api",8328 "futures 0.3.25",8292 "futures 0.3.25",8331 "kvdb",8295 "kvdb",8332 "kvdb-rocksdb",8296 "kvdb-rocksdb",8333 "lru",8297 "lru",8298 "mmr-gadget",8334 "pallet-babe",8299 "pallet-babe",8335 "pallet-im-online",8300 "pallet-im-online",8336 "pallet-staking",8301 "pallet-staking",8337 "pallet-transaction-payment-rpc-runtime-api",8302 "pallet-transaction-payment-rpc-runtime-api",8338 "parity-db 0.4.2",8303 "parity-db",8339 "polkadot-approval-distribution",8304 "polkadot-approval-distribution",8340 "polkadot-availability-bitfield-distribution",8305 "polkadot-availability-bitfield-distribution",8341 "polkadot-availability-distribution",8306 "polkadot-availability-distribution",8396 "serde_json",8361 "serde_json",8397 "sp-api",8362 "sp-api",8398 "sp-authority-discovery",8363 "sp-authority-discovery",8364 "sp-beefy",8399 "sp-block-builder",8365 "sp-block-builder",8400 "sp-blockchain",8366 "sp-blockchain",8401 "sp-consensus",8367 "sp-consensus",8405 "sp-inherents",8371 "sp-inherents",8406 "sp-io",8372 "sp-io",8407 "sp-keystore",8373 "sp-keystore",8374 "sp-mmr-primitives",8408 "sp-offchain",8375 "sp-offchain",8409 "sp-runtime",8376 "sp-runtime",8410 "sp-session",8377 "sp-session",842183888422[[package]]8389[[package]]8423name = "polkadot-statement-distribution"8390name = "polkadot-statement-distribution"8424version = "0.9.33"8391version = "0.9.36"8425source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8392source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8426dependencies = [8393dependencies = [8427 "arrayvec 0.5.2",8394 "arrayvec 0.5.2",8428 "fatality",8395 "fatality",844284098443[[package]]8410[[package]]8444name = "polkadot-statement-table"8411name = "polkadot-statement-table"8445version = "0.9.33"8412version = "0.9.36"8446source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8413source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8447dependencies = [8414dependencies = [8448 "parity-scale-codec 3.2.1",8415 "parity-scale-codec 3.2.1",8449 "polkadot-primitives",8416 "polkadot-primitives",845284198453[[package]]8420[[package]]8454name = "polkadot-test-runtime"8421name = "polkadot-test-runtime"8455version = "0.9.33"8422version = "0.9.36"8456source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8423source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8457dependencies = [8424dependencies = [8458 "beefy-primitives",8459 "bitvec 1.0.1",8425 "bitvec 1.0.1",8460 "frame-election-provider-support",8426 "frame-election-provider-support",8461 "frame-executive",8427 "frame-executive",8491 "smallvec",8457 "smallvec",8492 "sp-api",8458 "sp-api",8493 "sp-authority-discovery",8459 "sp-authority-discovery",8460 "sp-beefy",8494 "sp-block-builder",8461 "sp-block-builder",8495 "sp-consensus-babe",8462 "sp-consensus-babe",8496 "sp-core",8463 "sp-core",851384808514[[package]]8481[[package]]8515name = "polkadot-test-service"8482name = "polkadot-test-service"8516version = "0.9.33"8483version = "0.9.36"8517source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"8484source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"8518dependencies = [8485dependencies = [8519 "frame-benchmarking",8486 "frame-benchmarking",8520 "frame-system",8487 "frame-system",856785348568[[package]]8535[[package]]8569name = "polling"8536name = "polling"8570version = "2.5.1"8537version = "2.5.2"8571source = "registry+https://github.com/rust-lang/crates.io-index"8538source = "registry+https://github.com/rust-lang/crates.io-index"8572checksum = "166ca89eb77fd403230b9c156612965a81e094ec6ec3aa13663d4c8b113fa748"8539checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6"8573dependencies = [8540dependencies = [8574 "autocfg",8541 "autocfg",8575 "cfg-if",8542 "cfg-if",865186188652[[package]]8619[[package]]8653name = "prettyplease"8620name = "prettyplease"8654version = "0.1.21"8621version = "0.1.22"8655source = "registry+https://github.com/rust-lang/crates.io-index"8622source = "registry+https://github.com/rust-lang/crates.io-index"8656checksum = "c142c0e46b57171fe0c528bee8c5b7569e80f0c17e377cd0e30ea57dbc11bb51"8623checksum = "2c8992a85d8e93a28bdf76137db888d3874e3b230dee5ed8bebac4c9f7617773"8657dependencies = [8624dependencies = [8658 "proc-macro2",8625 "proc-macro2",8659 "syn",8626 "syn",873987068740[[package]]8707[[package]]8741name = "proc-macro2"8708name = "proc-macro2"8742version = "1.0.47"8709version = "1.0.49"8743source = "registry+https://github.com/rust-lang/crates.io-index"8710source = "registry+https://github.com/rust-lang/crates.io-index"8744checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"8711checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"8745dependencies = [8712dependencies = [8746 "unicode-ident",8713 "unicode-ident",8747]8714]878587528786[[package]]8753[[package]]8787name = "prost"8754name = "prost"8788version = "0.11.3"8755version = "0.11.5"8789source = "registry+https://github.com/rust-lang/crates.io-index"8756source = "registry+https://github.com/rust-lang/crates.io-index"8790checksum = "c0b18e655c21ff5ac2084a5ad0611e827b3f92badf79f4910b5a5c58f4d87ff0"8757checksum = "c01db6702aa05baa3f57dec92b8eeeeb4cb19e894e73996b32a4093289e54592"8791dependencies = [8758dependencies = [8792 "bytes",8759 "bytes",8793 "prost-derive",8760 "prost-derive",8794]8761]879587628796[[package]]8763[[package]]8797name = "prost-build"8764name = "prost-build"8798version = "0.11.3"8765version = "0.11.5"8799source = "registry+https://github.com/rust-lang/crates.io-index"8766source = "registry+https://github.com/rust-lang/crates.io-index"8800checksum = "e330bf1316db56b12c2bcfa399e8edddd4821965ea25ddb2c134b610b1c1c604"8767checksum = "cb5320c680de74ba083512704acb90fe00f28f79207286a848e730c45dd73ed6"8801dependencies = [8768dependencies = [8802 "bytes",8769 "bytes",8803 "heck",8770 "heck",883087978831[[package]]8798[[package]]8832name = "prost-derive"8799name = "prost-derive"8833version = "0.11.2"8800version = "0.11.5"8834source = "registry+https://github.com/rust-lang/crates.io-index"8801source = "registry+https://github.com/rust-lang/crates.io-index"8835checksum = "164ae68b6587001ca506d3bf7f1000bfa248d0e1217b618108fba4ec1d0cc306"8802checksum = "c8842bad1a5419bca14eac663ba798f6bc19c413c2fdceb5f3ba3b0932d96720"8836dependencies = [8803dependencies = [8837 "anyhow",8804 "anyhow",8838 "itertools",8805 "itertools",884388108844[[package]]8811[[package]]8845name = "prost-types"8812name = "prost-types"8846version = "0.11.2"8813version = "0.11.5"8847source = "registry+https://github.com/rust-lang/crates.io-index"8814source = "registry+https://github.com/rust-lang/crates.io-index"8848checksum = "747761bc3dc48f9a34553bf65605cf6cb6288ba219f3450b4275dbd81539551a"8815checksum = "017f79637768cde62820bc2d4fe0e45daaa027755c323ad077767c6c5f173091"8849dependencies = [8816dependencies = [8850 "bytes",8817 "bytes",8851 "prost",8818 "prost",886288298863[[package]]8830[[package]]8864name = "quartz-runtime"8831name = "quartz-runtime"8865version = "0.9.33"8832version = "0.9.36"8866dependencies = [8833dependencies = [8867 "app-promotion-rpc",8834 "app-promotion-rpc",8868 "cumulus-pallet-aura-ext",8835 "cumulus-pallet-aura-ext",897689438977[[package]]8944[[package]]8978name = "quote"8945name = "quote"8979version = "1.0.21"8946version = "1.0.23"8980source = "registry+https://github.com/rust-lang/crates.io-index"8947source = "registry+https://github.com/rust-lang/crates.io-index"8981checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"8948checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"8982dependencies = [8949dependencies = [8983 "proc-macro2",8950 "proc-macro2",8984]8951]910390709104[[package]]9071[[package]]9105name = "rayon"9072name = "rayon"9106version = "1.6.0"9073version = "1.6.1"9107source = "registry+https://github.com/rust-lang/crates.io-index"9074source = "registry+https://github.com/rust-lang/crates.io-index"9108checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b"9075checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7"9109dependencies = [9076dependencies = [9110 "crossbeam-deque",9111 "either",9077 "either",9112 "rayon-core",9078 "rayon-core",9113]9079]915991259160[[package]]9126[[package]]9161name = "ref-cast"9127name = "ref-cast"9162version = "1.0.13"9128version = "1.0.14"9163source = "registry+https://github.com/rust-lang/crates.io-index"9129source = "registry+https://github.com/rust-lang/crates.io-index"9164checksum = "53b15debb4f9d60d767cd8ca9ef7abb2452922f3214671ff052defc7f3502c44"9130checksum = "8c78fb8c9293bcd48ef6fce7b4ca950ceaf21210de6e105a883ee280c0f7b9ed"9165dependencies = [9131dependencies = [9166 "ref-cast-impl",9132 "ref-cast-impl",9167]9133]916891349169[[package]]9135[[package]]9170name = "ref-cast-impl"9136name = "ref-cast-impl"9171version = "1.0.13"9137version = "1.0.14"9172source = "registry+https://github.com/rust-lang/crates.io-index"9138source = "registry+https://github.com/rust-lang/crates.io-index"9173checksum = "abfa8511e9e94fd3de6585a3d3cd00e01ed556dc9814829280af0e8dc72a8f36"9139checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f"9174dependencies = [9140dependencies = [9175 "proc-macro2",9141 "proc-macro2",9176 "quote",9142 "quote",9216checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"9182checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"921791839218[[package]]9184[[package]]9219name = "remote-externalities"9220version = "0.10.0-dev"9221source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9222dependencies = [9223 "env_logger",9224 "log",9225 "parity-scale-codec 3.2.1",9226 "serde",9227 "serde_json",9228 "sp-core",9229 "sp-io",9230 "sp-runtime",9231 "sp-version",9232 "substrate-rpc-client",9233]92349235[[package]]9236name = "remove_dir_all"9185name = "remove_dir_all"9237version = "0.5.3"9186version = "0.5.3"9238source = "registry+https://github.com/rust-lang/crates.io-index"9187source = "registry+https://github.com/rust-lang/crates.io-index"934292919343[[package]]9292[[package]]9344name = "rococo-runtime"9293name = "rococo-runtime"9345version = "0.9.33"9294version = "0.9.36"9346source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"9295source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"9347dependencies = [9296dependencies = [9348 "beefy-merkle-tree",9297 "beefy-merkle-tree",9349 "beefy-primitives",9350 "frame-benchmarking",9298 "frame-benchmarking",9351 "frame-executive",9299 "frame-executive",9352 "frame-support",9300 "frame-support",9366 "pallet-collective",9314 "pallet-collective",9367 "pallet-democracy",9315 "pallet-democracy",9368 "pallet-elections-phragmen",9316 "pallet-elections-phragmen",9369 "pallet-gilt",9370 "pallet-grandpa",9317 "pallet-grandpa",9371 "pallet-identity",9318 "pallet-identity",9372 "pallet-im-online",9319 "pallet-im-online",9373 "pallet-indices",9320 "pallet-indices",9374 "pallet-membership",9321 "pallet-membership",9375 "pallet-mmr",9322 "pallet-mmr",9376 "pallet-multisig",9323 "pallet-multisig",9324 "pallet-nis",9377 "pallet-offences",9325 "pallet-offences",9378 "pallet-preimage",9326 "pallet-preimage",9379 "pallet-proxy",9327 "pallet-proxy",9405 "smallvec",9353 "smallvec",9406 "sp-api",9354 "sp-api",9407 "sp-authority-discovery",9355 "sp-authority-discovery",9356 "sp-beefy",9408 "sp-block-builder",9357 "sp-block-builder",9409 "sp-consensus-babe",9358 "sp-consensus-babe",9410 "sp-core",9359 "sp-core",942793769428[[package]]9377[[package]]9429name = "rococo-runtime-constants"9378name = "rococo-runtime-constants"9430version = "0.9.33"9379version = "0.9.36"9431source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"9380source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"9432dependencies = [9381dependencies = [9433 "frame-support",9382 "frame-support",9434 "polkadot-primitives",9383 "polkadot-primitives",9508source = "registry+https://github.com/rust-lang/crates.io-index"9457source = "registry+https://github.com/rust-lang/crates.io-index"9509checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"9458checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"9510dependencies = [9459dependencies = [9511 "semver 1.0.14",9460 "semver 1.0.16",9512]9461]951394629514[[package]]9463[[package]]9535 "errno",9484 "errno",9536 "io-lifetimes 1.0.3",9485 "io-lifetimes 1.0.3",9537 "libc",9486 "libc",9538 "linux-raw-sys 0.1.3",9487 "linux-raw-sys 0.1.4",9539 "windows-sys 0.42.0",9488 "windows-sys 0.42.0",9540]9489]95419490957495239575[[package]]9524[[package]]9576name = "rustversion"9525name = "rustversion"9577version = "1.0.9"9526version = "1.0.11"9578source = "registry+https://github.com/rust-lang/crates.io-index"9527source = "registry+https://github.com/rust-lang/crates.io-index"9579checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8"9528checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"958095299581[[package]]9530[[package]]9582name = "rw-stream-sink"9531name = "rw-stream-sink"959195409592[[package]]9541[[package]]9593name = "ryu"9542name = "ryu"9594version = "1.0.11"9543version = "1.0.12"9595source = "registry+https://github.com/rust-lang/crates.io-index"9544source = "registry+https://github.com/rust-lang/crates.io-index"9596checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"9545checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"959795469598[[package]]9547[[package]]9599name = "safe-mix"9548name = "safe-mix"9616[[package]]9565[[package]]9617name = "sc-allocator"9566name = "sc-allocator"9618version = "4.1.0-dev"9567version = "4.1.0-dev"9619source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9568source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9620dependencies = [9569dependencies = [9621 "log",9570 "log",9622 "sp-core",9571 "sp-core",9627[[package]]9576[[package]]9628name = "sc-authority-discovery"9577name = "sc-authority-discovery"9629version = "0.10.0-dev"9578version = "0.10.0-dev"9630source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9579source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9631dependencies = [9580dependencies = [9632 "async-trait",9581 "async-trait",9633 "futures 0.3.25",9582 "futures 0.3.25",9654[[package]]9603[[package]]9655name = "sc-basic-authorship"9604name = "sc-basic-authorship"9656version = "0.10.0-dev"9605version = "0.10.0-dev"9657source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9606source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9658dependencies = [9607dependencies = [9659 "futures 0.3.25",9608 "futures 0.3.25",9660 "futures-timer",9609 "futures-timer",9677[[package]]9626[[package]]9678name = "sc-block-builder"9627name = "sc-block-builder"9679version = "0.10.0-dev"9628version = "0.10.0-dev"9680source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9629source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9681dependencies = [9630dependencies = [9682 "parity-scale-codec 3.2.1",9631 "parity-scale-codec 3.2.1",9683 "sc-client-api",9632 "sc-client-api",9693[[package]]9642[[package]]9694name = "sc-chain-spec"9643name = "sc-chain-spec"9695version = "4.0.0-dev"9644version = "4.0.0-dev"9696source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9645source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9697dependencies = [9646dependencies = [9698 "impl-trait-for-tuples",9647 "impl-trait-for-tuples",9699 "memmap2",9648 "memmap2",9710[[package]]9659[[package]]9711name = "sc-chain-spec-derive"9660name = "sc-chain-spec-derive"9712version = "4.0.0-dev"9661version = "4.0.0-dev"9713source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9662source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9714dependencies = [9663dependencies = [9715 "proc-macro-crate",9664 "proc-macro-crate",9716 "proc-macro2",9665 "proc-macro2",9721[[package]]9670[[package]]9722name = "sc-cli"9671name = "sc-cli"9723version = "0.10.0-dev"9672version = "0.10.0-dev"9724source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9673source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9725dependencies = [9674dependencies = [9726 "array-bytes",9675 "array-bytes 4.2.0",9727 "chrono",9676 "chrono",9728 "clap",9677 "clap",9729 "fdlimit",9678 "fdlimit",9761[[package]]9710[[package]]9762name = "sc-client-api"9711name = "sc-client-api"9763version = "4.0.0-dev"9712version = "4.0.0-dev"9764source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9713source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9765dependencies = [9714dependencies = [9766 "fnv",9715 "fnv",9767 "futures 0.3.25",9716 "futures 0.3.25",9789[[package]]9738[[package]]9790name = "sc-client-db"9739name = "sc-client-db"9791version = "0.10.0-dev"9740version = "0.10.0-dev"9792source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9741source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9793dependencies = [9742dependencies = [9794 "hash-db",9743 "hash-db",9795 "kvdb",9744 "kvdb",9796 "kvdb-memorydb",9745 "kvdb-memorydb",9797 "kvdb-rocksdb",9746 "kvdb-rocksdb",9798 "linked-hash-map",9747 "linked-hash-map",9799 "log",9748 "log",9800 "parity-db 0.4.2",9749 "parity-db",9801 "parity-scale-codec 3.2.1",9750 "parity-scale-codec 3.2.1",9802 "parking_lot 0.12.1",9751 "parking_lot 0.12.1",9803 "sc-client-api",9752 "sc-client-api",9814[[package]]9763[[package]]9815name = "sc-consensus"9764name = "sc-consensus"9816version = "0.10.0-dev"9765version = "0.10.0-dev"9817source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9766source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9818dependencies = [9767dependencies = [9819 "async-trait",9768 "async-trait",9820 "futures 0.3.25",9769 "futures 0.3.25",9821 "futures-timer",9770 "futures-timer",9822 "libp2p",9771 "libp2p",9823 "log",9772 "log",9773 "mockall",9824 "parking_lot 0.12.1",9774 "parking_lot 0.12.1",9825 "sc-client-api",9775 "sc-client-api",9826 "sc-utils",9776 "sc-utils",9838[[package]]9788[[package]]9839name = "sc-consensus-aura"9789name = "sc-consensus-aura"9840version = "0.10.0-dev"9790version = "0.10.0-dev"9841source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9791source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9842dependencies = [9792dependencies = [9843 "async-trait",9793 "async-trait",9844 "futures 0.3.25",9794 "futures 0.3.25",9867[[package]]9817[[package]]9868name = "sc-consensus-babe"9818name = "sc-consensus-babe"9869version = "0.10.0-dev"9819version = "0.10.0-dev"9870source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9820source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9871dependencies = [9821dependencies = [9872 "async-trait",9822 "async-trait",9873 "fork-tree",9823 "fork-tree",9908[[package]]9858[[package]]9909name = "sc-consensus-babe-rpc"9859name = "sc-consensus-babe-rpc"9910version = "0.10.0-dev"9860version = "0.10.0-dev"9911source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9861source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9912dependencies = [9862dependencies = [9913 "futures 0.3.25",9863 "futures 0.3.25",9914 "jsonrpsee",9864 "jsonrpsee",9930[[package]]9880[[package]]9931name = "sc-consensus-epochs"9881name = "sc-consensus-epochs"9932version = "0.10.0-dev"9882version = "0.10.0-dev"9933source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9883source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9934dependencies = [9884dependencies = [9935 "fork-tree",9885 "fork-tree",9936 "parity-scale-codec 3.2.1",9886 "parity-scale-codec 3.2.1",9943[[package]]9893[[package]]9944name = "sc-consensus-manual-seal"9894name = "sc-consensus-manual-seal"9945version = "0.10.0-dev"9895version = "0.10.0-dev"9946source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9896source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9947dependencies = [9897dependencies = [9948 "assert_matches",9898 "assert_matches",9949 "async-trait",9899 "async-trait",9977[[package]]9927[[package]]9978name = "sc-consensus-slots"9928name = "sc-consensus-slots"9979version = "0.10.0-dev"9929version = "0.10.0-dev"9980source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9930source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"9981dependencies = [9931dependencies = [9982 "async-trait",9932 "async-trait",9983 "futures 0.3.25",9933 "futures 0.3.25",10001[[package]]9951[[package]]10002name = "sc-executor"9952name = "sc-executor"10003version = "0.10.0-dev"9953version = "0.10.0-dev"10004source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9954source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10005dependencies = [9955dependencies = [10006 "lazy_static",10007 "lru",9956 "lru",10008 "parity-scale-codec 3.2.1",9957 "parity-scale-codec 3.2.1",10009 "parking_lot 0.12.1",9958 "parking_lot 0.12.1",10012 "sc-executor-wasmtime",9961 "sc-executor-wasmtime",10013 "sp-api",9962 "sp-api",10014 "sp-core",9963 "sp-core",10015 "sp-core-hashing-proc-macro",10016 "sp-externalities",9964 "sp-externalities",10017 "sp-io",9965 "sp-io",10018 "sp-panic-handler",9966 "sp-panic-handler",10027[[package]]9975[[package]]10028name = "sc-executor-common"9976name = "sc-executor-common"10029version = "0.10.0-dev"9977version = "0.10.0-dev"10030source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9978source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10031dependencies = [9979dependencies = [10032 "environmental",10033 "parity-scale-codec 3.2.1",10034 "sc-allocator",9980 "sc-allocator",10035 "sp-maybe-compressed-blob",9981 "sp-maybe-compressed-blob",10036 "sp-sandbox",10037 "sp-wasm-interface",9982 "sp-wasm-interface",10038 "thiserror",9983 "thiserror",10039 "wasm-instrument",9984 "wasm-instrument",10043[[package]]9988[[package]]10044name = "sc-executor-wasmi"9989name = "sc-executor-wasmi"10045version = "0.10.0-dev"9990version = "0.10.0-dev"10046source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"9991source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10047dependencies = [9992dependencies = [10048 "log",9993 "log",10049 "parity-scale-codec 3.2.1",10050 "sc-allocator",9994 "sc-allocator",10051 "sc-executor-common",9995 "sc-executor-common",10052 "sp-runtime-interface",9996 "sp-runtime-interface",10053 "sp-sandbox",10054 "sp-wasm-interface",9997 "sp-wasm-interface",10055 "wasmi",9998 "wasmi",10056]9999]100571000010058[[package]]10001[[package]]10059name = "sc-executor-wasmtime"10002name = "sc-executor-wasmtime"10060version = "0.10.0-dev"10003version = "0.10.0-dev"10061source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10004source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10062dependencies = [10005dependencies = [10063 "cfg-if",10006 "cfg-if",10064 "libc",10007 "libc",10065 "log",10008 "log",10066 "once_cell",10009 "once_cell",10067 "parity-scale-codec 3.2.1",10068 "parity-wasm",10069 "rustix 0.35.13",10010 "rustix 0.35.13",10070 "sc-allocator",10011 "sc-allocator",10071 "sc-executor-common",10012 "sc-executor-common",10072 "sp-runtime-interface",10013 "sp-runtime-interface",10073 "sp-sandbox",10074 "sp-wasm-interface",10014 "sp-wasm-interface",10075 "wasmtime",10015 "wasmtime",10076]10016]100771001710078[[package]]10018[[package]]10079name = "sc-finality-grandpa"10019name = "sc-finality-grandpa"10080version = "0.10.0-dev"10020version = "0.10.0-dev"10081source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10021source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10082dependencies = [10022dependencies = [10083 "ahash",10023 "ahash",10084 "array-bytes",10024 "array-bytes 4.2.0",10085 "async-trait",10025 "async-trait",10086 "dyn-clone",10026 "dyn-clone",10087 "finality-grandpa",10027 "finality-grandpa",10119[[package]]10059[[package]]10120name = "sc-finality-grandpa-rpc"10060name = "sc-finality-grandpa-rpc"10121version = "0.10.0-dev"10061version = "0.10.0-dev"10122source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10062source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10123dependencies = [10063dependencies = [10124 "finality-grandpa",10064 "finality-grandpa",10125 "futures 0.3.25",10065 "futures 0.3.25",10140[[package]]10080[[package]]10141name = "sc-informant"10081name = "sc-informant"10142version = "0.10.0-dev"10082version = "0.10.0-dev"10143source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10083source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10144dependencies = [10084dependencies = [10145 "ansi_term",10085 "ansi_term",10146 "futures 0.3.25",10086 "futures 0.3.25",10147 "futures-timer",10087 "futures-timer",10148 "log",10088 "log",10149 "parity-util-mem",10150 "sc-client-api",10089 "sc-client-api",10151 "sc-network-common",10090 "sc-network-common",10152 "sc-transaction-pool-api",10091 "sc-transaction-pool-api",10157[[package]]10096[[package]]10158name = "sc-keystore"10097name = "sc-keystore"10159version = "4.0.0-dev"10098version = "4.0.0-dev"10160source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10099source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10161dependencies = [10100dependencies = [10162 "array-bytes",10101 "array-bytes 4.2.0",10163 "async-trait",10102 "async-trait",10164 "parking_lot 0.12.1",10103 "parking_lot 0.12.1",10165 "serde_json",10104 "serde_json",10172[[package]]10111[[package]]10173name = "sc-network"10112name = "sc-network"10174version = "0.10.0-dev"10113version = "0.10.0-dev"10175source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10114source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10176dependencies = [10115dependencies = [10177 "array-bytes",10116 "array-bytes 4.2.0",10178 "async-trait",10117 "async-trait",10179 "asynchronous-codec",10118 "asynchronous-codec",10180 "bitflags",10119 "bitflags",10219[[package]]10158[[package]]10220name = "sc-network-bitswap"10159name = "sc-network-bitswap"10221version = "0.10.0-dev"10160version = "0.10.0-dev"10222source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10161source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10223dependencies = [10162dependencies = [10224 "cid",10163 "cid",10225 "futures 0.3.25",10164 "futures 0.3.25",10239[[package]]10178[[package]]10240name = "sc-network-common"10179name = "sc-network-common"10241version = "0.10.0-dev"10180version = "0.10.0-dev"10242source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10181source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10243dependencies = [10182dependencies = [10244 "async-trait",10183 "async-trait",10245 "bitflags",10184 "bitflags",10265[[package]]10204[[package]]10266name = "sc-network-gossip"10205name = "sc-network-gossip"10267version = "0.10.0-dev"10206version = "0.10.0-dev"10268source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10207source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10269dependencies = [10208dependencies = [10270 "ahash",10209 "ahash",10271 "futures 0.3.25",10210 "futures 0.3.25",10283[[package]]10222[[package]]10284name = "sc-network-light"10223name = "sc-network-light"10285version = "0.10.0-dev"10224version = "0.10.0-dev"10286source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10225source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10287dependencies = [10226dependencies = [10288 "array-bytes",10227 "array-bytes 4.2.0",10289 "futures 0.3.25",10228 "futures 0.3.25",10290 "libp2p",10229 "libp2p",10291 "log",10230 "log",10304[[package]]10243[[package]]10305name = "sc-network-sync"10244name = "sc-network-sync"10306version = "0.10.0-dev"10245version = "0.10.0-dev"10307source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10246source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10308dependencies = [10247dependencies = [10309 "array-bytes",10248 "array-bytes 4.2.0",10249 "async-trait",10310 "fork-tree",10250 "fork-tree",10311 "futures 0.3.25",10251 "futures 0.3.25",10312 "libp2p",10252 "libp2p",10328 "sp-core",10268 "sp-core",10329 "sp-finality-grandpa",10269 "sp-finality-grandpa",10330 "sp-runtime",10270 "sp-runtime",10271 "substrate-prometheus-endpoint",10331 "thiserror",10272 "thiserror",10332]10273]103331027410334[[package]]10275[[package]]10335name = "sc-network-transactions"10276name = "sc-network-transactions"10336version = "0.10.0-dev"10277version = "0.10.0-dev"10337source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10278source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10338dependencies = [10279dependencies = [10339 "array-bytes",10280 "array-bytes 4.2.0",10340 "futures 0.3.25",10281 "futures 0.3.25",10341 "hex",10282 "hex",10342 "libp2p",10283 "libp2p",10353[[package]]10294[[package]]10354name = "sc-offchain"10295name = "sc-offchain"10355version = "4.0.0-dev"10296version = "4.0.0-dev"10356source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10297source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10357dependencies = [10298dependencies = [10358 "array-bytes",10299 "array-bytes 4.2.0",10359 "bytes",10300 "bytes",10360 "fnv",10301 "fnv",10361 "futures 0.3.25",10302 "futures 0.3.25",10383[[package]]10324[[package]]10384name = "sc-peerset"10325name = "sc-peerset"10385version = "4.0.0-dev"10326version = "4.0.0-dev"10386source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10327source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10387dependencies = [10328dependencies = [10388 "futures 0.3.25",10329 "futures 0.3.25",10389 "libp2p",10330 "libp2p",10396[[package]]10337[[package]]10397name = "sc-proposer-metrics"10338name = "sc-proposer-metrics"10398version = "0.10.0-dev"10339version = "0.10.0-dev"10399source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10340source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10400dependencies = [10341dependencies = [10401 "log",10342 "log",10402 "substrate-prometheus-endpoint",10343 "substrate-prometheus-endpoint",10405[[package]]10346[[package]]10406name = "sc-rpc"10347name = "sc-rpc"10407version = "4.0.0-dev"10348version = "4.0.0-dev"10408source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10349source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10409dependencies = [10350dependencies = [10410 "futures 0.3.25",10351 "futures 0.3.25",10411 "hash-db",10352 "hash-db",10435[[package]]10376[[package]]10436name = "sc-rpc-api"10377name = "sc-rpc-api"10437version = "0.10.0-dev"10378version = "0.10.0-dev"10438source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10379source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10439dependencies = [10380dependencies = [10440 "futures 0.3.25",10381 "futures 0.3.25",10441 "jsonrpsee",10382 "jsonrpsee",10458[[package]]10399[[package]]10459name = "sc-rpc-server"10400name = "sc-rpc-server"10460version = "4.0.0-dev"10401version = "4.0.0-dev"10461source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10402source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10462dependencies = [10403dependencies = [10463 "futures 0.3.25",10404 "futures 0.3.25",10405 "http",10464 "jsonrpsee",10406 "jsonrpsee",10465 "log",10407 "log",10466 "serde_json",10408 "serde_json",10467 "substrate-prometheus-endpoint",10409 "substrate-prometheus-endpoint",10468 "tokio",10410 "tokio",10411 "tower",10412 "tower-http",10469]10413]104701041410471[[package]]10415[[package]]10472name = "sc-rpc-spec-v2"10416name = "sc-rpc-spec-v2"10473version = "0.10.0-dev"10417version = "0.10.0-dev"10474source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10418source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10475dependencies = [10419dependencies = [10476 "futures 0.3.25",10420 "futures 0.3.25",10477 "hex",10421 "hex",10490[[package]]10434[[package]]10491name = "sc-service"10435name = "sc-service"10492version = "0.10.0-dev"10436version = "0.10.0-dev"10493source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10437source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10494dependencies = [10438dependencies = [10495 "async-trait",10439 "async-trait",10496 "directories",10440 "directories",10501 "jsonrpsee",10445 "jsonrpsee",10502 "log",10446 "log",10503 "parity-scale-codec 3.2.1",10447 "parity-scale-codec 3.2.1",10504 "parity-util-mem",10505 "parking_lot 0.12.1",10448 "parking_lot 0.12.1",10506 "pin-project",10449 "pin-project",10507 "rand 0.7.3",10450 "rand 0.7.3",10561[[package]]10504[[package]]10562name = "sc-state-db"10505name = "sc-state-db"10563version = "0.10.0-dev"10506version = "0.10.0-dev"10564source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10507source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10565dependencies = [10508dependencies = [10566 "log",10509 "log",10567 "parity-scale-codec 3.2.1",10510 "parity-scale-codec 3.2.1",10568 "parity-util-mem",10569 "parity-util-mem-derive",10570 "parking_lot 0.12.1",10511 "parking_lot 0.12.1",10571 "sc-client-api",10512 "sc-client-api",10572 "sp-core",10513 "sp-core",10575[[package]]10516[[package]]10576name = "sc-sync-state-rpc"10517name = "sc-sync-state-rpc"10577version = "0.10.0-dev"10518version = "0.10.0-dev"10578source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10519source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10579dependencies = [10520dependencies = [10580 "jsonrpsee",10521 "jsonrpsee",10581 "parity-scale-codec 3.2.1",10522 "parity-scale-codec 3.2.1",10594[[package]]10535[[package]]10595name = "sc-sysinfo"10536name = "sc-sysinfo"10596version = "6.0.0-dev"10537version = "6.0.0-dev"10597source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10538source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10598dependencies = [10539dependencies = [10599 "futures 0.3.25",10540 "futures 0.3.25",10600 "libc",10541 "libc",10613[[package]]10554[[package]]10614name = "sc-telemetry"10555name = "sc-telemetry"10615version = "4.0.0-dev"10556version = "4.0.0-dev"10616source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10557source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10617dependencies = [10558dependencies = [10618 "chrono",10559 "chrono",10619 "futures 0.3.25",10560 "futures 0.3.25",10631[[package]]10572[[package]]10632name = "sc-tracing"10573name = "sc-tracing"10633version = "4.0.0-dev"10574version = "4.0.0-dev"10634source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10575source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10635dependencies = [10576dependencies = [10636 "ansi_term",10577 "ansi_term",10637 "atty",10578 "atty",10662[[package]]10603[[package]]10663name = "sc-tracing-proc-macro"10604name = "sc-tracing-proc-macro"10664version = "4.0.0-dev"10605version = "4.0.0-dev"10665source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10606source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10666dependencies = [10607dependencies = [10667 "proc-macro-crate",10608 "proc-macro-crate",10668 "proc-macro2",10609 "proc-macro2",10673[[package]]10614[[package]]10674name = "sc-transaction-pool"10615name = "sc-transaction-pool"10675version = "4.0.0-dev"10616version = "4.0.0-dev"10676source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10617source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10677dependencies = [10618dependencies = [10678 "async-trait",10619 "async-trait",10679 "futures 0.3.25",10620 "futures 0.3.25",10680 "futures-timer",10621 "futures-timer",10681 "linked-hash-map",10622 "linked-hash-map",10682 "log",10623 "log",10683 "parity-scale-codec 3.2.1",10624 "parity-scale-codec 3.2.1",10684 "parity-util-mem",10685 "parking_lot 0.12.1",10625 "parking_lot 0.12.1",10686 "sc-client-api",10626 "sc-client-api",10687 "sc-transaction-pool-api",10627 "sc-transaction-pool-api",10700[[package]]10640[[package]]10701name = "sc-transaction-pool-api"10641name = "sc-transaction-pool-api"10702version = "4.0.0-dev"10642version = "4.0.0-dev"10703source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10643source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10704dependencies = [10644dependencies = [10705 "async-trait",10645 "async-trait",10706 "futures 0.3.25",10646 "futures 0.3.25",10714[[package]]10654[[package]]10715name = "sc-utils"10655name = "sc-utils"10716version = "4.0.0-dev"10656version = "4.0.0-dev"10717source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"10657source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"10718dependencies = [10658dependencies = [10719 "futures 0.3.25",10659 "futures 0.3.25",10720 "futures-timer",10660 "futures-timer",107261066610727[[package]]10667[[package]]10728name = "scale-info"10668name = "scale-info"10729version = "2.3.0"10669version = "2.3.1"10730source = "registry+https://github.com/rust-lang/crates.io-index"10670source = "registry+https://github.com/rust-lang/crates.io-index"10731checksum = "88d8a765117b237ef233705cc2cc4c6a27fccd46eea6ef0c8c6dae5f3ef407f8"10671checksum = "001cf62ece89779fd16105b5f515ad0e5cedcd5440d3dd806bb067978e7c3608"10732dependencies = [10672dependencies = [10733 "bitvec 1.0.1",10673 "bitvec 1.0.1",10734 "cfg-if",10674 "cfg-if",107401068010741[[package]]10681[[package]]10742name = "scale-info-derive"10682name = "scale-info-derive"10743version = "2.3.0"10683version = "2.3.1"10744source = "registry+https://github.com/rust-lang/crates.io-index"10684source = "registry+https://github.com/rust-lang/crates.io-index"10745checksum = "cdcd47b380d8c4541044e341dcd9475f55ba37ddc50c908d945fc036a8642496"10685checksum = "303959cf613a6f6efd19ed4b4ad5bf79966a13352716299ad532cfb115f4205c"10746dependencies = [10686dependencies = [10747 "proc-macro-crate",10687 "proc-macro-crate",10748 "proc-macro2",10688 "proc-macro2",107861072610787[[package]]10727[[package]]10788name = "scratch"10728name = "scratch"10789version = "1.0.2"10729version = "1.0.3"10790source = "registry+https://github.com/rust-lang/crates.io-index"10730source = "registry+https://github.com/rust-lang/crates.io-index"10791checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"10731checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"107921073210793[[package]]10733[[package]]10794name = "sct"10734name = "sct"108161075610817[[package]]10757[[package]]10818name = "secp256k1"10758name = "secp256k1"10819version = "0.24.1"10759version = "0.24.2"10820source = "registry+https://github.com/rust-lang/crates.io-index"10760source = "registry+https://github.com/rust-lang/crates.io-index"10821checksum = "ff55dc09d460954e9ef2fa8a7ced735a964be9981fd50e870b2b3b0705e14964"10761checksum = "d9512ffd81e3a3503ed401f79c33168b9148c75038956039166cd750eaa037c3"10822dependencies = [10762dependencies = [10823 "secp256k1-sys",10763 "secp256k1-sys",10824]10764]108841082410885[[package]]10825[[package]]10886name = "semver"10826name = "semver"10887version = "1.0.14"10827version = "1.0.16"10888source = "registry+https://github.com/rust-lang/crates.io-index"10828source = "registry+https://github.com/rust-lang/crates.io-index"10889checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"10829checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"10890dependencies = [10830dependencies = [10891 "serde",10831 "serde",10892]10832]108991083910900[[package]]10840[[package]]10901name = "serde"10841name = "serde"10902version = "1.0.149"10842version = "1.0.151"10903source = "registry+https://github.com/rust-lang/crates.io-index"10843source = "registry+https://github.com/rust-lang/crates.io-index"10904checksum = "256b9932320c590e707b94576e3cc1f7c9024d0ee6612dfbcf1cb106cbe8e055"10844checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"10905dependencies = [10845dependencies = [10906 "serde_derive",10846 "serde_derive",10907]10847]109081084810909[[package]]10849[[package]]10910name = "serde_derive"10850name = "serde_derive"10911version = "1.0.149"10851version = "1.0.151"10912source = "registry+https://github.com/rust-lang/crates.io-index"10852source = "registry+https://github.com/rust-lang/crates.io-index"10913checksum = "b4eae9b04cbffdfd550eb462ed33bc6a1b68c935127d008b27444d08380f94e4"10853checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"10914dependencies = [10854dependencies = [10915 "proc-macro2",10855 "proc-macro2",10916 "quote",10856 "quote",109191085910920[[package]]10860[[package]]10921name = "serde_json"10861name = "serde_json"10922version = "1.0.89"10862version = "1.0.91"10923source = "registry+https://github.com/rust-lang/crates.io-index"10863source = "registry+https://github.com/rust-lang/crates.io-index"10924checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"10864checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"10925dependencies = [10865dependencies = [10926 "itoa",10866 "itoa",10927 "ryu",10867 "ryu",111191105911120[[package]]11060[[package]]11121name = "slot-range-helper"11061name = "slot-range-helper"11122version = "0.9.33"11062version = "0.9.36"11123source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"11063source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"11124dependencies = [11064dependencies = [11125 "enumn",11065 "enumn",11126 "parity-scale-codec 3.2.1",11066 "parity-scale-codec 3.2.1",11159 "aes-gcm",11099 "aes-gcm",11160 "blake2",11100 "blake2",11161 "chacha20poly1305",11101 "chacha20poly1305",11162 "curve25519-dalek 4.0.0-pre.1",11102 "curve25519-dalek 4.0.0-pre.5",11163 "rand_core 0.6.4",11103 "rand_core 0.6.4",11164 "ring",11104 "ring",11165 "rustc_version 0.4.0",11105 "rustc_version 0.4.0",11187 "bytes",11127 "bytes",11188 "flate2",11128 "flate2",11189 "futures 0.3.25",11129 "futures 0.3.25",11130 "http",11190 "httparse",11131 "httparse",11191 "log",11132 "log",11192 "rand 0.8.5",11133 "rand 0.8.5",11196[[package]]11137[[package]]11197name = "sp-api"11138name = "sp-api"11198version = "4.0.0-dev"11139version = "4.0.0-dev"11199source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11140source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11200dependencies = [11141dependencies = [11201 "hash-db",11142 "hash-db",11202 "log",11143 "log",11214[[package]]11155[[package]]11215name = "sp-api-proc-macro"11156name = "sp-api-proc-macro"11216version = "4.0.0-dev"11157version = "4.0.0-dev"11217source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11158source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11218dependencies = [11159dependencies = [11219 "blake2",11160 "blake2",11220 "proc-macro-crate",11161 "proc-macro-crate",112251116611226[[package]]11167[[package]]11227name = "sp-application-crypto"11168name = "sp-application-crypto"11228version = "6.0.0"11169version = "7.0.0"11229source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11170source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11230dependencies = [11171dependencies = [11231 "parity-scale-codec 3.2.1",11172 "parity-scale-codec 3.2.1",11232 "scale-info",11173 "scale-info",112381117911239[[package]]11180[[package]]11240name = "sp-arithmetic"11181name = "sp-arithmetic"11241version = "5.0.0"11182version = "6.0.0"11242source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11183source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11243dependencies = [11184dependencies = [11244 "integer-sqrt",11185 "integer-sqrt",11245 "num-traits",11186 "num-traits",11254[[package]]11195[[package]]11255name = "sp-authority-discovery"11196name = "sp-authority-discovery"11256version = "4.0.0-dev"11197version = "4.0.0-dev"11257source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11198source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11258dependencies = [11199dependencies = [11259 "parity-scale-codec 3.2.1",11200 "parity-scale-codec 3.2.1",11260 "scale-info",11201 "scale-info",11267[[package]]11208[[package]]11268name = "sp-authorship"11209name = "sp-authorship"11269version = "4.0.0-dev"11210version = "4.0.0-dev"11270source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11211source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11271dependencies = [11212dependencies = [11272 "async-trait",11213 "async-trait",11273 "parity-scale-codec 3.2.1",11214 "parity-scale-codec 3.2.1",11277]11218]112781121911279[[package]]11220[[package]]11221name = "sp-beefy"11222version = "4.0.0-dev"11223source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11224dependencies = [11225 "parity-scale-codec 3.2.1",11226 "scale-info",11227 "serde",11228 "sp-api",11229 "sp-application-crypto",11230 "sp-core",11231 "sp-io",11232 "sp-mmr-primitives",11233 "sp-runtime",11234 "sp-std",11235]1123611237[[package]]11280name = "sp-block-builder"11238name = "sp-block-builder"11281version = "4.0.0-dev"11239version = "4.0.0-dev"11282source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11240source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11283dependencies = [11241dependencies = [11284 "parity-scale-codec 3.2.1",11242 "parity-scale-codec 3.2.1",11285 "sp-api",11243 "sp-api",11291[[package]]11249[[package]]11292name = "sp-blockchain"11250name = "sp-blockchain"11293version = "4.0.0-dev"11251version = "4.0.0-dev"11294source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11252source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11295dependencies = [11253dependencies = [11296 "futures 0.3.25",11254 "futures 0.3.25",11297 "log",11255 "log",11309[[package]]11267[[package]]11310name = "sp-consensus"11268name = "sp-consensus"11311version = "0.10.0-dev"11269version = "0.10.0-dev"11312source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11270source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11313dependencies = [11271dependencies = [11314 "async-trait",11272 "async-trait",11315 "futures 0.3.25",11273 "futures 0.3.25",11328[[package]]11286[[package]]11329name = "sp-consensus-aura"11287name = "sp-consensus-aura"11330version = "0.10.0-dev"11288version = "0.10.0-dev"11331source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11289source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11332dependencies = [11290dependencies = [11333 "async-trait",11291 "async-trait",11334 "parity-scale-codec 3.2.1",11292 "parity-scale-codec 3.2.1",11346[[package]]11304[[package]]11347name = "sp-consensus-babe"11305name = "sp-consensus-babe"11348version = "0.10.0-dev"11306version = "0.10.0-dev"11349source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11307source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11350dependencies = [11308dependencies = [11351 "async-trait",11309 "async-trait",11352 "merlin",11310 "merlin",11369[[package]]11327[[package]]11370name = "sp-consensus-slots"11328name = "sp-consensus-slots"11371version = "0.10.0-dev"11329version = "0.10.0-dev"11372source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11330source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11373dependencies = [11331dependencies = [11374 "parity-scale-codec 3.2.1",11332 "parity-scale-codec 3.2.1",11375 "scale-info",11333 "scale-info",11383[[package]]11341[[package]]11384name = "sp-consensus-vrf"11342name = "sp-consensus-vrf"11385version = "0.10.0-dev"11343version = "0.10.0-dev"11386source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11344source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11387dependencies = [11345dependencies = [11388 "parity-scale-codec 3.2.1",11346 "parity-scale-codec 3.2.1",11389 "scale-info",11347 "scale-info",113951135311396[[package]]11354[[package]]11397name = "sp-core"11355name = "sp-core"11398version = "6.0.0"11356version = "7.0.0"11399source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11357source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11400dependencies = [11358dependencies = [11401 "array-bytes",11359 "array-bytes 4.2.0",11402 "base58",11360 "base58",11403 "bitflags",11361 "bitflags",11404 "blake2",11362 "blake2",114401139811441[[package]]11399[[package]]11442name = "sp-core-hashing"11400name = "sp-core-hashing"11443version = "4.0.0"11401version = "5.0.0"11444source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11402source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11445dependencies = [11403dependencies = [11446 "blake2",11404 "blake2",11447 "byteorder",11405 "byteorder",11455[[package]]11413[[package]]11456name = "sp-core-hashing-proc-macro"11414name = "sp-core-hashing-proc-macro"11457version = "5.0.0"11415version = "5.0.0"11458source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11416source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11459dependencies = [11417dependencies = [11460 "proc-macro2",11418 "proc-macro2",11461 "quote",11419 "quote",11466[[package]]11424[[package]]11467name = "sp-database"11425name = "sp-database"11468version = "4.0.0-dev"11426version = "4.0.0-dev"11469source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11427source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11470dependencies = [11428dependencies = [11471 "kvdb",11429 "kvdb",11472 "parking_lot 0.12.1",11430 "parking_lot 0.12.1",11473]11431]114741143211475[[package]]11433[[package]]11476name = "sp-debug-derive"11434name = "sp-debug-derive"11477version = "4.0.0"11435version = "5.0.0"11478source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11436source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11479dependencies = [11437dependencies = [11480 "proc-macro2",11438 "proc-macro2",11481 "quote",11439 "quote",114841144211485[[package]]11443[[package]]11486name = "sp-externalities"11444name = "sp-externalities"11487version = "0.12.0"11445version = "0.13.0"11488source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11446source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11489dependencies = [11447dependencies = [11490 "environmental",11448 "environmental",11491 "parity-scale-codec 3.2.1",11449 "parity-scale-codec 3.2.1",11496[[package]]11454[[package]]11497name = "sp-finality-grandpa"11455name = "sp-finality-grandpa"11498version = "4.0.0-dev"11456version = "4.0.0-dev"11499source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11457source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11500dependencies = [11458dependencies = [11501 "finality-grandpa",11459 "finality-grandpa",11502 "log",11460 "log",11514[[package]]11472[[package]]11515name = "sp-inherents"11473name = "sp-inherents"11516version = "4.0.0-dev"11474version = "4.0.0-dev"11517source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11475source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11518dependencies = [11476dependencies = [11519 "async-trait",11477 "async-trait",11520 "impl-trait-for-tuples",11478 "impl-trait-for-tuples",115271148511528[[package]]11486[[package]]11529name = "sp-io"11487name = "sp-io"11530version = "6.0.0"11488version = "7.0.0"11531source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11489source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11532dependencies = [11490dependencies = [11533 "bytes",11491 "bytes",11492 "ed25519-dalek",11534 "futures 0.3.25",11493 "futures 0.3.25",11535 "hash-db",11494 "hash-db",11536 "libsecp256k1",11495 "libsecp256k1",115531151211554[[package]]11513[[package]]11555name = "sp-keyring"11514name = "sp-keyring"11556version = "6.0.0"11515version = "7.0.0"11557source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11516source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11558dependencies = [11517dependencies = [11559 "lazy_static",11518 "lazy_static",11560 "sp-core",11519 "sp-core",115641152311565[[package]]11524[[package]]11566name = "sp-keystore"11525name = "sp-keystore"11567version = "0.12.0"11526version = "0.13.0"11568source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11527source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11569dependencies = [11528dependencies = [11570 "async-trait",11529 "async-trait",11571 "futures 0.3.25",11530 "futures 0.3.25",11582[[package]]11541[[package]]11583name = "sp-maybe-compressed-blob"11542name = "sp-maybe-compressed-blob"11584version = "4.1.0-dev"11543version = "4.1.0-dev"11585source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11544source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11586dependencies = [11545dependencies = [11587 "thiserror",11546 "thiserror",11588 "zstd",11547 "zstd",11591[[package]]11550[[package]]11592name = "sp-mmr-primitives"11551name = "sp-mmr-primitives"11593version = "4.0.0-dev"11552version = "4.0.0-dev"11594source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11553source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11595dependencies = [11554dependencies = [11555 "ckb-merkle-mountain-range",11596 "log",11556 "log",11597 "parity-scale-codec 3.2.1",11557 "parity-scale-codec 3.2.1",11598 "scale-info",11558 "scale-info",11608[[package]]11568[[package]]11609name = "sp-npos-elections"11569name = "sp-npos-elections"11610version = "4.0.0-dev"11570version = "4.0.0-dev"11611source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11571source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11612dependencies = [11572dependencies = [11613 "parity-scale-codec 3.2.1",11573 "parity-scale-codec 3.2.1",11614 "scale-info",11574 "scale-info",11622[[package]]11582[[package]]11623name = "sp-offchain"11583name = "sp-offchain"11624version = "4.0.0-dev"11584version = "4.0.0-dev"11625source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11585source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11626dependencies = [11586dependencies = [11627 "sp-api",11587 "sp-api",11628 "sp-core",11588 "sp-core",116311159111632[[package]]11592[[package]]11633name = "sp-panic-handler"11593name = "sp-panic-handler"11634version = "4.0.0"11594version = "5.0.0"11635source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11595source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11636dependencies = [11596dependencies = [11637 "backtrace",11597 "backtrace",11638 "lazy_static",11598 "lazy_static",11642[[package]]11602[[package]]11643name = "sp-rpc"11603name = "sp-rpc"11644version = "6.0.0"11604version = "6.0.0"11645source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11605source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11646dependencies = [11606dependencies = [11647 "rustc-hash",11607 "rustc-hash",11648 "serde",11608 "serde",116511161111652[[package]]11612[[package]]11653name = "sp-runtime"11613name = "sp-runtime"11654version = "6.0.0"11614version = "7.0.0"11655source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11615source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11656dependencies = [11616dependencies = [11657 "either",11617 "either",11658 "hash256-std-hasher",11618 "hash256-std-hasher",11659 "impl-trait-for-tuples",11619 "impl-trait-for-tuples",11660 "log",11620 "log",11661 "parity-scale-codec 3.2.1",11621 "parity-scale-codec 3.2.1",11662 "parity-util-mem",11663 "paste",11622 "paste",11664 "rand 0.7.3",11623 "rand 0.7.3",11665 "scale-info",11624 "scale-info",116741163311675[[package]]11634[[package]]11676name = "sp-runtime-interface"11635name = "sp-runtime-interface"11677version = "6.0.0"11636version = "7.0.0"11678source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11637source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11679dependencies = [11638dependencies = [11680 "bytes",11639 "bytes",11681 "impl-trait-for-tuples",11640 "impl-trait-for-tuples",116921165111693[[package]]11652[[package]]11694name = "sp-runtime-interface-proc-macro"11653name = "sp-runtime-interface-proc-macro"11695version = "5.0.0"11654version = "6.0.0"11696source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11655source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11697dependencies = [11656dependencies = [11698 "Inflector",11657 "Inflector",11699 "proc-macro-crate",11658 "proc-macro-crate",11703]11662]117041166311705[[package]]11664[[package]]11706name = "sp-sandbox"11707version = "0.10.0-dev"11708source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11709dependencies = [11710 "log",11711 "parity-scale-codec 3.2.1",11712 "sp-core",11713 "sp-io",11714 "sp-std",11715 "sp-wasm-interface",11716 "wasmi",11717]1171811719[[package]]11720name = "sp-session"11665name = "sp-session"11721version = "4.0.0-dev"11666version = "4.0.0-dev"11722source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11667source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11723dependencies = [11668dependencies = [11724 "parity-scale-codec 3.2.1",11669 "parity-scale-codec 3.2.1",11725 "scale-info",11670 "scale-info",11733[[package]]11678[[package]]11734name = "sp-staking"11679name = "sp-staking"11735version = "4.0.0-dev"11680version = "4.0.0-dev"11736source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11681source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11737dependencies = [11682dependencies = [11738 "parity-scale-codec 3.2.1",11683 "parity-scale-codec 3.2.1",11739 "scale-info",11684 "scale-info",11685 "sp-core",11740 "sp-runtime",11686 "sp-runtime",11741 "sp-std",11687 "sp-std",11742]11688]117431168911744[[package]]11690[[package]]11745name = "sp-state-machine"11691name = "sp-state-machine"11746version = "0.12.0"11692version = "0.13.0"11747source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11693source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11748dependencies = [11694dependencies = [11749 "hash-db",11695 "hash-db",11750 "log",11696 "log",117651171111766[[package]]11712[[package]]11767name = "sp-std"11713name = "sp-std"11768version = "4.0.0"11714version = "5.0.0"11769source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11715source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"117701171611771[[package]]11717[[package]]11772name = "sp-storage"11718name = "sp-storage"11773version = "6.0.0"11719version = "7.0.0"11774source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11720source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11775dependencies = [11721dependencies = [11776 "impl-serde",11722 "impl-serde",11777 "parity-scale-codec 3.2.1",11723 "parity-scale-codec 3.2.1",11784[[package]]11730[[package]]11785name = "sp-timestamp"11731name = "sp-timestamp"11786version = "4.0.0-dev"11732version = "4.0.0-dev"11787source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11733source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11788dependencies = [11734dependencies = [11789 "async-trait",11735 "async-trait",11790 "futures-timer",11736 "futures-timer",117991174511800[[package]]11746[[package]]11801name = "sp-tracing"11747name = "sp-tracing"11802version = "5.0.0"11748version = "6.0.0"11803source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11749source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11804dependencies = [11750dependencies = [11805 "parity-scale-codec 3.2.1",11751 "parity-scale-codec 3.2.1",11806 "sp-std",11752 "sp-std",11812[[package]]11758[[package]]11813name = "sp-transaction-pool"11759name = "sp-transaction-pool"11814version = "4.0.0-dev"11760version = "4.0.0-dev"11815source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11761source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11816dependencies = [11762dependencies = [11817 "sp-api",11763 "sp-api",11818 "sp-runtime",11764 "sp-runtime",11821[[package]]11767[[package]]11822name = "sp-transaction-storage-proof"11768name = "sp-transaction-storage-proof"11823version = "4.0.0-dev"11769version = "4.0.0-dev"11824source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11770source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11825dependencies = [11771dependencies = [11826 "async-trait",11772 "async-trait",11827 "log",11773 "log",118361178211837[[package]]11783[[package]]11838name = "sp-trie"11784name = "sp-trie"11839version = "6.0.0"11785version = "7.0.0"11840source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11786source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11841dependencies = [11787dependencies = [11842 "ahash",11788 "ahash",11843 "hash-db",11789 "hash-db",11860[[package]]11806[[package]]11861name = "sp-version"11807name = "sp-version"11862version = "5.0.0"11808version = "5.0.0"11863source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11809source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11864dependencies = [11810dependencies = [11865 "impl-serde",11811 "impl-serde",11866 "parity-scale-codec 3.2.1",11812 "parity-scale-codec 3.2.1",11877[[package]]11823[[package]]11878name = "sp-version-proc-macro"11824name = "sp-version-proc-macro"11879version = "4.0.0-dev"11825version = "4.0.0-dev"11880source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11826source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11881dependencies = [11827dependencies = [11882 "parity-scale-codec 3.2.1",11828 "parity-scale-codec 3.2.1",11883 "proc-macro2",11829 "proc-macro2",118871183311888[[package]]11834[[package]]11889name = "sp-wasm-interface"11835name = "sp-wasm-interface"11890version = "6.0.0"11836version = "7.0.0"11891source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11837source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11892dependencies = [11838dependencies = [11893 "impl-trait-for-tuples",11839 "impl-trait-for-tuples",11894 "log",11840 "log",11901[[package]]11847[[package]]11902name = "sp-weights"11848name = "sp-weights"11903version = "4.0.0"11849version = "4.0.0"11904source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"11850source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"11905dependencies = [11851dependencies = [11906 "impl-trait-for-tuples",11852 "impl-trait-for-tuples",11907 "parity-scale-codec 3.2.1",11853 "parity-scale-codec 3.2.1",119321187811933[[package]]11879[[package]]11934name = "ss58-registry"11880name = "ss58-registry"11935version = "1.35.0"11881version = "1.36.0"11936source = "registry+https://github.com/rust-lang/crates.io-index"11882source = "registry+https://github.com/rust-lang/crates.io-index"11937checksum = "fa0813c10b9dbdc842c2305f949f724c64866e4ef4d09c9151e96f6a2106773c"11883checksum = "23d92659e7d18d82b803824a9ba5a6022cff101c3491d027c1c1d8d30e749284"11938dependencies = [11884dependencies = [11939 "Inflector",11885 "Inflector",11940 "num-format",11886 "num-format",11979 "cfg_aliases",11925 "cfg_aliases",11980 "libc",11926 "libc",11981 "parking_lot 0.11.2",11927 "parking_lot 0.11.2",11982 "parking_lot_core 0.8.5",11928 "parking_lot_core 0.8.6",11983 "static_init_macro 1.0.2",11929 "static_init_macro 1.0.2",11984 "winapi",11930 "winapi",11985]11931]12075[[package]]12021[[package]]12076name = "substrate-build-script-utils"12022name = "substrate-build-script-utils"12077version = "3.0.0"12023version = "3.0.0"12078source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12024source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12079dependencies = [12025dependencies = [12080 "platforms",12026 "platforms 2.0.0",12081]12027]120821202812083[[package]]12029[[package]]12084name = "substrate-frame-rpc-system"12030name = "substrate-frame-rpc-system"12085version = "4.0.0-dev"12031version = "4.0.0-dev"12086source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12032source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12087dependencies = [12033dependencies = [12088 "frame-system-rpc-runtime-api",12034 "frame-system-rpc-runtime-api",12089 "futures 0.3.25",12035 "futures 0.3.25",12104[[package]]12050[[package]]12105name = "substrate-prometheus-endpoint"12051name = "substrate-prometheus-endpoint"12106version = "0.10.0-dev"12052version = "0.10.0-dev"12107source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12053source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12108dependencies = [12054dependencies = [12109 "futures-util",12055 "futures-util",12110 "hyper",12056 "hyper",12117[[package]]12063[[package]]12118name = "substrate-rpc-client"12064name = "substrate-rpc-client"12119version = "0.10.0-dev"12065version = "0.10.0-dev"12120source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12066source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12121dependencies = [12067dependencies = [12122 "async-trait",12068 "async-trait",12123 "jsonrpsee",12069 "jsonrpsee",12130[[package]]12076[[package]]12131name = "substrate-state-trie-migration-rpc"12077name = "substrate-state-trie-migration-rpc"12132version = "4.0.0-dev"12078version = "4.0.0-dev"12133source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12079source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12134dependencies = [12080dependencies = [12135 "jsonrpsee",12081 "jsonrpsee",12136 "log",12082 "log",12151[[package]]12097[[package]]12152name = "substrate-test-client"12098name = "substrate-test-client"12153version = "2.0.1"12099version = "2.0.1"12154source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12100source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12155dependencies = [12101dependencies = [12156 "array-bytes",12102 "array-bytes 4.2.0",12157 "async-trait",12103 "async-trait",12158 "futures 0.3.25",12104 "futures 0.3.25",12159 "parity-scale-codec 3.2.1",12105 "parity-scale-codec 3.2.1",12177[[package]]12123[[package]]12178name = "substrate-test-utils"12124name = "substrate-test-utils"12179version = "4.0.0-dev"12125version = "4.0.0-dev"12180source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12126source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12181dependencies = [12127dependencies = [12182 "futures 0.3.25",12128 "futures 0.3.25",12183 "substrate-test-utils-derive",12129 "substrate-test-utils-derive",12187[[package]]12133[[package]]12188name = "substrate-test-utils-derive"12134name = "substrate-test-utils-derive"12189version = "0.10.0-dev"12135version = "0.10.0-dev"12190source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12136source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12191dependencies = [12137dependencies = [12192 "proc-macro-crate",12138 "proc-macro-crate",12193 "proc-macro2",12139 "proc-macro2",12198[[package]]12144[[package]]12199name = "substrate-wasm-builder"12145name = "substrate-wasm-builder"12200version = "5.0.0-dev"12146version = "5.0.0-dev"12201source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12147source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12202dependencies = [12148dependencies = [12203 "ansi_term",12149 "ansi_term",12204 "build-helper",12150 "build-helper",122201216612221[[package]]12167[[package]]12222name = "syn"12168name = "syn"12223version = "1.0.105"12169version = "1.0.107"12224source = "registry+https://github.com/rust-lang/crates.io-index"12170source = "registry+https://github.com/rust-lang/crates.io-index"12225checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"12171checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"12226dependencies = [12172dependencies = [12227 "proc-macro2",12173 "proc-macro2",12228 "quote",12174 "quote",123151226112316[[package]]12262[[package]]12317name = "test-runtime-constants"12263name = "test-runtime-constants"12318version = "0.9.33"12264version = "0.9.36"12319source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"12265source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"12320dependencies = [12266dependencies = [12321 "frame-support",12267 "frame-support",12322 "polkadot-primitives",12268 "polkadot-primitives",123591230512360[[package]]12306[[package]]12361name = "thiserror"12307name = "thiserror"12362version = "1.0.37"12308version = "1.0.38"12363source = "registry+https://github.com/rust-lang/crates.io-index"12309source = "registry+https://github.com/rust-lang/crates.io-index"12364checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"12310checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"12365dependencies = [12311dependencies = [12366 "thiserror-impl",12312 "thiserror-impl",12367]12313]123681231412369[[package]]12315[[package]]12370name = "thiserror-impl"12316name = "thiserror-impl"12371version = "1.0.37"12317version = "1.0.38"12372source = "registry+https://github.com/rust-lang/crates.io-index"12318source = "registry+https://github.com/rust-lang/crates.io-index"12373checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"12319checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"12374dependencies = [12320dependencies = [12375 "proc-macro2",12321 "proc-macro2",12376 "quote",12322 "quote",12415]12361]124161236212417[[package]]12363[[package]]12364name = "tikv-jemalloc-ctl"12365version = "0.5.0"12366source = "registry+https://github.com/rust-lang/crates.io-index"12367checksum = "e37706572f4b151dff7a0146e040804e9c26fe3a3118591112f05cf12a4216c1"12368dependencies = [12369 "libc",12370 "paste",12371 "tikv-jemalloc-sys",12372]1237312374[[package]]12418name = "tikv-jemalloc-sys"12375name = "tikv-jemalloc-sys"12419version = "0.5.2+5.3.0-patched"12376version = "0.5.2+5.3.0-patched"12420source = "registry+https://github.com/rust-lang/crates.io-index"12377source = "registry+https://github.com/rust-lang/crates.io-index"12437]12394]124381239512439[[package]]12396[[package]]12440name = "time"12441version = "0.3.9"12442source = "registry+https://github.com/rust-lang/crates.io-index"12443checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd"12444dependencies = [12445 "itoa",12446 "libc",12447 "num_threads",12448 "time-macros",12449]1245012451[[package]]12452name = "time-macros"12453version = "0.2.4"12454source = "registry+https://github.com/rust-lang/crates.io-index"12455checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792"1245612457[[package]]12458name = "tiny-bip39"12397name = "tiny-bip39"12459version = "0.8.2"12398version = "0.8.2"12460source = "registry+https://github.com/rust-lang/crates.io-index"12399source = "registry+https://github.com/rust-lang/crates.io-index"125671250612568[[package]]12507[[package]]12569name = "toml"12508name = "toml"12570version = "0.5.9"12509version = "0.5.10"12571source = "registry+https://github.com/rust-lang/crates.io-index"12510source = "registry+https://github.com/rust-lang/crates.io-index"12572checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"12511checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"12573dependencies = [12512dependencies = [12574 "serde",12513 "serde",12575]12514]125761251512577[[package]]12516[[package]]12517name = "tower"12518version = "0.4.13"12519source = "registry+https://github.com/rust-lang/crates.io-index"12520checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"12521dependencies = [12522 "tower-layer",12523 "tower-service",12524 "tracing",12525]1252612527[[package]]12528name = "tower-http"12529version = "0.3.5"12530source = "registry+https://github.com/rust-lang/crates.io-index"12531checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858"12532dependencies = [12533 "bitflags",12534 "bytes",12535 "futures-core",12536 "futures-util",12537 "http",12538 "http-body",12539 "http-range-header",12540 "pin-project-lite 0.2.9",12541 "tower-layer",12542 "tower-service",12543]1254412545[[package]]12546name = "tower-layer"12547version = "0.3.2"12548source = "registry+https://github.com/rust-lang/crates.io-index"12549checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"1255012551[[package]]12578name = "tower-service"12552name = "tower-service"12579version = "0.3.2"12553version = "0.3.2"12580source = "registry+https://github.com/rust-lang/crates.io-index"12554source = "registry+https://github.com/rust-lang/crates.io-index"12587checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"12561checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"12588dependencies = [12562dependencies = [12589 "cfg-if",12563 "cfg-if",12564 "log",12590 "pin-project-lite 0.2.9",12565 "pin-project-lite 0.2.9",12591 "tracing-attributes",12566 "tracing-attributes",12592 "tracing-core",12567 "tracing-core",126251260012626[[package]]12601[[package]]12627name = "tracing-gum"12602name = "tracing-gum"12628version = "0.9.33"12603version = "0.9.36"12629source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"12604source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"12630dependencies = [12605dependencies = [12631 "polkadot-node-jaeger",12606 "polkadot-node-jaeger",12632 "polkadot-primitives",12607 "polkadot-primitives",126361261112637[[package]]12612[[package]]12638name = "tracing-gum-proc-macro"12613name = "tracing-gum-proc-macro"12639version = "0.9.33"12614version = "0.9.36"12640source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"12615source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"12641dependencies = [12616dependencies = [12642 "expander 0.0.6",12617 "expander 0.0.6",12643 "proc-macro-crate",12618 "proc-macro-crate",12742 "smallvec",12717 "smallvec",12743 "thiserror",12718 "thiserror",12744 "tinyvec",12719 "tinyvec",12720 "tokio",12745 "tracing",12721 "tracing",12746 "url",12722 "url",12747]12723]12761 "resolv-conf",12737 "resolv-conf",12762 "smallvec",12738 "smallvec",12763 "thiserror",12739 "thiserror",12740 "tokio",12764 "tracing",12741 "tracing",12765 "trust-dns-proto",12742 "trust-dns-proto",12766]12743]12774[[package]]12751[[package]]12775name = "try-runtime-cli"12752name = "try-runtime-cli"12776version = "0.10.0-dev"12753version = "0.10.0-dev"12777source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.33#2dff067e9f7f6f3cc4dbfdaaa97753eccc407689"12754source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51"12778dependencies = [12755dependencies = [12779 "clap",12756 "clap",12757 "frame-remote-externalities",12780 "frame-try-runtime",12758 "frame-try-runtime",12759 "hex",12781 "log",12760 "log",12782 "parity-scale-codec 3.2.1",12761 "parity-scale-codec 3.2.1",12783 "remote-externalities",12784 "sc-chain-spec",12762 "sc-chain-spec",12785 "sc-cli",12763 "sc-cli",12786 "sc-executor",12764 "sc-executor",12787 "sc-service",12765 "sc-service",12788 "serde",12766 "serde",12767 "sp-api",12789 "sp-core",12768 "sp-core",12769 "sp-debug-derive",12790 "sp-externalities",12770 "sp-externalities",12791 "sp-io",12771 "sp-io",12792 "sp-keystore",12772 "sp-keystore",12773 "sp-rpc",12793 "sp-runtime",12774 "sp-runtime",12794 "sp-state-machine",12775 "sp-state-machine",12795 "sp-version",12776 "sp-version",128001278112801[[package]]12782[[package]]12802name = "trybuild"12783name = "trybuild"12803version = "1.0.72"12784version = "1.0.73"12804source = "registry+https://github.com/rust-lang/crates.io-index"12785source = "registry+https://github.com/rust-lang/crates.io-index"12805checksum = "db29f438342820400f2d9acfec0d363e987a38b2950bdb50a7069ed17b2148ee"12786checksum = "ed01de3de062db82c0920b5cabe804f88d599a3f217932292597c678c903754d"12806dependencies = [12787dependencies = [12807 "glob",12788 "glob",12808 "once_cell",12789 "once_cell",128151279612816[[package]]12797[[package]]12817name = "tt-call"12798name = "tt-call"12818version = "1.0.8"12799version = "1.0.9"12819source = "registry+https://github.com/rust-lang/crates.io-index"12800source = "registry+https://github.com/rust-lang/crates.io-index"12820checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055"12801checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df"128211280212822[[package]]12803[[package]]12823name = "twox-hash"12804name = "twox-hash"12876]12857]128771285812878[[package]]12859[[package]]12879name = "unicase"12880version = "2.6.0"12881source = "registry+https://github.com/rust-lang/crates.io-index"12882checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"12883dependencies = [12884 "version_check",12885]1288612887[[package]]12888name = "unicode-bidi"12860name = "unicode-bidi"12889version = "0.3.8"12861version = "0.3.8"12890source = "registry+https://github.com/rust-lang/crates.io-index"12862source = "registry+https://github.com/rust-lang/crates.io-index"12891checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"12863checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"128921286412893[[package]]12865[[package]]12894name = "unicode-ident"12866name = "unicode-ident"12895version = "1.0.5"12867version = "1.0.6"12896source = "registry+https://github.com/rust-lang/crates.io-index"12868source = "registry+https://github.com/rust-lang/crates.io-index"12897checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"12869checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"128981287012899[[package]]12871[[package]]12900name = "unicode-normalization"12872name = "unicode-normalization"129251289712926[[package]]12898[[package]]12927name = "unique-node"12899name = "unique-node"12928version = "0.9.33"12900version = "0.9.36"12929dependencies = [12901dependencies = [12930 "app-promotion-rpc",12902 "app-promotion-rpc",12931 "clap",12903 "clap",130641303613065[[package]]13037[[package]]13066name = "unique-runtime"13038name = "unique-runtime"13067version = "0.9.33"13039version = "0.9.36"13068dependencies = [13040dependencies = [13069 "app-promotion-rpc",13041 "app-promotion-rpc",13070 "cumulus-pallet-aura-ext",13042 "cumulus-pallet-aura-ext",131891316113190[[package]]13162[[package]]13191name = "up-common"13163name = "up-common"13192version = "0.9.33"13164version = "0.9.36"13193dependencies = [13165dependencies = [13194 "cumulus-primitives-core",13166 "cumulus-primitives-core",13195 "fp-rpc",13167 "fp-rpc",13237[[package]]13209[[package]]13238name = "up-sponsorship"13210name = "up-sponsorship"13239version = "0.1.0"13211version = "0.1.0"13240source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.33#994d4a8dc6cc630b73d19f97315272a8795317e7"13212source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v0.9.36#55943b982e9b0b80465885f31f76db3dba91dac4"13241dependencies = [13213dependencies = [13242 "impl-trait-for-tuples",13214 "impl-trait-for-tuples",13243]13215]13490checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7"13462checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7"13491dependencies = [13463dependencies = [13492 "downcast-rs",13464 "downcast-rs",13493 "libm",13465 "libm 0.2.6",13494 "memory_units",13466 "memory_units",13495 "num-rational",13467 "num-rational",13496 "num-traits",13468 "num-traits",13517 "indexmap",13489 "indexmap",13518 "libc",13490 "libc",13519 "log",13491 "log",13520 "object",13492 "object 0.29.0",13521 "once_cell",13493 "once_cell",13522 "paste",13494 "paste",13523 "psm",13495 "psm",13574 "cranelift-frontend",13546 "cranelift-frontend",13575 "cranelift-native",13547 "cranelift-native",13576 "cranelift-wasm",13548 "cranelift-wasm",13577 "gimli",13549 "gimli 0.26.2",13578 "log",13550 "log",13579 "object",13551 "object 0.29.0",13580 "target-lexicon",13552 "target-lexicon",13581 "thiserror",13553 "thiserror",13582 "wasmparser",13554 "wasmparser",13591dependencies = [13563dependencies = [13592 "anyhow",13564 "anyhow",13593 "cranelift-entity",13565 "cranelift-entity",13594 "gimli",13566 "gimli 0.26.2",13595 "indexmap",13567 "indexmap",13596 "log",13568 "log",13597 "object",13569 "object 0.29.0",13598 "serde",13570 "serde",13599 "target-lexicon",13571 "target-lexicon",13600 "thiserror",13572 "thiserror",13608source = "registry+https://github.com/rust-lang/crates.io-index"13580source = "registry+https://github.com/rust-lang/crates.io-index"13609checksum = "1985c628011fe26adf5e23a5301bdc79b245e0e338f14bb58b39e4e25e4d8681"13581checksum = "1985c628011fe26adf5e23a5301bdc79b245e0e338f14bb58b39e4e25e4d8681"13610dependencies = [13582dependencies = [13611 "addr2line",13583 "addr2line 0.17.0",13612 "anyhow",13584 "anyhow",13613 "bincode",13585 "bincode",13614 "cfg-if",13586 "cfg-if",13615 "cpp_demangle",13587 "cpp_demangle",13616 "gimli",13588 "gimli 0.26.2",13617 "log",13589 "log",13618 "object",13590 "object 0.29.0",13619 "rustc-demangle",13591 "rustc-demangle",13620 "rustix 0.35.13",13592 "rustix 0.35.13",13621 "serde",13593 "serde",13633source = "registry+https://github.com/rust-lang/crates.io-index"13605source = "registry+https://github.com/rust-lang/crates.io-index"13634checksum = "f671b588486f5ccec8c5a3dba6b4c07eac2e66ab8c60e6f4e53717c77f709731"13606checksum = "f671b588486f5ccec8c5a3dba6b4c07eac2e66ab8c60e6f4e53717c77f709731"13635dependencies = [13607dependencies = [13636 "object",13608 "object 0.29.0",13637 "once_cell",13609 "once_cell",13638 "rustix 0.35.13",13610 "rustix 0.35.13",13639]13611]136971366913698[[package]]13670[[package]]13699name = "webpki-roots"13671name = "webpki-roots"13700version = "0.22.5"13672version = "0.22.6"13701source = "registry+https://github.com/rust-lang/crates.io-index"13673source = "registry+https://github.com/rust-lang/crates.io-index"13702checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be"13674checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"13703dependencies = [13675dependencies = [13704 "webpki",13676 "webpki",13705]13677]137151368713716[[package]]13688[[package]]13717name = "westend-runtime"13689name = "westend-runtime"13718version = "0.9.33"13690version = "0.9.36"13719source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"13691source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"13720dependencies = [13692dependencies = [13721 "beefy-primitives",13722 "bitvec 1.0.1",13693 "bitvec 1.0.1",13723 "frame-benchmarking",13694 "frame-benchmarking",13724 "frame-election-provider-support",13695 "frame-election-provider-support",13782 "smallvec",13753 "smallvec",13783 "sp-api",13754 "sp-api",13784 "sp-authority-discovery",13755 "sp-authority-discovery",13756 "sp-beefy",13785 "sp-block-builder",13757 "sp-block-builder",13786 "sp-consensus-babe",13758 "sp-consensus-babe",13787 "sp-core",13759 "sp-core",138051377713806[[package]]13778[[package]]13807name = "westend-runtime-constants"13779name = "westend-runtime-constants"13808version = "0.9.33"13780version = "0.9.36"13809source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"13781source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"13810dependencies = [13782dependencies = [13811 "frame-support",13783 "frame-support",13812 "polkadot-primitives",13784 "polkadot-primitives",140451401714046[[package]]14018[[package]]14047name = "xcm"14019name = "xcm"14048version = "0.9.33"14020version = "0.9.36"14049source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"14021source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"14050dependencies = [14022dependencies = [14051 "derivative",14023 "derivative",14052 "impl-trait-for-tuples",14024 "impl-trait-for-tuples",140591403114060[[package]]14032[[package]]14061name = "xcm-builder"14033name = "xcm-builder"14062version = "0.9.33"14034version = "0.9.36"14063source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"14035source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"14064dependencies = [14036dependencies = [14065 "frame-support",14037 "frame-support",14066 "frame-system",14038 "frame-system",140791405114080[[package]]14052[[package]]14081name = "xcm-executor"14053name = "xcm-executor"14082version = "0.9.33"14054version = "0.9.36"14083source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"14055source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"14084dependencies = [14056dependencies = [14085 "frame-benchmarking",14057 "frame-benchmarking",14086 "frame-support",14058 "frame-support",140971406914098[[package]]14070[[package]]14099name = "xcm-procedural"14071name = "xcm-procedural"14100version = "0.9.33"14072version = "0.9.36"14101source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.33#c7d6c21242fc654f6f069e12c00951484dff334d"14073source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc"14102dependencies = [14074dependencies = [14103 "Inflector",14075 "Inflector",14104 "proc-macro2",14076 "proc-macro2",Cargo.tomldiffbeforeafterboth1cargo-features = ["workspace-inheritance"]23[workspace]1[workspace]4resolver = "2"2resolver = "2"14 'runtime/tests',12 'runtime/tests',15]13]16default-members = ['node/*', 'runtime/opal']14default-members = ['node/*', 'runtime/opal']15package.version = "0.9.36"171618[profile.release]17[profile.release]19panic = 'unwind'18panic = 'unwind'201921[workspace.dependencies.orml-vesting]20[workspace.dependencies.orml-vesting]22git = "https://github.com/uniquenetwork/open-runtime-module-library"21git = "https://github.com/uniquenetwork/open-runtime-module-library"23branch = "polkadot-v0.9.33"22branch = "feature/polkadot-v0.9.36"24default-features = false23default-features = false252426[workspace.dependencies.orml-xtokens]25[workspace.dependencies.orml-xtokens]27git = "https://github.com/uniquenetwork/open-runtime-module-library"26git = "https://github.com/uniquenetwork/open-runtime-module-library"28branch = "polkadot-v0.9.33"27branch = "feature/polkadot-v0.9.36"29default-features = false28default-features = false302931[workspace.dependencies.orml-tokens]30[workspace.dependencies.orml-tokens]32git = "https://github.com/uniquenetwork/open-runtime-module-library"31git = "https://github.com/uniquenetwork/open-runtime-module-library"33branch = "polkadot-v0.9.33"32branch = "feature/polkadot-v0.9.36"34default-features = false33default-features = false353436[workspace.dependencies.orml-traits]35[workspace.dependencies.orml-traits]37git = "https://github.com/uniquenetwork/open-runtime-module-library"36git = "https://github.com/uniquenetwork/open-runtime-module-library"38branch = "polkadot-v0.9.33"37branch = "feature/polkadot-v0.9.36"39default-features = false38default-features = false4039README.mddiffbeforeafterboth90```90```91git clone https://github.com/paritytech/polkadot.git91git clone https://github.com/paritytech/polkadot.git92cd polkadot92cd polkadot93git checkout release-v0.9.3393git checkout release-v0.9.3694cargo build --release94cargo build --release95```95```9696client/rpc/Cargo.tomldiffbeforeafterboth11app-promotion-rpc = { path = "../../primitives/app_promotion_rpc"}11app-promotion-rpc = { path = "../../primitives/app_promotion_rpc" }12rmrk-rpc = { path = "../../primitives/rmrk-rpc" }12rmrk-rpc = { path = "../../primitives/rmrk-rpc" }13codec = { package = "parity-scale-codec", version = "3.1.2" }13codec = { package = "parity-scale-codec", version = "3.1.2" }14jsonrpsee = { version = "0.15.1", features = ["server", "macros"] }14jsonrpsee = { version = "0.16.2", features = ["server", "macros"] }15anyhow = "1.0.57"15anyhow = "1.0.57"161617sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-blockchain = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-blockchain = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }19sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }20sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }20sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }21sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }21sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }2323crates/evm-coder/Cargo.tomldiffbeforeafterboth12primitive-types = { version = "0.12.1", default-features = false }12primitive-types = { version = "0.12.1", default-features = false }13# Evm doesn't have reexports for log and others13# Evm doesn't have reexports for log and others14ethereum = { version = "0.14.0", default-features = false }14ethereum = { version = "0.14.0", default-features = false }15sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17# Error types for execution17# Error types for execution18evm-core = { default-features = false, git = "https://github.com/uniquenetwork/evm", branch = "unique-polkadot-v0.9.33" }18evm-core = { default-features = false, git = "https://github.com/uniquenetwork/evm", branch = "unique-polkadot-v0.9.36" }19# We have tuple-heavy code in solidity.rs19# We have tuple-heavy code in solidity.rs20impl-trait-for-tuples = "0.2.2"20impl-trait-for-tuples = "0.2.2"212122pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }232324[dev-dependencies]24[dev-dependencies]25# We want to assert some large binary blobs equality in tests25# We want to assert some large binary blobs equality in testsnode/cli/Cargo.tomldiffbeforeafterboth334[build-dependencies.substrate-build-script-utils]4[build-dependencies.substrate-build-script-utils]5git = "https://github.com/paritytech/substrate"5git = "https://github.com/paritytech/substrate"6branch = "polkadot-v0.9.33"6branch = "polkadot-v0.9.36"778################################################################################8################################################################################9# Substrate Dependecies9# Substrate Dependecies161617[dependencies.frame-benchmarking]17[dependencies.frame-benchmarking]18git = "https://github.com/paritytech/substrate"18git = "https://github.com/paritytech/substrate"19branch = "polkadot-v0.9.33"19branch = "polkadot-v0.9.36"202021[dependencies.frame-benchmarking-cli]21[dependencies.frame-benchmarking-cli]22git = "https://github.com/paritytech/substrate"22git = "https://github.com/paritytech/substrate"23branch = "polkadot-v0.9.33"23branch = "polkadot-v0.9.36"242425[dependencies.try-runtime-cli]25[dependencies.try-runtime-cli]26git = "https://github.com/paritytech/substrate"26git = "https://github.com/paritytech/substrate"27branch = "polkadot-v0.9.33"27branch = "polkadot-v0.9.36"282829[dependencies.pallet-transaction-payment-rpc]29[dependencies.pallet-transaction-payment-rpc]30git = "https://github.com/paritytech/substrate"30git = "https://github.com/paritytech/substrate"31branch = "polkadot-v0.9.33"31branch = "polkadot-v0.9.36"323233[dependencies.substrate-prometheus-endpoint]33[dependencies.substrate-prometheus-endpoint]34git = "https://github.com/paritytech/substrate"34git = "https://github.com/paritytech/substrate"35branch = "polkadot-v0.9.33"35branch = "polkadot-v0.9.36"363637[dependencies.sc-basic-authorship]37[dependencies.sc-basic-authorship]38git = "https://github.com/paritytech/substrate"38git = "https://github.com/paritytech/substrate"39branch = "polkadot-v0.9.33"39branch = "polkadot-v0.9.36"404041[dependencies.sc-chain-spec]41[dependencies.sc-chain-spec]42git = "https://github.com/paritytech/substrate"42git = "https://github.com/paritytech/substrate"43branch = "polkadot-v0.9.33"43branch = "polkadot-v0.9.36"444445[dependencies.sc-cli]45[dependencies.sc-cli]46features = ['wasmtime']47git = "https://github.com/paritytech/substrate"46git = "https://github.com/paritytech/substrate"48branch = "polkadot-v0.9.33"47branch = "polkadot-v0.9.36"494850[dependencies.sc-client-api]49[dependencies.sc-client-api]51git = "https://github.com/paritytech/substrate"50git = "https://github.com/paritytech/substrate"52branch = "polkadot-v0.9.33"51branch = "polkadot-v0.9.36"535254[dependencies.sc-consensus]53[dependencies.sc-consensus]55git = "https://github.com/paritytech/substrate"54git = "https://github.com/paritytech/substrate"56branch = "polkadot-v0.9.33"55branch = "polkadot-v0.9.36"575658[dependencies.sc-consensus-aura]57[dependencies.sc-consensus-aura]59git = "https://github.com/paritytech/substrate"58git = "https://github.com/paritytech/substrate"60branch = "polkadot-v0.9.33"59branch = "polkadot-v0.9.36"616062[dependencies.sc-executor]61[dependencies.sc-executor]63features = ['wasmtime']64git = "https://github.com/paritytech/substrate"62git = "https://github.com/paritytech/substrate"65branch = "polkadot-v0.9.33"63branch = "polkadot-v0.9.36"666467[dependencies.sc-finality-grandpa]65[dependencies.sc-finality-grandpa]68git = "https://github.com/paritytech/substrate"66git = "https://github.com/paritytech/substrate"69branch = "polkadot-v0.9.33"67branch = "polkadot-v0.9.36"706871[dependencies.sc-keystore]69[dependencies.sc-keystore]72git = "https://github.com/paritytech/substrate"70git = "https://github.com/paritytech/substrate"73branch = "polkadot-v0.9.33"71branch = "polkadot-v0.9.36"747275[dependencies.sc-rpc]73[dependencies.sc-rpc]76git = "https://github.com/paritytech/substrate"74git = "https://github.com/paritytech/substrate"77branch = "polkadot-v0.9.33"75branch = "polkadot-v0.9.36"787679[dependencies.sc-rpc-api]77[dependencies.sc-rpc-api]80git = "https://github.com/paritytech/substrate"78git = "https://github.com/paritytech/substrate"81branch = "polkadot-v0.9.33"79branch = "polkadot-v0.9.36"828083[dependencies.sc-service]81[dependencies.sc-service]84features = ['wasmtime']85git = "https://github.com/paritytech/substrate"82git = "https://github.com/paritytech/substrate"86branch = "polkadot-v0.9.33"83branch = "polkadot-v0.9.36"878488[dependencies.sc-telemetry]85[dependencies.sc-telemetry]89git = "https://github.com/paritytech/substrate"86git = "https://github.com/paritytech/substrate"90branch = "polkadot-v0.9.33"87branch = "polkadot-v0.9.36"918892[dependencies.sc-transaction-pool]89[dependencies.sc-transaction-pool]93git = "https://github.com/paritytech/substrate"90git = "https://github.com/paritytech/substrate"94branch = "polkadot-v0.9.33"91branch = "polkadot-v0.9.36"959296[dependencies.sc-tracing]93[dependencies.sc-tracing]97git = "https://github.com/paritytech/substrate"94git = "https://github.com/paritytech/substrate"98branch = "polkadot-v0.9.33"95branch = "polkadot-v0.9.36"9996100[dependencies.sc-sysinfo]97[dependencies.sc-sysinfo]101git = "https://github.com/paritytech/substrate"98git = "https://github.com/paritytech/substrate"102branch = "polkadot-v0.9.33"99branch = "polkadot-v0.9.36"103100104[dependencies.sp-block-builder]101[dependencies.sp-block-builder]105git = "https://github.com/paritytech/substrate"102git = "https://github.com/paritytech/substrate"106branch = "polkadot-v0.9.33"103branch = "polkadot-v0.9.36"107104108[dependencies.sp-api]105[dependencies.sp-api]109git = "https://github.com/paritytech/substrate"106git = "https://github.com/paritytech/substrate"110branch = "polkadot-v0.9.33"107branch = "polkadot-v0.9.36"111108112[dependencies.sp-blockchain]109[dependencies.sp-blockchain]113git = "https://github.com/paritytech/substrate"110git = "https://github.com/paritytech/substrate"114branch = "polkadot-v0.9.33"111branch = "polkadot-v0.9.36"115112116[dependencies.sp-consensus]113[dependencies.sp-consensus]117git = "https://github.com/paritytech/substrate"114git = "https://github.com/paritytech/substrate"118branch = "polkadot-v0.9.33"115branch = "polkadot-v0.9.36"119116120[dependencies.sp-consensus-aura]117[dependencies.sp-consensus-aura]121git = "https://github.com/paritytech/substrate"118git = "https://github.com/paritytech/substrate"122branch = "polkadot-v0.9.33"119branch = "polkadot-v0.9.36"123120124[dependencies.sp-core]121[dependencies.sp-core]125git = "https://github.com/paritytech/substrate"122git = "https://github.com/paritytech/substrate"126branch = "polkadot-v0.9.33"123branch = "polkadot-v0.9.36"127124128[dependencies.sp-finality-grandpa]125[dependencies.sp-finality-grandpa]129git = "https://github.com/paritytech/substrate"126git = "https://github.com/paritytech/substrate"130branch = "polkadot-v0.9.33"127branch = "polkadot-v0.9.36"131128132[dependencies.sp-inherents]129[dependencies.sp-inherents]133git = "https://github.com/paritytech/substrate"130git = "https://github.com/paritytech/substrate"134branch = "polkadot-v0.9.33"131branch = "polkadot-v0.9.36"135132136[dependencies.sp-keystore]133[dependencies.sp-keystore]137git = "https://github.com/paritytech/substrate"134git = "https://github.com/paritytech/substrate"138branch = "polkadot-v0.9.33"135branch = "polkadot-v0.9.36"139136140[dependencies.sp-offchain]137[dependencies.sp-offchain]141git = "https://github.com/paritytech/substrate"138git = "https://github.com/paritytech/substrate"142branch = "polkadot-v0.9.33"139branch = "polkadot-v0.9.36"143140144[dependencies.sp-runtime]141[dependencies.sp-runtime]145git = "https://github.com/paritytech/substrate"142git = "https://github.com/paritytech/substrate"146branch = "polkadot-v0.9.33"143branch = "polkadot-v0.9.36"147144148[dependencies.sp-session]145[dependencies.sp-session]149git = "https://github.com/paritytech/substrate"146git = "https://github.com/paritytech/substrate"150branch = "polkadot-v0.9.33"147branch = "polkadot-v0.9.36"151148152[dependencies.sp-timestamp]149[dependencies.sp-timestamp]153git = "https://github.com/paritytech/substrate"150git = "https://github.com/paritytech/substrate"154branch = "polkadot-v0.9.33"151branch = "polkadot-v0.9.36"155152156[dependencies.sp-transaction-pool]153[dependencies.sp-transaction-pool]157git = "https://github.com/paritytech/substrate"154git = "https://github.com/paritytech/substrate"158branch = "polkadot-v0.9.33"155branch = "polkadot-v0.9.36"159156160[dependencies.sp-trie]157[dependencies.sp-trie]161git = "https://github.com/paritytech/substrate"158git = "https://github.com/paritytech/substrate"162branch = "polkadot-v0.9.33"159branch = "polkadot-v0.9.36"163160164[dependencies.substrate-frame-rpc-system]161[dependencies.substrate-frame-rpc-system]165git = "https://github.com/paritytech/substrate"162git = "https://github.com/paritytech/substrate"166branch = "polkadot-v0.9.33"163branch = "polkadot-v0.9.36"167164168[dependencies.sc-network]165[dependencies.sc-network]169git = "https://github.com/paritytech/substrate"166git = "https://github.com/paritytech/substrate"170branch = "polkadot-v0.9.33"167branch = "polkadot-v0.9.36"171168172[dependencies.serde]169[dependencies.serde]173features = ['derive']170features = ['derive']178175179[dependencies.sc-consensus-manual-seal]176[dependencies.sc-consensus-manual-seal]180git = "https://github.com/paritytech/substrate"177git = "https://github.com/paritytech/substrate"181branch = "polkadot-v0.9.33"178branch = "polkadot-v0.9.36"182179183################################################################################180################################################################################184# Cumulus dependencies181# Cumulus dependencies185182186[dependencies.cumulus-client-consensus-aura]183[dependencies.cumulus-client-consensus-aura]187git = "https://github.com/paritytech/cumulus"184git = "https://github.com/paritytech/cumulus"188branch = "polkadot-v0.9.33"185branch = "polkadot-v0.9.36"189186190[dependencies.cumulus-client-consensus-common]187[dependencies.cumulus-client-consensus-common]191git = "https://github.com/paritytech/cumulus"188git = "https://github.com/paritytech/cumulus"192branch = "polkadot-v0.9.33"189branch = "polkadot-v0.9.36"193190194[dependencies.cumulus-client-collator]191[dependencies.cumulus-client-collator]195git = "https://github.com/paritytech/cumulus"192git = "https://github.com/paritytech/cumulus"196branch = "polkadot-v0.9.33"193branch = "polkadot-v0.9.36"197194198[dependencies.cumulus-client-cli]195[dependencies.cumulus-client-cli]199git = "https://github.com/paritytech/cumulus"196git = "https://github.com/paritytech/cumulus"200branch = "polkadot-v0.9.33"197branch = "polkadot-v0.9.36"201198202[dependencies.cumulus-client-network]199[dependencies.cumulus-client-network]203git = "https://github.com/paritytech/cumulus"200git = "https://github.com/paritytech/cumulus"204branch = "polkadot-v0.9.33"201branch = "polkadot-v0.9.36"205202206[dependencies.cumulus-primitives-core]203[dependencies.cumulus-primitives-core]207git = "https://github.com/paritytech/cumulus"204git = "https://github.com/paritytech/cumulus"208branch = "polkadot-v0.9.33"205branch = "polkadot-v0.9.36"209206210[dependencies.cumulus-primitives-parachain-inherent]207[dependencies.cumulus-primitives-parachain-inherent]211git = "https://github.com/paritytech/cumulus"208git = "https://github.com/paritytech/cumulus"212branch = "polkadot-v0.9.33"209branch = "polkadot-v0.9.36"213210214[dependencies.cumulus-client-service]211[dependencies.cumulus-client-service]215git = "https://github.com/paritytech/cumulus"212git = "https://github.com/paritytech/cumulus"216branch = "polkadot-v0.9.33"213branch = "polkadot-v0.9.36"217214218[dependencies.cumulus-relay-chain-interface]215[dependencies.cumulus-relay-chain-interface]219git = "https://github.com/paritytech/cumulus"216git = "https://github.com/paritytech/cumulus"220branch = "polkadot-v0.9.33"217branch = "polkadot-v0.9.36"221218222[dependencies.cumulus-relay-chain-inprocess-interface]219[dependencies.cumulus-relay-chain-inprocess-interface]223git = "https://github.com/paritytech/cumulus"220git = "https://github.com/paritytech/cumulus"224branch = "polkadot-v0.9.33"221branch = "polkadot-v0.9.36"225222226[dependencies.cumulus-relay-chain-minimal-node]223[dependencies.cumulus-relay-chain-minimal-node]227git = "https://github.com/paritytech/cumulus"224git = "https://github.com/paritytech/cumulus"228branch = "polkadot-v0.9.33"225branch = "polkadot-v0.9.36"229226230################################################################################227################################################################################231# Polkadot dependencies228# Polkadot dependencies232[dependencies.polkadot-primitives]229[dependencies.polkadot-primitives]233git = "https://github.com/paritytech/polkadot"230git = "https://github.com/paritytech/polkadot"234branch = "release-v0.9.33"231branch = "release-v0.9.36"235232236[dependencies.polkadot-service]233[dependencies.polkadot-service]237git = "https://github.com/paritytech/polkadot"234git = "https://github.com/paritytech/polkadot"238branch = "release-v0.9.33"235branch = "release-v0.9.36"239236240[dependencies.polkadot-cli]237[dependencies.polkadot-cli]241git = "https://github.com/paritytech/polkadot"238git = "https://github.com/paritytech/polkadot"242branch = "release-v0.9.33"239branch = "release-v0.9.36"243240244[dependencies.polkadot-test-service]241[dependencies.polkadot-test-service]245git = "https://github.com/paritytech/polkadot"242git = "https://github.com/paritytech/polkadot"246branch = "release-v0.9.33"243branch = "release-v0.9.36"247244248[dependencies.polkadot-parachain]245[dependencies.polkadot-parachain]249git = "https://github.com/paritytech/polkadot"246git = "https://github.com/paritytech/polkadot"250branch = "release-v0.9.33"247branch = "release-v0.9.36"251248252249253################################################################################250################################################################################277274278[dependencies.pallet-transaction-payment-rpc-runtime-api]275[dependencies.pallet-transaction-payment-rpc-runtime-api]279git = "https://github.com/paritytech/substrate"276git = "https://github.com/paritytech/substrate"280branch = "polkadot-v0.9.33"277branch = "polkadot-v0.9.36"281278282################################################################################279################################################################################283# Package280# Package291license = 'GPLv3'288license = 'GPLv3'292name = 'unique-node'289name = 'unique-node'293repository = 'https://github.com/UniqueNetwork/unique-chain'290repository = 'https://github.com/UniqueNetwork/unique-chain'294version = "0.9.33"291version.workspace = true295292296[[bin]]293[[bin]]297name = 'unique-collator'294name = 'unique-collator'303[dependencies]300[dependencies]304futures = '0.3.17'301futures = '0.3.17'305log = '0.4.16'302log = '0.4.16'306flexi_logger = "0.22.5"303flexi_logger = "0.24.2"307parking_lot = '0.12.1'304parking_lot = '0.12.1'308clap = "4.0.9"305clap = "4.0.9"309jsonrpsee = { version = "0.15.1", features = ["server", "macros"] }306jsonrpsee = { version = "0.16.2", features = ["server", "macros"] }310tokio = { version = "1.19.2", features = ["time"] }307tokio = { version = "1.19.2", features = ["time"] }311308312fc-rpc-core = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }309fc-rpc-core = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }313fc-consensus = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }310fc-consensus = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }314fc-mapping-sync = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }311fc-mapping-sync = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }315fc-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }312fc-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }316fc-db = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }313fc-db = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }317fp-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }314fp-rpc = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }318pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }315pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }319316320unique-rpc = { default-features = false, path = "../rpc" }317unique-rpc = { default-features = false, path = "../rpc" }321app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }318app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }node/cli/src/command.rsdiffbeforeafterboth472 let autoseal_interval = Duration::from_millis(cli.idle_autoseal_interval);472 let autoseal_interval = Duration::from_millis(cli.idle_autoseal_interval);473473474 let mut config = config;474 let mut config = config;475 if config.state_pruning == None {475476 config.state_pruning = Some(sc_service::PruningMode::ArchiveAll);476 config.state_pruning = Some(sc_service::PruningMode::ArchiveAll);477 }478477479 return start_node_using_chain_runtime! {478 return start_node_using_chain_runtime! {480 start_dev_node(config, autoseal_interval).map_err(Into::into)479 start_dev_node(config, autoseal_interval).map_err(Into::into)node/cli/src/service.rsdiffbeforeafterboth58use sp_runtime::traits::BlakeTwo256;58use sp_runtime::traits::BlakeTwo256;59use substrate_prometheus_endpoint::Registry;59use substrate_prometheus_endpoint::Registry;60use sc_client_api::BlockchainEvents;60use sc_client_api::BlockchainEvents;61use sc_consensus::ImportQueue;616262use polkadot_service::CollatorPair;63use polkadot_service::CollatorPair;6364191type FullBackend = sc_service::TFullBackend<Block>;192type FullBackend = sc_service::TFullBackend<Block>;192type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;193type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;193type ParachainBlockImport<RuntimeApi, ExecutorDispatch> =194type ParachainBlockImport<RuntimeApi, ExecutorDispatch> =194 TParachainBlockImport<Arc<FullClient<RuntimeApi, ExecutorDispatch>>>;195 TParachainBlockImport<Block, Arc<FullClient<RuntimeApi, ExecutorDispatch>>, FullBackend>;195196196/// Starts a `ServiceBuilder` for a full service.197/// Starts a `ServiceBuilder` for a full service.197///198///228 ExecutorDispatch: NativeExecutionDispatch + 'static,229 ExecutorDispatch: NativeExecutionDispatch + 'static,229 BIQ: FnOnce(230 BIQ: FnOnce(230 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,231 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,232 Arc<FullBackend>,231 &Configuration,233 &Configuration,232 Option<TelemetryHandle>,234 Option<TelemetryHandle>,233 &TaskManager,235 &TaskManager,298300299 let import_queue = build_import_queue(301 let import_queue = build_import_queue(300 client.clone(),302 client.clone(),303 backend.clone(),301 config,304 config,302 telemetry.as_ref().map(|telemetry| telemetry.handle()),305 telemetry.as_ref().map(|telemetry| telemetry.handle()),303 &task_manager,306 &task_manager,335 Arc<(dyn RelayChainInterface + 'static)>,338 Arc<(dyn RelayChainInterface + 'static)>,336 Option<CollatorPair>,339 Option<CollatorPair>,337)> {340)> {338 match collator_options.relay_chain_rpc_url {341 if collator_options.relay_chain_rpc_urls.is_empty() {339 Some(relay_chain_url) => {340 build_minimal_relay_chain_node(polkadot_config, task_manager, relay_chain_url).await341 }342 None => build_inprocess_relay_chain(342 build_inprocess_relay_chain(343 polkadot_config,343 polkadot_config,344 parachain_config,344 parachain_config,345 telemetry_worker_handle,345 telemetry_worker_handle,346 task_manager,346 task_manager,347 hwbench,347 hwbench,348 ),348 )349 }349 } else {350 build_minimal_relay_chain_node(351 polkadot_config,352 task_manager,353 collator_options.relay_chain_rpc_urls,354 )355 .await356 }350}357}351358352/// Start a node with the given parachain `Configuration` and relay chain `Configuration`.359/// Start a node with the given parachain `Configuration` and relay chain `Configuration`.397 ExecutorDispatch: NativeExecutionDispatch + 'static,404 ExecutorDispatch: NativeExecutionDispatch + 'static,398 BIQ: FnOnce(405 BIQ: FnOnce(399 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,406 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,407 Arc<FullBackend>,400 &Configuration,408 &Configuration,401 Option<TelemetryHandle>,409 Option<TelemetryHandle>,402 &TaskManager,410 &TaskManager,406 >,414 >,407 BIC: FnOnce(415 BIC: FnOnce(408 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,416 Arc<FullClient<RuntimeApi, ExecutorDispatch>>,417 Arc<FullBackend>,409 Option<&Registry>,418 Option<&Registry>,410 Option<TelemetryHandle>,419 Option<TelemetryHandle>,411 &TaskManager,420 &TaskManager,447 let validator = parachain_config.role.is_authority();456 let validator = parachain_config.role.is_authority();448 let prometheus_registry = parachain_config.prometheus_registry().cloned();457 let prometheus_registry = parachain_config.prometheus_registry().cloned();449 let transaction_pool = params.transaction_pool.clone();458 let transaction_pool = params.transaction_pool.clone();450 let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue);459 let import_queue_service = params.import_queue.service();451460452 let (network, system_rpc_tx, tx_handler_controller, start_network) =461 let (network, system_rpc_tx, tx_handler_controller, start_network) =453 sc_service::build_network(sc_service::BuildNetworkParams {462 sc_service::build_network(sc_service::BuildNetworkParams {454 config: ¶chain_config,463 config: ¶chain_config,455 client: client.clone(),464 client: client.clone(),456 transaction_pool: transaction_pool.clone(),465 transaction_pool: transaction_pool.clone(),457 spawn_handle: task_manager.spawn_handle(),466 spawn_handle: task_manager.spawn_handle(),458 import_queue: import_queue.clone(),467 import_queue: params.import_queue,459 block_announce_validator_builder: Some(Box::new(|_| {468 block_announce_validator_builder: Some(Box::new(|_| {460 Box::new(block_announce_validator)469 Box::new(block_announce_validator)461 })),470 })),560 if validator {569 if validator {561 let parachain_consensus = build_consensus(570 let parachain_consensus = build_consensus(562 client.clone(),571 client.clone(),572 backend.clone(),563 prometheus_registry.as_ref(),573 prometheus_registry.as_ref(),564 telemetry.as_ref().map(|t| t.handle()),574 telemetry.as_ref().map(|t| t.handle()),565 &task_manager,575 &task_manager,580 task_manager: &mut task_manager,590 task_manager: &mut task_manager,581 spawner,591 spawner,582 parachain_consensus,592 parachain_consensus,583 import_queue,593 import_queue: import_queue_service,584 collator_key: collator_key.expect("Command line arguments do not allow this. qed"),594 collator_key: collator_key.expect("Command line arguments do not allow this. qed"),585 relay_chain_interface,595 relay_chain_interface,586 relay_chain_slot_duration,596 relay_chain_slot_duration,593 announce_block,603 announce_block,594 task_manager: &mut task_manager,604 task_manager: &mut task_manager,595 para_id: id,605 para_id: id,596 import_queue,606 import_queue: import_queue_service,597 relay_chain_interface,607 relay_chain_interface,598 relay_chain_slot_duration,608 relay_chain_slot_duration,599 };609 };609/// Build the import queue for the the parachain runtime.619/// Build the import queue for the the parachain runtime.610pub fn parachain_build_import_queue<RuntimeApi, ExecutorDispatch>(620pub fn parachain_build_import_queue<RuntimeApi, ExecutorDispatch>(611 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,621 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,622 backend: Arc<FullBackend>,612 config: &Configuration,623 config: &Configuration,613 telemetry: Option<TelemetryHandle>,624 telemetry: Option<TelemetryHandle>,614 task_manager: &TaskManager,625 task_manager: &TaskManager,629{640{630 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;641 let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?;631642632 let block_import = ParachainBlockImport::new(client.clone());643 let block_import = ParachainBlockImport::new(client.clone(), backend.clone());633644634 cumulus_client_consensus_aura::import_queue::<645 cumulus_client_consensus_aura::import_queue::<635 sp_consensus_aura::sr25519::AuthorityPair,646 sp_consensus_aura::sr25519::AuthorityPair,708 id,719 id,709 parachain_build_import_queue,720 parachain_build_import_queue,710 |client,721 |client,722 backend,711 prometheus_registry,723 prometheus_registry,712 telemetry,724 telemetry,713 task_manager,725 task_manager,726 telemetry.clone(),738 telemetry.clone(),727 );739 );728740729 let block_import = ParachainBlockImport::new(client.clone());741 let block_import = ParachainBlockImport::new(client.clone(), backend.clone());730742731 Ok(AuraConsensus::build::<743 Ok(AuraConsensus::build::<732 sp_consensus_aura::sr25519::AuthorityPair,744 sp_consensus_aura::sr25519::AuthorityPair,785797786fn dev_build_import_queue<RuntimeApi, ExecutorDispatch>(798fn dev_build_import_queue<RuntimeApi, ExecutorDispatch>(787 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,799 client: Arc<FullClient<RuntimeApi, ExecutorDispatch>>,800 _: Arc<FullBackend>,788 config: &Configuration,801 config: &Configuration,789 _: Option<TelemetryHandle>,802 _: Option<TelemetryHandle>,790 task_manager: &TaskManager,803 task_manager: &TaskManager,node/rpc/Cargo.tomldiffbeforeafterboth111112[dependencies]12[dependencies]13futures = { version = "0.3.17", features = ["compat"] }13futures = { version = "0.3.17", features = ["compat"] }14jsonrpsee = { version = "0.15.1", features = ["server", "macros"] }14jsonrpsee = { version = "0.16.2", features = ["server", "macros"] }15# pallet-contracts-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'master' }15# pallet-contracts-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'master' }16pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }19sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }20sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }20sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }21sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }21sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }22sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }22sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }23sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }23sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }24sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }24sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }25sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }25sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }26sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }26sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }27sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }27sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }28sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }28sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }29sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }29sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }30sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }30sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }31sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }31sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }32sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }32sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }33sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }33sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }34sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }34sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }35sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }35sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }36sp-storage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }36sp-storage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }37sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }37sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }38sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }38sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }39sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }39sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }40substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }40substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }41tokio = { version = "1.19.2", features = ["macros", "sync"] }41tokio = { version = "1.19.2", features = ["macros", "sync"] }424243pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }43pallet-ethereum = { git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }44fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }44fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }45fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }45fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }46fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }46fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }47fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }47fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }48fc-db = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }48fc-db = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }49fc-mapping-sync = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }49fc-mapping-sync = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }505051pallet-common = { default-features = false, path = "../../pallets/common" }51pallet-common = { default-features = false, path = "../../pallets/common" }52up-common = { path = "../../primitives/common" }52up-common = { path = "../../primitives/common" }pallets/app-promotion/Cargo.tomldiffbeforeafterboth50codec = { default-features = false, features = [50codec = { default-features = false, features = [51 'derive',51 'derive',52], package = 'parity-scale-codec', version = '3.1.2' }52], package = 'parity-scale-codec', version = '3.1.2' }53frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }53frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }54frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }54frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }55frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }55frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }56pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }56pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }57pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }57pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }58pallet-randomness-collective-flip = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }58pallet-randomness-collective-flip = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }59pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }59pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }60sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }60sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }61sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }61sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }62sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }62sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }63sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }63sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }64serde = { default-features = false, features = ['derive'], version = '1.0.130' }64serde = { default-features = false, features = ['derive'], version = '1.0.130' }656566################################################################################66################################################################################pallets/app-promotion/src/lib.rsdiffbeforeafterboth301 /// # Arguments301 /// # Arguments302 ///302 ///303 /// * `admin`: account of the new admin.303 /// * `admin`: account of the new admin.304 #[pallet::call_index(0)]304 #[pallet::weight(<T as Config>::WeightInfo::set_admin_address())]305 #[pallet::weight(<T as Config>::WeightInfo::set_admin_address())]305 pub fn set_admin_address(origin: OriginFor<T>, admin: T::CrossAccountId) -> DispatchResult {306 pub fn set_admin_address(origin: OriginFor<T>, admin: T::CrossAccountId) -> DispatchResult {306 ensure_root(origin)?;307 ensure_root(origin)?;319 /// # Arguments320 /// # Arguments320 ///321 ///321 /// * `amount`: in native tokens.322 /// * `amount`: in native tokens.323 #[pallet::call_index(1)]322 #[pallet::weight(<T as Config>::WeightInfo::stake())]324 #[pallet::weight(<T as Config>::WeightInfo::stake())]323 pub fn stake(staker: OriginFor<T>, amount: BalanceOf<T>) -> DispatchResult {325 pub fn stake(staker: OriginFor<T>, amount: BalanceOf<T>) -> DispatchResult {324 let staker_id = ensure_signed(staker)?;326 let staker_id = ensure_signed(staker)?;393 /// Moves the sum of all stakes to the `reserved` state.395 /// Moves the sum of all stakes to the `reserved` state.394 /// After the end of `PendingInterval` this sum becomes completely396 /// After the end of `PendingInterval` this sum becomes completely395 /// free for further use.397 /// free for further use.398 #[pallet::call_index(2)]396 #[pallet::weight(<T as Config>::WeightInfo::unstake())]399 #[pallet::weight(<T as Config>::WeightInfo::unstake())]397 pub fn unstake(staker: OriginFor<T>) -> DispatchResultWithPostInfo {400 pub fn unstake(staker: OriginFor<T>) -> DispatchResultWithPostInfo {398 let staker_id = ensure_signed(staker)?;401 let staker_id = ensure_signed(staker)?;454 /// # Arguments457 /// # Arguments455 ///458 ///456 /// * `collection_id`: ID of the collection that will be sponsored by `pallet_id`459 /// * `collection_id`: ID of the collection that will be sponsored by `pallet_id`460 #[pallet::call_index(3)]457 #[pallet::weight(<T as Config>::WeightInfo::sponsor_collection())]461 #[pallet::weight(<T as Config>::WeightInfo::sponsor_collection())]458 pub fn sponsor_collection(462 pub fn sponsor_collection(459 admin: OriginFor<T>,463 admin: OriginFor<T>,479 /// # Arguments483 /// # Arguments480 ///484 ///481 /// * `collection_id`: ID of the collection that is sponsored by `pallet_id`485 /// * `collection_id`: ID of the collection that is sponsored by `pallet_id`486 #[pallet::call_index(4)]482 #[pallet::weight(<T as Config>::WeightInfo::stop_sponsoring_collection())]487 #[pallet::weight(<T as Config>::WeightInfo::stop_sponsoring_collection())]483 pub fn stop_sponsoring_collection(488 pub fn stop_sponsoring_collection(484 admin: OriginFor<T>,489 admin: OriginFor<T>,508 /// # Arguments513 /// # Arguments509 ///514 ///510 /// * `contract_id`: the contract address that will be sponsored by `pallet_id`515 /// * `contract_id`: the contract address that will be sponsored by `pallet_id`516 #[pallet::call_index(5)]511 #[pallet::weight(<T as Config>::WeightInfo::sponsor_contract())]517 #[pallet::weight(<T as Config>::WeightInfo::sponsor_contract())]512 pub fn sponsor_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {518 pub fn sponsor_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {513 let admin_id = ensure_signed(admin)?;519 let admin_id = ensure_signed(admin)?;534 /// # Arguments540 /// # Arguments535 ///541 ///536 /// * `contract_id`: the contract address that is sponsored by `pallet_id`542 /// * `contract_id`: the contract address that is sponsored by `pallet_id`543 #[pallet::call_index(6)]537 #[pallet::weight(<T as Config>::WeightInfo::stop_sponsoring_contract())]544 #[pallet::weight(<T as Config>::WeightInfo::stop_sponsoring_contract())]538 pub fn stop_sponsoring_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {545 pub fn stop_sponsoring_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {539 let admin_id = ensure_signed(admin)?;546 let admin_id = ensure_signed(admin)?;564 /// # Arguments571 /// # Arguments565 ///572 ///566 /// * `stakers_number`: the number of stakers for which recalculation will be performed573 /// * `stakers_number`: the number of stakers for which recalculation will be performed574 #[pallet::call_index(7)]567 #[pallet::weight(<T as Config>::WeightInfo::payout_stakers(stakers_number.unwrap_or(DEFAULT_NUMBER_PAYOUTS) as u32))]575 #[pallet::weight(<T as Config>::WeightInfo::payout_stakers(stakers_number.unwrap_or(DEFAULT_NUMBER_PAYOUTS) as u32))]568 pub fn payout_stakers(admin: OriginFor<T>, stakers_number: Option<u8>) -> DispatchResult {576 pub fn payout_stakers(admin: OriginFor<T>, stakers_number: Option<u8>) -> DispatchResult {569 let admin_id = ensure_signed(admin)?;577 let admin_id = ensure_signed(admin)?;pallets/common/Cargo.tomldiffbeforeafterboth11version = '3.1.2'11version = '3.1.2'121213[dependencies]13[dependencies]14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }19frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }20fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }20fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }22pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }23evm-coder = { default-features = false, path = '../../crates/evm-coder' }23evm-coder = { default-features = false, path = '../../crates/evm-coder' }24ethereum = { version = "0.14.0", default-features = false }24ethereum = { version = "0.14.0", default-features = false }25pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }25pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }262627serde = { version = "1.0.130", default-features = false }27serde = { version = "1.0.130", default-features = false }28scale-info = { version = "2.0.1", default-features = false, features = [28scale-info = { version = "2.0.1", default-features = false, features = [pallets/configuration/Cargo.tomldiffbeforeafterboth10scale-info = { version = "2.0.1", default-features = false, features = [10scale-info = { version = "2.0.1", default-features = false, features = [11 "derive",11 "derive",12] }12] }13frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }13frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }14frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }19fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }20smallvec = "1.6.1"20smallvec = "1.6.1"21xcm = { default-features = false, git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.33" }21xcm = { default-features = false, git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" }222223[features]23[features]24default = ["std"]24default = ["std"]pallets/configuration/src/lib.rsdiffbeforeafterboth888889 #[pallet::call]89 #[pallet::call]90 impl<T: Config> Pallet<T> {90 impl<T: Config> Pallet<T> {91 #[pallet::call_index(0)]91 #[pallet::weight(T::DbWeight::get().writes(1))]92 #[pallet::weight(T::DbWeight::get().writes(1))]92 pub fn set_weight_to_fee_coefficient_override(93 pub fn set_weight_to_fee_coefficient_override(93 origin: OriginFor<T>,94 origin: OriginFor<T>,102 Ok(())103 Ok(())103 }104 }104105106 #[pallet::call_index(1)]105 #[pallet::weight(T::DbWeight::get().writes(1))]107 #[pallet::weight(T::DbWeight::get().writes(1))]106 pub fn set_min_gas_price_override(108 pub fn set_min_gas_price_override(107 origin: OriginFor<T>,109 origin: OriginFor<T>,116 Ok(())118 Ok(())117 }119 }118120121 #[pallet::call_index(2)]119 #[pallet::weight(T::DbWeight::get().writes(1))]122 #[pallet::weight(T::DbWeight::get().writes(1))]120 pub fn set_xcm_allowed_locations(123 pub fn set_xcm_allowed_locations(121 origin: OriginFor<T>,124 origin: OriginFor<T>,126 Ok(())129 Ok(())127 }130 }128131132 #[pallet::call_index(3)]129 #[pallet::weight(T::DbWeight::get().writes(1))]133 #[pallet::weight(T::DbWeight::get().writes(1))]130 pub fn set_app_promotion_configuration_override(134 pub fn set_app_promotion_configuration_override(131 origin: OriginFor<T>,135 origin: OriginFor<T>,pallets/evm-coder-substrate/Cargo.tomldiffbeforeafterboth8scale-info = { version = "2.0.1", default-features = false, features = [8scale-info = { version = "2.0.1", default-features = false, features = [9 "derive",9 "derive",10] }10] }11sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }11sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }12sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }12sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }13ethereum = { version = "0.14.0", default-features = false }13ethereum = { version = "0.14.0", default-features = false }14evm-coder = { default-features = false, path = "../../crates/evm-coder" }14evm-coder = { default-features = false, path = "../../crates/evm-coder" }15pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }15pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }16pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }16pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }17frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }19frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }20up-data-structs = { default-features = false, path = "../../primitives/data-structs" }20up-data-structs = { default-features = false, path = "../../primitives/data-structs" }212122[dependencies.codec]22[dependencies.codec]pallets/evm-coder-substrate/src/lib.rsdiffbeforeafterboth737374 #[pallet::call]74 #[pallet::call]75 impl<T: Config> Pallet<T> {75 impl<T: Config> Pallet<T> {76 #[pallet::call_index(0)]76 #[pallet::weight(0)]77 #[pallet::weight(0)]77 pub fn empty_call(origin: OriginFor<T>) -> DispatchResult {78 pub fn empty_call(origin: OriginFor<T>) -> DispatchResult {78 let _sender = ensure_signed(origin)?;79 let _sender = ensure_signed(origin)?;pallets/evm-contract-helpers/Cargo.tomldiffbeforeafterboth12ethereum = { version = "0.14.0", default-features = false }12ethereum = { version = "0.14.0", default-features = false }131314# Substrate14# Substrate15frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }19sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }202021# Unique21# Unique22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }23fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }23fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }24up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.33" }24up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.36" }252526# Locals26# Locals27evm-coder = { default-features = false, path = '../../crates/evm-coder' }27evm-coder = { default-features = false, path = '../../crates/evm-coder' }pallets/evm-migration/Cargo.tomldiffbeforeafterboth9 "derive",9 "derive",10] }10] }11ethereum = { version = "0.14.0", default-features = false }11ethereum = { version = "0.14.0", default-features = false }12frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }12frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }13frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }13frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }14frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }20fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }20fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }212122[dependencies.codec]22[dependencies.codec]23default-features = false23default-features = falsepallets/evm-migration/src/lib.rsdiffbeforeafterboth73 impl<T: Config> Pallet<T> {73 impl<T: Config> Pallet<T> {74 /// Start contract migration, inserts contract stub at target address,74 /// Start contract migration, inserts contract stub at target address,75 /// and marks account as pending, allowing to insert storage75 /// and marks account as pending, allowing to insert storage76 #[pallet::call_index(0)]76 #[pallet::weight(<SelfWeightOf<T>>::begin())]77 #[pallet::weight(<SelfWeightOf<T>>::begin())]77 pub fn begin(origin: OriginFor<T>, address: H160) -> DispatchResult {78 pub fn begin(origin: OriginFor<T>, address: H160) -> DispatchResult {78 ensure_root(origin)?;79 ensure_root(origin)?;878888 /// Insert items into contract storage, this method can be called89 /// Insert items into contract storage, this method can be called89 /// multiple times90 /// multiple times91 #[pallet::call_index(1)]90 #[pallet::weight(<SelfWeightOf<T>>::set_data(data.len() as u32))]92 #[pallet::weight(<SelfWeightOf<T>>::set_data(data.len() as u32))]91 pub fn set_data(93 pub fn set_data(92 origin: OriginFor<T>,94 origin: OriginFor<T>,108 /// Finish contract migration, allows it to be called.110 /// Finish contract migration, allows it to be called.109 /// It is not possible to alter contract storage via [`Self::set_data`]111 /// It is not possible to alter contract storage via [`Self::set_data`]110 /// after this call.112 /// after this call.113 #[pallet::call_index(2)]111 #[pallet::weight(<SelfWeightOf<T>>::finish(code.len() as u32))]114 #[pallet::weight(<SelfWeightOf<T>>::finish(code.len() as u32))]112 pub fn finish(origin: OriginFor<T>, address: H160, code: Vec<u8>) -> DispatchResult {115 pub fn finish(origin: OriginFor<T>, address: H160, code: Vec<u8>) -> DispatchResult {113 ensure_root(origin)?;116 ensure_root(origin)?;122 }125 }123126124 /// Create ethereum events attached to the fake transaction127 /// Create ethereum events attached to the fake transaction128 #[pallet::call_index(3)]125 #[pallet::weight(<SelfWeightOf<T>>::insert_eth_logs(logs.len() as u32))]129 #[pallet::weight(<SelfWeightOf<T>>::insert_eth_logs(logs.len() as u32))]126 pub fn insert_eth_logs(origin: OriginFor<T>, logs: Vec<ethereum::Log>) -> DispatchResult {130 pub fn insert_eth_logs(origin: OriginFor<T>, logs: Vec<ethereum::Log>) -> DispatchResult {127 ensure_root(origin)?;131 ensure_root(origin)?;133 }137 }134138135 /// Create substrate events139 /// Create substrate events140 #[pallet::call_index(4)]136 #[pallet::weight(<SelfWeightOf<T>>::insert_events(events.len() as u32))]141 #[pallet::weight(<SelfWeightOf<T>>::insert_events(events.len() as u32))]137 pub fn insert_events(origin: OriginFor<T>, events: Vec<Vec<u8>>) -> DispatchResult {142 pub fn insert_events(origin: OriginFor<T>, events: Vec<Vec<u8>>) -> DispatchResult {138 ensure_root(origin)?;143 ensure_root(origin)?;pallets/evm-transaction-payment/Cargo.tomldiffbeforeafterboth8scale-info = { version = "2.0.1", default-features = false, features = [8scale-info = { version = "2.0.1", default-features = false, features = [9 "derive",9 "derive",10] }10] }11frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }11frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }12frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }12frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }13sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }13sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }18fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }18fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }19pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }19pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }20up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.33" }20up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.36" }21fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }21fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }222223[dependencies.codec]23[dependencies.codec]24default-features = false24default-features = falsepallets/foreign-assets/Cargo.tomldiffbeforeafterboth1cargo-features = ["workspace-inheritance"]23[package]1[package]4name = "pallet-foreign-assets"2name = "pallet-foreign-assets"13 "derive",11 "derive",14] }12] }15codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false }13codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false }16sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33", default-features = false }14sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36", default-features = false }17sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33", default-features = false }15sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36", default-features = false }18frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33", default-features = false }16frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36", default-features = false }19frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33", default-features = false }17frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36", default-features = false }20up-data-structs = { default-features = false, path = '../../primitives/data-structs' }18up-data-structs = { default-features = false, path = '../../primitives/data-structs' }21pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33", default-features = false }19pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36", default-features = false }22pallet-common = { default-features = false, path = '../common' }20pallet-common = { default-features = false, path = '../common' }23pallet-fungible = { default-features = false, path = '../fungible' }21pallet-fungible = { default-features = false, path = '../fungible' }24xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.33", default-features = false }22xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36", default-features = false }25xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.33", default-features = false }23xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36", default-features = false }26xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.33", default-features = false }24xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36", default-features = false }27orml-tokens.workspace = true25orml-tokens.workspace = true28frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }26frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }292730[dev-dependencies]28[dev-dependencies]31serde_json = "1.0.68"29serde_json = "1.0.68"32hex = { version = "0.4" }30hex = { version = "0.4" }33sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }31sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }34sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }32sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }35pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }33pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }36pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }34pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }373538[features]36[features]39default = ["std"]37default = ["std"]pallets/foreign-assets/src/impl_fungibles.rsdiffbeforeafterboth259 }259 }260 }260 }261262 fn asset_exists(asset: AssetIds) -> bool {263 match asset {264 AssetIds::NativeAssetId(_) => true,265 AssetIds::ForeignAssetId(fid) => <AssetBinding<T>>::contains_key(fid),266 }267 }261}268}262269263impl<T: Config> fungibles::Mutate<<T as SystemConfig>::AccountId> for Pallet<T>270impl<T: Config> fungibles::Mutate<<T as SystemConfig>::AccountId> for Pallet<T>pallets/foreign-assets/src/lib.rsdiffbeforeafterboth283283284 #[pallet::call]284 #[pallet::call]285 impl<T: Config> Pallet<T> {285 impl<T: Config> Pallet<T> {286 #[pallet::call_index(0)]286 #[pallet::weight(<T as Config>::WeightInfo::register_foreign_asset())]287 #[pallet::weight(<T as Config>::WeightInfo::register_foreign_asset())]287 pub fn register_foreign_asset(288 pub fn register_foreign_asset(288 origin: OriginFor<T>,289 origin: OriginFor<T>,323 Ok(())324 Ok(())324 }325 }325326327 #[pallet::call_index(1)]326 #[pallet::weight(<T as Config>::WeightInfo::update_foreign_asset())]328 #[pallet::weight(<T as Config>::WeightInfo::update_foreign_asset())]327 pub fn update_foreign_asset(329 pub fn update_foreign_asset(328 origin: OriginFor<T>,330 origin: OriginFor<T>,pallets/fungible/Cargo.tomldiffbeforeafterboth11version = '3.1.2'11version = '3.1.2'121213[dependencies]13[dependencies]14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19pallet-common = { default-features = false, path = '../common' }19pallet-common = { default-features = false, path = '../common' }20pallet-structure = { default-features = false, path = '../structure' }20pallet-structure = { default-features = false, path = '../structure' }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22evm-coder = { default-features = false, path = '../../crates/evm-coder' }22evm-coder = { default-features = false, path = '../../crates/evm-coder' }23pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }23pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }24ethereum = { version = "0.14.0", default-features = false }24ethereum = { version = "0.14.0", default-features = false }25frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }25frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }26pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }26pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }27scale-info = { version = "2.0.1", default-features = false, features = [27scale-info = { version = "2.0.1", default-features = false, features = [28 "derive",28 "derive",29] }29] }pallets/inflation/Cargo.tomldiffbeforeafterboth44default-features = false44default-features = false45optional = true45optional = true46git = "https://github.com/paritytech/substrate"46git = "https://github.com/paritytech/substrate"47branch = "polkadot-v0.9.33"47branch = "polkadot-v0.9.36"484849[dependencies.frame-support]49[dependencies.frame-support]50default-features = false50default-features = false51git = "https://github.com/paritytech/substrate"51git = "https://github.com/paritytech/substrate"52branch = "polkadot-v0.9.33"52branch = "polkadot-v0.9.36"535354[dependencies.frame-system]54[dependencies.frame-system]55default-features = false55default-features = false56git = "https://github.com/paritytech/substrate"56git = "https://github.com/paritytech/substrate"57branch = "polkadot-v0.9.33"57branch = "polkadot-v0.9.36"585859[dependencies.pallet-balances]59[dependencies.pallet-balances]60default-features = false60default-features = false61git = "https://github.com/paritytech/substrate"61git = "https://github.com/paritytech/substrate"62branch = "polkadot-v0.9.33"62branch = "polkadot-v0.9.36"636364[dependencies.pallet-timestamp]64[dependencies.pallet-timestamp]65default-features = false65default-features = false66git = "https://github.com/paritytech/substrate"66git = "https://github.com/paritytech/substrate"67branch = "polkadot-v0.9.33"67branch = "polkadot-v0.9.36"686869[dependencies.pallet-randomness-collective-flip]69[dependencies.pallet-randomness-collective-flip]70default-features = false70default-features = false71git = "https://github.com/paritytech/substrate"71git = "https://github.com/paritytech/substrate"72branch = "polkadot-v0.9.33"72branch = "polkadot-v0.9.36"737374[dependencies.sp-std]74[dependencies.sp-std]75default-features = false75default-features = false76git = "https://github.com/paritytech/substrate"76git = "https://github.com/paritytech/substrate"77branch = "polkadot-v0.9.33"77branch = "polkadot-v0.9.36"787879[dependencies.serde]79[dependencies.serde]80default-features = false80default-features = false84[dependencies.sp-runtime]84[dependencies.sp-runtime]85default-features = false85default-features = false86git = "https://github.com/paritytech/substrate"86git = "https://github.com/paritytech/substrate"87branch = "polkadot-v0.9.33"87branch = "polkadot-v0.9.36"888889[dependencies.sp-core]89[dependencies.sp-core]90default-features = false90default-features = false91git = "https://github.com/paritytech/substrate"91git = "https://github.com/paritytech/substrate"92branch = "polkadot-v0.9.33"92branch = "polkadot-v0.9.36"939394[dependencies.sp-io]94[dependencies.sp-io]95default-features = false95default-features = false96git = "https://github.com/paritytech/substrate"96git = "https://github.com/paritytech/substrate"97branch = "polkadot-v0.9.33"97branch = "polkadot-v0.9.36"989899[dependencies]99[dependencies]100scale-info = { version = "2.0.1", default-features = false, features = [100scale-info = { version = "2.0.1", default-features = false, features = [pallets/inflation/src/lib.rsdiffbeforeafterboth163 /// # Arguments163 /// # Arguments164 ///164 ///165 /// * inflation_start_relay_block: The relay chain block at which inflation should start165 /// * inflation_start_relay_block: The relay chain block at which inflation should start166 #[pallet::call_index(0)]166 #[pallet::weight(0)]167 #[pallet::weight(0)]167 pub fn start_inflation(168 pub fn start_inflation(168 origin: OriginFor<T>,169 origin: OriginFor<T>,pallets/maintenance/Cargo.tomldiffbeforeafterboth14scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }16scale-info = { version = "2.1.1", default-features = false, features = [17 "derive",18] }15frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }19frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }20frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }21frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }22sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }192320[features]24[features]21default = ["std"]25default = ["std"]pallets/maintenance/src/lib.rsdiffbeforeafterboth555556 #[pallet::call]56 #[pallet::call]57 impl<T: Config> Pallet<T> {57 impl<T: Config> Pallet<T> {58 #[pallet::call_index(0)]58 #[pallet::weight(<T as Config>::WeightInfo::enable())]59 #[pallet::weight(<T as Config>::WeightInfo::enable())]59 pub fn enable(origin: OriginFor<T>) -> DispatchResult {60 pub fn enable(origin: OriginFor<T>) -> DispatchResult {60 ensure_root(origin)?;61 ensure_root(origin)?;66 Ok(())67 Ok(())67 }68 }686970 #[pallet::call_index(1)]69 #[pallet::weight(<T as Config>::WeightInfo::disable())]71 #[pallet::weight(<T as Config>::WeightInfo::disable())]70 pub fn disable(origin: OriginFor<T>) -> DispatchResult {72 pub fn disable(origin: OriginFor<T>) -> DispatchResult {71 ensure_root(origin)?;73 ensure_root(origin)?;pallets/nonfungible/Cargo.tomldiffbeforeafterboth11version = '3.1.2'11version = '3.1.2'121213[dependencies]13[dependencies]14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }20pallet-common = { default-features = false, path = '../common' }20pallet-common = { default-features = false, path = '../common' }21pallet-structure = { default-features = false, path = '../structure' }21pallet-structure = { default-features = false, path = '../structure' }22up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22up-data-structs = { default-features = false, path = '../../primitives/data-structs' }23evm-coder = { default-features = false, path = '../../crates/evm-coder' }23evm-coder = { default-features = false, path = '../../crates/evm-coder' }24pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }24pallet-evm-coder-substrate = { default-features = false, path = '../evm-coder-substrate' }25ethereum = { version = "0.14.0", default-features = false }25ethereum = { version = "0.14.0", default-features = false }26frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }26frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }27scale-info = { version = "2.0.1", default-features = false, features = [27scale-info = { version = "2.0.1", default-features = false, features = [28 "derive",28 "derive",29] }29] }pallets/proxy-rmrk-core/Cargo.tomldiffbeforeafterboth11version = '3.1.2'11version = '3.1.2'121213[dependencies]13[dependencies]14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19pallet-common = { default-features = false, path = '../common' }19pallet-common = { default-features = false, path = '../common' }20pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }20pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }21pallet-structure = { default-features = false, path = "../../pallets/structure" }21pallet-structure = { default-features = false, path = "../../pallets/structure" }22up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22up-data-structs = { default-features = false, path = '../../primitives/data-structs' }23pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }23pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }24frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }24frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }25rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }25rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }26scale-info = { version = "2.0.1", default-features = false, features = [26scale-info = { version = "2.0.1", default-features = false, features = [27 "derive",27 "derive",pallets/proxy-rmrk-core/src/lib.rsdiffbeforeafterboth357 /// - `max`: Optional maximum number of tokens.357 /// - `max`: Optional maximum number of tokens.358 /// - `symbol`: UTF-8 string with token prefix, by which to represent the token in wallets and UIs.358 /// - `symbol`: UTF-8 string with token prefix, by which to represent the token in wallets and UIs.359 /// Analogous to Unique's [`token_prefix`](up_data_structs::Collection). Cannot be changed.359 /// Analogous to Unique's [`token_prefix`](up_data_structs::Collection). Cannot be changed.360 #[pallet::call_index(0)]360 #[pallet::weight(<SelfWeightOf<T>>::create_collection())]361 #[pallet::weight(<SelfWeightOf<T>>::create_collection())]361 pub fn create_collection(362 pub fn create_collection(362 origin: OriginFor<T>,363 origin: OriginFor<T>,430 /// # Arguments:431 /// # Arguments:431 /// - `origin`: sender of the transaction432 /// - `origin`: sender of the transaction432 /// - `collection_id`: RMRK ID of the collection to destroy.433 /// - `collection_id`: RMRK ID of the collection to destroy.434 #[pallet::call_index(1)]433 #[pallet::weight(<SelfWeightOf<T>>::destroy_collection())]435 #[pallet::weight(<SelfWeightOf<T>>::destroy_collection())]434 pub fn destroy_collection(436 pub fn destroy_collection(435 origin: OriginFor<T>,437 origin: OriginFor<T>,464 /// - `origin`: sender of the transaction466 /// - `origin`: sender of the transaction465 /// - `collection_id`: RMRK collection ID to change the issuer of.467 /// - `collection_id`: RMRK collection ID to change the issuer of.466 /// - `new_issuer`: Collection's new issuer.468 /// - `new_issuer`: Collection's new issuer.469 #[pallet::call_index(2)]467 #[pallet::weight(<SelfWeightOf<T>>::change_collection_issuer())]470 #[pallet::weight(<SelfWeightOf<T>>::change_collection_issuer())]468 pub fn change_collection_issuer(471 pub fn change_collection_issuer(469 origin: OriginFor<T>,472 origin: OriginFor<T>,501 /// # Arguments:504 /// # Arguments:502 /// - `origin`: sender of the transaction505 /// - `origin`: sender of the transaction503 /// - `collection_id`: RMRK ID of the collection to lock.506 /// - `collection_id`: RMRK ID of the collection to lock.507 #[pallet::call_index(3)]504 #[pallet::weight(<SelfWeightOf<T>>::lock_collection())]508 #[pallet::weight(<SelfWeightOf<T>>::lock_collection())]505 pub fn lock_collection(509 pub fn lock_collection(506 origin: OriginFor<T>,510 origin: OriginFor<T>,545 /// - `metadata`: Arbitrary data about an NFT, e.g. IPFS hash. Cannot be changed.549 /// - `metadata`: Arbitrary data about an NFT, e.g. IPFS hash. Cannot be changed.546 /// - `transferable`: Can this NFT be transferred? Cannot be changed.550 /// - `transferable`: Can this NFT be transferred? Cannot be changed.547 /// - `resources`: Resource data to be added to the NFT immediately after minting.551 /// - `resources`: Resource data to be added to the NFT immediately after minting.552 #[pallet::call_index(4)]548 #[pallet::weight(<SelfWeightOf<T>>::mint_nft(resources.as_ref().map(|r| r.len() as u32).unwrap_or(0)))]553 #[pallet::weight(<SelfWeightOf<T>>::mint_nft(resources.as_ref().map(|r| r.len() as u32).unwrap_or(0)))]549 pub fn mint_nft(554 pub fn mint_nft(550 origin: OriginFor<T>,555 origin: OriginFor<T>,628 /// - `max_burns`: Maximum number of tokens to burn, assuming nesting. The transaction633 /// - `max_burns`: Maximum number of tokens to burn, assuming nesting. The transaction629 /// is reverted if there are more tokens to burn in the nesting tree than this number.634 /// is reverted if there are more tokens to burn in the nesting tree than this number.630 /// This is primarily a mechanism of transaction weight control.635 /// This is primarily a mechanism of transaction weight control.636 #[pallet::call_index(5)]631 #[pallet::weight(<SelfWeightOf<T>>::burn_nft(*max_burns))]637 #[pallet::weight(<SelfWeightOf<T>>::burn_nft(*max_burns))]632 pub fn burn_nft(638 pub fn burn_nft(633 origin: OriginFor<T>,639 origin: OriginFor<T>,675 /// - `rmrk_collection_id`: RMRK ID of the collection of the NFT to be transferred.681 /// - `rmrk_collection_id`: RMRK ID of the collection of the NFT to be transferred.676 /// - `rmrk_nft_id`: ID of the NFT to be transferred.682 /// - `rmrk_nft_id`: ID of the NFT to be transferred.677 /// - `new_owner`: New owner of the nft which can be either an account or a NFT.683 /// - `new_owner`: New owner of the nft which can be either an account or a NFT.684 #[pallet::call_index(6)]678 #[pallet::weight(<SelfWeightOf<T>>::send())]685 #[pallet::weight(<SelfWeightOf<T>>::send())]679 pub fn send(686 pub fn send(680 origin: OriginFor<T>,687 origin: OriginFor<T>,800 /// - `rmrk_nft_id`: ID of the NFT to be accepted.807 /// - `rmrk_nft_id`: ID of the NFT to be accepted.801 /// - `new_owner`: Either the sender's account ID or a sender-owned NFT,808 /// - `new_owner`: Either the sender's account ID or a sender-owned NFT,802 /// whichever the accepted NFT was sent to.809 /// whichever the accepted NFT was sent to.810 #[pallet::call_index(7)]803 #[pallet::weight(<SelfWeightOf<T>>::accept_nft())]811 #[pallet::weight(<SelfWeightOf<T>>::accept_nft())]804 pub fn accept_nft(812 pub fn accept_nft(805 origin: OriginFor<T>,813 origin: OriginFor<T>,890 /// - `origin`: sender of the transaction898 /// - `origin`: sender of the transaction891 /// - `rmrk_collection_id`: RMRK ID of the NFT to be rejected.899 /// - `rmrk_collection_id`: RMRK ID of the NFT to be rejected.892 /// - `rmrk_nft_id`: ID of the NFT to be rejected.900 /// - `rmrk_nft_id`: ID of the NFT to be rejected.901 #[pallet::call_index(8)]893 #[pallet::weight(<SelfWeightOf<T>>::reject_nft())]902 #[pallet::weight(<SelfWeightOf<T>>::reject_nft())]894 pub fn reject_nft(903 pub fn reject_nft(895 origin: OriginFor<T>,904 origin: OriginFor<T>,957 /// - `rmrk_nft_id`: ID of the NFT with a pending resource to be accepted.966 /// - `rmrk_nft_id`: ID of the NFT with a pending resource to be accepted.958 /// - `resource_id`: ID of the newly created pending resource.967 /// - `resource_id`: ID of the newly created pending resource.959 /// accept the addition of a new resource to an existing NFT968 /// accept the addition of a new resource to an existing NFT969 #[pallet::call_index(9)]960 #[pallet::weight(<SelfWeightOf<T>>::accept_resource())]970 #[pallet::weight(<SelfWeightOf<T>>::accept_resource())]961 pub fn accept_resource(971 pub fn accept_resource(962 origin: OriginFor<T>,972 origin: OriginFor<T>,1011 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1021 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1012 /// - `rmrk_nft_id`: ID of the NFT with a resource to be removed.1022 /// - `rmrk_nft_id`: ID of the NFT with a resource to be removed.1013 /// - `resource_id`: ID of the removal-pending resource.1023 /// - `resource_id`: ID of the removal-pending resource.1024 #[pallet::call_index(10)]1014 #[pallet::weight(<SelfWeightOf<T>>::accept_resource_removal())]1025 #[pallet::weight(<SelfWeightOf<T>>::accept_resource_removal())]1015 pub fn accept_resource_removal(1026 pub fn accept_resource_removal(1016 origin: OriginFor<T>,1027 origin: OriginFor<T>,1092 /// - `maybe_nft_id`: Optional ID of the NFT. If left empty, then the property is set for the collection.1103 /// - `maybe_nft_id`: Optional ID of the NFT. If left empty, then the property is set for the collection.1093 /// - `key`: Key of the custom property to be referenced by.1104 /// - `key`: Key of the custom property to be referenced by.1094 /// - `value`: Value of the custom property to be stored.1105 /// - `value`: Value of the custom property to be stored.1106 #[pallet::call_index(11)]1095 #[pallet::weight(<SelfWeightOf<T>>::set_property())]1107 #[pallet::weight(<SelfWeightOf<T>>::set_property())]1096 pub fn set_property(1108 pub fn set_property(1097 origin: OriginFor<T>,1109 origin: OriginFor<T>,1165 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1177 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1166 /// - `rmrk_nft_id`: ID of the NFT to rearrange resource priorities for.1178 /// - `rmrk_nft_id`: ID of the NFT to rearrange resource priorities for.1167 /// - `priorities`: Ordered vector of resource IDs.1179 /// - `priorities`: Ordered vector of resource IDs.1180 #[pallet::call_index(12)]1168 #[pallet::weight(<SelfWeightOf<T>>::set_priority())]1181 #[pallet::weight(<SelfWeightOf<T>>::set_priority())]1169 pub fn set_priority(1182 pub fn set_priority(1170 origin: OriginFor<T>,1183 origin: OriginFor<T>,1216 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1229 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1217 /// - `nft_id`: ID of the NFT to assign a resource to.1230 /// - `nft_id`: ID of the NFT to assign a resource to.1218 /// - `resource`: Data of the resource to be created.1231 /// - `resource`: Data of the resource to be created.1232 #[pallet::call_index(13)]1219 #[pallet::weight(<SelfWeightOf<T>>::add_basic_resource())]1233 #[pallet::weight(<SelfWeightOf<T>>::add_basic_resource())]1220 pub fn add_basic_resource(1234 pub fn add_basic_resource(1221 origin: OriginFor<T>,1235 origin: OriginFor<T>,1258 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1272 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1259 /// - `nft_id`: ID of the NFT to assign a resource to.1273 /// - `nft_id`: ID of the NFT to assign a resource to.1260 /// - `resource`: Data of the resource to be created.1274 /// - `resource`: Data of the resource to be created.1275 #[pallet::call_index(14)]1261 #[pallet::weight(<SelfWeightOf<T>>::add_composable_resource())]1276 #[pallet::weight(<SelfWeightOf<T>>::add_composable_resource())]1262 pub fn add_composable_resource(1277 pub fn add_composable_resource(1263 origin: OriginFor<T>,1278 origin: OriginFor<T>,1320 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1335 /// - `rmrk_collection_id`: RMRK collection ID of the NFT.1321 /// - `nft_id`: ID of the NFT to assign a resource to.1336 /// - `nft_id`: ID of the NFT to assign a resource to.1322 /// - `resource`: Data of the resource to be created.1337 /// - `resource`: Data of the resource to be created.1338 #[pallet::call_index(15)]1323 #[pallet::weight(<SelfWeightOf<T>>::add_slot_resource())]1339 #[pallet::weight(<SelfWeightOf<T>>::add_slot_resource())]1324 pub fn add_slot_resource(1340 pub fn add_slot_resource(1325 origin: OriginFor<T>,1341 origin: OriginFor<T>,1361 /// - `rmrk_collection_id`: RMRK ID of a collection to which the NFT making use of the resource belongs to.1377 /// - `rmrk_collection_id`: RMRK ID of a collection to which the NFT making use of the resource belongs to.1362 /// - `nft_id`: ID of the NFT with a resource to be removed.1378 /// - `nft_id`: ID of the NFT with a resource to be removed.1363 /// - `resource_id`: ID of the resource to be removed.1379 /// - `resource_id`: ID of the resource to be removed.1380 #[pallet::call_index(16)]1364 #[pallet::weight(<SelfWeightOf<T>>::remove_resource())]1381 #[pallet::weight(<SelfWeightOf<T>>::remove_resource())]1365 pub fn remove_resource(1382 pub fn remove_resource(1366 origin: OriginFor<T>,1383 origin: OriginFor<T>,pallets/proxy-rmrk-equip/Cargo.tomldiffbeforeafterboth11version = '3.1.2'11version = '3.1.2'121213[dependencies]13[dependencies]14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19pallet-common = { default-features = false, path = '../common' }19pallet-common = { default-features = false, path = '../common' }20pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }20pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }21up-data-structs = { default-features = false, path = '../../primitives/data-structs' }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }22pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }23frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }23frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }24rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }24rmrk-traits = { default-features = false, path = "../../primitives/rmrk-traits" }25scale-info = { version = "2.0.1", default-features = false, features = [25scale-info = { version = "2.0.1", default-features = false, features = [26 "derive",26 "derive",pallets/proxy-rmrk-equip/src/lib.rsdiffbeforeafterboth231 /// - `symbol`: Arbitrary client-chosen symbol.231 /// - `symbol`: Arbitrary client-chosen symbol.232 /// - `parts`: Array of Fixed and Slot Parts composing the Base,232 /// - `parts`: Array of Fixed and Slot Parts composing the Base,233 /// confined in length by [`RmrkPartsLimit`](up_data_structs::RmrkPartsLimit).233 /// confined in length by [`RmrkPartsLimit`](up_data_structs::RmrkPartsLimit).234 #[pallet::call_index(0)]234 #[pallet::weight(<SelfWeightOf<T>>::create_base(parts.len() as u32))]235 #[pallet::weight(<SelfWeightOf<T>>::create_base(parts.len() as u32))]235 pub fn create_base(236 pub fn create_base(236 origin: OriginFor<T>,237 origin: OriginFor<T>,309 /// - `key`: Arbitrary BoundedString, defined by client.310 /// - `key`: Arbitrary BoundedString, defined by client.310 /// - `value`: Arbitrary BoundedString, defined by client.311 /// - `value`: Arbitrary BoundedString, defined by client.311 /// - `inherit`: Optional bool.312 /// - `inherit`: Optional bool.313 #[pallet::call_index(1)]312 #[pallet::weight(<SelfWeightOf<T>>::theme_add(theme.properties.len() as u32))]314 #[pallet::weight(<SelfWeightOf<T>>::theme_add(theme.properties.len() as u32))]313 pub fn theme_add(315 pub fn theme_add(314 origin: OriginFor<T>,316 origin: OriginFor<T>,370 /// - `base_id`: Base containing the Slot Part to be updated.372 /// - `base_id`: Base containing the Slot Part to be updated.371 /// - `slot_id`: Slot Part whose Equippable List is being updated .373 /// - `slot_id`: Slot Part whose Equippable List is being updated .372 /// - `equippables`: List of equippables that will override the current Equippables list.374 /// - `equippables`: List of equippables that will override the current Equippables list.375 #[pallet::call_index(2)]373 #[pallet::weight(<SelfWeightOf<T>>::equippable())]376 #[pallet::weight(<SelfWeightOf<T>>::equippable())]374 pub fn equippable(377 pub fn equippable(375 origin: OriginFor<T>,378 origin: OriginFor<T>,pallets/refungible/Cargo.tomldiffbeforeafterboth11version = '3.1.2'11version = '3.1.2'121213[dependencies]13[dependencies]14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }18sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }20evm-coder = { default-features = false, path = '../../crates/evm-coder' }20evm-coder = { default-features = false, path = '../../crates/evm-coder' }21pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }21pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }22pallet-common = { default-features = false, path = '../common' }22pallet-common = { default-features = false, path = '../common' }23pallet-structure = { default-features = false, path = '../structure' }23pallet-structure = { default-features = false, path = '../structure' }24frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }24frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }252526struct-versioning = { path = "../../crates/struct-versioning" }26struct-versioning = { path = "../../crates/struct-versioning" }27up-data-structs = { default-features = false, path = '../../primitives/data-structs' }27up-data-structs = { default-features = false, path = '../../primitives/data-structs' }pallets/scheduler-v2/Cargo.tomldiffbeforeafterboth15scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }17scale-info = { version = "2.1.1", default-features = false, features = [18 "derive",19] }16frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }20frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }21frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }18frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }22frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }19sp-io = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }23sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }20sp-runtime = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }24sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }21sp-std = { version = "4.0.0", default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }25sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }22sp-core = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }26sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }232724[dev-dependencies]28[dev-dependencies]25pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }29pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }26sp-core = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }30sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }27substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }31substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }283229[features]33[features]30default = ["std"]34default = ["std"]pallets/scheduler-v2/src/lib.rsdiffbeforeafterboth639 ///639 ///640 /// Only `T::ScheduleOrigin` is allowed to schedule a task.640 /// Only `T::ScheduleOrigin` is allowed to schedule a task.641 /// Only `T::PrioritySetOrigin` is allowed to set the task's priority.641 /// Only `T::PrioritySetOrigin` is allowed to set the task's priority.642 #[pallet::call_index(0)]642 #[pallet::weight(<T as Config>::WeightInfo::schedule(T::MaxScheduledPerBlock::get()))]643 #[pallet::weight(<T as Config>::WeightInfo::schedule(T::MaxScheduledPerBlock::get()))]643 pub fn schedule(644 pub fn schedule(644 origin: OriginFor<T>,645 origin: OriginFor<T>,667 /// Cancel an anonymously scheduled task.668 /// Cancel an anonymously scheduled task.668 ///669 ///669 /// The `T::OriginPrivilegeCmp` decides whether the given origin is allowed to cancel the task or not.670 /// The `T::OriginPrivilegeCmp` decides whether the given origin is allowed to cancel the task or not.671 #[pallet::call_index(1)]670 #[pallet::weight(<T as Config>::WeightInfo::cancel(T::MaxScheduledPerBlock::get()))]672 #[pallet::weight(<T as Config>::WeightInfo::cancel(T::MaxScheduledPerBlock::get()))]671 pub fn cancel(origin: OriginFor<T>, when: T::BlockNumber, index: u32) -> DispatchResult {673 pub fn cancel(origin: OriginFor<T>, when: T::BlockNumber, index: u32) -> DispatchResult {672 T::ScheduleOrigin::ensure_origin(origin.clone())?;674 T::ScheduleOrigin::ensure_origin(origin.clone())?;679 ///681 ///680 /// Only `T::ScheduleOrigin` is allowed to schedule a task.682 /// Only `T::ScheduleOrigin` is allowed to schedule a task.681 /// Only `T::PrioritySetOrigin` is allowed to set the task's priority.683 /// Only `T::PrioritySetOrigin` is allowed to set the task's priority.684 #[pallet::call_index(2)]682 #[pallet::weight(<T as Config>::WeightInfo::schedule_named(T::MaxScheduledPerBlock::get()))]685 #[pallet::weight(<T as Config>::WeightInfo::schedule_named(T::MaxScheduledPerBlock::get()))]683 pub fn schedule_named(686 pub fn schedule_named(684 origin: OriginFor<T>,687 origin: OriginFor<T>,709 /// Cancel a named scheduled task.712 /// Cancel a named scheduled task.710 ///713 ///711 /// The `T::OriginPrivilegeCmp` decides whether the given origin is allowed to cancel the task or not.714 /// The `T::OriginPrivilegeCmp` decides whether the given origin is allowed to cancel the task or not.715 #[pallet::call_index(3)]712 #[pallet::weight(<T as Config>::WeightInfo::cancel_named(T::MaxScheduledPerBlock::get()))]716 #[pallet::weight(<T as Config>::WeightInfo::cancel_named(T::MaxScheduledPerBlock::get()))]713 pub fn cancel_named(origin: OriginFor<T>, id: TaskName) -> DispatchResult {717 pub fn cancel_named(origin: OriginFor<T>, id: TaskName) -> DispatchResult {714 T::ScheduleOrigin::ensure_origin(origin.clone())?;718 T::ScheduleOrigin::ensure_origin(origin.clone())?;722 /// # <weight>726 /// # <weight>723 /// Same as [`schedule`].727 /// Same as [`schedule`].724 /// # </weight>728 /// # </weight>729 #[pallet::call_index(4)]725 #[pallet::weight(<T as Config>::WeightInfo::schedule(T::MaxScheduledPerBlock::get()))]730 #[pallet::weight(<T as Config>::WeightInfo::schedule(T::MaxScheduledPerBlock::get()))]726 pub fn schedule_after(731 pub fn schedule_after(727 origin: OriginFor<T>,732 origin: OriginFor<T>,755 /// # <weight>760 /// # <weight>756 /// Same as [`schedule_named`](Self::schedule_named).761 /// Same as [`schedule_named`](Self::schedule_named).757 /// # </weight>762 /// # </weight>763 #[pallet::call_index(5)]758 #[pallet::weight(<T as Config>::WeightInfo::schedule_named(T::MaxScheduledPerBlock::get()))]764 #[pallet::weight(<T as Config>::WeightInfo::schedule_named(T::MaxScheduledPerBlock::get()))]759 pub fn schedule_named_after(765 pub fn schedule_named_after(760 origin: OriginFor<T>,766 origin: OriginFor<T>,785 /// Change a named task's priority.791 /// Change a named task's priority.786 ///792 ///787 /// Only the `T::PrioritySetOrigin` is allowed to change the task's priority.793 /// Only the `T::PrioritySetOrigin` is allowed to change the task's priority.794 #[pallet::call_index(6)]788 #[pallet::weight(<T as Config>::WeightInfo::change_named_priority(T::MaxScheduledPerBlock::get()))]795 #[pallet::weight(<T as Config>::WeightInfo::change_named_priority(T::MaxScheduledPerBlock::get()))]789 pub fn change_named_priority(796 pub fn change_named_priority(790 origin: OriginFor<T>,797 origin: OriginFor<T>,pallets/scheduler-v2/src/mock.rsdiffbeforeafterboth87 where87 where88 <T as frame_system::Config>::RuntimeOrigin: OriginTrait<PalletsOrigin = OriginCaller>,88 <T as frame_system::Config>::RuntimeOrigin: OriginTrait<PalletsOrigin = OriginCaller>,89 {89 {90 #[pallet::call_index(0)]90 #[pallet::weight(*weight)]91 #[pallet::weight(*weight)]91 pub fn log(origin: OriginFor<T>, i: u32, weight: Weight) -> DispatchResult {92 pub fn log(origin: OriginFor<T>, i: u32, weight: Weight) -> DispatchResult {92 Self::deposit_event(Event::Logged(i, weight));93 Self::deposit_event(Event::Logged(i, weight));96 Ok(())97 Ok(())97 }98 }9899100 #[pallet::call_index(1)]99 #[pallet::weight(*weight)]101 #[pallet::weight(*weight)]100 pub fn log_without_filter(origin: OriginFor<T>, i: u32, weight: Weight) -> DispatchResult {102 pub fn log_without_filter(origin: OriginFor<T>, i: u32, weight: Weight) -> DispatchResult {101 Self::deposit_event(Event::Logged(i, weight));103 Self::deposit_event(Event::Logged(i, weight));pallets/structure/Cargo.tomldiffbeforeafterboth4edition = "2021"4edition = "2021"556[dependencies]6[dependencies]7frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }7frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }8frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }8frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }9frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }9frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }10sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }10sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }11pallet-common = { path = "../common", default-features = false }11pallet-common = { path = "../common", default-features = false }12parity-scale-codec = { version = "3.1.2", default-features = false, features = [12parity-scale-codec = { version = "3.1.2", default-features = false, features = [13 "derive",13 "derive",16 "derive",16 "derive",17] }17] }18up-data-structs = { path = "../../primitives/data-structs", default-features = false }18up-data-structs = { path = "../../primitives/data-structs", default-features = false }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }19pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }202021[features]21[features]22default = ["std"]22default = ["std"]pallets/unique/Cargo.tomldiffbeforeafterboth61default-features = false61default-features = false62optional = true62optional = true63git = "https://github.com/paritytech/substrate"63git = "https://github.com/paritytech/substrate"64branch = "polkadot-v0.9.33"64branch = "polkadot-v0.9.36"656566[dependencies.frame-support]66[dependencies.frame-support]67default-features = false67default-features = false68git = "https://github.com/paritytech/substrate"68git = "https://github.com/paritytech/substrate"69branch = "polkadot-v0.9.33"69branch = "polkadot-v0.9.36"707071[dependencies.frame-system]71[dependencies.frame-system]72default-features = false72default-features = false73git = "https://github.com/paritytech/substrate"73git = "https://github.com/paritytech/substrate"74branch = "polkadot-v0.9.33"74branch = "polkadot-v0.9.36"757576[dependencies.sp-std]76[dependencies.sp-std]77default-features = false77default-features = false78git = "https://github.com/paritytech/substrate"78git = "https://github.com/paritytech/substrate"79branch = "polkadot-v0.9.33"79branch = "polkadot-v0.9.36"808081[dependencies.sp-runtime]81[dependencies.sp-runtime]82default-features = false82default-features = false83git = "https://github.com/paritytech/substrate"83git = "https://github.com/paritytech/substrate"84branch = "polkadot-v0.9.33"84branch = "polkadot-v0.9.36"858586[dependencies.sp-core]86[dependencies.sp-core]87default-features = false87default-features = false88git = "https://github.com/paritytech/substrate"88git = "https://github.com/paritytech/substrate"89branch = "polkadot-v0.9.33"89branch = "polkadot-v0.9.36"909091[dependencies.sp-io]91[dependencies.sp-io]92default-features = false92default-features = false93git = "https://github.com/paritytech/substrate"93git = "https://github.com/paritytech/substrate"94branch = "polkadot-v0.9.33"94branch = "polkadot-v0.9.36"959596################################################################################96################################################################################97# Local Dependencies97# Local Dependencies100scale-info = { version = "2.0.1", default-features = false, features = [100scale-info = { version = "2.0.1", default-features = false, features = [101 "derive",101 "derive",102] }102] }103pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }103pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }104pallet-common = { default-features = false, path = "../common" }104pallet-common = { default-features = false, path = "../common" }105evm-coder = { default-features = false, path = '../../crates/evm-coder' }105evm-coder = { default-features = false, path = '../../crates/evm-coder' }106pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }106pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }primitives/app_promotion_rpc/Cargo.tomldiffbeforeafterboth10codec = { package = "parity-scale-codec", version = "3.1.2", default-features = false, features = [10codec = { package = "parity-scale-codec", version = "3.1.2", default-features = false, features = [11 "derive",11 "derive",12] }12] }13sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }13sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }181819[features]19[features]20default = ["std"]20default = ["std"]primitives/common/Cargo.tomldiffbeforeafterboth6license = 'All Rights Reserved'6license = 'All Rights Reserved'7name = 'up-common'7name = 'up-common'8repository = 'https://github.com/UniqueNetwork/unique-chain'8repository = 'https://github.com/UniqueNetwork/unique-chain'9version = "0.9.33"9version.workspace = true101011[features]11[features]12default = ['std']12default = ['std']24[dependencies.sp-std]24[dependencies.sp-std]25default-features = false25default-features = false26git = "https://github.com/paritytech/substrate"26git = "https://github.com/paritytech/substrate"27branch = "polkadot-v0.9.33"27branch = "polkadot-v0.9.36"282829[dependencies.frame-support]29[dependencies.frame-support]30default-features = false30default-features = false31git = "https://github.com/paritytech/substrate"31git = "https://github.com/paritytech/substrate"32branch = "polkadot-v0.9.33"32branch = "polkadot-v0.9.36"333334[dependencies.sp-runtime]34[dependencies.sp-runtime]35default-features = false35default-features = false36git = "https://github.com/paritytech/substrate"36git = "https://github.com/paritytech/substrate"37branch = "polkadot-v0.9.33"37branch = "polkadot-v0.9.36"383839[dependencies.sp-core]39[dependencies.sp-core]40default-features = false40default-features = false41git = "https://github.com/paritytech/substrate"41git = "https://github.com/paritytech/substrate"42branch = "polkadot-v0.9.33"42branch = "polkadot-v0.9.36"434344[dependencies.sp-consensus-aura]44[dependencies.sp-consensus-aura]45default-features = false45default-features = false46git = "https://github.com/paritytech/substrate"46git = "https://github.com/paritytech/substrate"47branch = "polkadot-v0.9.33"47branch = "polkadot-v0.9.36"484849[dependencies.fp-rpc]49[dependencies.fp-rpc]50default-features = false50default-features = false51git = "https://github.com/uniquenetwork/frontier"51git = "https://github.com/uniquenetwork/frontier"52branch = "unique-polkadot-v0.9.33"52branch = "unique-polkadot-v0.9.36"535354[dependencies.cumulus-primitives-core]54[dependencies.cumulus-primitives-core]55default-features = false55default-features = false56git = "https://github.com/paritytech/cumulus"56git = "https://github.com/paritytech/cumulus"57branch = "polkadot-v0.9.33"57branch = "polkadot-v0.9.36"585859[dependencies.pallet-evm]59[dependencies.pallet-evm]60default-features = false60default-features = false61git = "https://github.com/uniquenetwork/frontier"61git = "https://github.com/uniquenetwork/frontier"62branch = "unique-polkadot-v0.9.33"62branch = "unique-polkadot-v0.9.36"6363primitives/common/src/constants.rsdiffbeforeafterboth17use sp_runtime::Perbill;17use sp_runtime::Perbill;18use frame_support::{18use frame_support::{19 parameter_types,19 parameter_types,20 weights::{Weight, constants::WEIGHT_PER_SECOND},20 weights::{Weight, constants::WEIGHT_REF_TIME_PER_SECOND},21};21};22use cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE;22use cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE;23use crate::types::{BlockNumber, Balance};23use crate::types::{BlockNumber, Balance};55/// by Operational extrinsics.55/// by Operational extrinsics.56pub const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);56pub const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);57/// We allow for 2 seconds of compute with a 6 second average block time.57/// We allow for 2 seconds of compute with a 6 second average block time.58pub const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND58pub const MAXIMUM_BLOCK_WEIGHT: Weight =59 .saturating_div(2)59 Weight::from_ref_time(WEIGHT_REF_TIME_PER_SECOND.saturating_div(2))60 .set_proof_size(MAX_POV_SIZE as u64);60 .set_proof_size(MAX_POV_SIZE as u64);616162parameter_types! {62parameter_types! {primitives/data-structs/Cargo.tomldiffbeforeafterboth18serde = { version = "1.0.130", features = [18serde = { version = "1.0.130", features = [19 'derive',19 'derive',20], default-features = false, optional = true }20], default-features = false, optional = true }21frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }21frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }22frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }22frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }23sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }23sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }24sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }24sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }25sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }25sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }26derivative = { version = "2.2.0", features = ["use_core"] }26derivative = { version = "2.2.0", features = ["use_core"] }27struct-versioning = { path = "../../crates/struct-versioning" }27struct-versioning = { path = "../../crates/struct-versioning" }28pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }28pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }29rmrk-traits = { default-features = false, path = "../rmrk-traits" }29rmrk-traits = { default-features = false, path = "../rmrk-traits" }30bondrewd = { version = "0.1.14", features = [30bondrewd = { version = "0.1.14", features = [31 "derive",31 "derive",primitives/rmrk-rpc/Cargo.tomldiffbeforeafterboth8codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = [8codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = [9 "derive",9 "derive",10] }10] }11sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }11sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }12sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }12sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }13sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }13sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }14sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15serde = { version = "1.0.130", default-features = false, features = ["derive"] }15serde = { version = "1.0.130", default-features = false, features = ["derive"] }16rmrk-traits = { default-features = false, path = "../rmrk-traits" }16rmrk-traits = { default-features = false, path = "../rmrk-traits" }1717primitives/rpc/Cargo.tomldiffbeforeafterboth10codec = { package = "parity-scale-codec", version = "3.1.2", default-features = false, features = [10codec = { package = "parity-scale-codec", version = "3.1.2", default-features = false, features = [11 "derive",11 "derive",12] }12] }13sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }13sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15sp-api = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }17pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }181819[features]19[features]20default = ["std"]20default = ["std"]runtime/common/config/ethereum.rsdiffbeforeafterboth1use sp_core::{U256, H160};1use sp_core::{U256, H160};2use frame_support::{2use frame_support::{3 weights::{Weight, constants::WEIGHT_PER_SECOND},3 weights::{Weight, constants::WEIGHT_REF_TIME_PER_SECOND},4 traits::{FindAuthor},4 traits::{FindAuthor},5 parameter_types, ConsensusEngineId,5 parameter_types, ConsensusEngineId,6};6};23// (contract, which only writes a lot of data),23// (contract, which only writes a lot of data),24// approximating on top of our real store write weight24// approximating on top of our real store write weight25parameter_types! {25parameter_types! {26 pub const WritesPerSecond: u64 = WEIGHT_PER_SECOND.ref_time() / <Runtime as frame_system::Config>::DbWeight::get().write;26 pub const WritesPerSecond: u64 = WEIGHT_REF_TIME_PER_SECOND / <Runtime as frame_system::Config>::DbWeight::get().write;27 pub const GasPerSecond: u64 = WritesPerSecond::get() * 20000;27 pub const GasPerSecond: u64 = WritesPerSecond::get() * 20000;28 pub const WeightTimePerGas: u64 = WEIGHT_PER_SECOND.ref_time() / GasPerSecond::get();28 pub const WeightTimePerGas: u64 = WEIGHT_REF_TIME_PER_SECOND / GasPerSecond::get();292930 pub const WeightPerGas: Weight = Weight::from_ref_time(WeightTimePerGas::get());30 pub const WeightPerGas: Weight = Weight::from_ref_time(WeightTimePerGas::get());31}31}runtime/common/runtime_apis.rsdiffbeforeafterboth575 None575 None576 }576 }577578 fn gas_limit_multiplier_support() {}577 }579 }578580579 impl fp_rpc::ConvertTransactionRuntimeApi<Block> for Runtime {581 impl fp_rpc::ConvertTransactionRuntimeApi<Block> for Runtime {runtime/opal/Cargo.tomldiffbeforeafterboth1################################################################################1################################################################################2# Package2# Package34cargo-features = ["workspace-inheritance"]536[package]4[package]7authors = ['Unique Network <support@uniquenetwork.io>']5authors = ['Unique Network <support@uniquenetwork.io>']12license = 'GPLv3'10license = 'GPLv3'13name = 'opal-runtime'11name = 'opal-runtime'14repository = 'https://github.com/UniqueNetwork/unique-chain'12repository = 'https://github.com/UniqueNetwork/unique-chain'15version = "0.9.33"13version.workspace = true161417[package.metadata.docs.rs]15[package.metadata.docs.rs]18targets = ['x86_64-unknown-linux-gnu']16targets = ['x86_64-unknown-linux-gnu']205default-features = false203default-features = false206git = "https://github.com/paritytech/substrate"204git = "https://github.com/paritytech/substrate"207optional = true205optional = true208branch = "polkadot-v0.9.33"206branch = "polkadot-v0.9.36"209207210[dependencies.frame-try-runtime]208[dependencies.frame-try-runtime]211default-features = false209default-features = false212git = "https://github.com/paritytech/substrate"210git = "https://github.com/paritytech/substrate"213optional = true211optional = true214branch = "polkadot-v0.9.33"212branch = "polkadot-v0.9.36"215213216[dependencies.frame-executive]214[dependencies.frame-executive]217default-features = false215default-features = false218git = "https://github.com/paritytech/substrate"216git = "https://github.com/paritytech/substrate"219branch = "polkadot-v0.9.33"217branch = "polkadot-v0.9.36"220218221[dependencies.frame-support]219[dependencies.frame-support]222default-features = false220default-features = false223git = "https://github.com/paritytech/substrate"221git = "https://github.com/paritytech/substrate"224branch = "polkadot-v0.9.33"222branch = "polkadot-v0.9.36"225223226[dependencies.frame-system]224[dependencies.frame-system]227default-features = false225default-features = false228git = "https://github.com/paritytech/substrate"226git = "https://github.com/paritytech/substrate"229branch = "polkadot-v0.9.33"227branch = "polkadot-v0.9.36"230228231[dependencies.frame-system-benchmarking]229[dependencies.frame-system-benchmarking]232default-features = false230default-features = false233git = "https://github.com/paritytech/substrate"231git = "https://github.com/paritytech/substrate"234optional = true232optional = true235branch = "polkadot-v0.9.33"233branch = "polkadot-v0.9.36"236234237[dependencies.frame-system-rpc-runtime-api]235[dependencies.frame-system-rpc-runtime-api]238default-features = false236default-features = false239git = "https://github.com/paritytech/substrate"237git = "https://github.com/paritytech/substrate"240branch = "polkadot-v0.9.33"238branch = "polkadot-v0.9.36"241239242[dependencies.hex-literal]240[dependencies.hex-literal]243optional = true241optional = true252[dependencies.pallet-aura]250[dependencies.pallet-aura]253default-features = false251default-features = false254git = "https://github.com/paritytech/substrate"252git = "https://github.com/paritytech/substrate"255branch = "polkadot-v0.9.33"253branch = "polkadot-v0.9.36"256254257[dependencies.pallet-balances]255[dependencies.pallet-balances]258default-features = false256default-features = false259git = "https://github.com/paritytech/substrate"257git = "https://github.com/paritytech/substrate"260branch = "polkadot-v0.9.33"258branch = "polkadot-v0.9.36"261259262# Contracts specific packages260# Contracts specific packages263# [dependencies.pallet-contracts]261# [dependencies.pallet-contracts]281[dependencies.pallet-randomness-collective-flip]279[dependencies.pallet-randomness-collective-flip]282default-features = false280default-features = false283git = "https://github.com/paritytech/substrate"281git = "https://github.com/paritytech/substrate"284branch = "polkadot-v0.9.33"282branch = "polkadot-v0.9.36"285283286[dependencies.pallet-sudo]284[dependencies.pallet-sudo]287default-features = false285default-features = false288git = "https://github.com/paritytech/substrate"286git = "https://github.com/paritytech/substrate"289branch = "polkadot-v0.9.33"287branch = "polkadot-v0.9.36"290288291[dependencies.pallet-timestamp]289[dependencies.pallet-timestamp]292default-features = false290default-features = false293git = "https://github.com/paritytech/substrate"291git = "https://github.com/paritytech/substrate"294branch = "polkadot-v0.9.33"292branch = "polkadot-v0.9.36"295293296[dependencies.pallet-transaction-payment]294[dependencies.pallet-transaction-payment]297default-features = false295default-features = false298git = "https://github.com/paritytech/substrate"296git = "https://github.com/paritytech/substrate"299branch = "polkadot-v0.9.33"297branch = "polkadot-v0.9.36"300298301[dependencies.pallet-transaction-payment-rpc-runtime-api]299[dependencies.pallet-transaction-payment-rpc-runtime-api]302default-features = false300default-features = false303git = "https://github.com/paritytech/substrate"301git = "https://github.com/paritytech/substrate"304branch = "polkadot-v0.9.33"302branch = "polkadot-v0.9.36"305303306[dependencies.pallet-treasury]304[dependencies.pallet-treasury]307default-features = false305default-features = false308git = "https://github.com/paritytech/substrate"306git = "https://github.com/paritytech/substrate"309branch = "polkadot-v0.9.33"307branch = "polkadot-v0.9.36"310308311[dependencies.sp-arithmetic]309[dependencies.sp-arithmetic]312default-features = false310default-features = false313git = "https://github.com/paritytech/substrate"311git = "https://github.com/paritytech/substrate"314branch = "polkadot-v0.9.33"312branch = "polkadot-v0.9.36"315313316[dependencies.sp-api]314[dependencies.sp-api]317default-features = false315default-features = false318git = "https://github.com/paritytech/substrate"316git = "https://github.com/paritytech/substrate"319branch = "polkadot-v0.9.33"317branch = "polkadot-v0.9.36"320318321[dependencies.sp-block-builder]319[dependencies.sp-block-builder]322default-features = false320default-features = false323git = "https://github.com/paritytech/substrate"321git = "https://github.com/paritytech/substrate"324branch = "polkadot-v0.9.33"322branch = "polkadot-v0.9.36"325323326[dependencies.sp-core]324[dependencies.sp-core]327default-features = false325default-features = false328git = "https://github.com/paritytech/substrate"326git = "https://github.com/paritytech/substrate"329branch = "polkadot-v0.9.33"327branch = "polkadot-v0.9.36"330328331[dependencies.sp-consensus-aura]329[dependencies.sp-consensus-aura]332default-features = false330default-features = false333git = "https://github.com/paritytech/substrate"331git = "https://github.com/paritytech/substrate"334branch = "polkadot-v0.9.33"332branch = "polkadot-v0.9.36"335333336[dependencies.sp-inherents]334[dependencies.sp-inherents]337default-features = false335default-features = false338git = "https://github.com/paritytech/substrate"336git = "https://github.com/paritytech/substrate"339branch = "polkadot-v0.9.33"337branch = "polkadot-v0.9.36"340338341[dependencies.sp-io]339[dependencies.sp-io]342default-features = false340default-features = false343git = "https://github.com/paritytech/substrate"341git = "https://github.com/paritytech/substrate"344branch = "polkadot-v0.9.33"342branch = "polkadot-v0.9.36"345343346[dependencies.sp-offchain]344[dependencies.sp-offchain]347default-features = false345default-features = false348git = "https://github.com/paritytech/substrate"346git = "https://github.com/paritytech/substrate"349branch = "polkadot-v0.9.33"347branch = "polkadot-v0.9.36"350348351[dependencies.sp-runtime]349[dependencies.sp-runtime]352default-features = false350default-features = false353git = "https://github.com/paritytech/substrate"351git = "https://github.com/paritytech/substrate"354branch = "polkadot-v0.9.33"352branch = "polkadot-v0.9.36"355353356[dependencies.sp-session]354[dependencies.sp-session]357default-features = false355default-features = false358git = "https://github.com/paritytech/substrate"356git = "https://github.com/paritytech/substrate"359branch = "polkadot-v0.9.33"357branch = "polkadot-v0.9.36"360358361[dependencies.sp-std]359[dependencies.sp-std]362default-features = false360default-features = false363git = "https://github.com/paritytech/substrate"361git = "https://github.com/paritytech/substrate"364branch = "polkadot-v0.9.33"362branch = "polkadot-v0.9.36"365363366[dependencies.sp-transaction-pool]364[dependencies.sp-transaction-pool]367default-features = false365default-features = false368git = "https://github.com/paritytech/substrate"366git = "https://github.com/paritytech/substrate"369branch = "polkadot-v0.9.33"367branch = "polkadot-v0.9.36"370368371[dependencies.sp-version]369[dependencies.sp-version]372default-features = false370default-features = false373git = "https://github.com/paritytech/substrate"371git = "https://github.com/paritytech/substrate"374branch = "polkadot-v0.9.33"372branch = "polkadot-v0.9.36"375373376[dependencies.smallvec]374[dependencies.smallvec]377version = '1.6.1'375version = '1.6.1'382[dependencies.parachain-info]380[dependencies.parachain-info]383default-features = false381default-features = false384git = "https://github.com/paritytech/cumulus"382git = "https://github.com/paritytech/cumulus"385branch = "polkadot-v0.9.33"383branch = "polkadot-v0.9.36"386384387[dependencies.cumulus-pallet-aura-ext]385[dependencies.cumulus-pallet-aura-ext]388git = "https://github.com/paritytech/cumulus"386git = "https://github.com/paritytech/cumulus"389branch = "polkadot-v0.9.33"387branch = "polkadot-v0.9.36"390default-features = false388default-features = false391389392[dependencies.cumulus-pallet-parachain-system]390[dependencies.cumulus-pallet-parachain-system]393git = "https://github.com/paritytech/cumulus"391git = "https://github.com/paritytech/cumulus"394branch = "polkadot-v0.9.33"392branch = "polkadot-v0.9.36"395default-features = false393default-features = false396394397[dependencies.cumulus-primitives-core]395[dependencies.cumulus-primitives-core]398git = "https://github.com/paritytech/cumulus"396git = "https://github.com/paritytech/cumulus"399branch = "polkadot-v0.9.33"397branch = "polkadot-v0.9.36"400default-features = false398default-features = false401399402[dependencies.cumulus-pallet-xcm]400[dependencies.cumulus-pallet-xcm]403git = "https://github.com/paritytech/cumulus"401git = "https://github.com/paritytech/cumulus"404branch = "polkadot-v0.9.33"402branch = "polkadot-v0.9.36"405default-features = false403default-features = false406404407[dependencies.cumulus-pallet-dmp-queue]405[dependencies.cumulus-pallet-dmp-queue]408git = "https://github.com/paritytech/cumulus"406git = "https://github.com/paritytech/cumulus"409branch = "polkadot-v0.9.33"407branch = "polkadot-v0.9.36"410default-features = false408default-features = false411409412[dependencies.cumulus-pallet-xcmp-queue]410[dependencies.cumulus-pallet-xcmp-queue]413git = "https://github.com/paritytech/cumulus"411git = "https://github.com/paritytech/cumulus"414branch = "polkadot-v0.9.33"412branch = "polkadot-v0.9.36"415default-features = false413default-features = false416414417[dependencies.cumulus-primitives-utility]415[dependencies.cumulus-primitives-utility]418git = "https://github.com/paritytech/cumulus"416git = "https://github.com/paritytech/cumulus"419branch = "polkadot-v0.9.33"417branch = "polkadot-v0.9.36"420default-features = false418default-features = false421419422[dependencies.cumulus-primitives-timestamp]420[dependencies.cumulus-primitives-timestamp]423git = "https://github.com/paritytech/cumulus"421git = "https://github.com/paritytech/cumulus"424branch = "polkadot-v0.9.33"422branch = "polkadot-v0.9.36"425default-features = false423default-features = false426424427################################################################################425################################################################################428# Polkadot dependencies426# Polkadot dependencies429427430[dependencies.polkadot-parachain]428[dependencies.polkadot-parachain]431git = "https://github.com/paritytech/polkadot"429git = "https://github.com/paritytech/polkadot"432branch = "release-v0.9.33"430branch = "release-v0.9.36"433default-features = false431default-features = false434432435[dependencies.xcm]433[dependencies.xcm]436git = "https://github.com/paritytech/polkadot"434git = "https://github.com/paritytech/polkadot"437branch = "release-v0.9.33"435branch = "release-v0.9.36"438default-features = false436default-features = false439437440[dependencies.xcm-builder]438[dependencies.xcm-builder]441git = "https://github.com/paritytech/polkadot"439git = "https://github.com/paritytech/polkadot"442branch = "release-v0.9.33"440branch = "release-v0.9.36"443default-features = false441default-features = false444442445[dependencies.xcm-executor]443[dependencies.xcm-executor]446git = "https://github.com/paritytech/polkadot"444git = "https://github.com/paritytech/polkadot"447branch = "release-v0.9.33"445branch = "release-v0.9.36"448default-features = false446default-features = false449447450[dependencies.pallet-xcm]448[dependencies.pallet-xcm]451git = "https://github.com/paritytech/polkadot"449git = "https://github.com/paritytech/polkadot"452branch = "release-v0.9.33"450branch = "release-v0.9.36"453default-features = false451default-features = false454452455################################################################################453################################################################################471up-rpc = { path = "../../primitives/rpc", default-features = false }469up-rpc = { path = "../../primitives/rpc", default-features = false }472app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }470app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }473rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }471rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }474fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }472fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }475fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }473fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }476pallet-inflation = { path = '../../pallets/inflation', default-features = false }474pallet-inflation = { path = '../../pallets/inflation', default-features = false }477pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }475pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }478up-data-structs = { path = '../../primitives/data-structs', default-features = false }476up-data-structs = { path = '../../primitives/data-structs', default-features = false }484pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }482pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }485pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }483pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }486pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }484pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }487pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.33", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }485pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.36", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }488pallet-unique-scheduler-v2 = { path = '../../pallets/scheduler-v2', default-features = false }486pallet-unique-scheduler-v2 = { path = '../../pallets/scheduler-v2', default-features = false }489pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }487pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }490pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }488pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }491pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }489pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }492pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }490pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }493pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }491pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }494pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }492pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }495pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }493pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }496fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }494fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }497fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }495fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }498pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }496pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }499evm-coder = { default-features = false, path = '../../crates/evm-coder' }497evm-coder = { default-features = false, path = '../../crates/evm-coder' }500up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.33' }498up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.36' }501pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }499pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }502pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }500pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }503precompile-utils-macro = { path = "../common/ethereum/precompiles/utils/macro" }501precompile-utils-macro = { path = "../common/ethereum/precompiles/utils/macro" }524522525[build-dependencies.substrate-wasm-builder]523[build-dependencies.substrate-wasm-builder]526git = "https://github.com/paritytech/substrate"524git = "https://github.com/paritytech/substrate"527branch = "polkadot-v0.9.33"525branch = "polkadot-v0.9.36"528526runtime/quartz/Cargo.tomldiffbeforeafterboth1################################################################################1################################################################################2# Package2# Package34cargo-features = ["workspace-inheritance"]536[package]4[package]7authors = ['Unique Network <support@uniquenetwork.io>']5authors = ['Unique Network <support@uniquenetwork.io>']12license = 'GPLv3'10license = 'GPLv3'13name = 'quartz-runtime'11name = 'quartz-runtime'14repository = 'https://github.com/UniqueNetwork/unique-chain'12repository = 'https://github.com/UniqueNetwork/unique-chain'15version = '0.9.33'13version.workspace = true161417[package.metadata.docs.rs]15[package.metadata.docs.rs]18targets = ['x86_64-unknown-linux-gnu']16targets = ['x86_64-unknown-linux-gnu']190default-features = false188default-features = false191git = "https://github.com/paritytech/substrate"189git = "https://github.com/paritytech/substrate"192optional = true190optional = true193branch = "polkadot-v0.9.33"191branch = "polkadot-v0.9.36"194192195[dependencies.frame-try-runtime]193[dependencies.frame-try-runtime]196default-features = false194default-features = false197git = "https://github.com/paritytech/substrate"195git = "https://github.com/paritytech/substrate"198optional = true196optional = true199branch = "polkadot-v0.9.33"197branch = "polkadot-v0.9.36"200198201[dependencies.frame-executive]199[dependencies.frame-executive]202default-features = false200default-features = false203git = "https://github.com/paritytech/substrate"201git = "https://github.com/paritytech/substrate"204branch = "polkadot-v0.9.33"202branch = "polkadot-v0.9.36"205203206[dependencies.frame-support]204[dependencies.frame-support]207default-features = false205default-features = false208git = "https://github.com/paritytech/substrate"206git = "https://github.com/paritytech/substrate"209branch = "polkadot-v0.9.33"207branch = "polkadot-v0.9.36"210208211[dependencies.frame-system]209[dependencies.frame-system]212default-features = false210default-features = false213git = "https://github.com/paritytech/substrate"211git = "https://github.com/paritytech/substrate"214branch = "polkadot-v0.9.33"212branch = "polkadot-v0.9.36"215213216[dependencies.frame-system-benchmarking]214[dependencies.frame-system-benchmarking]217default-features = false215default-features = false218git = "https://github.com/paritytech/substrate"216git = "https://github.com/paritytech/substrate"219optional = true217optional = true220branch = "polkadot-v0.9.33"218branch = "polkadot-v0.9.36"221219222[dependencies.frame-system-rpc-runtime-api]220[dependencies.frame-system-rpc-runtime-api]223default-features = false221default-features = false224git = "https://github.com/paritytech/substrate"222git = "https://github.com/paritytech/substrate"225branch = "polkadot-v0.9.33"223branch = "polkadot-v0.9.36"226224227[dependencies.hex-literal]225[dependencies.hex-literal]228optional = true226optional = true237[dependencies.pallet-aura]235[dependencies.pallet-aura]238default-features = false236default-features = false239git = "https://github.com/paritytech/substrate"237git = "https://github.com/paritytech/substrate"240branch = "polkadot-v0.9.33"238branch = "polkadot-v0.9.36"241239242[dependencies.pallet-balances]240[dependencies.pallet-balances]243default-features = false241default-features = false244git = "https://github.com/paritytech/substrate"242git = "https://github.com/paritytech/substrate"245branch = "polkadot-v0.9.33"243branch = "polkadot-v0.9.36"246244247# Contracts specific packages245# Contracts specific packages248# [dependencies.pallet-contracts]246# [dependencies.pallet-contracts]266[dependencies.pallet-randomness-collective-flip]264[dependencies.pallet-randomness-collective-flip]267default-features = false265default-features = false268git = "https://github.com/paritytech/substrate"266git = "https://github.com/paritytech/substrate"269branch = "polkadot-v0.9.33"267branch = "polkadot-v0.9.36"270268271[dependencies.pallet-sudo]269[dependencies.pallet-sudo]272default-features = false270default-features = false273git = "https://github.com/paritytech/substrate"271git = "https://github.com/paritytech/substrate"274branch = "polkadot-v0.9.33"272branch = "polkadot-v0.9.36"275273276[dependencies.pallet-timestamp]274[dependencies.pallet-timestamp]277default-features = false275default-features = false278git = "https://github.com/paritytech/substrate"276git = "https://github.com/paritytech/substrate"279branch = "polkadot-v0.9.33"277branch = "polkadot-v0.9.36"280278281[dependencies.pallet-transaction-payment]279[dependencies.pallet-transaction-payment]282default-features = false280default-features = false283git = "https://github.com/paritytech/substrate"281git = "https://github.com/paritytech/substrate"284branch = "polkadot-v0.9.33"282branch = "polkadot-v0.9.36"285283286[dependencies.pallet-transaction-payment-rpc-runtime-api]284[dependencies.pallet-transaction-payment-rpc-runtime-api]287default-features = false285default-features = false288git = "https://github.com/paritytech/substrate"286git = "https://github.com/paritytech/substrate"289branch = "polkadot-v0.9.33"287branch = "polkadot-v0.9.36"290288291[dependencies.pallet-treasury]289[dependencies.pallet-treasury]292default-features = false290default-features = false293git = "https://github.com/paritytech/substrate"291git = "https://github.com/paritytech/substrate"294branch = "polkadot-v0.9.33"292branch = "polkadot-v0.9.36"295293296[dependencies.sp-arithmetic]294[dependencies.sp-arithmetic]297default-features = false295default-features = false298git = "https://github.com/paritytech/substrate"296git = "https://github.com/paritytech/substrate"299branch = "polkadot-v0.9.33"297branch = "polkadot-v0.9.36"300298301[dependencies.sp-api]299[dependencies.sp-api]302default-features = false300default-features = false303git = "https://github.com/paritytech/substrate"301git = "https://github.com/paritytech/substrate"304branch = "polkadot-v0.9.33"302branch = "polkadot-v0.9.36"305303306[dependencies.sp-block-builder]304[dependencies.sp-block-builder]307default-features = false305default-features = false308git = "https://github.com/paritytech/substrate"306git = "https://github.com/paritytech/substrate"309branch = "polkadot-v0.9.33"307branch = "polkadot-v0.9.36"310308311[dependencies.sp-core]309[dependencies.sp-core]312default-features = false310default-features = false313git = "https://github.com/paritytech/substrate"311git = "https://github.com/paritytech/substrate"314branch = "polkadot-v0.9.33"312branch = "polkadot-v0.9.36"315313316[dependencies.sp-consensus-aura]314[dependencies.sp-consensus-aura]317default-features = false315default-features = false318git = "https://github.com/paritytech/substrate"316git = "https://github.com/paritytech/substrate"319branch = "polkadot-v0.9.33"317branch = "polkadot-v0.9.36"320318321[dependencies.sp-inherents]319[dependencies.sp-inherents]322default-features = false320default-features = false323git = "https://github.com/paritytech/substrate"321git = "https://github.com/paritytech/substrate"324branch = "polkadot-v0.9.33"322branch = "polkadot-v0.9.36"325323326[dependencies.sp-io]324[dependencies.sp-io]327default-features = false325default-features = false328git = "https://github.com/paritytech/substrate"326git = "https://github.com/paritytech/substrate"329branch = "polkadot-v0.9.33"327branch = "polkadot-v0.9.36"330328331[dependencies.sp-offchain]329[dependencies.sp-offchain]332default-features = false330default-features = false333git = "https://github.com/paritytech/substrate"331git = "https://github.com/paritytech/substrate"334branch = "polkadot-v0.9.33"332branch = "polkadot-v0.9.36"335333336[dependencies.sp-runtime]334[dependencies.sp-runtime]337default-features = false335default-features = false338git = "https://github.com/paritytech/substrate"336git = "https://github.com/paritytech/substrate"339branch = "polkadot-v0.9.33"337branch = "polkadot-v0.9.36"340338341[dependencies.sp-session]339[dependencies.sp-session]342default-features = false340default-features = false343git = "https://github.com/paritytech/substrate"341git = "https://github.com/paritytech/substrate"344branch = "polkadot-v0.9.33"342branch = "polkadot-v0.9.36"345343346[dependencies.sp-std]344[dependencies.sp-std]347default-features = false345default-features = false348git = "https://github.com/paritytech/substrate"346git = "https://github.com/paritytech/substrate"349branch = "polkadot-v0.9.33"347branch = "polkadot-v0.9.36"350348351[dependencies.sp-transaction-pool]349[dependencies.sp-transaction-pool]352default-features = false350default-features = false353git = "https://github.com/paritytech/substrate"351git = "https://github.com/paritytech/substrate"354branch = "polkadot-v0.9.33"352branch = "polkadot-v0.9.36"355353356[dependencies.sp-version]354[dependencies.sp-version]357default-features = false355default-features = false358git = "https://github.com/paritytech/substrate"356git = "https://github.com/paritytech/substrate"359branch = "polkadot-v0.9.33"357branch = "polkadot-v0.9.36"360358361[dependencies.smallvec]359[dependencies.smallvec]362version = '1.6.1'360version = '1.6.1'367[dependencies.parachain-info]365[dependencies.parachain-info]368default-features = false366default-features = false369git = "https://github.com/paritytech/cumulus"367git = "https://github.com/paritytech/cumulus"370branch = "polkadot-v0.9.33"368branch = "polkadot-v0.9.36"371369372[dependencies.cumulus-pallet-aura-ext]370[dependencies.cumulus-pallet-aura-ext]373git = "https://github.com/paritytech/cumulus"371git = "https://github.com/paritytech/cumulus"374branch = "polkadot-v0.9.33"372branch = "polkadot-v0.9.36"375default-features = false373default-features = false376374377[dependencies.cumulus-pallet-parachain-system]375[dependencies.cumulus-pallet-parachain-system]378git = "https://github.com/paritytech/cumulus"376git = "https://github.com/paritytech/cumulus"379branch = "polkadot-v0.9.33"377branch = "polkadot-v0.9.36"380default-features = false378default-features = false381379382[dependencies.cumulus-primitives-core]380[dependencies.cumulus-primitives-core]383git = "https://github.com/paritytech/cumulus"381git = "https://github.com/paritytech/cumulus"384branch = "polkadot-v0.9.33"382branch = "polkadot-v0.9.36"385default-features = false383default-features = false386384387[dependencies.cumulus-pallet-xcm]385[dependencies.cumulus-pallet-xcm]388git = "https://github.com/paritytech/cumulus"386git = "https://github.com/paritytech/cumulus"389branch = "polkadot-v0.9.33"387branch = "polkadot-v0.9.36"390default-features = false388default-features = false391389392[dependencies.cumulus-pallet-dmp-queue]390[dependencies.cumulus-pallet-dmp-queue]393git = "https://github.com/paritytech/cumulus"391git = "https://github.com/paritytech/cumulus"394branch = "polkadot-v0.9.33"392branch = "polkadot-v0.9.36"395default-features = false393default-features = false396394397[dependencies.cumulus-pallet-xcmp-queue]395[dependencies.cumulus-pallet-xcmp-queue]398git = "https://github.com/paritytech/cumulus"396git = "https://github.com/paritytech/cumulus"399branch = "polkadot-v0.9.33"397branch = "polkadot-v0.9.36"400default-features = false398default-features = false401399402[dependencies.cumulus-primitives-utility]400[dependencies.cumulus-primitives-utility]403git = "https://github.com/paritytech/cumulus"401git = "https://github.com/paritytech/cumulus"404branch = "polkadot-v0.9.33"402branch = "polkadot-v0.9.36"405default-features = false403default-features = false406404407[dependencies.cumulus-primitives-timestamp]405[dependencies.cumulus-primitives-timestamp]408git = "https://github.com/paritytech/cumulus"406git = "https://github.com/paritytech/cumulus"409branch = "polkadot-v0.9.33"407branch = "polkadot-v0.9.36"410default-features = false408default-features = false411409412################################################################################410################################################################################413# Polkadot dependencies411# Polkadot dependencies414412415[dependencies.polkadot-parachain]413[dependencies.polkadot-parachain]416git = "https://github.com/paritytech/polkadot"414git = "https://github.com/paritytech/polkadot"417branch = "release-v0.9.33"415branch = "release-v0.9.36"418default-features = false416default-features = false419417420[dependencies.xcm]418[dependencies.xcm]421git = "https://github.com/paritytech/polkadot"419git = "https://github.com/paritytech/polkadot"422branch = "release-v0.9.33"420branch = "release-v0.9.36"423default-features = false421default-features = false424422425[dependencies.xcm-builder]423[dependencies.xcm-builder]426git = "https://github.com/paritytech/polkadot"424git = "https://github.com/paritytech/polkadot"427branch = "release-v0.9.33"425branch = "release-v0.9.36"428default-features = false426default-features = false429427430[dependencies.xcm-executor]428[dependencies.xcm-executor]431git = "https://github.com/paritytech/polkadot"429git = "https://github.com/paritytech/polkadot"432branch = "release-v0.9.33"430branch = "release-v0.9.36"433default-features = false431default-features = false434432435[dependencies.pallet-xcm]433[dependencies.pallet-xcm]436git = "https://github.com/paritytech/polkadot"434git = "https://github.com/paritytech/polkadot"437branch = "release-v0.9.33"435branch = "release-v0.9.36"438default-features = false436default-features = false439437440################################################################################438################################################################################463pallet-unique = { path = '../../pallets/unique', default-features = false }461pallet-unique = { path = '../../pallets/unique', default-features = false }464up-rpc = { path = "../../primitives/rpc", default-features = false }462up-rpc = { path = "../../primitives/rpc", default-features = false }465app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }463app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }466fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }464fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }467fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }465fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }468pallet-inflation = { path = '../../pallets/inflation', default-features = false }466pallet-inflation = { path = '../../pallets/inflation', default-features = false }469pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }467pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }470up-data-structs = { path = '../../primitives/data-structs', default-features = false }468up-data-structs = { path = '../../primitives/data-structs', default-features = false }477pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }475pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }478pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }476pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }479# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }477# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }480pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.33", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }478pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.36", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }481pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }479pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }482pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }480pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }483pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }481pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }484pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }482pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }485pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }483pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }486pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }484pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }487pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }485pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }488fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }486fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }489fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }487fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }490pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }488pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }491evm-coder = { default-features = false, path = '../../crates/evm-coder' }489evm-coder = { default-features = false, path = '../../crates/evm-coder' }492up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.33' }490up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.36' }493pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }491pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }494pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }492pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }495precompile-utils-macro = { path = "../common/ethereum/precompiles/utils/macro" }493precompile-utils-macro = { path = "../common/ethereum/precompiles/utils/macro" }511509512[build-dependencies.substrate-wasm-builder]510[build-dependencies.substrate-wasm-builder]513git = "https://github.com/paritytech/substrate"511git = "https://github.com/paritytech/substrate"514branch = "polkadot-v0.9.33"512branch = "polkadot-v0.9.36"515513runtime/tests/Cargo.tomldiffbeforeafterboth11[dependencies]11[dependencies]12up-data-structs = { default-features = false, path = '../../primitives/data-structs' }12up-data-structs = { default-features = false, path = '../../primitives/data-structs' }131314sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }14sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }15sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }16sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }17sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }17sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }181819fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }19fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }202021frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }21frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }22frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }22frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }232324pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }24pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }25pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }25pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }26pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }26pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }272728pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }28pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }29pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }29pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }303031pallet-common = { path = '../../pallets/common' }31pallet-common = { path = '../../pallets/common' }32pallet-structure = { path = '../../pallets/structure' }32pallet-structure = { path = '../../pallets/structure' }43scale-info = "*"43scale-info = "*"444445evm-coder = { default-features = false, path = '../../crates/evm-coder' }45evm-coder = { default-features = false, path = '../../crates/evm-coder' }46up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.33" }46up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.36" }4747runtime/unique/Cargo.tomldiffbeforeafterboth1################################################################################1################################################################################2# Package2# Package34cargo-features = ["workspace-inheritance"]536[package]4[package]7authors = ['Unique Network <support@uniquenetwork.io>']5authors = ['Unique Network <support@uniquenetwork.io>']12license = 'GPLv3'10license = 'GPLv3'13name = 'unique-runtime'11name = 'unique-runtime'14repository = 'https://github.com/UniqueNetwork/unique-chain'12repository = 'https://github.com/UniqueNetwork/unique-chain'15version = '0.9.33'13version.workspace = true161417[package.metadata.docs.rs]15[package.metadata.docs.rs]18targets = ['x86_64-unknown-linux-gnu']16targets = ['x86_64-unknown-linux-gnu']191default-features = false189default-features = false192git = "https://github.com/paritytech/substrate"190git = "https://github.com/paritytech/substrate"193optional = true191optional = true194branch = "polkadot-v0.9.33"192branch = "polkadot-v0.9.36"195193196[dependencies.frame-try-runtime]194[dependencies.frame-try-runtime]197default-features = false195default-features = false198git = "https://github.com/paritytech/substrate"196git = "https://github.com/paritytech/substrate"199optional = true197optional = true200branch = "polkadot-v0.9.33"198branch = "polkadot-v0.9.36"201199202[dependencies.frame-executive]200[dependencies.frame-executive]203default-features = false201default-features = false204git = "https://github.com/paritytech/substrate"202git = "https://github.com/paritytech/substrate"205branch = "polkadot-v0.9.33"203branch = "polkadot-v0.9.36"206204207[dependencies.frame-support]205[dependencies.frame-support]208default-features = false206default-features = false209git = "https://github.com/paritytech/substrate"207git = "https://github.com/paritytech/substrate"210branch = "polkadot-v0.9.33"208branch = "polkadot-v0.9.36"211209212[dependencies.frame-system]210[dependencies.frame-system]213default-features = false211default-features = false214git = "https://github.com/paritytech/substrate"212git = "https://github.com/paritytech/substrate"215branch = "polkadot-v0.9.33"213branch = "polkadot-v0.9.36"216214217[dependencies.frame-system-benchmarking]215[dependencies.frame-system-benchmarking]218default-features = false216default-features = false219git = "https://github.com/paritytech/substrate"217git = "https://github.com/paritytech/substrate"220optional = true218optional = true221branch = "polkadot-v0.9.33"219branch = "polkadot-v0.9.36"222220223[dependencies.frame-system-rpc-runtime-api]221[dependencies.frame-system-rpc-runtime-api]224default-features = false222default-features = false225git = "https://github.com/paritytech/substrate"223git = "https://github.com/paritytech/substrate"226branch = "polkadot-v0.9.33"224branch = "polkadot-v0.9.36"227225228[dependencies.hex-literal]226[dependencies.hex-literal]229optional = true227optional = true238[dependencies.pallet-aura]236[dependencies.pallet-aura]239default-features = false237default-features = false240git = "https://github.com/paritytech/substrate"238git = "https://github.com/paritytech/substrate"241branch = "polkadot-v0.9.33"239branch = "polkadot-v0.9.36"242240243[dependencies.pallet-balances]241[dependencies.pallet-balances]244default-features = false242default-features = false245git = "https://github.com/paritytech/substrate"243git = "https://github.com/paritytech/substrate"246branch = "polkadot-v0.9.33"244branch = "polkadot-v0.9.36"247245248# Contracts specific packages246# Contracts specific packages249# [dependencies.pallet-contracts]247# [dependencies.pallet-contracts]267[dependencies.pallet-randomness-collective-flip]265[dependencies.pallet-randomness-collective-flip]268default-features = false266default-features = false269git = "https://github.com/paritytech/substrate"267git = "https://github.com/paritytech/substrate"270branch = "polkadot-v0.9.33"268branch = "polkadot-v0.9.36"271269272[dependencies.pallet-sudo]270[dependencies.pallet-sudo]273default-features = false271default-features = false274git = "https://github.com/paritytech/substrate"272git = "https://github.com/paritytech/substrate"275branch = "polkadot-v0.9.33"273branch = "polkadot-v0.9.36"276274277[dependencies.pallet-timestamp]275[dependencies.pallet-timestamp]278default-features = false276default-features = false279git = "https://github.com/paritytech/substrate"277git = "https://github.com/paritytech/substrate"280branch = "polkadot-v0.9.33"278branch = "polkadot-v0.9.36"281279282[dependencies.pallet-transaction-payment]280[dependencies.pallet-transaction-payment]283default-features = false281default-features = false284git = "https://github.com/paritytech/substrate"282git = "https://github.com/paritytech/substrate"285branch = "polkadot-v0.9.33"283branch = "polkadot-v0.9.36"286284287[dependencies.pallet-transaction-payment-rpc-runtime-api]285[dependencies.pallet-transaction-payment-rpc-runtime-api]288default-features = false286default-features = false289git = "https://github.com/paritytech/substrate"287git = "https://github.com/paritytech/substrate"290branch = "polkadot-v0.9.33"288branch = "polkadot-v0.9.36"291289292[dependencies.pallet-treasury]290[dependencies.pallet-treasury]293default-features = false291default-features = false294git = "https://github.com/paritytech/substrate"292git = "https://github.com/paritytech/substrate"295branch = "polkadot-v0.9.33"293branch = "polkadot-v0.9.36"296294297[dependencies.sp-arithmetic]295[dependencies.sp-arithmetic]298default-features = false296default-features = false299git = "https://github.com/paritytech/substrate"297git = "https://github.com/paritytech/substrate"300branch = "polkadot-v0.9.33"298branch = "polkadot-v0.9.36"301299302[dependencies.sp-api]300[dependencies.sp-api]303default-features = false301default-features = false304git = "https://github.com/paritytech/substrate"302git = "https://github.com/paritytech/substrate"305branch = "polkadot-v0.9.33"303branch = "polkadot-v0.9.36"306304307[dependencies.sp-block-builder]305[dependencies.sp-block-builder]308default-features = false306default-features = false309git = "https://github.com/paritytech/substrate"307git = "https://github.com/paritytech/substrate"310branch = "polkadot-v0.9.33"308branch = "polkadot-v0.9.36"311309312[dependencies.sp-core]310[dependencies.sp-core]313default-features = false311default-features = false314git = "https://github.com/paritytech/substrate"312git = "https://github.com/paritytech/substrate"315branch = "polkadot-v0.9.33"313branch = "polkadot-v0.9.36"316314317[dependencies.sp-consensus-aura]315[dependencies.sp-consensus-aura]318default-features = false316default-features = false319git = "https://github.com/paritytech/substrate"317git = "https://github.com/paritytech/substrate"320branch = "polkadot-v0.9.33"318branch = "polkadot-v0.9.36"321319322[dependencies.sp-inherents]320[dependencies.sp-inherents]323default-features = false321default-features = false324git = "https://github.com/paritytech/substrate"322git = "https://github.com/paritytech/substrate"325branch = "polkadot-v0.9.33"323branch = "polkadot-v0.9.36"326324327[dependencies.sp-io]325[dependencies.sp-io]328default-features = false326default-features = false329git = "https://github.com/paritytech/substrate"327git = "https://github.com/paritytech/substrate"330branch = "polkadot-v0.9.33"328branch = "polkadot-v0.9.36"331329332[dependencies.sp-offchain]330[dependencies.sp-offchain]333default-features = false331default-features = false334git = "https://github.com/paritytech/substrate"332git = "https://github.com/paritytech/substrate"335branch = "polkadot-v0.9.33"333branch = "polkadot-v0.9.36"336334337[dependencies.sp-runtime]335[dependencies.sp-runtime]338default-features = false336default-features = false339git = "https://github.com/paritytech/substrate"337git = "https://github.com/paritytech/substrate"340branch = "polkadot-v0.9.33"338branch = "polkadot-v0.9.36"341339342[dependencies.sp-session]340[dependencies.sp-session]343default-features = false341default-features = false344git = "https://github.com/paritytech/substrate"342git = "https://github.com/paritytech/substrate"345branch = "polkadot-v0.9.33"343branch = "polkadot-v0.9.36"346344347[dependencies.sp-std]345[dependencies.sp-std]348default-features = false346default-features = false349git = "https://github.com/paritytech/substrate"347git = "https://github.com/paritytech/substrate"350branch = "polkadot-v0.9.33"348branch = "polkadot-v0.9.36"351349352[dependencies.sp-transaction-pool]350[dependencies.sp-transaction-pool]353default-features = false351default-features = false354git = "https://github.com/paritytech/substrate"352git = "https://github.com/paritytech/substrate"355branch = "polkadot-v0.9.33"353branch = "polkadot-v0.9.36"356354357[dependencies.sp-version]355[dependencies.sp-version]358default-features = false356default-features = false359git = "https://github.com/paritytech/substrate"357git = "https://github.com/paritytech/substrate"360branch = "polkadot-v0.9.33"358branch = "polkadot-v0.9.36"361359362[dependencies.smallvec]360[dependencies.smallvec]363version = '1.6.1'361version = '1.6.1'368[dependencies.parachain-info]366[dependencies.parachain-info]369default-features = false367default-features = false370git = "https://github.com/paritytech/cumulus"368git = "https://github.com/paritytech/cumulus"371branch = "polkadot-v0.9.33"369branch = "polkadot-v0.9.36"372370373[dependencies.cumulus-pallet-aura-ext]371[dependencies.cumulus-pallet-aura-ext]374git = "https://github.com/paritytech/cumulus"372git = "https://github.com/paritytech/cumulus"375branch = "polkadot-v0.9.33"373branch = "polkadot-v0.9.36"376default-features = false374default-features = false377375378[dependencies.cumulus-pallet-parachain-system]376[dependencies.cumulus-pallet-parachain-system]379git = "https://github.com/paritytech/cumulus"377git = "https://github.com/paritytech/cumulus"380branch = "polkadot-v0.9.33"378branch = "polkadot-v0.9.36"381default-features = false379default-features = false382380383[dependencies.cumulus-primitives-core]381[dependencies.cumulus-primitives-core]384git = "https://github.com/paritytech/cumulus"382git = "https://github.com/paritytech/cumulus"385branch = "polkadot-v0.9.33"383branch = "polkadot-v0.9.36"386default-features = false384default-features = false387385388[dependencies.cumulus-pallet-xcm]386[dependencies.cumulus-pallet-xcm]389git = "https://github.com/paritytech/cumulus"387git = "https://github.com/paritytech/cumulus"390branch = "polkadot-v0.9.33"388branch = "polkadot-v0.9.36"391default-features = false389default-features = false392390393[dependencies.cumulus-pallet-dmp-queue]391[dependencies.cumulus-pallet-dmp-queue]394git = "https://github.com/paritytech/cumulus"392git = "https://github.com/paritytech/cumulus"395branch = "polkadot-v0.9.33"393branch = "polkadot-v0.9.36"396default-features = false394default-features = false397395398[dependencies.cumulus-pallet-xcmp-queue]396[dependencies.cumulus-pallet-xcmp-queue]399git = "https://github.com/paritytech/cumulus"397git = "https://github.com/paritytech/cumulus"400branch = "polkadot-v0.9.33"398branch = "polkadot-v0.9.36"401default-features = false399default-features = false402400403[dependencies.cumulus-primitives-utility]401[dependencies.cumulus-primitives-utility]404git = "https://github.com/paritytech/cumulus"402git = "https://github.com/paritytech/cumulus"405branch = "polkadot-v0.9.33"403branch = "polkadot-v0.9.36"406default-features = false404default-features = false407405408[dependencies.cumulus-primitives-timestamp]406[dependencies.cumulus-primitives-timestamp]409git = "https://github.com/paritytech/cumulus"407git = "https://github.com/paritytech/cumulus"410branch = "polkadot-v0.9.33"408branch = "polkadot-v0.9.36"411default-features = false409default-features = false412410413################################################################################411################################################################################414# Polkadot dependencies412# Polkadot dependencies415413416[dependencies.polkadot-parachain]414[dependencies.polkadot-parachain]417git = "https://github.com/paritytech/polkadot"415git = "https://github.com/paritytech/polkadot"418branch = "release-v0.9.33"416branch = "release-v0.9.36"419default-features = false417default-features = false420418421[dependencies.xcm]419[dependencies.xcm]422git = "https://github.com/paritytech/polkadot"420git = "https://github.com/paritytech/polkadot"423branch = "release-v0.9.33"421branch = "release-v0.9.36"424default-features = false422default-features = false425423426[dependencies.xcm-builder]424[dependencies.xcm-builder]427git = "https://github.com/paritytech/polkadot"425git = "https://github.com/paritytech/polkadot"428branch = "release-v0.9.33"426branch = "release-v0.9.36"429default-features = false427default-features = false430428431[dependencies.xcm-executor]429[dependencies.xcm-executor]432git = "https://github.com/paritytech/polkadot"430git = "https://github.com/paritytech/polkadot"433branch = "release-v0.9.33"431branch = "release-v0.9.36"434default-features = false432default-features = false435433436[dependencies.pallet-xcm]434[dependencies.pallet-xcm]437git = "https://github.com/paritytech/polkadot"435git = "https://github.com/paritytech/polkadot"438branch = "release-v0.9.33"436branch = "release-v0.9.36"439default-features = false437default-features = false440438441################################################################################439################################################################################469pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }467pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }470pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }468pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }471# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }469# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }472pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.33", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }470pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.36", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }473pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }471pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }474pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }472pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }475pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }473pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }476pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }474pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }477pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }475pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }478pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }476pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }479pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }477pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }480fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }478fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }481fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }479fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }482fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }480fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }483fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }481fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }484pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.33" }482pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }485evm-coder = { default-features = false, path = '../../crates/evm-coder' }483evm-coder = { default-features = false, path = '../../crates/evm-coder' }486up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.33' }484up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.36' }487pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }485pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }488pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }486pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }489precompile-utils-macro = { path = "../common/ethereum/precompiles/utils/macro" }487precompile-utils-macro = { path = "../common/ethereum/precompiles/utils/macro" }505503506[build-dependencies.substrate-wasm-builder]504[build-dependencies.substrate-wasm-builder]507git = "https://github.com/paritytech/substrate"505git = "https://github.com/paritytech/substrate"508branch = "polkadot-v0.9.33"506branch = "polkadot-v0.9.36"509507test-pallets/utils/Cargo.tomldiffbeforeafterboth10scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }12scale-info = { version = "2.1.1", default-features = false, features = [13 "derive",14] }11frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }15frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }12frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }16frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }13# pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }17# pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }14pallet-unique-scheduler-v2 = { path = '../../pallets/scheduler-v2', default-features = false }18pallet-unique-scheduler-v2 = { path = '../../pallets/scheduler-v2', default-features = false }15sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.33" }19sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" }162017[features]21[features]18default = ["std"]22default = ["std"]test-pallets/utils/src/lib.rsdiffbeforeafterboth757576 #[pallet::call]76 #[pallet::call]77 impl<T: Config> Pallet<T> {77 impl<T: Config> Pallet<T> {78 #[pallet::call_index(0)]78 #[pallet::weight(10_000)]79 #[pallet::weight(10_000)]79 pub fn enable(origin: OriginFor<T>) -> DispatchResult {80 pub fn enable(origin: OriginFor<T>) -> DispatchResult {80 ensure_root(origin)?;81 ensure_root(origin)?;83 Ok(())84 Ok(())84 }85 }858687 #[pallet::call_index(1)]86 #[pallet::weight(10_000)]88 #[pallet::weight(10_000)]87 pub fn set_test_value(origin: OriginFor<T>, value: u32) -> DispatchResult {89 pub fn set_test_value(origin: OriginFor<T>, value: u32) -> DispatchResult {88 Self::ensure_origin_and_enabled(origin)?;90 Self::ensure_origin_and_enabled(origin)?;94 Ok(())96 Ok(())95 }97 }969899 #[pallet::call_index(2)]97 #[pallet::weight(10_000)]100 #[pallet::weight(10_000)]98 pub fn set_test_value_and_rollback(origin: OriginFor<T>, value: u32) -> DispatchResult {101 pub fn set_test_value_and_rollback(origin: OriginFor<T>, value: u32) -> DispatchResult {99 Self::set_test_value(origin, value)?;102 Self::set_test_value(origin, value)?;103 Err(<Error<T>>::TriggerRollback.into())106 Err(<Error<T>>::TriggerRollback.into())104 }107 }105108109 #[pallet::call_index(3)]106 #[pallet::weight(10_000)]110 #[pallet::weight(10_000)]107 pub fn inc_test_value(origin: OriginFor<T>) -> DispatchResult {111 pub fn inc_test_value(origin: OriginFor<T>) -> DispatchResult {108 Self::set_test_value(origin, <TestValue<T>>::get() + 1)112 Self::set_test_value(origin, <TestValue<T>>::get() + 1)124 // Ok(())128 // Ok(())125 // }129 // }126130131 #[pallet::call_index(4)]127 #[pallet::weight(100_000_000)]132 #[pallet::weight(100_000_000)]128 pub fn just_take_fee(origin: OriginFor<T>) -> DispatchResult {133 pub fn just_take_fee(origin: OriginFor<T>) -> DispatchResult {129 Self::ensure_origin_and_enabled(origin)?;134 Self::ensure_origin_and_enabled(origin)?;130 Ok(())135 Ok(())131 }136 }132137138 #[pallet::call_index(5)]133 #[pallet::weight(10_000)]139 #[pallet::weight(10_000)]134 pub fn batch_all(140 pub fn batch_all(135 origin: OriginFor<T>,141 origin: OriginFor<T>,tests/.eslintrc.jsondiffbeforeafterboth10 "parser": "@typescript-eslint/parser",10 "parser": "@typescript-eslint/parser",11 "parserOptions": {11 "parserOptions": {12 "ecmaVersion": 11,12 "ecmaVersion": 11,13 "sourceType": "module"13 "sourceType": "module",14 "project": "**/tsconfig.json"14 },15 },15 "plugins": [16 "plugins": [16 "@typescript-eslint",17 "@typescript-eslint",24 "SwitchCase": 125 "SwitchCase": 125 }26 }26 ],27 ],28 "no-trailing-spaces": "warn",27 "function-call-argument-newline": [29 "function-call-argument-newline": [28 "error",30 "error",29 "consistent"31 "consistent"tests/package.jsondiffbeforeafterboth124 "csv-writer": "^1.6.0",124 "csv-writer": "^1.6.0",125 "find-process": "^1.4.7",125 "find-process": "^1.4.7",126 "solc": "0.8.17",126 "solc": "0.8.17",127 "web3": "^1.8.0"127 "web3": "^1.8.1"128 }128 }129}129}130130tests/src/app-promotion.test.tsdiffbeforeafterboth62 6263 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(100n * nominal);63 expect(await helper.staking.getTotalStaked({Substrate: staker.address})).to.be.equal(100n * nominal);64 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);64 expect(await helper.balance.getSubstrate(staker.address) / nominal).to.be.equal(999n);65 // it is potentially flaky test. Promotion can credited some tokens. Maybe we need to use closeTo? 65 // it is potentially flaky test. Promotion can credited some tokens. Maybe we need to use closeTo?66 expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedBefore + 100n * nominal); // total tokens amount staked in app-promotion increased 66 expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedBefore + 100n * nominal); // total tokens amount staked in app-promotion increased67 6768 6869 await helper.staking.stake(staker, 200n * nominal);69 await helper.staking.stake(staker, 200n * nominal);122 await helper.staking.unstake(staker);122 await helper.staking.unstake(staker);123 123124 // Right after unstake balance is reserved124 // Right after unstake balance is reserved125 // Staker can not transfer 125 // Staker can not transfer126 expect(await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 900n * nominal, miscFrozen: 0n, feeFrozen: 0n});126 expect(await helper.balance.getSubstrateFull(staker.address)).to.deep.contain({reserved: 900n * nominal, miscFrozen: 0n, feeFrozen: 0n});127 await expect(helper.balance.transferToSubstrate(staker, recepient.address, 100n * nominal)).to.be.rejectedWith('balances.InsufficientBalance');127 await expect(helper.balance.transferToSubstrate(staker, recepient.address, 100n * nominal)).to.be.rejectedWith('balances.InsufficientBalance');128 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(900n * nominal);128 expect(await helper.staking.getPendingUnstake({Substrate: staker.address})).to.be.equal(900n * nominal);368 itEth('should set palletes address as a sponsor', async ({helper}) => {368 itEth('should set palletes address as a sponsor', async ({helper}) => {369 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();369 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();370 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);370 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);371 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);371 const contractHelper = await helper.ethNativeContract.contractHelpers(contractOwner);372 372373 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address]);373 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address]);374 374384 itEth('should overwrite sponsoring mode and existed sponsor', async ({helper}) => {384 itEth('should overwrite sponsoring mode and existed sponsor', async ({helper}) => {385 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();385 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();386 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);386 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);387 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);387 const contractHelper = await helper.ethNativeContract.contractHelpers(contractOwner);388 388389 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;389 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;390 390411 itEth('can be overwritten by contract owner', async ({helper}) => {411 itEth('can be overwritten by contract owner', async ({helper}) => {412 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();412 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();413 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);413 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);414 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);414 const contractHelper = await helper.ethNativeContract.contractHelpers(contractOwner);415 415416 // contract sponsored by pallet416 // contract sponsored by pallet417 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true);417 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true);432 const nonAdmin = accounts.pop()!;432 const nonAdmin = accounts.pop()!;433 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();433 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();434 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);434 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);435 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);435 const contractHelper = await helper.ethNativeContract.contractHelpers(contractOwner);436 436437 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;437 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;438 438439 // nonAdmin calls sponsorContract439 // nonAdmin calls sponsorContract440 await expect(helper.executeExtrinsic(nonAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true)).to.be.rejectedWith('appPromotion.NoPermission');440 await expect(helper.executeExtrinsic(nonAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true)).to.be.rejectedWith('appPromotion.NoPermission');441 441442 // contract still self-sponsored 442 // contract still self-sponsored443 expect((await helper.callRpc('api.query.evmContractHelpers.sponsoring', [flipper.options.address])).toJSON()).to.deep.equal({443 expect((await helper.callRpc('api.query.evmContractHelpers.sponsoring', [flipper.options.address])).toJSON()).to.deep.equal({444 confirmed: {444 confirmed: {445 ethereum: flipper.options.address.toLowerCase(),445 ethereum: flipper.options.address.toLowerCase(),455 // Deploy flipper455 // Deploy flipper456 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();456 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();457 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);457 const flipper = await helper.eth.deployFlipper(contractOwner); // await deployFlipper(web3, contractOwner);458 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);458 const contractHelper = await helper.ethNativeContract.contractHelpers(contractOwner);459 459460 // Owner sets to sponsor every tx460 // Owner sets to sponsor every tx461 await contractHelper.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: contractOwner});461 await contractHelper.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: contractOwner});487 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();487 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();488 const flipper = await helper.eth.deployFlipper(contractOwner);488 const flipper = await helper.eth.deployFlipper(contractOwner);489 await helper.eth.transferBalanceFromSubstrate(donor, flipper.options.address);489 await helper.eth.transferBalanceFromSubstrate(donor, flipper.options.address);490 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);490 const contractHelper = await helper.ethNativeContract.contractHelpers(contractOwner);491 491492 await contractHelper.methods.setSponsoringMode(flipper.options.address, SponsoringMode.Generous).send({from: contractOwner});492 await contractHelper.methods.setSponsoringMode(flipper.options.address, SponsoringMode.Generous).send({from: contractOwner});493 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true);493 await helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.sponsorContract', [flipper.options.address], true);524 const nonAdmin = accounts.pop()!;524 const nonAdmin = accounts.pop()!;525 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();525 const contractOwner = (await helper.eth.createAccountWithBalance(donor, 1000n)).toLowerCase();526 const flipper = await helper.eth.deployFlipper(contractOwner);526 const flipper = await helper.eth.deployFlipper(contractOwner);527 const contractHelper = helper.ethNativeContract.contractHelpers(contractOwner);527 const contractHelper = await helper.ethNativeContract.contractHelpers(contractOwner);528 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;528 await expect(contractHelper.methods.selfSponsoredEnable(flipper.options.address).send()).to.be.fulfilled;529 529530 await expect(helper.executeExtrinsic(nonAdmin, 'api.tx.appPromotion.stopSponsoringContract', [flipper.options.address], true)).to.be.rejectedWith('appPromotion.NoPermission');530 await expect(helper.executeExtrinsic(nonAdmin, 'api.tx.appPromotion.stopSponsoringContract', [flipper.options.address], true)).to.be.rejectedWith('appPromotion.NoPermission');650 const crowd = await helper.arrange.createCrowd(500, 300n, donor);650 const crowd = await helper.arrange.createCrowd(500, 300n, donor);651 await Promise.all(crowd.map(account => helper.staking.stake(account, 100n * nominal)));651 await Promise.all(crowd.map(account => helper.staking.stake(account, 100n * nominal)));652 await Promise.all(crowd.map(account => helper.staking.stake(account, 100n * nominal)));652 await Promise.all(crowd.map(account => helper.staking.stake(account, 100n * nominal)));653 // 653 //654 };654 };655 655656 for (let i = 0; i < 40; i++) {656 for (let i = 0; i < 40; i++) {tests/src/benchmarks/mintFee/benchmark.tsdiffbeforeafterboth210 );210 );211211212 const collectionEthAddress = helper.ethAddress.fromCollectionId(collection.collectionId);212 const collectionEthAddress = helper.ethAddress.fromCollectionId(collection.collectionId);213 const collectionContract = helper.ethNativeContract.collection(213 const collectionContract = await helper.ethNativeContract.collection(214 collectionEthAddress,214 collectionEthAddress,215 'nft',215 'nft',216 );216 );290 ethSigner,290 ethSigner,291 proxyContract.options.address,291 proxyContract.options.address,292 async (collection) => {292 async (collection) => {293 const evmContract = helper.ethNativeContract.collection(293 const evmContract = await helper.ethNativeContract.collection(294 helper.ethAddress.fromCollectionId(collection.collectionId),294 helper.ethAddress.fromCollectionId(collection.collectionId),295 'nft',295 'nft',296 );296 );330 ethSigner,330 ethSigner,331 proxyContract.options.address,331 proxyContract.options.address,332 async (collection) => {332 async (collection) => {333 const evmContract = helper.ethNativeContract.collection(333 const evmContract = await helper.ethNativeContract.collection(334 helper.ethAddress.fromCollectionId(collection.collectionId),334 helper.ethAddress.fromCollectionId(collection.collectionId),335 'nft',335 'nft',336 );336 );tests/src/calibrate.tsdiffbeforeafterboth246 const token = await collection.mintToken(alice, {Ethereum: caller});246 const token = await collection.mintToken(alice, {Ethereum: caller});247247248 const address = helper.ethAddress.fromCollectionId(collection.collectionId);248 const address = helper.ethAddress.fromCollectionId(collection.collectionId);249 const contract = helper.ethNativeContract.collection(address, 'nft', caller);249 const contract = await helper.ethNativeContract.collection(address, 'nft', caller);250250251 const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gas: helper.eth.DEFAULT_GAS}));251 const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gas: helper.eth.DEFAULT_GAS}));252252266 const token = await collection.mintToken(alice, {Ethereum: caller});266 const token = await collection.mintToken(alice, {Ethereum: caller});267267268 const address = helper.ethAddress.fromCollectionId(collection.collectionId);268 const address = helper.ethAddress.fromCollectionId(collection.collectionId);269 const contract = helper.ethNativeContract.collection(address, 'nft', caller);269 const contract = await helper.ethNativeContract.collection(address, 'nft', caller);270270271 const transferPrice = new Fract(await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gasPrice: gasPriceStr, gas: helper.eth.DEFAULT_GAS})));271 const transferPrice = new Fract(await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gasPrice: gasPriceStr, gas: helper.eth.DEFAULT_GAS})));272272287 const token = await collection.mintToken(alice, {Ethereum: caller});287 const token = await collection.mintToken(alice, {Ethereum: caller});288288289 const address = helper.ethAddress.fromCollectionId(collection.collectionId);289 const address = helper.ethAddress.fromCollectionId(collection.collectionId);290 const contract = helper.ethNativeContract.collection(address, 'nft', caller);290 const contract = await helper.ethNativeContract.collection(address, 'nft', caller);291291292 const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gas: helper.eth.DEFAULT_GAS}));292 const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, token.tokenId).send({from: caller, gas: helper.eth.DEFAULT_GAS}));293293tests/src/eth/allowlist.test.tsdiffbeforeafterboth30 itEth('Contract allowlist can be toggled', async ({helper}) => {30 itEth('Contract allowlist can be toggled', async ({helper}) => {31 const owner = await helper.eth.createAccountWithBalance(donor);31 const owner = await helper.eth.createAccountWithBalance(donor);32 const flipper = await helper.eth.deployFlipper(owner);32 const flipper = await helper.eth.deployFlipper(owner);33 const helpers = helper.ethNativeContract.contractHelpers(owner);33 const helpers = await helper.ethNativeContract.contractHelpers(owner);343435 // Any user is allowed by default35 // Any user is allowed by default36 expect(await helpers.methods.allowlistEnabled(flipper.options.address).call()).to.be.false;36 expect(await helpers.methods.allowlistEnabled(flipper.options.address).call()).to.be.false;48 const owner = await helper.eth.createAccountWithBalance(donor);48 const owner = await helper.eth.createAccountWithBalance(donor);49 const caller = await helper.eth.createAccountWithBalance(donor);49 const caller = await helper.eth.createAccountWithBalance(donor);50 const flipper = await helper.eth.deployFlipper(owner);50 const flipper = await helper.eth.deployFlipper(owner);51 const helpers = helper.ethNativeContract.contractHelpers(owner);51 const helpers = await helper.ethNativeContract.contractHelpers(owner);525253 // User can flip with allowlist disabled53 // User can flip with allowlist disabled54 await flipper.methods.flip().send({from: caller});54 await flipper.methods.flip().send({from: caller});82 const crossUser = helper.ethCrossAccount.fromAddress(user);82 const crossUser = helper.ethCrossAccount.fromAddress(user);83 8384 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');84 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');85 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);85 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);868687 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;87 expect(await collectionEvm.methods.allowlistedCross(crossUser).call({from: owner})).to.be.false;88 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});88 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});105 const mintParams = testCase.mode === 'ft' ? [userEth, 100] : [userEth];105 const mintParams = testCase.mode === 'ft' ? [userEth, 100] : [userEth];106 106107 const {collectionAddress, collectionId} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');107 const {collectionAddress, collectionId} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');108 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);108 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);109 const userCrossSub = helper.ethCrossAccount.fromKeyringPair(userSub);109 const userCrossSub = helper.ethCrossAccount.fromKeyringPair(userSub);110 const userCrossEth = helper.ethCrossAccount.fromAddress(userEth);110 const userCrossEth = helper.ethCrossAccount.fromAddress(userEth);111 const ownerCrossEth = helper.ethCrossAccount.fromAddress(owner);111 const ownerCrossEth = helper.ethCrossAccount.fromAddress(owner);179 const userCrossEth = helper.ethCrossAccount.fromAddress(userEth);179 const userCrossEth = helper.ethCrossAccount.fromAddress(userEth);180180181 const {collectionAddress, collectionId} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');181 const {collectionAddress, collectionId} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');182 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner, !testCase.cross);182 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner, !testCase.cross);183 183184 expect(await helper.collection.allowed(collectionId, {Substrate: userSub.address})).to.be.false;184 expect(await helper.collection.allowed(collectionId, {Substrate: userSub.address})).to.be.false;185 expect(await helper.collection.allowed(collectionId, {Ethereum: userEth})).to.be.false;185 expect(await helper.collection.allowed(collectionId, {Ethereum: userEth})).to.be.false;tests/src/eth/base.test.tsdiffbeforeafterboth57 const {tokenId} = await collection.mintToken(alice, {Ethereum: caller});57 const {tokenId} = await collection.mintToken(alice, {Ethereum: caller});585859 const address = helper.ethAddress.fromCollectionId(collection.collectionId);59 const address = helper.ethAddress.fromCollectionId(collection.collectionId);60 const contract = helper.ethNativeContract.collection(address, 'nft', caller);60 const contract = await helper.ethNativeContract.collection(address, 'nft', caller);616162 const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, tokenId).send(caller));62 const cost = await helper.eth.calculateFee({Ethereum: caller}, () => contract.methods.transfer(receiver, tokenId).send(caller));636379 const BASE_URI = 'base/';79 const BASE_URI = 'base/';808081 async function checkInterface(helper: EthUniqueHelper, interfaceId: string, simpleResult: boolean, compatibleResult: boolean) {81 async function checkInterface(helper: EthUniqueHelper, interfaceId: string, simpleResult: boolean, compatibleResult: boolean) {82 const simple = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(simpleNftCollectionId), 'nft', minter);82 const simple = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(simpleNftCollectionId), 'nft', minter);83 const compatible = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(erc721MetadataCompatibleNftCollectionId), 'nft', minter);83 const compatible = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(erc721MetadataCompatibleNftCollectionId), 'nft', minter);848485 expect(await simple.methods.supportsInterface(interfaceId).call()).to.equal(simpleResult, `empty (not ERC721Metadata compatible) NFT collection returns not ${simpleResult}`);85 expect(await simple.methods.supportsInterface(interfaceId).call()).to.equal(simpleResult, `empty (not ERC721Metadata compatible) NFT collection returns not ${simpleResult}`);86 expect(await compatible.methods.supportsInterface(interfaceId).call()).to.equal(compatibleResult, `ERC721Metadata compatible NFT collection returns not ${compatibleResult}`);86 expect(await compatible.methods.supportsInterface(interfaceId).call()).to.equal(compatibleResult, `ERC721Metadata compatible NFT collection returns not ${compatibleResult}`);tests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth56 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);56 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);57 5758 const {collectionAddress, collectionId} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');58 const {collectionAddress, collectionId} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');59 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner, true);59 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner, true);606061 // Check isOwnerOrAdminCross returns false:61 // Check isOwnerOrAdminCross returns false:62 expect(await collectionEvm.methods.isOwnerOrAdminCross(adminCrossSub).call()).to.be.false;62 expect(await collectionEvm.methods.isOwnerOrAdminCross(adminCrossSub).call()).to.be.false;63 expect(await collectionEvm.methods.isOwnerOrAdminCross(adminCrossEth).call()).to.be.false;63 expect(await collectionEvm.methods.isOwnerOrAdminCross(adminCrossEth).call()).to.be.false;64 expect(await collectionEvm.methods.isOwnerOrAdminCross(helper.ethCrossAccount.fromAddress(adminDeprecated)).call()).to.be.false;64 expect(await collectionEvm.methods.isOwnerOrAdminCross(helper.ethCrossAccount.fromAddress(adminDeprecated)).call()).to.be.false;65 6566 // Soft-deprecated: can addCollectionAdmin 66 // Soft-deprecated: can addCollectionAdmin67 await collectionEvm.methods.addCollectionAdmin(adminDeprecated).send();67 await collectionEvm.methods.addCollectionAdmin(adminDeprecated).send();68 // Can addCollectionAdminCross for substrate and ethereum address68 // Can addCollectionAdminCross for substrate and ethereum address69 await collectionEvm.methods.addCollectionAdminCross(adminCrossSub).send();69 await collectionEvm.methods.addCollectionAdminCross(adminCrossSub).send();96 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);96 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);97 const [adminSub] = await helper.arrange.createAccounts([100n], donor);97 const [adminSub] = await helper.arrange.createAccounts([100n], donor);98 const adminCrossSub = helper.ethCrossAccount.fromKeyringPair(adminSub);98 const adminCrossSub = helper.ethCrossAccount.fromKeyringPair(adminSub);99 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);99 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);100 100101 // cannot mint while not admin101 // cannot mint while not admin102 await expect(collectionEvm.methods.mint(owner).send({from: adminEth})).to.be.rejected;102 await expect(collectionEvm.methods.mint(owner).send({from: adminEth})).to.be.rejected;116 const [admin] = await helper.arrange.createAccounts([100n, 100n], donor);116 const [admin] = await helper.arrange.createAccounts([100n, 100n], donor);117117118 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');118 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');119 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);119 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);120120121 const adminCross = {121 const adminCross = {122 eth: helper.address.substrateToEth(admin.address),122 eth: helper.address.substrateToEth(admin.address),132 const adminDeprecated = helper.eth.createAccount();132 const adminDeprecated = helper.eth.createAccount();133 const admin1Cross = helper.ethCrossAccount.fromKeyringPair(await privateKey('admin'));133 const admin1Cross = helper.ethCrossAccount.fromKeyringPair(await privateKey('admin'));134 const admin2Cross = helper.ethCrossAccount.fromAddress(helper.address.substrateToEth((await privateKey('admin3')).address));134 const admin2Cross = helper.ethCrossAccount.fromAddress(helper.address.substrateToEth((await privateKey('admin3')).address));135 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);135 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);136 136137 // Soft-deprecated:137 // Soft-deprecated:138 expect(await collectionEvm.methods.isOwnerOrAdmin(adminDeprecated).call()).to.be.false;138 expect(await collectionEvm.methods.isOwnerOrAdmin(adminDeprecated).call()).to.be.false;156 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');156 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');157157158 const admin = await helper.eth.createAccountWithBalance(donor);158 const admin = await helper.eth.createAccountWithBalance(donor);159 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);159 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);160 await collectionEvm.methods.addCollectionAdmin(admin).send();160 await collectionEvm.methods.addCollectionAdmin(admin).send();161161162 const user = helper.eth.createAccount();162 const user = helper.eth.createAccount();175 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');175 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');176176177 const notAdmin = await helper.eth.createAccountWithBalance(donor);177 const notAdmin = await helper.eth.createAccountWithBalance(donor);178 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);178 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);179179180 const user = helper.eth.createAccount();180 const user = helper.eth.createAccount();181 await expect(collectionEvm.methods.addCollectionAdmin(user).call({from: notAdmin}))181 await expect(collectionEvm.methods.addCollectionAdmin(user).call({from: notAdmin}))191191192 const [admin, notAdmin] = await helper.arrange.createAccounts([10n, 10n], donor);192 const [admin, notAdmin] = await helper.arrange.createAccounts([10n, 10n], donor);193 const adminCross = helper.ethCrossAccount.fromKeyringPair(admin);193 const adminCross = helper.ethCrossAccount.fromKeyringPair(admin);194 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);194 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);195 await collectionEvm.methods.addCollectionAdminCross(adminCross).send();195 await collectionEvm.methods.addCollectionAdminCross(adminCross).send();196196197 const notAdminCross = helper.ethCrossAccount.fromKeyringPair(notAdmin);197 const notAdminCross = helper.ethCrossAccount.fromKeyringPair(notAdmin);211 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');211 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');212212213 const notAdmin0 = await helper.eth.createAccountWithBalance(donor);213 const notAdmin0 = await helper.eth.createAccountWithBalance(donor);214 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);214 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);215 const [notAdmin1] = await helper.arrange.createAccounts([10n], donor);215 const [notAdmin1] = await helper.arrange.createAccounts([10n], donor);216 const notAdmin1Cross = helper.ethCrossAccount.fromKeyringPair(notAdmin1);216 const notAdmin1Cross = helper.ethCrossAccount.fromKeyringPair(notAdmin1);217 await expect(collectionEvm.methods.addCollectionAdminCross(notAdmin1Cross).call({from: notAdmin0}))217 await expect(collectionEvm.methods.addCollectionAdminCross(notAdmin1Cross).call({from: notAdmin0}))237 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');237 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');238238239 const newAdmin = helper.eth.createAccount();239 const newAdmin = helper.eth.createAccount();240 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);240 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);241 await collectionEvm.methods.addCollectionAdmin(newAdmin).send();241 await collectionEvm.methods.addCollectionAdmin(newAdmin).send();242242243 {243 {261 const adminCrossSub = helper.ethCrossAccount.fromKeyringPair(adminSub);261 const adminCrossSub = helper.ethCrossAccount.fromKeyringPair(adminSub);262 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);262 const adminCrossEth = helper.ethCrossAccount.fromAddress(adminEth);263263264 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);264 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);265 await collectionEvm.methods.addCollectionAdminCross(adminCrossSub).send();265 await collectionEvm.methods.addCollectionAdminCross(adminCrossSub).send();266 await collectionEvm.methods.addCollectionAdminCross(adminCrossEth).send();266 await collectionEvm.methods.addCollectionAdminCross(adminCrossEth).send();267267286 const owner = await helper.eth.createAccountWithBalance(donor);286 const owner = await helper.eth.createAccountWithBalance(donor);287 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');287 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');288288289 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);289 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);290290291 const admin0 = await helper.eth.createAccountWithBalance(donor);291 const admin0 = await helper.eth.createAccountWithBalance(donor);292 await collectionEvm.methods.addCollectionAdmin(admin0).send();292 await collectionEvm.methods.addCollectionAdmin(admin0).send();309 const owner = await helper.eth.createAccountWithBalance(donor);309 const owner = await helper.eth.createAccountWithBalance(donor);310 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');310 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');311311312 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);312 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);313313314 const admin = await helper.eth.createAccountWithBalance(donor);314 const admin = await helper.eth.createAccountWithBalance(donor);315 await collectionEvm.methods.addCollectionAdmin(admin).send();315 await collectionEvm.methods.addCollectionAdmin(admin).send();331331332 const [admin1] = await helper.arrange.createAccounts([10n], donor);332 const [admin1] = await helper.arrange.createAccounts([10n], donor);333 const admin1Cross = helper.ethCrossAccount.fromKeyringPair(admin1);333 const admin1Cross = helper.ethCrossAccount.fromKeyringPair(admin1);334 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);334 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);335 await collectionEvm.methods.addCollectionAdminCross(admin1Cross).send();335 await collectionEvm.methods.addCollectionAdminCross(admin1Cross).send();336 336337 const [admin2] = await helper.arrange.createAccounts([10n], donor);337 const [admin2] = await helper.arrange.createAccounts([10n], donor);354354355 const [adminSub] = await helper.arrange.createAccounts([10n], donor);355 const [adminSub] = await helper.arrange.createAccounts([10n], donor);356 const adminSubCross = helper.ethCrossAccount.fromKeyringPair(adminSub);356 const adminSubCross = helper.ethCrossAccount.fromKeyringPair(adminSub);357 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);357 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);358 await collectionEvm.methods.addCollectionAdminCross(adminSubCross).send();358 await collectionEvm.methods.addCollectionAdminCross(adminSubCross).send();359 const notAdminEth = await helper.eth.createAccountWithBalance(donor);359 const notAdminEth = await helper.eth.createAccountWithBalance(donor);360360382 const owner = await helper.eth.createAccountWithBalance(donor);382 const owner = await helper.eth.createAccountWithBalance(donor);383 const newOwner = await helper.eth.createAccountWithBalance(donor);383 const newOwner = await helper.eth.createAccountWithBalance(donor);384 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');384 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');385 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);385 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);386386387 await collectionEvm.methods.changeCollectionOwner(newOwner).send();387 await collectionEvm.methods.changeCollectionOwner(newOwner).send();388388394 const owner = await helper.eth.createAccountWithBalance(donor);394 const owner = await helper.eth.createAccountWithBalance(donor);395 const newOwner = await helper.eth.createAccountWithBalance(donor);395 const newOwner = await helper.eth.createAccountWithBalance(donor);396 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');396 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');397 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);397 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);398 const cost = await recordEthFee(helper, owner, () => collectionEvm.methods.changeCollectionOwner(newOwner).send());398 const cost = await recordEthFee(helper, owner, () => collectionEvm.methods.changeCollectionOwner(newOwner).send());399 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));399 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));400 expect(cost > 0);400 expect(cost > 0);404 const owner = await helper.eth.createAccountWithBalance(donor);404 const owner = await helper.eth.createAccountWithBalance(donor);405 const newOwner = await helper.eth.createAccountWithBalance(donor);405 const newOwner = await helper.eth.createAccountWithBalance(donor);406 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');406 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');407 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);407 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);408408409 await expect(collectionEvm.methods.changeCollectionOwner(newOwner).send({from: newOwner})).to.be.rejected;409 await expect(collectionEvm.methods.changeCollectionOwner(newOwner).send({from: newOwner})).to.be.rejected;410 expect(await collectionEvm.methods.isOwnerOrAdmin(newOwner).call()).to.be.false;410 expect(await collectionEvm.methods.isOwnerOrAdmin(newOwner).call()).to.be.false;428 const ownerCrossSub = helper.ethCrossAccount.fromKeyringPair(ownerSub);428 const ownerCrossSub = helper.ethCrossAccount.fromKeyringPair(ownerSub);429429430 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');430 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');431 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);431 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);432432433 expect(await collectionEvm.methods.isOwnerOrAdminCross(ownerCrossSub).call()).to.be.false;433 expect(await collectionEvm.methods.isOwnerOrAdminCross(ownerCrossSub).call()).to.be.false;434434449 const owner = await helper.eth.createAccountWithBalance(donor);449 const owner = await helper.eth.createAccountWithBalance(donor);450 const [newOwner] = await helper.arrange.createAccounts([10n], donor);450 const [newOwner] = await helper.arrange.createAccounts([10n], donor);451 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');451 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');452 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);452 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);453453454 const cost = await recordEthFee(helper, owner, () => collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send());454 const cost = await recordEthFee(helper, owner, () => collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send());455 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));455 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));462 const [newOwner] = await helper.arrange.createAccounts([10n], donor);462 const [newOwner] = await helper.arrange.createAccounts([10n], donor);463 const newOwnerCross = helper.ethCrossAccount.fromKeyringPair(newOwner);463 const newOwnerCross = helper.ethCrossAccount.fromKeyringPair(newOwner);464 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');464 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');465 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);465 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);466466467 await expect(collectionEvm.methods.changeCollectionOwnerCross(newOwnerCross).send({from: otherReceiver})).to.be.rejected;467 await expect(collectionEvm.methods.changeCollectionOwnerCross(newOwnerCross).send({from: otherReceiver})).to.be.rejected;468 expect(await collectionEvm.methods.isOwnerOrAdminCross(newOwnerCross).call()).to.be.false;468 expect(await collectionEvm.methods.isOwnerOrAdminCross(newOwnerCross).call()).to.be.false;tests/src/eth/collectionHelperAddress.test.tsdiffbeforeafterboth33 const owner = await helper.eth.createAccountWithBalance(donor);33 const owner = await helper.eth.createAccountWithBalance(donor);34 3435 const {collectionAddress: nftCollectionAddress} = await helper.eth.createNFTCollection(owner, 'Sponsor', 'absolutely anything', 'ROC');35 const {collectionAddress: nftCollectionAddress} = await helper.eth.createNFTCollection(owner, 'Sponsor', 'absolutely anything', 'ROC');36 const nftCollection = helper.ethNativeContract.collection(nftCollectionAddress, 'nft', owner);36 const nftCollection = await helper.ethNativeContract.collection(nftCollectionAddress, 'nft', owner);37 3738 expect((await nftCollection.methods.collectionHelperAddress().call())38 expect((await nftCollection.methods.collectionHelperAddress().call())39 .toString().toLowerCase()).to.be.equal(EVM_COLLECTION_HELPERS_ADDRESS);39 .toString().toLowerCase()).to.be.equal(EVM_COLLECTION_HELPERS_ADDRESS);444445 const {collectionAddress: rftCollectionAddress} = await helper.eth.createRFTCollection(owner, 'Sponsor', 'absolutely anything', 'ROC');45 const {collectionAddress: rftCollectionAddress} = await helper.eth.createRFTCollection(owner, 'Sponsor', 'absolutely anything', 'ROC');464647 const rftCollection = helper.ethNativeContract.collection(rftCollectionAddress, 'rft', owner);47 const rftCollection = await helper.ethNativeContract.collection(rftCollectionAddress, 'rft', owner);48 expect((await rftCollection.methods.collectionHelperAddress().call())48 expect((await rftCollection.methods.collectionHelperAddress().call())49 .toString().toLowerCase()).to.be.equal(EVM_COLLECTION_HELPERS_ADDRESS);49 .toString().toLowerCase()).to.be.equal(EVM_COLLECTION_HELPERS_ADDRESS);50 });50 });53 const owner = await helper.eth.createAccountWithBalance(donor);53 const owner = await helper.eth.createAccountWithBalance(donor);545455 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Sponsor', 18, 'absolutely anything', 'ROC');55 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Sponsor', 18, 'absolutely anything', 'ROC');56 const collection = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);56 const collection = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);57 5758 expect((await collection.methods.collectionHelperAddress().call())58 expect((await collection.methods.collectionHelperAddress().call())59 .toString().toLowerCase()).to.be.equal(EVM_COLLECTION_HELPERS_ADDRESS);59 .toString().toLowerCase()).to.be.equal(EVM_COLLECTION_HELPERS_ADDRESS);63 const owner = await helper.eth.createAccountWithBalance(donor);63 const owner = await helper.eth.createAccountWithBalance(donor);64 const collectionId = 7;64 const collectionId = 7;65 const collectionAddress = helper.ethAddress.fromCollectionId(collectionId);65 const collectionAddress = helper.ethAddress.fromCollectionId(collectionId);66 const helperContract = helper.ethNativeContract.collectionHelpers(owner);66 const helperContract = await helper.ethNativeContract.collectionHelpers(owner);67 6768 expect(await helperContract.methods.collectionAddress(collectionId).call()).to.be.equal(collectionAddress);68 expect(await helperContract.methods.collectionAddress(collectionId).call()).to.be.equal(collectionAddress);69 expect(parseInt(await helperContract.methods.collectionId(collectionAddress).call())).to.be.equal(collectionId);69 expect(parseInt(await helperContract.methods.collectionId(collectionAddress).call())).to.be.equal(collectionId);tests/src/eth/collectionLimits.test.tsdiffbeforeafterboth45 transfersEnabled: false,45 transfersEnabled: false,46 };46 };47 4748 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, testCase.case, owner);48 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, testCase.case, owner);49 await collectionEvm.methods.setCollectionLimit(CollectionLimits.AccountTokenOwnership, true, limits.accountTokenOwnershipLimit).send();49 await collectionEvm.methods.setCollectionLimit(CollectionLimits.AccountTokenOwnership, true, limits.accountTokenOwnershipLimit).send();50 await collectionEvm.methods.setCollectionLimit(CollectionLimits.SponsoredDataSize, true, limits.sponsoredDataSize).send();50 await collectionEvm.methods.setCollectionLimit(CollectionLimits.SponsoredDataSize, true, limits.sponsoredDataSize).send();51 await collectionEvm.methods.setCollectionLimit(CollectionLimits.SponsoredDataRateLimit, true, limits.sponsoredDataRateLimit).send();51 await collectionEvm.methods.setCollectionLimit(CollectionLimits.SponsoredDataRateLimit, true, limits.sponsoredDataRateLimit).send();979798 const owner = await helper.eth.createAccountWithBalance(donor);98 const owner = await helper.eth.createAccountWithBalance(donor);99 const {collectionAddress} = await helper.eth.createCollection(testCase.case, owner, 'Limits', 'absolutely anything', 'ISNI', 18);99 const {collectionAddress} = await helper.eth.createCollection(testCase.case, owner, 'Limits', 'absolutely anything', 'ISNI', 18);100 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, testCase.case, owner);100 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, testCase.case, owner);101101102 // Cannot set non-existing limit102 // Cannot set non-existing limit103 await expect(collectionEvm.methods103 await expect(collectionEvm.methods131 const nonOwner = await helper.eth.createAccountWithBalance(donor);131 const nonOwner = await helper.eth.createAccountWithBalance(donor);132 const {collectionAddress} = await helper.eth.createCollection(testCase.case, owner, 'Limits', 'absolutely anything', 'FLO', 18);132 const {collectionAddress} = await helper.eth.createCollection(testCase.case, owner, 'Limits', 'absolutely anything', 'FLO', 18);133133134 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, testCase.case, owner);134 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, testCase.case, owner);135 await expect(collectionEvm.methods135 await expect(collectionEvm.methods136 .setCollectionLimit(CollectionLimits.AccountTokenOwnership, true, 1000)136 .setCollectionLimit(CollectionLimits.AccountTokenOwnership, true, 1000)137 .call({from: nonOwner}))137 .call({from: nonOwner}))tests/src/eth/collectionProperties.test.tsdiffbeforeafterboth43 await collection.addAdmin(alice, {Ethereum: caller});43 await collection.addAdmin(alice, {Ethereum: caller});44 4445 const address = helper.ethAddress.fromCollectionId(collection.collectionId);45 const address = helper.ethAddress.fromCollectionId(collection.collectionId);46 const collectionEvm = helper.ethNativeContract.collection(address, 'nft', caller, testCase.method === 'setCollectionProperty');46 const collectionEvm = await helper.ethNativeContract.collection(address, 'nft', caller, testCase.method === 'setCollectionProperty');474748 // collectionProperties returns an empty array if no properties: 48 // collectionProperties returns an empty array if no properties:49 expect(await collectionEvm.methods.collectionProperties([]).call()).to.be.like([]);49 expect(await collectionEvm.methods.collectionProperties([]).call()).to.be.like([]);50 expect(await collectionEvm.methods.collectionProperties(['NonExistingKey']).call()).to.be.like([]);50 expect(await collectionEvm.methods.collectionProperties(['NonExistingKey']).call()).to.be.like([]);515154 const raw = (await collection.getData())?.raw;54 const raw = (await collection.getData())?.raw;55 expect(raw.properties).to.deep.equal(testCase.expectedProps);55 expect(raw.properties).to.deep.equal(testCase.expectedProps);565657 // collectionProperties returns properties: 57 // collectionProperties returns properties:58 expect(await collectionEvm.methods.collectionProperties([]).call()).to.be.like(testCase.expectedProps.map(prop => helper.ethProperty.property(prop.key, prop.value)));58 expect(await collectionEvm.methods.collectionProperties([]).call()).to.be.like(testCase.expectedProps.map(prop => helper.ethProperty.property(prop.key, prop.value)));59 }));59 }));606064 await collection.addAdmin(alice, {Ethereum: caller});64 await collection.addAdmin(alice, {Ethereum: caller});656566 const address = helper.ethAddress.fromCollectionId(collection.collectionId);66 const address = helper.ethAddress.fromCollectionId(collection.collectionId);67 const contract = helper.ethNativeContract.collection(address, 'nft', caller);67 const contract = await helper.ethNativeContract.collection(address, 'nft', caller);686869 await expect(contract.methods.setCollectionProperties([{key: '', value: Buffer.from('val1')}]).send({from: caller})).to.be.rejected;69 await expect(contract.methods.setCollectionProperties([{key: '', value: Buffer.from('val1')}]).send({from: caller})).to.be.rejected;70 await expect(contract.methods.setCollectionProperties([{key: 'déjà vu', value: Buffer.from('hmm...')}]).send({from: caller})).to.be.rejected;70 await expect(contract.methods.setCollectionProperties([{key: 'déjà vu', value: Buffer.from('hmm...')}]).send({from: caller})).to.be.rejected;93 await collection.addAdmin(alice, {Ethereum: caller});93 await collection.addAdmin(alice, {Ethereum: caller});94 9495 const address = helper.ethAddress.fromCollectionId(collection.collectionId);95 const address = helper.ethAddress.fromCollectionId(collection.collectionId);96 const contract = helper.ethNativeContract.collection(address, 'nft', caller, testCase.method === 'deleteCollectionProperty');96 const contract = await helper.ethNativeContract.collection(address, 'nft', caller, testCase.method === 'deleteCollectionProperty');97 9798 await contract.methods[testCase.method](...testCase.methodParams).send({from: caller});98 await contract.methods[testCase.method](...testCase.methodParams).send({from: caller});99 99116 const collection = await helper.nft.mintCollection(alice, {name: 'name', description: 'test', tokenPrefix: 'test', properties});116 const collection = await helper.nft.mintCollection(alice, {name: 'name', description: 'test', tokenPrefix: 'test', properties});117117118 const address = helper.ethAddress.fromCollectionId(collection.collectionId);118 const address = helper.ethAddress.fromCollectionId(collection.collectionId);119 const collectionEvm = helper.ethNativeContract.collection(address, 'nft', caller, testCase.method === 'deleteCollectionProperty');119 const collectionEvm = await helper.ethNativeContract.collection(address, 'nft', caller, testCase.method === 'deleteCollectionProperty');120120121 await expect(collectionEvm.methods[testCase.method](...testCase.methodParams).send({from: caller})).to.be.rejected;121 await expect(collectionEvm.methods[testCase.method](...testCase.methodParams).send({from: caller})).to.be.rejected;122 expect(await collection.getProperties()).to.deep.eq(properties);122 expect(await collection.getProperties()).to.deep.eq(properties);127 const collection = await helper.nft.mintCollection(alice, {name: 'name', description: 'test', tokenPrefix: 'test', properties: [{key: 'testKey', value: 'testValue'}]});127 const collection = await helper.nft.mintCollection(alice, {name: 'name', description: 'test', tokenPrefix: 'test', properties: [{key: 'testKey', value: 'testValue'}]});128128129 const address = helper.ethAddress.fromCollectionId(collection.collectionId);129 const address = helper.ethAddress.fromCollectionId(collection.collectionId);130 const contract = helper.ethNativeContract.collection(address, 'nft', caller);130 const contract = await helper.ethNativeContract.collection(address, 'nft', caller);131131132 const value = await contract.methods.collectionProperty('testKey').call();132 const value = await contract.methods.collectionProperty('testKey').call();133 expect(value).to.equal(helper.getWeb3().utils.toHex('testValue'));133 expect(value).to.equal(helper.getWeb3().utils.toHex('testValue'));155 const SUFFIX = 'suffix1';155 const SUFFIX = 'suffix1';156 const URI = 'uri1';156 const URI = 'uri1';157 157158 const collectionHelpers = helper.ethNativeContract.collectionHelpers(caller);158 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(caller);159 const creatorMethod = testCase.case === 'rft' ? 'createRFTCollection' : 'createNFTCollection';159 const creatorMethod = testCase.case === 'rft' ? 'createRFTCollection' : 'createNFTCollection';160 160161 const {collectionId, collectionAddress} = await helper.eth[creatorMethod](caller, 'n', 'd', 'p');161 const {collectionId, collectionAddress} = await helper.eth[creatorMethod](caller, 'n', 'd', 'p');162 const bruhCross = helper.ethCrossAccount.fromAddress(bruh);162 const bruhCross = helper.ethCrossAccount.fromAddress(bruh);163 163164 const contract = helper.ethNativeContract.collectionById(collectionId, testCase.case, caller);164 const contract = await helper.ethNativeContract.collectionById(collectionId, testCase.case, caller);165 await contract.methods.addCollectionAdminCross(bruhCross).send(); // to check that admin will work too165 await contract.methods.addCollectionAdminCross(bruhCross).send(); // to check that admin will work too166 166167 const collection1 = helper.nft.getCollectionObject(collectionId);167 const collection1 = helper.nft.getCollectionObject(collectionId);tests/src/eth/collectionSponsoring.test.tsdiffbeforeafterboth41 expect(await helper.balance.getEthereum(minter)).to.equal(0n);41 expect(await helper.balance.getEthereum(minter)).to.equal(0n);424243 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);43 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);44 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', minter);44 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', minter);454546 await collection.addToAllowList(alice, {Ethereum: minter});46 await collection.addToAllowList(alice, {Ethereum: minter});474788 ].map(testCase => 88 ].map(testCase =>89 itEth(`[${testCase}] can remove collection sponsor`, async ({helper}) => {89 itEth(`[${testCase}] can remove collection sponsor`, async ({helper}) => {90 const owner = await helper.eth.createAccountWithBalance(donor);90 const owner = await helper.eth.createAccountWithBalance(donor);91 const collectionHelpers = helper.ethNativeContract.collectionHelpers(owner);91 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);92 9293 let result = await collectionHelpers.methods.createNFTCollection('Sponsor collection', '1', '1').send({value: Number(2n * nominal)});93 let result = await collectionHelpers.methods.createNFTCollection('Sponsor collection', '1', '1').send({value: Number(2n * nominal)});94 const collectionIdAddress = helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);94 const collectionIdAddress = helper.ethAddress.normalizeAddress(result.events.CollectionCreated.returnValues.collectionId);95 const sponsor = await helper.eth.createAccountWithBalance(donor);95 const sponsor = await helper.eth.createAccountWithBalance(donor);96 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);96 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);97 const collectionEvm = helper.ethNativeContract.collection(collectionIdAddress, 'nft', owner, testCase === 'setCollectionSponsor');97 const collectionEvm = await helper.ethNativeContract.collection(collectionIdAddress, 'nft', owner, testCase === 'setCollectionSponsor');98 9899 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;99 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;100 result = await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send({from: owner});100 result = await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send({from: owner});121 const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Sponsor collection', '1', '1', '');121 const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Sponsor collection', '1', '1', '');122 122123 const collectionSub = helper.nft.getCollectionObject(collectionId);123 const collectionSub = helper.nft.getCollectionObject(collectionId);124 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, testCase === 'setCollectionSponsor');124 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, testCase === 'setCollectionSponsor');125 125126 // Set collection sponsor:126 // Set collection sponsor:127 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsorEth : sponsorCrossEth).send({from: owner});127 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsorEth : sponsorCrossEth).send({from: owner});252 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner,'Sponsor collection', '1', '1', '');252 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner,'Sponsor collection', '1', '1', '');253253254 const collectionSub = helper.nft.getCollectionObject(collectionId);254 const collectionSub = helper.nft.getCollectionObject(collectionId);255 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, testCase === 'setCollectionSponsor');255 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, testCase === 'setCollectionSponsor');256 // Set collection sponsor:256 // Set collection sponsor:257 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send();257 await collectionEvm.methods[testCase](testCase === 'setCollectionSponsor' ? sponsor : sponsorCross).send();258 let collectionData = (await collectionSub.getData())!;258 let collectionData = (await collectionSub.getData())!;303303304 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner,'Sponsor collection', '1', '1', '');304 const {collectionAddress, collectionId} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner,'Sponsor collection', '1', '1', '');305 const collectionSub = helper.nft.getCollectionObject(collectionId);305 const collectionSub = helper.nft.getCollectionObject(collectionId);306 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);306 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);307307308 // Set and confirm sponsor:308 // Set and confirm sponsor:309 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossEth).send({from: owner});309 await collectionEvm.methods.setCollectionSponsorCross(sponsorCrossEth).send({from: owner});tests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth34 itEth('Self sponsoring can be set by the address that deployed the contract', async ({helper}) => {34 itEth('Self sponsoring can be set by the address that deployed the contract', async ({helper}) => {35 const owner = await helper.eth.createAccountWithBalance(donor);35 const owner = await helper.eth.createAccountWithBalance(donor);36 const flipper = await helper.eth.deployFlipper(owner);36 const flipper = await helper.eth.deployFlipper(owner);37 const helpers = helper.ethNativeContract.contractHelpers(owner);37 const helpers = await helper.ethNativeContract.contractHelpers(owner);383839 // 1. owner can set selfSponsoring:39 // 1. owner can set selfSponsoring:40 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;40 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;71 itEth('Self sponsoring cannot be set by the address that did not deployed the contract', async ({helper}) => {71 itEth('Self sponsoring cannot be set by the address that did not deployed the contract', async ({helper}) => {72 const owner = await helper.eth.createAccountWithBalance(donor);72 const owner = await helper.eth.createAccountWithBalance(donor);73 const notOwner = await helper.eth.createAccountWithBalance(donor);73 const notOwner = await helper.eth.createAccountWithBalance(donor);74 const helpers = helper.ethNativeContract.contractHelpers(owner);74 const helpers = await helper.ethNativeContract.contractHelpers(owner);75 const flipper = await helper.eth.deployFlipper(owner);75 const flipper = await helper.eth.deployFlipper(owner);767677 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;77 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;818182 itEth('Sponsoring can be set by the address that has deployed the contract', async ({helper}) => {82 itEth('Sponsoring can be set by the address that has deployed the contract', async ({helper}) => {83 const owner = await helper.eth.createAccountWithBalance(donor);83 const owner = await helper.eth.createAccountWithBalance(donor);84 const helpers = helper.ethNativeContract.contractHelpers(owner);84 const helpers = await helper.ethNativeContract.contractHelpers(owner);85 const flipper = await helper.eth.deployFlipper(owner);85 const flipper = await helper.eth.deployFlipper(owner);868687 expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;87 expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;92 itEth('Sponsoring cannot be set by the address that did not deployed the contract', async ({helper}) => {92 itEth('Sponsoring cannot be set by the address that did not deployed the contract', async ({helper}) => {93 const owner = await helper.eth.createAccountWithBalance(donor);93 const owner = await helper.eth.createAccountWithBalance(donor);94 const notOwner = await helper.eth.createAccountWithBalance(donor);94 const notOwner = await helper.eth.createAccountWithBalance(donor);95 const helpers = helper.ethNativeContract.contractHelpers(owner);95 const helpers = await helper.ethNativeContract.contractHelpers(owner);96 const flipper = await helper.eth.deployFlipper(owner);96 const flipper = await helper.eth.deployFlipper(owner);979798 expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;98 expect(await helpers.methods.sponsoringEnabled(flipper.options.address).call()).to.be.false;103 itEth('Sponsor can be set by the address that deployed the contract', async ({helper}) => {103 itEth('Sponsor can be set by the address that deployed the contract', async ({helper}) => {104 const owner = await helper.eth.createAccountWithBalance(donor);104 const owner = await helper.eth.createAccountWithBalance(donor);105 const sponsor = await helper.eth.createAccountWithBalance(donor);105 const sponsor = await helper.eth.createAccountWithBalance(donor);106 const helpers = helper.ethNativeContract.contractHelpers(owner);106 const helpers = await helper.ethNativeContract.contractHelpers(owner);107 const flipper = await helper.eth.deployFlipper(owner);107 const flipper = await helper.eth.deployFlipper(owner);108108109 // 1. owner can set a sponsor:109 // 1. owner can set a sponsor:129 const owner = await helper.eth.createAccountWithBalance(donor);129 const owner = await helper.eth.createAccountWithBalance(donor);130 const sponsor = await helper.eth.createAccountWithBalance(donor);130 const sponsor = await helper.eth.createAccountWithBalance(donor);131 const notOwner = await helper.eth.createAccountWithBalance(donor);131 const notOwner = await helper.eth.createAccountWithBalance(donor);132 const helpers = helper.ethNativeContract.contractHelpers(owner);132 const helpers = await helper.ethNativeContract.contractHelpers(owner);133 const flipper = await helper.eth.deployFlipper(owner);133 const flipper = await helper.eth.deployFlipper(owner);134134135 expect(await helpers.methods.hasPendingSponsor(flipper.options.address).call()).to.be.false;135 expect(await helpers.methods.hasPendingSponsor(flipper.options.address).call()).to.be.false;140 itEth('Sponsorship can be confirmed by the address that pending as sponsor', async ({helper}) => {140 itEth('Sponsorship can be confirmed by the address that pending as sponsor', async ({helper}) => {141 const owner = await helper.eth.createAccountWithBalance(donor);141 const owner = await helper.eth.createAccountWithBalance(donor);142 const sponsor = await helper.eth.createAccountWithBalance(donor);142 const sponsor = await helper.eth.createAccountWithBalance(donor);143 const helpers = helper.ethNativeContract.contractHelpers(owner);143 const helpers = await helper.ethNativeContract.contractHelpers(owner);144 const flipper = await helper.eth.deployFlipper(owner);144 const flipper = await helper.eth.deployFlipper(owner);145145146 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;146 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;173 const owner = await helper.eth.createAccountWithBalance(donor);173 const owner = await helper.eth.createAccountWithBalance(donor);174 const sponsor = await helper.eth.createAccountWithBalance(donor);174 const sponsor = await helper.eth.createAccountWithBalance(donor);175 const notSponsor = await helper.eth.createAccountWithBalance(donor);175 const notSponsor = await helper.eth.createAccountWithBalance(donor);176 const helpers = helper.ethNativeContract.contractHelpers(owner);176 const helpers = await helper.ethNativeContract.contractHelpers(owner);177 const flipper = await helper.eth.deployFlipper(owner);177 const flipper = await helper.eth.deployFlipper(owner);178178179 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;179 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;185 itEth('Sponsorship can not be confirmed by the address that not set as sponsor', async ({helper}) => {185 itEth('Sponsorship can not be confirmed by the address that not set as sponsor', async ({helper}) => {186 const owner = await helper.eth.createAccountWithBalance(donor);186 const owner = await helper.eth.createAccountWithBalance(donor);187 const notSponsor = await helper.eth.createAccountWithBalance(donor);187 const notSponsor = await helper.eth.createAccountWithBalance(donor);188 const helpers = helper.ethNativeContract.contractHelpers(owner);188 const helpers = await helper.ethNativeContract.contractHelpers(owner);189 const flipper = await helper.eth.deployFlipper(owner);189 const flipper = await helper.eth.deployFlipper(owner);190190191 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;191 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;196 itEth('Sponsor can be removed by the address that deployed the contract', async ({helper}) => {196 itEth('Sponsor can be removed by the address that deployed the contract', async ({helper}) => {197 const owner = await helper.eth.createAccountWithBalance(donor);197 const owner = await helper.eth.createAccountWithBalance(donor);198 const sponsor = await helper.eth.createAccountWithBalance(donor);198 const sponsor = await helper.eth.createAccountWithBalance(donor);199 const helpers = helper.ethNativeContract.contractHelpers(owner);199 const helpers = await helper.ethNativeContract.contractHelpers(owner);200 const flipper = await helper.eth.deployFlipper(owner);200 const flipper = await helper.eth.deployFlipper(owner);201201202 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;202 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;229 const owner = await helper.eth.createAccountWithBalance(donor);229 const owner = await helper.eth.createAccountWithBalance(donor);230 const notOwner = await helper.eth.createAccountWithBalance(donor);230 const notOwner = await helper.eth.createAccountWithBalance(donor);231 const sponsor = await helper.eth.createAccountWithBalance(donor);231 const sponsor = await helper.eth.createAccountWithBalance(donor);232 const helpers = helper.ethNativeContract.contractHelpers(owner);232 const helpers = await helper.ethNativeContract.contractHelpers(owner);233 const flipper = await helper.eth.deployFlipper(owner);233 const flipper = await helper.eth.deployFlipper(owner);234234235 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;235 expect(await helpers.methods.hasSponsor(flipper.options.address).call()).to.be.false;246 const owner = await helper.eth.createAccountWithBalance(donor);246 const owner = await helper.eth.createAccountWithBalance(donor);247 const sponsor = await helper.eth.createAccountWithBalance(donor);247 const sponsor = await helper.eth.createAccountWithBalance(donor);248 const caller = await helper.eth.createAccountWithBalance(donor);248 const caller = await helper.eth.createAccountWithBalance(donor);249 const helpers = helper.ethNativeContract.contractHelpers(owner);249 const helpers = await helper.ethNativeContract.contractHelpers(owner);250 const flipper = await helper.eth.deployFlipper(owner);250 const flipper = await helper.eth.deployFlipper(owner);251251252 await helpers.methods.setSponsor(flipper.options.address, sponsor).send();252 await helpers.methods.setSponsor(flipper.options.address, sponsor).send();271 itEth('In generous mode, non-allowlisted user transaction will be self sponsored', async ({helper}) => {271 itEth('In generous mode, non-allowlisted user transaction will be self sponsored', async ({helper}) => {272 const owner = await helper.eth.createAccountWithBalance(donor);272 const owner = await helper.eth.createAccountWithBalance(donor);273 const caller = await helper.eth.createAccountWithBalance(donor);273 const caller = await helper.eth.createAccountWithBalance(donor);274 const helpers = helper.ethNativeContract.contractHelpers(owner);274 const helpers = await helper.ethNativeContract.contractHelpers(owner);275 const flipper = await helper.eth.deployFlipper(owner);275 const flipper = await helper.eth.deployFlipper(owner);276276277 await helpers.methods.selfSponsoredEnable(flipper.options.address).send();277 await helpers.methods.selfSponsoredEnable(flipper.options.address).send();303 const sponsor = await helper.eth.createAccountWithBalance(donor);303 const sponsor = await helper.eth.createAccountWithBalance(donor);304 const caller = helper.eth.createAccount();304 const caller = helper.eth.createAccount();305 await helper.eth.transferBalanceFromSubstrate(donor, caller, testCase.balance);305 await helper.eth.transferBalanceFromSubstrate(donor, caller, testCase.balance);306 const helpers = helper.ethNativeContract.contractHelpers(owner);306 const helpers = await helper.ethNativeContract.contractHelpers(owner);307 const flipper = await helper.eth.deployFlipper(owner);307 const flipper = await helper.eth.deployFlipper(owner);308 308309 await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});309 await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});333 itEth('Non-allow-listed address can call a contract. Sponsor balance should not decrease', async ({helper}) => {333 itEth('Non-allow-listed address can call a contract. Sponsor balance should not decrease', async ({helper}) => {334 const owner = await helper.eth.createAccountWithBalance(donor);334 const owner = await helper.eth.createAccountWithBalance(donor);335 const caller = helper.eth.createAccount();335 const caller = helper.eth.createAccount();336 const contractHelpers = helper.ethNativeContract.contractHelpers(owner);336 const contractHelpers = await helper.ethNativeContract.contractHelpers(owner);337337338 // Deploy flipper and send some tokens:338 // Deploy flipper and send some tokens:339 const flipper = await helper.eth.deployFlipper(owner);339 const flipper = await helper.eth.deployFlipper(owner);348 await contractHelpers.methods.setSponsoringMode(flipper.options.address, SponsoringMode.Allowlisted).send({from: owner});348 await contractHelpers.methods.setSponsoringMode(flipper.options.address, SponsoringMode.Allowlisted).send({from: owner});349 await contractHelpers.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: owner});349 await contractHelpers.methods.setSponsoringRateLimit(flipper.options.address, 0).send({from: owner});350350351 // 1. Caller has no UNQ and is not in allow list. So he cannot flip: 351 // 1. Caller has no UNQ and is not in allow list. So he cannot flip:352 await expect(flipper.methods.flip().send({from: caller})).to.be.rejectedWith(/Returned error: insufficient funds for gas \* price \+ value/);352 await expect(flipper.methods.flip().send({from: caller})).to.be.rejectedWith(/Returned error: insufficient funds for gas \* price \+ value/);353 expect(await flipper.methods.getValue().call()).to.be.false;353 expect(await flipper.methods.getValue().call()).to.be.false;354354361 const owner = await helper.eth.createAccountWithBalance(donor);361 const owner = await helper.eth.createAccountWithBalance(donor);362 const sponsor = await helper.eth.createAccountWithBalance(donor);362 const sponsor = await helper.eth.createAccountWithBalance(donor);363 const caller = await helper.eth.createAccountWithBalance(donor);363 const caller = await helper.eth.createAccountWithBalance(donor);364 const helpers = helper.ethNativeContract.contractHelpers(owner);364 const helpers = await helper.ethNativeContract.contractHelpers(owner);365 const flipper = await helper.eth.deployFlipper(owner);365 const flipper = await helper.eth.deployFlipper(owner);366 366367 const originalCallerBalance = await helper.balance.getEthereum(caller);367 const originalCallerBalance = await helper.balance.getEthereum(caller);393 // TODO: Find a way to calculate default rate limit393 // TODO: Find a way to calculate default rate limit394 itEth('Default rate limit equal 7200', async ({helper}) => {394 itEth('Default rate limit equal 7200', async ({helper}) => {395 const owner = await helper.eth.createAccountWithBalance(donor);395 const owner = await helper.eth.createAccountWithBalance(donor);396 const helpers = helper.ethNativeContract.contractHelpers(owner);396 const helpers = await helper.ethNativeContract.contractHelpers(owner);397 const flipper = await helper.eth.deployFlipper(owner);397 const flipper = await helper.eth.deployFlipper(owner);398398399 expect(await helpers.methods.sponsoringRateLimit(flipper.options.address).call()).to.be.equal('7200');399 expect(await helpers.methods.sponsoringRateLimit(flipper.options.address).call()).to.be.equal('7200');409 if (!testContract) {409 if (!testContract) {410 testContract = await helper.ethContract.compile(410 testContract = await helper.ethContract.compile(411 'TestContract',411 'TestContract',412 `412 `413 // SPDX-License-Identifier: MIT413 // SPDX-License-Identifier: MIT414 pragma solidity ^0.8.0;414 pragma solidity ^0.8.0;415 415416 contract TestContract {416 contract TestContract {417 event Result(bool);417 event Result(bool);418418419 function test(uint32 cycles) public {419 function test(uint32 cycles) public {420 uint256 counter = 0;420 uint256 counter = 0;421 while(true) {421 while(true) {422 counter ++;422 counter ++;423 if (counter > cycles){423 if (counter > cycles){424 break;424 break;425 }425 }426 }426 }427 emit Result(true);427 emit Result(true);428 }428 }429 }429 }430 `,430 `,431 );431 );432 }432 }433 return testContract;433 return testContract;447447448 itEth('Default fee limit', async ({helper}) => {448 itEth('Default fee limit', async ({helper}) => {449 const owner = await helper.eth.createAccountWithBalance(donor);449 const owner = await helper.eth.createAccountWithBalance(donor);450 const helpers = helper.ethNativeContract.contractHelpers(owner);450 const helpers = await helper.ethNativeContract.contractHelpers(owner);451 const flipper = await helper.eth.deployFlipper(owner);451 const flipper = await helper.eth.deployFlipper(owner);452452453 expect(await helpers.methods.sponsoringFeeLimit(flipper.options.address).call()).to.be.equal('115792089237316195423570985008687907853269984665640564039457584007913129639935');453 expect(await helpers.methods.sponsoringFeeLimit(flipper.options.address).call()).to.be.equal('115792089237316195423570985008687907853269984665640564039457584007913129639935');454 });454 });455455456 itEth('Set fee limit', async ({helper}) => {456 itEth('Set fee limit', async ({helper}) => {457 const owner = await helper.eth.createAccountWithBalance(donor);457 const owner = await helper.eth.createAccountWithBalance(donor);458 const helpers = helper.ethNativeContract.contractHelpers(owner);458 const helpers = await helper.ethNativeContract.contractHelpers(owner);459 const flipper = await helper.eth.deployFlipper(owner);459 const flipper = await helper.eth.deployFlipper(owner);460460461 await helpers.methods.setSponsoringFeeLimit(flipper.options.address, 100).send();461 await helpers.methods.setSponsoringFeeLimit(flipper.options.address, 100).send();465 itEth('Negative test - set fee limit by non-owner', async ({helper}) => {465 itEth('Negative test - set fee limit by non-owner', async ({helper}) => {466 const owner = await helper.eth.createAccountWithBalance(donor);466 const owner = await helper.eth.createAccountWithBalance(donor);467 const stranger = await helper.eth.createAccountWithBalance(donor);467 const stranger = await helper.eth.createAccountWithBalance(donor);468 const helpers = helper.ethNativeContract.contractHelpers(owner);468 const helpers = await helper.ethNativeContract.contractHelpers(owner);469 const flipper = await helper.eth.deployFlipper(owner);469 const flipper = await helper.eth.deployFlipper(owner);470470471 await expect(helpers.methods.setSponsoringFeeLimit(flipper.options.address, 100).send({from: stranger})).to.be.rejected;471 await expect(helpers.methods.setSponsoringFeeLimit(flipper.options.address, 100).send({from: stranger})).to.be.rejected;475 const owner = await helper.eth.createAccountWithBalance(donor);475 const owner = await helper.eth.createAccountWithBalance(donor);476 const sponsor = await helper.eth.createAccountWithBalance(donor);476 const sponsor = await helper.eth.createAccountWithBalance(donor);477 const user = await helper.eth.createAccountWithBalance(donor);477 const user = await helper.eth.createAccountWithBalance(donor);478 const helpers = helper.ethNativeContract.contractHelpers(owner);478 const helpers = await helper.ethNativeContract.contractHelpers(owner);479479480 const testContract = await deployTestContract(helper, owner);480 const testContract = await deployTestContract(helper, owner);481 481500 itEth('Negative test - check that evm.call transactions exceeding fee limit are not executed', async ({helper}) => {500 itEth('Negative test - check that evm.call transactions exceeding fee limit are not executed', async ({helper}) => {501 const owner = await helper.eth.createAccountWithBalance(donor);501 const owner = await helper.eth.createAccountWithBalance(donor);502 const sponsor = await helper.eth.createAccountWithBalance(donor);502 const sponsor = await helper.eth.createAccountWithBalance(donor);503 const helpers = helper.ethNativeContract.contractHelpers(owner);503 const helpers = await helper.ethNativeContract.contractHelpers(owner);504504505 const testContract = await deployTestContract(helper, owner);505 const testContract = await deployTestContract(helper, owner);506 506tests/src/eth/createFTCollection.seqtest.tsdiffbeforeafterboth595960 const expectedCollectionId = +(await helper.callRpc('api.rpc.unique.collectionStats')).created + 1;60 const expectedCollectionId = +(await helper.callRpc('api.rpc.unique.collectionStats')).created + 1;61 const expectedCollectionAddress = helper.ethAddress.fromCollectionId(expectedCollectionId);61 const expectedCollectionAddress = helper.ethAddress.fromCollectionId(expectedCollectionId);62 const collectionHelpers = helper.ethNativeContract.collectionHelpers(owner);62 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);636364 expect(await collectionHelpers.methods64 expect(await collectionHelpers.methods65 .isCollectionExist(expectedCollectionAddress)65 .isCollectionExist(expectedCollectionAddress)tests/src/eth/createFTCollection.test.tsdiffbeforeafterboth41 4142 const {collectionId, collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Sponsor', DECIMALS, description, 'ENVY');42 const {collectionId, collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Sponsor', DECIMALS, description, 'ENVY');434344 const collection = helper.ethNativeContract.collection(collectionAddress, 'ft', owner, true);44 const collection = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner, true);45 await collection.methods.setCollectionSponsor(sponsor).send();45 await collection.methods.setCollectionSponsor(sponsor).send();464647 let data = (await helper.rft.getData(collectionId))!;47 let data = (await helper.rft.getData(collectionId))!;48 expect(data.raw.sponsorship.Unconfirmed).to.be.equal(evmToAddress(sponsor, Number(ss58Format)));48 expect(data.raw.sponsorship.Unconfirmed).to.be.equal(evmToAddress(sponsor, Number(ss58Format)));494950 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');50 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');515152 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor, true);52 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor, true);53 await sponsorCollection.methods.confirmCollectionSponsorship().send();53 await sponsorCollection.methods.confirmCollectionSponsorship().send();545455 data = (await helper.rft.getData(collectionId))!;55 data = (await helper.rft.getData(collectionId))!;63 const description = 'absolutely anything';63 const description = 'absolutely anything';64 const {collectionId, collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Sponsor', DECIMALS, description, 'ENVY');64 const {collectionId, collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Sponsor', DECIMALS, description, 'ENVY');65 6566 const collection = helper.ethNativeContract.collection(collectionAddress, 'rft', owner);66 const collection = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);67 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);67 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);68 await collection.methods.setCollectionSponsorCross(sponsorCross).send();68 await collection.methods.setCollectionSponsorCross(sponsorCross).send();6969727273 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');73 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');747475 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor);75 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor);76 await sponsorCollection.methods.confirmCollectionSponsorship().send();76 await sponsorCollection.methods.confirmCollectionSponsorship().send();777778 data = (await helper.rft.getData(collectionId))!;78 data = (await helper.rft.getData(collectionId))!;83 itEth('Collection address exist', async ({helper}) => {83 itEth('Collection address exist', async ({helper}) => {84 const owner = await helper.eth.createAccountWithBalance(donor);84 const owner = await helper.eth.createAccountWithBalance(donor);85 const collectionAddressForNonexistentCollection = '0x17C4E6453CC49AAAAEACA894E6D9683E00112233';85 const collectionAddressForNonexistentCollection = '0x17C4E6453CC49AAAAEACA894E6D9683E00112233';86 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);8786 expect(await helper.ethNativeContract.collectionHelpers(collectionAddressForNonexistentCollection)88 expect(await collectionHelpers87 .methods.isCollectionExist(collectionAddressForNonexistentCollection).call())89 .methods.isCollectionExist(collectionAddressForNonexistentCollection).call())88 .to.be.false;90 .to.be.false;89 9190 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Exister', DECIMALS, 'absolutely anything', 'WIWT');92 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Exister', DECIMALS, 'absolutely anything', 'WIWT');91 expect(await helper.ethNativeContract.collectionHelpers(collectionAddress)93 expect(await collectionHelpers92 .methods.isCollectionExist(collectionAddress).call())94 .methods.isCollectionExist(collectionAddress).call())93 .to.be.true;95 .to.be.true;94 });96 });95 9796 itEth('destroyCollection', async ({helper}) => {98 itEth('destroyCollection', async ({helper}) => {97 const owner = await helper.eth.createAccountWithBalance(donor);99 const owner = await helper.eth.createAccountWithBalance(donor);98 const {collectionAddress, collectionId} = await helper.eth.createFungibleCollection(owner, 'Exister', DECIMALS, 'absolutely anything', 'WIWT');100 const {collectionAddress, collectionId} = await helper.eth.createFungibleCollection(owner, 'Exister', DECIMALS, 'absolutely anything', 'WIWT');99 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);101 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);100102101 const result = await collectionHelper.methods103 const result = await collectionHelper.methods102 .destroyCollection(collectionAddress)104 .destroyCollection(collectionAddress)135137136 itEth('(!negative test!) Create collection (bad lengths)', async ({helper}) => {138 itEth('(!negative test!) Create collection (bad lengths)', async ({helper}) => {137 const owner = await helper.eth.createAccountWithBalance(donor);139 const owner = await helper.eth.createAccountWithBalance(donor);138 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);140 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);139 {141 {140 const MAX_NAME_LENGTH = 64;142 const MAX_NAME_LENGTH = 64;141 const collectionName = 'A'.repeat(MAX_NAME_LENGTH + 1);143 const collectionName = 'A'.repeat(MAX_NAME_LENGTH + 1);168 170169 itEth('(!negative test!) cannot create collection if value !== 2', async ({helper}) => {171 itEth('(!negative test!) cannot create collection if value !== 2', async ({helper}) => {170 const owner = await helper.eth.createAccountWithBalance(donor);172 const owner = await helper.eth.createAccountWithBalance(donor);171 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);173 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);172 const expects = [0n, 1n, 30n].map(async value => {174 const expects = [0n, 1n, 30n].map(async value => {173 await expect(collectionHelper.methods175 await expect(collectionHelper.methods174 .createFTCollection('Peasantry', DECIMALS, 'absolutely anything', 'TWIW')176 .createFTCollection('Peasantry', DECIMALS, 'absolutely anything', 'TWIW')182 const owner = await helper.eth.createAccountWithBalance(donor);184 const owner = await helper.eth.createAccountWithBalance(donor);183 const peasant = helper.eth.createAccount();185 const peasant = helper.eth.createAccount();184 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Transgressed', DECIMALS, 'absolutely anything', 'YVNE');186 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Transgressed', DECIMALS, 'absolutely anything', 'YVNE');185 const peasantCollection = helper.ethNativeContract.collection(collectionAddress, 'ft', peasant, true);187 const peasantCollection = await helper.ethNativeContract.collection(collectionAddress, 'ft', peasant, true);186 const EXPECTED_ERROR = 'NoPermission';188 const EXPECTED_ERROR = 'NoPermission';187 {189 {188 const sponsor = await helper.eth.createAccountWithBalance(donor);190 const sponsor = await helper.eth.createAccountWithBalance(donor);189 await expect(peasantCollection.methods191 await expect(peasantCollection.methods190 .setCollectionSponsor(sponsor)192 .setCollectionSponsor(sponsor)191 .call()).to.be.rejectedWith(EXPECTED_ERROR);193 .call()).to.be.rejectedWith(EXPECTED_ERROR);192 194193 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'ft', sponsor, true);195 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'ft', sponsor, true);194 await expect(sponsorCollection.methods196 await expect(sponsorCollection.methods195 .confirmCollectionSponsorship()197 .confirmCollectionSponsorship()196 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');198 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');206 const owner = await helper.eth.createAccountWithBalance(donor);208 const owner = await helper.eth.createAccountWithBalance(donor);207 const peasant = helper.eth.createAccount();209 const peasant = helper.eth.createAccount();208 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Transgressed', DECIMALS, 'absolutely anything', 'YVNE');210 const {collectionAddress} = await helper.eth.createFungibleCollection(owner, 'Transgressed', DECIMALS, 'absolutely anything', 'YVNE');209 const peasantCollection = helper.ethNativeContract.collection(collectionAddress, 'ft', peasant);211 const peasantCollection = await helper.ethNativeContract.collection(collectionAddress, 'ft', peasant);210 const EXPECTED_ERROR = 'NoPermission';212 const EXPECTED_ERROR = 'NoPermission';211 {213 {212 const sponsor = await helper.eth.createAccountWithBalance(donor);214 const sponsor = await helper.eth.createAccountWithBalance(donor);215 .setCollectionSponsorCross(sponsorCross)217 .setCollectionSponsorCross(sponsorCross)216 .call()).to.be.rejectedWith(EXPECTED_ERROR);218 .call()).to.be.rejectedWith(EXPECTED_ERROR);217 219218 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'ft', sponsor);220 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'ft', sponsor);219 await expect(sponsorCollection.methods221 await expect(sponsorCollection.methods220 .confirmCollectionSponsorship()222 .confirmCollectionSponsorship()221 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');223 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');tests/src/eth/createNFTCollection.seqtest.tsdiffbeforeafterboth727273 const expectedCollectionId = +(await helper.callRpc('api.rpc.unique.collectionStats')).created + 1;73 const expectedCollectionId = +(await helper.callRpc('api.rpc.unique.collectionStats')).created + 1;74 const expectedCollectionAddress = helper.ethAddress.fromCollectionId(expectedCollectionId);74 const expectedCollectionAddress = helper.ethAddress.fromCollectionId(expectedCollectionId);75 const collectionHelpers = helper.ethNativeContract.collectionHelpers(owner);75 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);767677 expect(await collectionHelpers.methods77 expect(await collectionHelpers.methods78 .isCollectionExist(expectedCollectionAddress)78 .isCollectionExist(expectedCollectionAddress)tests/src/eth/createNFTCollection.test.tsdiffbeforeafterboth38 const baseUri = 'BaseURI';38 const baseUri = 'BaseURI';393940 const {collectionId, collectionAddress, events} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, name, description, prefix, baseUri);40 const {collectionId, collectionAddress, events} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, name, description, prefix, baseUri);41 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft');41 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft');42 4243 expect(events).to.be.deep.equal([43 expect(events).to.be.deep.equal([44 {44 {81 const ss58Format = helper.chain.getChainProperties().ss58Format;81 const ss58Format = helper.chain.getChainProperties().ss58Format;82 const {collectionId, collectionAddress} = await helper.eth.createNFTCollection(owner, 'Sponsor', 'absolutely anything', 'ROC');82 const {collectionId, collectionAddress} = await helper.eth.createNFTCollection(owner, 'Sponsor', 'absolutely anything', 'ROC');838384 const collection = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);84 const collection = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);85 await collection.methods.setCollectionSponsor(sponsor).send();85 await collection.methods.setCollectionSponsor(sponsor).send();868687 let data = (await helper.nft.getData(collectionId))!;87 let data = (await helper.nft.getData(collectionId))!;88 expect(data.raw.sponsorship.Unconfirmed).to.be.equal(evmToAddress(sponsor, Number(ss58Format)));88 expect(data.raw.sponsorship.Unconfirmed).to.be.equal(evmToAddress(sponsor, Number(ss58Format)));898990 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');90 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');919192 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'nft', sponsor, true);92 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'nft', sponsor, true);93 await sponsorCollection.methods.confirmCollectionSponsorship().send();93 await sponsorCollection.methods.confirmCollectionSponsorship().send();949495 data = (await helper.nft.getData(collectionId))!;95 data = (await helper.nft.getData(collectionId))!;103 const description = 'absolutely anything';103 const description = 'absolutely anything';104 const {collectionId, collectionAddress} = await helper.eth.createNFTCollection(owner, 'Sponsor', description, 'ROC');104 const {collectionId, collectionAddress} = await helper.eth.createNFTCollection(owner, 'Sponsor', description, 'ROC');105105106 const collection = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);106 const collection = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);107 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);107 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);108 await collection.methods.setCollectionSponsorCross(sponsorCross).send();108 await collection.methods.setCollectionSponsorCross(sponsorCross).send();109109112112113 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');113 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');114114115 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'nft', sponsor);115 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'nft', sponsor);116 await sponsorCollection.methods.confirmCollectionSponsorship().send();116 await sponsorCollection.methods.confirmCollectionSponsorship().send();117117118 data = (await helper.nft.getData(collectionId))!;118 data = (await helper.nft.getData(collectionId))!;124 itEth('Collection address exist', async ({helper}) => {124 itEth('Collection address exist', async ({helper}) => {125 const owner = await helper.eth.createAccountWithBalance(donor);125 const owner = await helper.eth.createAccountWithBalance(donor);126 const collectionAddressForNonexistentCollection = '0x17C4E6453CC49AAAAEACA894E6D9683E00112233';126 const collectionAddressForNonexistentCollection = '0x17C4E6453CC49AAAAEACA894E6D9683E00112233';127 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);128127 expect(await helper.ethNativeContract.collectionHelpers(collectionAddressForNonexistentCollection)129 expect(await collectionHelpers128 .methods.isCollectionExist(collectionAddressForNonexistentCollection).call())130 .methods.isCollectionExist(collectionAddressForNonexistentCollection).call())129 .to.be.false;131 .to.be.false;130132131 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Exister', 'absolutely anything', 'EVC');133 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Exister', 'absolutely anything', 'EVC');132 expect(await helper.ethNativeContract.collectionHelpers(collectionAddress)134 expect(await collectionHelpers133 .methods.isCollectionExist(collectionAddress).call())135 .methods.isCollectionExist(collectionAddress).call())134 .to.be.true;136 .to.be.true;135 });137 });148150149 itEth('(!negative test!) Create collection (bad lengths)', async ({helper}) => {151 itEth('(!negative test!) Create collection (bad lengths)', async ({helper}) => {150 const owner = await helper.eth.createAccountWithBalance(donor);152 const owner = await helper.eth.createAccountWithBalance(donor);151 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);153 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);152 {154 {153 const MAX_NAME_LENGTH = 64;155 const MAX_NAME_LENGTH = 64;154 const collectionName = 'A'.repeat(MAX_NAME_LENGTH + 1);156 const collectionName = 'A'.repeat(MAX_NAME_LENGTH + 1);182184183 itEth('(!negative test!) Create collection (no funds)', async ({helper}) => {185 itEth('(!negative test!) Create collection (no funds)', async ({helper}) => {184 const owner = await helper.eth.createAccountWithBalance(donor);186 const owner = await helper.eth.createAccountWithBalance(donor);185 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);187 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);186 await expect(collectionHelper.methods188 await expect(collectionHelper.methods187 .createNFTCollection('Peasantry', 'absolutely anything', 'CVE')189 .createNFTCollection('Peasantry', 'absolutely anything', 'CVE')188 .call({value: Number(1n * nominal)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');190 .call({value: Number(1n * nominal)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');193 const owner = await helper.eth.createAccountWithBalance(donor);195 const owner = await helper.eth.createAccountWithBalance(donor);194 const malfeasant = helper.eth.createAccount();196 const malfeasant = helper.eth.createAccount();195 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Transgressed', 'absolutely anything', 'COR');197 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Transgressed', 'absolutely anything', 'COR');196 const malfeasantCollection = helper.ethNativeContract.collection(collectionAddress, 'nft', malfeasant, true);198 const malfeasantCollection = await helper.ethNativeContract.collection(collectionAddress, 'nft', malfeasant, true);197 const EXPECTED_ERROR = 'NoPermission';199 const EXPECTED_ERROR = 'NoPermission';198 {200 {199 const sponsor = await helper.eth.createAccountWithBalance(donor);201 const sponsor = await helper.eth.createAccountWithBalance(donor);200 await expect(malfeasantCollection.methods202 await expect(malfeasantCollection.methods201 .setCollectionSponsor(sponsor)203 .setCollectionSponsor(sponsor)202 .call()).to.be.rejectedWith(EXPECTED_ERROR);204 .call()).to.be.rejectedWith(EXPECTED_ERROR);203205204 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'nft', sponsor, true);206 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'nft', sponsor, true);205 await expect(sponsorCollection.methods207 await expect(sponsorCollection.methods206 .confirmCollectionSponsorship()208 .confirmCollectionSponsorship()207 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');209 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');217 const owner = await helper.eth.createAccountWithBalance(donor);219 const owner = await helper.eth.createAccountWithBalance(donor);218 const malfeasant = helper.eth.createAccount();220 const malfeasant = helper.eth.createAccount();219 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Transgressed', 'absolutely anything', 'COR');221 const {collectionAddress} = await helper.eth.createNFTCollection(owner, 'Transgressed', 'absolutely anything', 'COR');220 const malfeasantCollection = helper.ethNativeContract.collection(collectionAddress, 'nft', malfeasant);222 const malfeasantCollection = await helper.ethNativeContract.collection(collectionAddress, 'nft', malfeasant);221 const EXPECTED_ERROR = 'NoPermission';223 const EXPECTED_ERROR = 'NoPermission';222 {224 {223 const sponsor = await helper.eth.createAccountWithBalance(donor);225 const sponsor = await helper.eth.createAccountWithBalance(donor);226 .setCollectionSponsorCross(sponsorCross)228 .setCollectionSponsorCross(sponsorCross)227 .call()).to.be.rejectedWith(EXPECTED_ERROR);229 .call()).to.be.rejectedWith(EXPECTED_ERROR);228230229 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'nft', sponsor);231 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'nft', sponsor);230 await expect(sponsorCollection.methods232 await expect(sponsorCollection.methods231 .confirmCollectionSponsorship()233 .confirmCollectionSponsorship()232 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');234 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');241 itEth('destroyCollection', async ({helper}) => {243 itEth('destroyCollection', async ({helper}) => {242 const owner = await helper.eth.createAccountWithBalance(donor);244 const owner = await helper.eth.createAccountWithBalance(donor);243 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');245 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');244 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);246 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);245247246248247 const result = await collectionHelper.methods249 const result = await collectionHelper.methodstests/src/eth/createRFTCollection.test.tsdiffbeforeafterboth63 const baseUri = 'BaseURI';63 const baseUri = 'BaseURI';646465 const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, name, description, prefix, baseUri);65 const {collectionId, collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, name, description, prefix, baseUri);66 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft');66 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft');676768 const collection = helper.rft.getCollectionObject(collectionId);68 const collection = helper.rft.getCollectionObject(collectionId);69 const data = (await collection.getData())!;69 const data = (await collection.getData())!;949495 const expectedCollectionId = +(await helper.callRpc('api.rpc.unique.collectionStats')).created + 1;95 const expectedCollectionId = +(await helper.callRpc('api.rpc.unique.collectionStats')).created + 1;96 const expectedCollectionAddress = helper.ethAddress.fromCollectionId(expectedCollectionId);96 const expectedCollectionAddress = helper.ethAddress.fromCollectionId(expectedCollectionId);97 const collectionHelpers = helper.ethNativeContract.collectionHelpers(owner);97 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);989899 expect(await collectionHelpers.methods99 expect(await collectionHelpers.methods100 .isCollectionExist(expectedCollectionAddress)100 .isCollectionExist(expectedCollectionAddress)116 const ss58Format = helper.chain.getChainProperties().ss58Format;116 const ss58Format = helper.chain.getChainProperties().ss58Format;117 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(owner, 'Sponsor', 'absolutely anything', 'ENVY');117 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(owner, 'Sponsor', 'absolutely anything', 'ENVY');118118119 const collection = helper.ethNativeContract.collection(collectionAddress, 'rft', owner, true);119 const collection = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner, true);120 await collection.methods.setCollectionSponsor(sponsor).send();120 await collection.methods.setCollectionSponsor(sponsor).send();121121122 let data = (await helper.rft.getData(collectionId))!;122 let data = (await helper.rft.getData(collectionId))!;123 expect(data.raw.sponsorship.Unconfirmed).to.be.equal(evmToAddress(sponsor, Number(ss58Format)));123 expect(data.raw.sponsorship.Unconfirmed).to.be.equal(evmToAddress(sponsor, Number(ss58Format)));124124125 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');125 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');126126127 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor, true);127 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor, true);128 await sponsorCollection.methods.confirmCollectionSponsorship().send();128 await sponsorCollection.methods.confirmCollectionSponsorship().send();129129130 data = (await helper.rft.getData(collectionId))!;130 data = (await helper.rft.getData(collectionId))!;137 const ss58Format = helper.chain.getChainProperties().ss58Format;137 const ss58Format = helper.chain.getChainProperties().ss58Format;138 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(owner, 'Sponsor', 'absolutely anything', 'ENVY');138 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(owner, 'Sponsor', 'absolutely anything', 'ENVY');139139140 const collection = helper.ethNativeContract.collection(collectionAddress, 'rft', owner);140 const collection = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);141 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);141 const sponsorCross = helper.ethCrossAccount.fromAddress(sponsor);142 await collection.methods.setCollectionSponsorCross(sponsorCross).send();142 await collection.methods.setCollectionSponsorCross(sponsorCross).send();143143146146147 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');147 await expect(collection.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('ConfirmSponsorshipFail');148148149 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor);149 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor);150 await sponsorCollection.methods.confirmCollectionSponsorship().send();150 await sponsorCollection.methods.confirmCollectionSponsorship().send();151151152 data = (await helper.rft.getData(collectionId))!;152 data = (await helper.rft.getData(collectionId))!;156 itEth('Collection address exist', async ({helper}) => {156 itEth('Collection address exist', async ({helper}) => {157 const owner = await helper.eth.createAccountWithBalance(donor);157 const owner = await helper.eth.createAccountWithBalance(donor);158 const collectionAddressForNonexistentCollection = '0x17C4E6453CC49AAAAEACA894E6D9683E00112233';158 const collectionAddressForNonexistentCollection = '0x17C4E6453CC49AAAAEACA894E6D9683E00112233';159 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(owner);160159 expect(await helper.ethNativeContract.collectionHelpers(collectionAddressForNonexistentCollection)161 expect(await collectionHelpers160 .methods.isCollectionExist(collectionAddressForNonexistentCollection).call())162 .methods.isCollectionExist(collectionAddressForNonexistentCollection).call())161 .to.be.false;163 .to.be.false;162 164163 const {collectionAddress} = await helper.eth.createRFTCollection(owner, 'Exister', 'absolutely anything', 'WIWT');165 const {collectionAddress} = await helper.eth.createRFTCollection(owner, 'Exister', 'absolutely anything', 'WIWT');164 expect(await helper.ethNativeContract.collectionHelpers(collectionAddress)166 expect(await collectionHelpers165 .methods.isCollectionExist(collectionAddress).call())167 .methods.isCollectionExist(collectionAddress).call())166 .to.be.true;168 .to.be.true;167 });169 });181183182 itEth('(!negative test!) Create collection (bad lengths)', async ({helper}) => {184 itEth('(!negative test!) Create collection (bad lengths)', async ({helper}) => {183 const owner = await helper.eth.createAccountWithBalance(donor);185 const owner = await helper.eth.createAccountWithBalance(donor);184 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);186 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);185 {187 {186 const MAX_NAME_LENGTH = 64;188 const MAX_NAME_LENGTH = 64;187 const collectionName = 'A'.repeat(MAX_NAME_LENGTH + 1);189 const collectionName = 'A'.repeat(MAX_NAME_LENGTH + 1);214 216215 itEth('(!negative test!) Create collection (no funds)', async ({helper}) => {217 itEth('(!negative test!) Create collection (no funds)', async ({helper}) => {216 const owner = await helper.eth.createAccountWithBalance(donor);218 const owner = await helper.eth.createAccountWithBalance(donor);217 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);219 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);218 await expect(collectionHelper.methods220 await expect(collectionHelper.methods219 .createRFTCollection('Peasantry', 'absolutely anything', 'TWIW')221 .createRFTCollection('Peasantry', 'absolutely anything', 'TWIW')220 .call({value: Number(1n * nominal)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');222 .call({value: Number(1n * nominal)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');225 const owner = await helper.eth.createAccountWithBalance(donor);227 const owner = await helper.eth.createAccountWithBalance(donor);226 const peasant = helper.eth.createAccount();228 const peasant = helper.eth.createAccount();227 const {collectionAddress} = await helper.eth.createRFTCollection(owner, 'Transgressed', 'absolutely anything', 'YVNE');229 const {collectionAddress} = await helper.eth.createRFTCollection(owner, 'Transgressed', 'absolutely anything', 'YVNE');228 const peasantCollection = helper.ethNativeContract.collection(collectionAddress, 'rft', peasant, true);230 const peasantCollection = await helper.ethNativeContract.collection(collectionAddress, 'rft', peasant, true);229 const EXPECTED_ERROR = 'NoPermission';231 const EXPECTED_ERROR = 'NoPermission';230 {232 {231 const sponsor = await helper.eth.createAccountWithBalance(donor);233 const sponsor = await helper.eth.createAccountWithBalance(donor);232 await expect(peasantCollection.methods234 await expect(peasantCollection.methods233 .setCollectionSponsor(sponsor)235 .setCollectionSponsor(sponsor)234 .call()).to.be.rejectedWith(EXPECTED_ERROR);236 .call()).to.be.rejectedWith(EXPECTED_ERROR);235 237236 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor, true);238 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor, true);237 await expect(sponsorCollection.methods239 await expect(sponsorCollection.methods238 .confirmCollectionSponsorship()240 .confirmCollectionSponsorship()239 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');241 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');249 const owner = await helper.eth.createAccountWithBalance(donor);251 const owner = await helper.eth.createAccountWithBalance(donor);250 const peasant = helper.eth.createAccount();252 const peasant = helper.eth.createAccount();251 const {collectionAddress} = await helper.eth.createRFTCollection(owner, 'Transgressed', 'absolutely anything', 'YVNE');253 const {collectionAddress} = await helper.eth.createRFTCollection(owner, 'Transgressed', 'absolutely anything', 'YVNE');252 const peasantCollection = helper.ethNativeContract.collection(collectionAddress, 'rft', peasant);254 const peasantCollection = await helper.ethNativeContract.collection(collectionAddress, 'rft', peasant);253 const EXPECTED_ERROR = 'NoPermission';255 const EXPECTED_ERROR = 'NoPermission';254 {256 {255 const sponsor = await helper.eth.createAccountWithBalance(donor);257 const sponsor = await helper.eth.createAccountWithBalance(donor);258 .setCollectionSponsorCross(sponsorCross)260 .setCollectionSponsorCross(sponsorCross)259 .call()).to.be.rejectedWith(EXPECTED_ERROR);261 .call()).to.be.rejectedWith(EXPECTED_ERROR);260 262261 const sponsorCollection = helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor);263 const sponsorCollection = await helper.ethNativeContract.collection(collectionAddress, 'rft', sponsor);262 await expect(sponsorCollection.methods264 await expect(sponsorCollection.methods263 .confirmCollectionSponsorship()265 .confirmCollectionSponsorship()264 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');266 .call()).to.be.rejectedWith('ConfirmSponsorshipFail');273 itEth('destroyCollection', async ({helper}) => {275 itEth('destroyCollection', async ({helper}) => {274 const owner = await helper.eth.createAccountWithBalance(donor);276 const owner = await helper.eth.createAccountWithBalance(donor);275 const {collectionAddress, collectionId} = await helper.eth.createRFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');277 const {collectionAddress, collectionId} = await helper.eth.createRFTCollection(owner, 'Limits', 'absolutely anything', 'OLF');276 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);278 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);277 279278 await expect(collectionHelper.methods280 await expect(collectionHelper.methods279 .destroyCollection(collectionAddress)281 .destroyCollection(collectionAddress)tests/src/eth/crossTransfer.test.tsdiffbeforeafterboth52 await collection.setLimits(alice, {ownerCanTransfer: true});52 await collection.setLimits(alice, {ownerCanTransfer: true});535354 const address = helper.ethAddress.fromCollectionId(collection.collectionId);54 const address = helper.ethAddress.fromCollectionId(collection.collectionId);55 const contract = helper.ethNativeContract.collection(address, 'ft', aliceProxy);55 const contract = await helper.ethNativeContract.collection(address, 'ft', aliceProxy);565657 await collection.mint(alice, 200n, {Ethereum: aliceProxy});57 await collection.mint(alice, 200n, {Ethereum: aliceProxy});58 await contract.methods.transfer(bobProxy, 50).send({from: aliceProxy});58 await contract.methods.transfer(bobProxy, 50).send({from: aliceProxy});93 await collection.setLimits(alice, {ownerCanTransfer: true});93 await collection.setLimits(alice, {ownerCanTransfer: true});949495 const address = helper.ethAddress.fromCollectionId(collection.collectionId);95 const address = helper.ethAddress.fromCollectionId(collection.collectionId);96 const contract = helper.ethNativeContract.collection(address, 'nft', aliceProxy);96 const contract = await helper.ethNativeContract.collection(address, 'nft', aliceProxy);979798 const token = await collection.mintToken(alice);98 const token = await collection.mintToken(alice);99 await token.transfer(alice, {Ethereum: aliceProxy});99 await token.transfer(alice, {Ethereum: aliceProxy});tests/src/eth/destroyCollection.test.tsdiffbeforeafterboth39 3940 const unexistedCollection = helper.ethAddress.fromCollectionId(1000000);40 const unexistedCollection = helper.ethAddress.fromCollectionId(1000000);41 4142 const collectionHelpers = helper.ethNativeContract.collectionHelpers(signer);42 const collectionHelpers = await helper.ethNativeContract.collectionHelpers(signer);43 const {collectionAddress} = await helper.eth.createCollection(testCase.case, owner, ...testCase.params as [string, string, string, number?]);43 const {collectionAddress} = await helper.eth.createCollection(testCase.case, owner, ...testCase.params as [string, string, string, number?]);444445 // cannot burn collec45 // cannot burn collectests/src/eth/ethFeesAreCorrect.test.tsdiffbeforeafterboth41 const {tokenId: tokenB} = await collection.mintToken(minter, {Ethereum: aliceEth});41 const {tokenId: tokenB} = await collection.mintToken(minter, {Ethereum: aliceEth});424243 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);43 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);44 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);44 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);454546 const balanceBeforeWeb3Transfer = await helper.balance.getEthereum(owner);46 const balanceBeforeWeb3Transfer = await helper.balance.getEthereum(owner);47 await contract.methods.transfer(receiver, tokenA).send({from: owner});47 await contract.methods.transfer(receiver, tokenA).send({from: owner});tests/src/eth/events.test.tsdiffbeforeafterboth53 clearEvents(ethEvents, subEvents);53 clearEvents(ethEvents, subEvents);54 }54 }55 {55 {56 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);56 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);57 const result = await collectionHelper.methods.destroyCollection(collectionAddress).send({from:owner});57 const result = await collectionHelper.methods.destroyCollection(collectionAddress).send({from:owner});58 await helper.wait.newBlocks(1);58 await helper.wait.newBlocks(1);59 expect(result.events).to.containSubset({59 expect(result.events).to.containSubset({71async function testCollectionPropertySetAndDeleted(helper: EthUniqueHelper, mode: TCollectionMode) {71async function testCollectionPropertySetAndDeleted(helper: EthUniqueHelper, mode: TCollectionMode) {72 const owner = await helper.eth.createAccountWithBalance(donor);72 const owner = await helper.eth.createAccountWithBalance(donor);73 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');73 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');74 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);74 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);75 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);75 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);76 7677 const ethEvents: any = [];77 const ethEvents: any = [];78 collectionHelper.events.allEvents((_: any, event: any) => {78 collectionHelper.events.allEvents((_: any, event: any) => {112async function testPropertyPermissionSet(helper: EthUniqueHelper, mode: TCollectionMode) {112async function testPropertyPermissionSet(helper: EthUniqueHelper, mode: TCollectionMode) {113 const owner = await helper.eth.createAccountWithBalance(donor);113 const owner = await helper.eth.createAccountWithBalance(donor);114 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');114 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');115 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);115 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);116 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);116 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);117 const ethEvents: any = [];117 const ethEvents: any = [];118 collectionHelper.events.allEvents((_: any, event: any) => {118 collectionHelper.events.allEvents((_: any, event: any) => {119 ethEvents.push(event);119 ethEvents.push(event);143 const owner = await helper.eth.createAccountWithBalance(donor);143 const owner = await helper.eth.createAccountWithBalance(donor);144 const user = helper.ethCrossAccount.createAccount();144 const user = helper.ethCrossAccount.createAccount();145 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');145 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');146 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);146 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);147 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);147 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);148 const ethEvents: any[] = [];148 const ethEvents: any[] = [];149 collectionHelper.events.allEvents((_: any, event: any) => {149 collectionHelper.events.allEvents((_: any, event: any) => {150 ethEvents.push(event);150 ethEvents.push(event);185 const owner = await helper.eth.createAccountWithBalance(donor);185 const owner = await helper.eth.createAccountWithBalance(donor);186 const user = helper.ethCrossAccount.createAccount();186 const user = helper.ethCrossAccount.createAccount();187 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');187 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');188 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);188 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);189 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);189 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);190 const ethEvents: any = [];190 const ethEvents: any = [];191 collectionHelper.events.allEvents((_: any, event: any) => {191 collectionHelper.events.allEvents((_: any, event: any) => {192 ethEvents.push(event);192 ethEvents.push(event);225async function testCollectionLimitSet(helper: EthUniqueHelper, mode: TCollectionMode) {225async function testCollectionLimitSet(helper: EthUniqueHelper, mode: TCollectionMode) {226 const owner = await helper.eth.createAccountWithBalance(donor);226 const owner = await helper.eth.createAccountWithBalance(donor);227 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');227 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');228 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);228 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);229 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);229 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);230 const ethEvents: any = [];230 const ethEvents: any = [];231 collectionHelper.events.allEvents((_: any, event: any) => {231 collectionHelper.events.allEvents((_: any, event: any) => {232 ethEvents.push(event);232 ethEvents.push(event);252 const owner = await helper.eth.createAccountWithBalance(donor);252 const owner = await helper.eth.createAccountWithBalance(donor);253 const newOwner = helper.ethCrossAccount.createAccount();253 const newOwner = helper.ethCrossAccount.createAccount();254 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');254 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');255 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);255 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);256 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);256 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);257 const ethEvents: any = [];257 const ethEvents: any = [];258 collectionHelper.events.allEvents((_: any, event: any) => {258 collectionHelper.events.allEvents((_: any, event: any) => {259 ethEvents.push(event);259 ethEvents.push(event);278async function testCollectionPermissionSet(helper: EthUniqueHelper, mode: TCollectionMode) {278async function testCollectionPermissionSet(helper: EthUniqueHelper, mode: TCollectionMode) {279 const owner = await helper.eth.createAccountWithBalance(donor);279 const owner = await helper.eth.createAccountWithBalance(donor);280 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');280 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');281 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);281 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);282 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);282 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);283 const ethEvents: any = [];283 const ethEvents: any = [];284 collectionHelper.events.allEvents((_: any, event: any) => {284 collectionHelper.events.allEvents((_: any, event: any) => {285 ethEvents.push(event);285 ethEvents.push(event);319 const owner = await helper.eth.createAccountWithBalance(donor);319 const owner = await helper.eth.createAccountWithBalance(donor);320 const sponsor = await helper.ethCrossAccount.createAccountWithBalance(donor);320 const sponsor = await helper.ethCrossAccount.createAccountWithBalance(donor);321 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');321 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');322 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);322 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);323 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);323 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);324 const ethEvents: any = [];324 const ethEvents: any = [];325 collectionHelper.events.allEvents((_: any, event: any) => {325 collectionHelper.events.allEvents((_: any, event: any) => {326 ethEvents.push(event);326 ethEvents.push(event);373async function testTokenPropertySetAndDeleted(helper: EthUniqueHelper, mode: TCollectionMode) {373async function testTokenPropertySetAndDeleted(helper: EthUniqueHelper, mode: TCollectionMode) {374 const owner = await helper.eth.createAccountWithBalance(donor);374 const owner = await helper.eth.createAccountWithBalance(donor);375 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');375 const {collectionAddress} = await helper.eth.createCollection(mode, owner, 'A', 'B', 'C');376 const collection = helper.ethNativeContract.collection(collectionAddress, mode, owner);376 const collection = await helper.ethNativeContract.collection(collectionAddress, mode, owner);377 const collectionHelper = helper.ethNativeContract.collectionHelpers(owner);377 const collectionHelper = await helper.ethNativeContract.collectionHelpers(owner);378 const result = await collection.methods.mint(owner).send({from: owner});378 const result = await collection.methods.mint(owner).send({from: owner});379 const tokenId = result.events.Transfer.returnValues.tokenId;379 const tokenId = result.events.Transfer.returnValues.tokenId;380 await collection.methods.setTokenPropertyPermissions([380 await collection.methods.setTokenPropertyPermissions([tests/src/eth/fractionalizer/fractionalizer.test.tsdiffbeforeafterboth63 nftCollectionAddress: string, nftTokenId: number, rftTokenAddress: string63 nftCollectionAddress: string, nftTokenId: number, rftTokenAddress: string64}> => {64}> => {65 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');65 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');66 const nftContract = helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);66 const nftContract = await helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);67 const mintResult = await nftContract.methods.mint(owner).send({from: owner});67 const mintResult = await nftContract.methods.mint(owner).send({from: owner});68 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;68 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;696993 const owner = await helper.eth.createAccountWithBalance(donor, 10n);93 const owner = await helper.eth.createAccountWithBalance(donor, 10n);94 const fractionalizer = await deployContract(helper, owner);94 const fractionalizer = await deployContract(helper, owner);95 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');95 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');96 const rftContract = helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);96 const rftContract = await helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);979798 const fractionalizerAddressCross = helper.ethCrossAccount.fromAddress(fractionalizer.options.address);98 const fractionalizerAddressCross = helper.ethCrossAccount.fromAddress(fractionalizer.options.address);99 await rftContract.methods.addCollectionAdminCross(fractionalizerAddressCross).send({from: owner});99 await rftContract.methods.addCollectionAdminCross(fractionalizerAddressCross).send({from: owner});148 const owner = await helper.eth.createAccountWithBalance(donor, 20n);148 const owner = await helper.eth.createAccountWithBalance(donor, 20n);149149150 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');150 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');151 const nftContract = helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);151 const nftContract = await helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);152 const mintResult = await nftContract.methods.mint(owner).send({from: owner});152 const mintResult = await nftContract.methods.mint(owner).send({from: owner});153 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;153 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;154154168 });168 });169 const rftTokenAddress = result.events.Fractionalized.returnValues._rftToken;169 const rftTokenAddress = result.events.Fractionalized.returnValues._rftToken;170170171 const rftTokenContract = helper.ethNativeContract.rftToken(rftTokenAddress);171 const rftTokenContract = await helper.ethNativeContract.rftToken(rftTokenAddress);172 expect(await rftTokenContract.methods.balanceOf(owner).call()).to.equal('100');172 expect(await rftTokenContract.methods.balanceOf(owner).call()).to.equal('100');173 });173 });174174181 const {collectionId, tokenId} = helper.ethAddress.extractTokenId(rftTokenAddress);181 const {collectionId, tokenId} = helper.ethAddress.extractTokenId(rftTokenAddress);182 const refungibleAddress = helper.ethAddress.fromCollectionId(collectionId);182 const refungibleAddress = helper.ethAddress.fromCollectionId(collectionId);183 expect(rftCollectionAddress).to.be.equal(refungibleAddress);183 expect(rftCollectionAddress).to.be.equal(refungibleAddress);184 const refungibleTokenContract = helper.ethNativeContract.rftToken(rftTokenAddress, owner);184 const refungibleTokenContract = await helper.ethNativeContract.rftToken(rftTokenAddress, owner);185 await refungibleTokenContract.methods.approve(fractionalizer.options.address, 100).send({from: owner});185 await refungibleTokenContract.methods.approve(fractionalizer.options.address, 100).send({from: owner});186 const result = await fractionalizer.methods.rft2nft(refungibleAddress, tokenId).send({from: owner});186 const result = await fractionalizer.methods.rft2nft(refungibleAddress, tokenId).send({from: owner});187 expect(result.events).to.be.like({187 expect(result.events).to.be.like({204 const {collectionId, tokenId} = helper.ethAddress.extractTokenId(rftTokenAddress);204 const {collectionId, tokenId} = helper.ethAddress.extractTokenId(rftTokenAddress);205 const refungibleAddress = helper.ethAddress.fromCollectionId(collectionId);205 const refungibleAddress = helper.ethAddress.fromCollectionId(collectionId);206 expect(rftCollectionAddress).to.be.equal(refungibleAddress);206 expect(rftCollectionAddress).to.be.equal(refungibleAddress);207 const refungibleTokenContract = helper.ethNativeContract.rftToken(rftTokenAddress, owner);207 const refungibleTokenContract = await helper.ethNativeContract.rftToken(rftTokenAddress, owner);208 await refungibleTokenContract.methods.approve(fractionalizer.options.address, 100).send({from: owner});208 await refungibleTokenContract.methods.approve(fractionalizer.options.address, 100).send({from: owner});209209210 const rft2nft = await fractionalizer.methods.rft2nftMapping(rftTokenAddress).call();210 const rft2nft = await fractionalizer.methods.rft2nftMapping(rftTokenAddress).call();233 itEth('call setRFTCollection twice', async ({helper}) => {233 itEth('call setRFTCollection twice', async ({helper}) => {234 const owner = await helper.eth.createAccountWithBalance(donor, 20n);234 const owner = await helper.eth.createAccountWithBalance(donor, 20n);235 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');235 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');236 const refungibleContract = helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);236 const refungibleContract = await helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);237237238 const fractionalizer = await deployContract(helper, owner);238 const fractionalizer = await deployContract(helper, owner);239 const fractionalizerAddressCross = helper.ethCrossAccount.fromAddress(fractionalizer.options.address);239 const fractionalizerAddressCross = helper.ethCrossAccount.fromAddress(fractionalizer.options.address);247 itEth('call setRFTCollection with NFT collection', async ({helper}) => {247 itEth('call setRFTCollection with NFT collection', async ({helper}) => {248 const owner = await helper.eth.createAccountWithBalance(donor, 20n);248 const owner = await helper.eth.createAccountWithBalance(donor, 20n);249 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');249 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');250 const nftContract = helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);250 const nftContract = await helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);251251252 const fractionalizer = await deployContract(helper, owner);252 const fractionalizer = await deployContract(helper, owner);253 const fractionalizerAddressCross = helper.ethCrossAccount.fromAddress(fractionalizer.options.address);253 const fractionalizerAddressCross = helper.ethCrossAccount.fromAddress(fractionalizer.options.address);282 const owner = await helper.eth.createAccountWithBalance(donor, 20n);282 const owner = await helper.eth.createAccountWithBalance(donor, 20n);283283284 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');284 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');285 const nftContract = helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);285 const nftContract = await helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);286 const mintResult = await nftContract.methods.mint(owner).send({from: owner});286 const mintResult = await nftContract.methods.mint(owner).send({from: owner});287 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;287 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;288288297 const nftOwner = await helper.eth.createAccountWithBalance(donor, 10n);297 const nftOwner = await helper.eth.createAccountWithBalance(donor, 10n);298298299 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');299 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');300 const nftContract = helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);300 const nftContract = await helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);301 const mintResult = await nftContract.methods.mint(owner).send({from: owner});301 const mintResult = await nftContract.methods.mint(owner).send({from: owner});302 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;302 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;303 await nftContract.methods.transfer(nftOwner, 1).send({from: owner});303 await nftContract.methods.transfer(nftOwner, 1).send({from: owner});314 const owner = await helper.eth.createAccountWithBalance(donor, 20n);314 const owner = await helper.eth.createAccountWithBalance(donor, 20n);315315316 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');316 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');317 const nftContract = helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);317 const nftContract = await helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);318 const mintResult = await nftContract.methods.mint(owner).send({from: owner});318 const mintResult = await nftContract.methods.mint(owner).send({from: owner});319 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;319 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;320320329 const owner = await helper.eth.createAccountWithBalance(donor, 20n);329 const owner = await helper.eth.createAccountWithBalance(donor, 20n);330330331 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');331 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');332 const nftContract = helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);332 const nftContract = await helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);333 const mintResult = await nftContract.methods.mint(owner).send({from: owner});333 const mintResult = await nftContract.methods.mint(owner).send({from: owner});334 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;334 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;335335345345346 const fractionalizer = await deployContract(helper, owner);346 const fractionalizer = await deployContract(helper, owner);347 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');347 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');348 const refungibleContract = helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);348 const refungibleContract = await helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);349 const mintResult = await refungibleContract.methods.mint(owner).send({from: owner});349 const mintResult = await refungibleContract.methods.mint(owner).send({from: owner});350 const rftTokenId = mintResult.events.Transfer.returnValues.tokenId;350 const rftTokenId = mintResult.events.Transfer.returnValues.tokenId;351351358358359 const {contract: fractionalizer} = await initContract(helper, owner);359 const {contract: fractionalizer} = await initContract(helper, owner);360 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');360 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');361 const refungibleContract = helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);361 const refungibleContract = await helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);362 const mintResult = await refungibleContract.methods.mint(owner).send({from: owner});362 const mintResult = await refungibleContract.methods.mint(owner).send({from: owner});363 const rftTokenId = mintResult.events.Transfer.returnValues.tokenId;363 const rftTokenId = mintResult.events.Transfer.returnValues.tokenId;364364369 itEth('call rft2nft for RFT token that was not minted by fractionalizer contract', async ({helper}) => {369 itEth('call rft2nft for RFT token that was not minted by fractionalizer contract', async ({helper}) => {370 const owner = await helper.eth.createAccountWithBalance(donor, 20n);370 const owner = await helper.eth.createAccountWithBalance(donor, 20n);371 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');371 const rftCollection = await helper.eth.createRFTCollection(owner, 'rft', 'RFT collection', 'RFT');372 const refungibleContract = helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);372 const refungibleContract = await helper.ethNativeContract.collection(rftCollection.collectionAddress, 'rft', owner);373373374 const fractionalizer = await deployContract(helper, owner);374 const fractionalizer = await deployContract(helper, owner);375375392 const {rftTokenAddress} = await mintRFTToken(helper, owner, fractionalizer, 100n);392 const {rftTokenAddress} = await mintRFTToken(helper, owner, fractionalizer, 100n);393393394 const {tokenId} = helper.ethAddress.extractTokenId(rftTokenAddress);394 const {tokenId} = helper.ethAddress.extractTokenId(rftTokenAddress);395 const refungibleTokenContract = helper.ethNativeContract.rftToken(rftTokenAddress, owner);395 const refungibleTokenContract = await helper.ethNativeContract.rftToken(rftTokenAddress, owner);396 await refungibleTokenContract.methods.transfer(receiver, 50).send({from: owner});396 await refungibleTokenContract.methods.transfer(receiver, 50).send({from: owner});397 await refungibleTokenContract.methods.approve(fractionalizer.options.address, 50).send({from: receiver});397 await refungibleTokenContract.methods.approve(fractionalizer.options.address, 50).send({from: receiver});398 await expect(fractionalizer.methods.rft2nft(rftCollectionAddress, tokenId).call({from: receiver}))398 await expect(fractionalizer.methods.rft2nft(rftCollectionAddress, tokenId).call({from: receiver}))419 const {contract: fractionalizer} = await initContract(helper, owner);419 const {contract: fractionalizer} = await initContract(helper, owner);420 await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send({from: owner});420 await fractionalizer.methods.setNftCollectionIsAllowed(nftCollectionAddress, true).send({from: owner});421421422 const nftContract = helper.ethNativeContract.collection(nftCollectionAddress, 'nft', owner);422 const nftContract = await helper.ethNativeContract.collection(nftCollectionAddress, 'nft', owner);423 await nftContract.methods.approve(fractionalizer.options.address, nftToken.tokenId).send({from: owner});423 await nftContract.methods.approve(fractionalizer.options.address, nftToken.tokenId).send({from: owner});424 await expect(fractionalizer.methods.nft2rft(nftCollectionAddress, nftToken.tokenId, 100).call())424 await expect(fractionalizer.methods.nft2rft(nftCollectionAddress, nftToken.tokenId, 100).call())425 .to.be.rejectedWith(/TransferNotAllowed$/g);425 .to.be.rejectedWith(/TransferNotAllowed$/g);437 await helper.executeExtrinsic(donor, 'api.tx.unique.setTransfersEnabledFlag', [rftCollection.collectionId, false], true);437 await helper.executeExtrinsic(donor, 'api.tx.unique.setTransfersEnabledFlag', [rftCollection.collectionId, false], true);438438439 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');439 const nftCollection = await helper.eth.createNFTCollection(owner, 'nft', 'NFT collection', 'NFT');440 const nftContract = helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);440 const nftContract = await helper.ethNativeContract.collection(nftCollection.collectionAddress, 'nft', owner);441 const mintResult = await nftContract.methods.mint(owner).send({from: owner});441 const mintResult = await nftContract.methods.mint(owner).send({from: owner});442 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;442 const nftTokenId = mintResult.events.Transfer.returnValues.tokenId;443443tests/src/eth/fungible.test.tsdiffbeforeafterboth33 const collection = await helper.ft.mintCollection(alice);33 const collection = await helper.ft.mintCollection(alice);34 await collection.mint(alice, 200n);34 await collection.mint(alice, 200n);353536 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'ft', caller);36 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'ft', caller);37 const totalSupply = await contract.methods.totalSupply().call();37 const totalSupply = await contract.methods.totalSupply().call();38 expect(totalSupply).to.equal('200');38 expect(totalSupply).to.equal('200');39 });39 });43 const collection = await helper.ft.mintCollection(alice);43 const collection = await helper.ft.mintCollection(alice);44 await collection.mint(alice, 200n, {Ethereum: caller});44 await collection.mint(alice, 200n, {Ethereum: caller});454546 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'ft', caller);46 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'ft', caller);47 const balance = await contract.methods.balanceOf(caller).call();47 const balance = await contract.methods.balanceOf(caller).call();48 expect(balance).to.equal('200');48 expect(balance).to.equal('200');49 });49 });68 await collection.addAdmin(alice, {Ethereum: owner});68 await collection.addAdmin(alice, {Ethereum: owner});696970 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);70 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);71 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);71 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);727273 const result = await contract.methods.mint(receiver, 100).send();73 const result = await contract.methods.mint(receiver, 100).send();74 7495 await collection.addAdmin(alice, {Ethereum: ethOwner});95 await collection.addAdmin(alice, {Ethereum: ethOwner});96 9697 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);97 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);98 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'ft', ethOwner);98 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'ft', ethOwner);99 99100 // 2. Mint tokens:100 // 2. Mint tokens:101 const result = await collectionEvm.methods.mintCross(testCase === 'ethereum' ? receiverCrossEth : receiverCrossSub, 100).send();101 const result = await collectionEvm.methods.mintCross(testCase === 'ethereum' ? receiverCrossEth : receiverCrossSub, 100).send();123 await collection.addAdmin(alice, {Ethereum: owner});123 await collection.addAdmin(alice, {Ethereum: owner});124124125 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);125 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);126 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);126 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);127127128 const result = await contract.methods.mintBulk(Array.from({length: bulkSize}, (_, i) => (128 const result = await contract.methods.mintBulk(Array.from({length: bulkSize}, (_, i) => (129 [receivers[i], (i + 1) * 10]129 [receivers[i], (i + 1) * 10]146 await collection.addAdmin(alice, {Ethereum: owner});146 await collection.addAdmin(alice, {Ethereum: owner});147147148 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);148 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);149 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner, true);149 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner, true);150 await contract.methods.mint(receiver, 100).send();150 await contract.methods.mint(receiver, 100).send();151151152 const result = await contract.methods.burnFrom(receiver, 49).send({from: receiver});152 const result = await contract.methods.burnFrom(receiver, 49).send({from: receiver});168 await collection.mint(alice, 200n, {Ethereum: owner});168 await collection.mint(alice, 200n, {Ethereum: owner});169169170 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);170 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);171 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);171 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);172172173 {173 {174 const result = await contract.methods.approve(spender, 100).send({from: owner});174 const result = await contract.methods.approve(spender, 100).send({from: owner});198 await collection.mint(alice, 200n, {Ethereum: owner});198 await collection.mint(alice, 200n, {Ethereum: owner});199199200 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);200 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);201 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);201 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);202202203 {203 {204 const result = await contract.methods.approveCross(spenderCrossEth, 100).send({from: owner});204 const result = await contract.methods.approveCross(spenderCrossEth, 100).send({from: owner});242 await collection.mint(alice, 100n, {Ethereum: owner});242 await collection.mint(alice, 100n, {Ethereum: owner});243243244 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);244 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);245 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);245 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);246246247 await expect(collectionEvm.methods.approveCross(nonOwnerCross, 20).call({from: nonOwner})).to.be.rejectedWith('CantApproveMoreThanOwned');247 await expect(collectionEvm.methods.approveCross(nonOwnerCross, 20).call({from: nonOwner})).to.be.rejectedWith('CantApproveMoreThanOwned');248 });248 });257 await collection.approveTokens(owner, {Ethereum: sender}, 100n);257 await collection.approveTokens(owner, {Ethereum: sender}, 100n);258258259 const address = helper.ethAddress.fromCollectionId(collection.collectionId);259 const address = helper.ethAddress.fromCollectionId(collection.collectionId);260 const contract = helper.ethNativeContract.collection(address, 'ft');260 const contract = await helper.ethNativeContract.collection(address, 'ft');261261262 const fromBalanceBefore = await collection.getBalance({Substrate: owner.address});262 const fromBalanceBefore = await collection.getBalance({Substrate: owner.address});263 263298 await collection.mint(alice, 200n, {Ethereum: owner});298 await collection.mint(alice, 200n, {Ethereum: owner});299299300 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);300 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);301 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);301 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);302302303 await contract.methods.approve(spender, 100).send();303 await contract.methods.approve(spender, 100).send();304304338 await collection.mint(alice, 200n, {Ethereum: sender});338 await collection.mint(alice, 200n, {Ethereum: sender});339339340 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);340 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);341 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'ft', sender);341 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'ft', sender);342342343 {343 {344 // Can transferCross to ethereum address:344 // Can transferCross to ethereum address:385 const collection = await helper.ft.mintCollection(alice);385 const collection = await helper.ft.mintCollection(alice);386 await collection.mint(alice, BALANCE, {Ethereum: sender});386 await collection.mint(alice, BALANCE, {Ethereum: sender});387 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);387 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);388 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'ft', sender);388 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'ft', sender);389389390 // 1. Cannot transfer more than have390 // 1. Cannot transfer more than have391 const receiver = testCase === 'transfer' ? receiverEth : receiverCrossEth;391 const receiver = testCase === 'transfer' ? receiverEth : receiverCrossEth;402 await collection.mint(alice, 200n, {Ethereum: owner});402 await collection.mint(alice, 200n, {Ethereum: owner});403403404 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);404 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);405 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);405 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);406406407 {407 {408 const result = await contract.methods.transfer(receiver, 50).send({from: owner});408 const result = await contract.methods.transfer(receiver, 50).send({from: owner});436 await collection.approveTokens(owner, {Ethereum: sender}, 100n);436 await collection.approveTokens(owner, {Ethereum: sender}, 100n);437437438 const address = helper.ethAddress.fromCollectionId(collection.collectionId);438 const address = helper.ethAddress.fromCollectionId(collection.collectionId);439 const contract = helper.ethNativeContract.collection(address, 'ft');439 const contract = await helper.ethNativeContract.collection(address, 'ft');440440441 const from = helper.ethCrossAccount.fromKeyringPair(owner);441 const from = helper.ethCrossAccount.fromKeyringPair(owner);442 const to = helper.ethCrossAccount.fromAddress(receiver);442 const to = helper.ethCrossAccount.fromAddress(receiver);491 await collection.mint(alice, 200n, {Ethereum: owner});491 await collection.mint(alice, 200n, {Ethereum: owner});492492493 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);493 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);494 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);494 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);495495496 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.approve(spender, 100).send({from: owner}));496 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.approve(spender, 100).send({from: owner}));497 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));497 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));504 await collection.mint(alice, 200n, {Ethereum: owner});504 await collection.mint(alice, 200n, {Ethereum: owner});505505506 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);506 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);507 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);507 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);508508509 await contract.methods.approve(spender, 100).send({from: owner});509 await contract.methods.approve(spender, 100).send({from: owner});510510519 await collection.mint(alice, 200n, {Ethereum: owner});519 await collection.mint(alice, 200n, {Ethereum: owner});520520521 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);521 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);522 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft', owner);522 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft', owner);523523524 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.transfer(receiver, 100).send({from: owner}));524 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.transfer(receiver, 100).send({from: owner}));525 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));525 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));544 await collection.mint(alice, 200n);544 await collection.mint(alice, 200n);545545546 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);546 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);547 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft');547 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft');548548549 const events: any = [];549 const events: any = [];550 contract.events.allEvents((_: any, event: any) => {550 contract.events.allEvents((_: any, event: any) => {570 await collection.approveTokens(alice, {Substrate: bob.address}, 100n);570 await collection.approveTokens(alice, {Substrate: bob.address}, 100n);571571572 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);572 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);573 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft');573 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft');574574575 const events: any = [];575 const events: any = [];576 contract.events.allEvents((_: any, event: any) => {576 contract.events.allEvents((_: any, event: any) => {601 await collection.mint(alice, 200n);601 await collection.mint(alice, 200n);602602603 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);603 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);604 const contract = helper.ethNativeContract.collection(collectionAddress, 'ft');604 const contract = await helper.ethNativeContract.collection(collectionAddress, 'ft');605605606 const events: any = [];606 const events: any = [];607 contract.events.allEvents((_: any, event: any) => {607 contract.events.allEvents((_: any, event: any) => {630 await collection.approveTokens(owner, {Ethereum: sender}, 100n);630 await collection.approveTokens(owner, {Ethereum: sender}, 100n);631631632 const address = helper.ethAddress.fromCollectionId(collection.collectionId);632 const address = helper.ethAddress.fromCollectionId(collection.collectionId);633 const contract = helper.ethNativeContract.collection(address, 'ft');633 const contract = await helper.ethNativeContract.collection(address, 'ft');634634635 const from = helper.ethCrossAccount.fromKeyringPair(owner);635 const from = helper.ethCrossAccount.fromKeyringPair(owner);636 const to = helper.ethCrossAccount.fromAddress(receiver);636 const to = helper.ethCrossAccount.fromAddress(receiver);tests/src/eth/helpersSmoke.test.tsdiffbeforeafterboth313132 const flipper = await helper.eth.deployFlipper(owner);32 const flipper = await helper.eth.deployFlipper(owner);333334 expect(await helper.ethNativeContract.contractHelpers(owner).methods.contractOwner(flipper.options.address).call()).to.be.equal(owner);34 expect(await (await helper.ethNativeContract.contractHelpers(owner)).methods.contractOwner(flipper.options.address).call()).to.be.equal(owner);35 });35 });363637 itEth('Flipper is working', async ({helper}) => {37 itEth('Flipper is working', async ({helper}) => {tests/src/eth/marketplace/marketplace.test.tsdiffbeforeafterboth50 const matcher = await helper.ethContract.deployByCode(matcherOwner, 'MarketPlace', (await readFile(`${__dirname}/MarketPlace.sol`)).toString(), [{solPath: 'api/UniqueNFT.sol', fsPath: `${__dirname}/../api/UniqueNFT.sol`}], helper.eth.DEFAULT_GAS * 2);50 const matcher = await helper.ethContract.deployByCode(matcherOwner, 'MarketPlace', (await readFile(`${__dirname}/MarketPlace.sol`)).toString(), [{solPath: 'api/UniqueNFT.sol', fsPath: `${__dirname}/../api/UniqueNFT.sol`}], helper.eth.DEFAULT_GAS * 2);515152 const sponsor = await helper.eth.createAccountWithBalance(donor);52 const sponsor = await helper.eth.createAccountWithBalance(donor);53 const helpers = helper.ethNativeContract.contractHelpers(matcherOwner);53 const helpers = await helper.ethNativeContract.contractHelpers(matcherOwner);54 await helpers.methods.setSponsoringMode(matcher.options.address, SponsoringMode.Allowlisted).send({from: matcherOwner});54 await helpers.methods.setSponsoringMode(matcher.options.address, SponsoringMode.Allowlisted).send({from: matcherOwner});55 await helpers.methods.setSponsoringRateLimit(matcher.options.address, 1).send({from: matcherOwner});55 await helpers.methods.setSponsoringRateLimit(matcher.options.address, 1).send({from: matcherOwner});56 5660 const collection = await helper.nft.mintCollection(alice, {limits: {sponsorApproveTimeout: 1}, pendingSponsor: alice.address});60 const collection = await helper.nft.mintCollection(alice, {limits: {sponsorApproveTimeout: 1}, pendingSponsor: alice.address});61 await collection.confirmSponsorship(alice);61 await collection.confirmSponsorship(alice);62 await collection.addToAllowList(alice, {Substrate: aliceDoubleMirror});62 await collection.addToAllowList(alice, {Substrate: aliceDoubleMirror});63 const evmCollection = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');63 const evmCollection = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');64 await helper.eth.transferBalanceFromSubstrate(donor, aliceMirror);64 await helper.eth.transferBalanceFromSubstrate(donor, aliceMirror);656566 await helpers.methods.toggleAllowed(matcher.options.address, aliceMirror, true).send({from: matcherOwner});66 await helpers.methods.toggleAllowed(matcher.options.address, aliceMirror, true).send({from: matcherOwner});104 const sponsor = await helper.eth.createAccountWithBalance(donor);104 const sponsor = await helper.eth.createAccountWithBalance(donor);105 const escrow = await helper.eth.createAccountWithBalance(donor);105 const escrow = await helper.eth.createAccountWithBalance(donor);106 await matcher.methods.setEscrow(escrow, true).send({from: matcherOwner});106 await matcher.methods.setEscrow(escrow, true).send({from: matcherOwner});107 const helpers = helper.ethNativeContract.contractHelpers(matcherOwner);107 const helpers = await helper.ethNativeContract.contractHelpers(matcherOwner);108 await helpers.methods.setSponsoringMode(matcher.options.address, SponsoringMode.Allowlisted).send({from: matcherOwner});108 await helpers.methods.setSponsoringMode(matcher.options.address, SponsoringMode.Allowlisted).send({from: matcherOwner});109 await helpers.methods.setSponsoringRateLimit(matcher.options.address, 1).send({from: matcherOwner});109 await helpers.methods.setSponsoringRateLimit(matcher.options.address, 1).send({from: matcherOwner});110 110114 const collection = await helper.nft.mintCollection(alice, {limits: {sponsorApproveTimeout: 1}, pendingSponsor: alice.address});114 const collection = await helper.nft.mintCollection(alice, {limits: {sponsorApproveTimeout: 1}, pendingSponsor: alice.address});115 await collection.confirmSponsorship(alice);115 await collection.confirmSponsorship(alice);116 await collection.addToAllowList(alice, {Substrate: aliceDoubleMirror});116 await collection.addToAllowList(alice, {Substrate: aliceDoubleMirror});117 const evmCollection = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');117 const evmCollection = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');118 await helper.eth.transferBalanceFromSubstrate(donor, aliceMirror);118 await helper.eth.transferBalanceFromSubstrate(donor, aliceMirror);119119120120168 await helper.eth.transferBalanceFromSubstrate(donor, matcher.options.address);168 await helper.eth.transferBalanceFromSubstrate(donor, matcher.options.address);169169170 const collection = await helper.nft.mintCollection(alice, {limits: {sponsorApproveTimeout: 1}});170 const collection = await helper.nft.mintCollection(alice, {limits: {sponsorApproveTimeout: 1}});171 const evmCollection = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');171 const evmCollection = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');172172173 await helper.balance.transferToSubstrate(donor, seller.address, 100_000_000_000_000_000_000n);173 await helper.balance.transferToSubstrate(donor, seller.address, 100_000_000_000_000_000_000n);174 174tests/src/eth/migration.seqtest.tsdiffbeforeafterboth165 const collection = await helper.nft.mintCollection(superuser);165 const collection = await helper.nft.mintCollection(superuser);166 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);166 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);167 const caller = await helper.eth.createAccountWithBalance(superuser);167 const caller = await helper.eth.createAccountWithBalance(superuser);168 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', caller);168 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', caller);169169170 const events: any = [];170 const events: any = [];171 contract.events.allEvents((_: any, event: any) => {171 contract.events.allEvents((_: any, event: any) => {tests/src/eth/nesting/nest.test.tsdiffbeforeafterboth9): Promise<{ collectionId: number, collectionAddress: string, contract: Contract }> => {9): Promise<{ collectionId: number, collectionAddress: string, contract: Contract }> => {10 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');10 const {collectionAddress, collectionId} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');111112 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);12 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);13 await contract.methods.setCollectionNesting(true).send({from: owner});13 await contract.methods.setCollectionNesting(true).send({from: owner});141415 return {collectionId, collectionAddress, contract};15 return {collectionId, collectionAddress, contract};55 itEth('NFT: collectionNestingRestrictedCollectionIds() & collectionNestingPermissions', async ({helper}) => {55 itEth('NFT: collectionNestingRestrictedCollectionIds() & collectionNestingPermissions', async ({helper}) => {56 const owner = await helper.eth.createAccountWithBalance(donor);56 const owner = await helper.eth.createAccountWithBalance(donor);57 const {collectionId: unnestedCollsectionId, collectionAddress: unnsetedCollectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');57 const {collectionId: unnestedCollsectionId, collectionAddress: unnsetedCollectionAddress} = await helper.eth.createNFTCollection(owner, 'A', 'B', 'C');58 const unnestedContract = helper.ethNativeContract.collection(unnsetedCollectionAddress, 'nft', owner);58 const unnestedContract = await helper.ethNativeContract.collection(unnsetedCollectionAddress, 'nft', owner);59 expect(await unnestedContract.methods.collectionNestingRestrictedCollectionIds().call({from: owner})).to.be.like([false, []]);59 expect(await unnestedContract.methods.collectionNestingRestrictedCollectionIds().call({from: owner})).to.be.like([false, []]);60 6061 const {contract} = await createNestingCollection(helper, owner);61 const {contract} = await createNestingCollection(helper, owner);tests/src/eth/nonFungible.test.tsdiffbeforeafterboth373738 const caller = await helper.eth.createAccountWithBalance(donor);38 const caller = await helper.eth.createAccountWithBalance(donor);393940 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);40 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);41 const totalSupply = await contract.methods.totalSupply().call();41 const totalSupply = await contract.methods.totalSupply().call();424243 expect(totalSupply).to.equal('1');43 expect(totalSupply).to.equal('1');51 await collection.mintToken(alice, {Ethereum: caller});51 await collection.mintToken(alice, {Ethereum: caller});52 await collection.mintToken(alice, {Ethereum: caller});52 await collection.mintToken(alice, {Ethereum: caller});535354 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);54 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);55 const balance = await contract.methods.balanceOf(caller).call();55 const balance = await contract.methods.balanceOf(caller).call();565657 expect(balance).to.equal('3');57 expect(balance).to.equal('3');636364 const token = await collection.mintToken(alice, {Ethereum: caller});64 const token = await collection.mintToken(alice, {Ethereum: caller});656566 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);66 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);676768 const owner = await contract.methods.ownerOf(token.tokenId).call();68 const owner = await contract.methods.ownerOf(token.tokenId).call();696974 const collection = await helper.nft.mintCollection(alice, {name: 'test', tokenPrefix: 'TEST'});74 const collection = await helper.nft.mintCollection(alice, {name: 'test', tokenPrefix: 'TEST'});75 const caller = helper.eth.createAccount();75 const caller = helper.eth.createAccount();767677 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);77 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);787879 expect(await contract.methods.name().call()).to.equal('test');79 expect(await contract.methods.name().call()).to.equal('test');80 expect(await contract.methods.symbol().call()).to.equal('TEST');80 expect(await contract.methods.symbol().call()).to.equal('TEST');95 const receiver = helper.eth.createAccount();95 const receiver = helper.eth.createAccount();969697 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Mint collection', 'a', 'b', baseUri);97 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Mint collection', 'a', 'b', baseUri);98 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);98 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);9999100 const result = await contract.methods.mint(receiver).send();100 const result = await contract.methods.mint(receiver).send();101 const tokenId = result.events.Transfer.returnValues.tokenId;101 const tokenId = result.events.Transfer.returnValues.tokenId;155 const receiver = helper.eth.createAccount();155 const receiver = helper.eth.createAccount();156156157 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Mint collection', '6', '6', '');157 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'Mint collection', '6', '6', '');158 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);158 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);159159160 const result = await contract.methods.mintWithTokenURI(receiver, 'Test URI').send();160 const result = await contract.methods.mintWithTokenURI(receiver, 'Test URI').send();161 const tokenId = result.events.Transfer.returnValues.tokenId;161 const tokenId = result.events.Transfer.returnValues.tokenId;209 await collection.addAdmin(minter, {Ethereum: collectionAdmin});209 await collection.addAdmin(minter, {Ethereum: collectionAdmin});210 210211 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);211 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);212 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', collectionAdmin, true);212 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', collectionAdmin, true);213 let expectedTokenId = await contract.methods.nextTokenId().call();213 let expectedTokenId = await contract.methods.nextTokenId().call();214 let result = await contract.methods.mintCross(testCase === 'ethereum' ? receiverCrossEth : receiverCrossSub, []).send();214 let result = await contract.methods.mintCross(testCase === 'ethereum' ? receiverCrossEth : receiverCrossSub, []).send();215 let tokenId = result.events.Transfer.returnValues.tokenId;215 let tokenId = result.events.Transfer.returnValues.tokenId;247247248 const collection = await helper.nft.mintCollection(minter);248 const collection = await helper.nft.mintCollection(minter);249 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);249 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);250 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft');250 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft');251251252 await expect(collectionEvm.methods.mintCross(nonOwnerCross, []).call({from: nonOwner}))252 await expect(collectionEvm.methods.mintCross(nonOwnerCross, []).call({from: nonOwner}))253 .to.be.rejectedWith('PublicMintingNotAllowed');253 .to.be.rejectedWith('PublicMintingNotAllowed');262 await collection.addAdmin(minter, {Ethereum: caller});262 await collection.addAdmin(minter, {Ethereum: caller});263263264 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);264 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);265 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', caller);265 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', caller);266 {266 {267 const bulkSize = 3;267 const bulkSize = 3;268 const nextTokenId = await contract.methods.nextTokenId().call();268 const nextTokenId = await contract.methods.nextTokenId().call();294 const {tokenId} = await collection.mintToken(minter, {Ethereum: caller});294 const {tokenId} = await collection.mintToken(minter, {Ethereum: caller});295295296 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);296 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);297 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', caller);297 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', caller);298298299 {299 {300 const result = await contract.methods.burn(tokenId).send({from: caller});300 const result = await contract.methods.burn(tokenId).send({from: caller});315 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});315 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});316316317 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);317 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);318 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);318 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);319319320 {320 {321 const result = await contract.methods.approve(spender, tokenId).send({from: owner});321 const result = await contract.methods.approve(spender, tokenId).send({from: owner});335 const collection = await helper.nft.mintCollection(minter, {});335 const collection = await helper.nft.mintCollection(minter, {});336336337 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);337 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);338 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);338 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);339339340 const approvedBefore = await contract.methods.isApprovedForAll(owner, operator).call();340 const approvedBefore = await contract.methods.isApprovedForAll(owner, operator).call();341 expect(approvedBefore).to.be.equal(false);341 expect(approvedBefore).to.be.equal(false);384 const token = await collection.mintToken(minter, {Ethereum: owner});384 const token = await collection.mintToken(minter, {Ethereum: owner});385385386 const address = helper.ethAddress.fromCollectionId(collection.collectionId);386 const address = helper.ethAddress.fromCollectionId(collection.collectionId);387 const contract = helper.ethNativeContract.collection(address, 'nft');387 const contract = await helper.ethNativeContract.collection(address, 'nft');388388389 {389 {390 await contract.methods.setApprovalForAll(operator, true).send({from: owner});390 await contract.methods.setApprovalForAll(operator, true).send({from: owner});416 const token = await collection.mintToken(minter, {Ethereum: owner});416 const token = await collection.mintToken(minter, {Ethereum: owner});417417418 const address = helper.ethAddress.fromCollectionId(collection.collectionId);418 const address = helper.ethAddress.fromCollectionId(collection.collectionId);419 const contract = helper.ethNativeContract.collection(address, 'nft');419 const contract = await helper.ethNativeContract.collection(address, 'nft');420420421 {421 {422 await contract.methods.setApprovalForAll(operator, true).send({from: owner});422 await contract.methods.setApprovalForAll(operator, true).send({from: owner});452 const token2 = await collection.mintToken(minter, {Ethereum: ownerEth});452 const token2 = await collection.mintToken(minter, {Ethereum: ownerEth});453453454 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);454 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);455 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft');455 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft');456456457 // Approve tokens from substrate and ethereum:457 // Approve tokens from substrate and ethereum:458 await token1.approve(ownerSub, {Ethereum: burnerEth});458 await token1.approve(ownerSub, {Ethereum: burnerEth});499 const token1 = await collection.mintToken(minter, {Ethereum: owner});499 const token1 = await collection.mintToken(minter, {Ethereum: owner});500 const token2 = await collection.mintToken(minter, {Ethereum: owner});500 const token2 = await collection.mintToken(minter, {Ethereum: owner});501501502 const collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');502 const collectionEvm = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');503503504 // Can approveCross substrate and ethereum address:504 // Can approveCross substrate and ethereum address:505 const resultSub = await collectionEvm.methods.approveCross(recieverCrossSub, token1.tokenId).send({from: owner});505 const resultSub = await collectionEvm.methods.approveCross(recieverCrossSub, token1.tokenId).send({from: owner});538 const nonOwnerCross = helper.ethCrossAccount.fromAddress(nonOwner);538 const nonOwnerCross = helper.ethCrossAccount.fromAddress(nonOwner);539 const owner = await helper.eth.createAccountWithBalance(donor);539 const owner = await helper.eth.createAccountWithBalance(donor);540 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});540 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});541 const collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');541 const collectionEvm = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');542 const token = await collection.mintToken(minter, {Ethereum: owner});542 const token = await collection.mintToken(minter, {Ethereum: owner});543543544 await expect(collectionEvm.methods.approveCross(nonOwnerCross, token.tokenId).call({from: nonOwner})).to.be.rejectedWith('CantApproveMoreThanOwned');544 await expect(collectionEvm.methods.approveCross(nonOwnerCross, token.tokenId).call({from: nonOwner})).to.be.rejectedWith('CantApproveMoreThanOwned');553 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});553 const collection = await helper.nft.mintCollection(minter, {name: 'A', description: 'B', tokenPrefix: 'C'});554 const token1 = await collection.mintToken(minter, {Ethereum: owner});554 const token1 = await collection.mintToken(minter, {Ethereum: owner});555 const token2 = await collection.mintToken(minter, {Ethereum: owner});555 const token2 = await collection.mintToken(minter, {Ethereum: owner});556 const collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');556 const collectionEvm = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collection.collectionId), 'nft');557557558 // Can approve and reaffirm approved address:558 // Can approve and reaffirm approved address:559 await collectionEvm.methods.approveCross(receiver1Cross, token1.tokenId).send({from: owner});559 await collectionEvm.methods.approveCross(receiver1Cross, token1.tokenId).send({from: owner});581 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});581 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});582582583 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);583 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);584 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);584 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);585585586 await contract.methods.approve(spender, tokenId).send({from: owner});586 await contract.methods.approve(spender, tokenId).send({from: owner});587587615 const token = await collection.mintToken(minter, {Substrate: owner.address});615 const token = await collection.mintToken(minter, {Substrate: owner.address});616616617 const address = helper.ethAddress.fromCollectionId(collection.collectionId);617 const address = helper.ethAddress.fromCollectionId(collection.collectionId);618 const contract = helper.ethNativeContract.collection(address, 'nft');618 const contract = await helper.ethNativeContract.collection(address, 'nft');619619620 await token.approve(owner, {Ethereum: spender});620 await token.approve(owner, {Ethereum: spender});621621646 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});646 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});647647648 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);648 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);649 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);649 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);650650651 {651 {652 const result = await contract.methods.transfer(receiver, tokenId).send({from: owner});652 const result = await contract.methods.transfer(receiver, tokenId).send({from: owner});679 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});679 const {tokenId} = await collection.mintToken(minter, {Ethereum: owner});680680681 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);681 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);682 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);682 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);683683684 {684 {685 // Can transferCross to ethereum address:685 // Can transferCross to ethereum address:727727728 const collection = await helper.nft.mintCollection(minter, {});728 const collection = await helper.nft.mintCollection(minter, {});729 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);729 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);730 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', sender);730 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', sender);731731732 await collection.mintToken(minter, {Ethereum: sender});732 await collection.mintToken(minter, {Ethereum: sender});733 const nonSendersToken = await collection.mintToken(minter, {Ethereum: tokenOwner});733 const nonSendersToken = await collection.mintToken(minter, {Ethereum: tokenOwner});760 const collection = await helper.nft.mintCollection(alice, {});760 const collection = await helper.nft.mintCollection(alice, {});761 const {tokenId} = await collection.mintToken(alice, {Ethereum: owner});761 const {tokenId} = await collection.mintToken(alice, {Ethereum: owner});762762763 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', owner);763 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', owner);764764765 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.approve(spender, tokenId).send({from: owner}));765 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.approve(spender, tokenId).send({from: owner}));766 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));766 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));773 const collection = await helper.nft.mintCollection(alice, {});773 const collection = await helper.nft.mintCollection(alice, {});774 const {tokenId} = await collection.mintToken(alice, {Ethereum: owner});774 const {tokenId} = await collection.mintToken(alice, {Ethereum: owner});775775776 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', owner);776 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', owner);777777778 await contract.methods.approve(spender, tokenId).send({from: owner});778 await contract.methods.approve(spender, tokenId).send({from: owner});779779792 const token = await collection.mintToken(collectionMinter, {Substrate: owner.address});792 const token = await collection.mintToken(collectionMinter, {Substrate: owner.address});793793794 const address = helper.ethAddress.fromCollectionId(collection.collectionId);794 const address = helper.ethAddress.fromCollectionId(collection.collectionId);795 const contract = helper.ethNativeContract.collection(address, 'nft');795 const contract = await helper.ethNativeContract.collection(address, 'nft');796796797 await token.approve(owner, {Ethereum: spender});797 await token.approve(owner, {Ethereum: spender});798798822 const collection = await helper.nft.mintCollection(alice, {});822 const collection = await helper.nft.mintCollection(alice, {});823 const {tokenId} = await collection.mintToken(alice, {Ethereum: owner});823 const {tokenId} = await collection.mintToken(alice, {Ethereum: owner});824824825 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', owner);825 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', owner);826826827 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.transfer(receiver, tokenId).send({from: owner}));827 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.transfer(receiver, tokenId).send({from: owner}));828 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));828 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));843 itEth('Events emitted for mint()', async ({helper}) => {843 itEth('Events emitted for mint()', async ({helper}) => {844 const collection = await helper.nft.mintCollection(alice, {});844 const collection = await helper.nft.mintCollection(alice, {});845 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);845 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);846 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft');846 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft');847847848 const events: any = [];848 const events: any = [];849 contract.events.allEvents((_: any, event: any) => {849 contract.events.allEvents((_: any, event: any) => {866 const token = await collection.mintToken(alice);866 const token = await collection.mintToken(alice);867867868 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);868 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);869 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft');869 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft');870870871 const events: any = [];871 const events: any = [];872 contract.events.allEvents((_: any, event: any) => {872 contract.events.allEvents((_: any, event: any) => {891 const token = await collection.mintToken(alice);891 const token = await collection.mintToken(alice);892892893 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);893 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);894 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft');894 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft');895895896 const events: any = [];896 const events: any = [];897 contract.events.allEvents((_: any, event: any) => {897 contract.events.allEvents((_: any, event: any) => {918 await token.approve(alice, {Substrate: bob.address});918 await token.approve(alice, {Substrate: bob.address});919919920 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);920 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);921 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft');921 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft');922922923 const events: any = [];923 const events: any = [];924 contract.events.allEvents((_: any, event: any) => {924 contract.events.allEvents((_: any, event: any) => {943 const token = await collection.mintToken(alice);943 const token = await collection.mintToken(alice);944944945 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);945 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);946 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft');946 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft');947947948 const events: any = [];948 const events: any = [];949 contract.events.allEvents((_: any, event: any) => {949 contract.events.allEvents((_: any, event: any) => {993 },993 },994 );994 );995995996 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);996 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);997 const name = await contract.methods.name().call();997 const name = await contract.methods.name().call();998 expect(name).to.equal('oh River');998 expect(name).to.equal('oh River');999 });999 });1018 },1018 },1019 );1019 );102010201021 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);1021 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller);1022 const symbol = await contract.methods.symbol().call();1022 const symbol = await contract.methods.symbol().call();1023 expect(symbol).to.equal('CHANGE');1023 expect(symbol).to.equal('CHANGE');1024 });1024 });1045 const token = await collection.mintToken(minter, {Ethereum: owner});1045 const token = await collection.mintToken(minter, {Ethereum: owner});104610461047 const address = helper.ethAddress.fromCollectionId(collection.collectionId);1047 const address = helper.ethAddress.fromCollectionId(collection.collectionId);1048 const contract = helper.ethNativeContract.collection(address, 'nft');1048 const contract = await helper.ethNativeContract.collection(address, 'nft');104910491050 const ownerCross = helper.ethCrossAccount.fromAddress(owner);1050 const ownerCross = helper.ethCrossAccount.fromAddress(owner);1051 await expect(contract.methods.burnFromCross(ownerCross, token.tokenId).send({from: spender})).to.be.rejected;1051 await expect(contract.methods.burnFromCross(ownerCross, token.tokenId).send({from: spender})).to.be.rejected;1066 const token = await collection.mintToken(minter, {Ethereum: owner});1066 const token = await collection.mintToken(minter, {Ethereum: owner});106710671068 const address = helper.ethAddress.fromCollectionId(collection.collectionId);1068 const address = helper.ethAddress.fromCollectionId(collection.collectionId);1069 const contract = helper.ethNativeContract.collection(address, 'nft');1069 const contract = await helper.ethNativeContract.collection(address, 'nft');107010701071 const ownerCross = helper.ethCrossAccount.fromAddress(owner);1071 const ownerCross = helper.ethCrossAccount.fromAddress(owner);1072 const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);1072 const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);tests/src/eth/payable.test.tsdiffbeforeafterboth175 const SMALL_FEE = 1n * helper.balance.getOneTokenNominal();175 const SMALL_FEE = 1n * helper.balance.getOneTokenNominal();176 const BIG_FEE = 3n * helper.balance.getOneTokenNominal();176 const BIG_FEE = 3n * helper.balance.getOneTokenNominal();177 const caller = await helper.eth.createAccountWithBalance(donor);177 const caller = await helper.eth.createAccountWithBalance(donor);178 const collectionHelper = helper.ethNativeContract.collectionHelpers(caller);178 const collectionHelper = await helper.ethNativeContract.collectionHelpers(caller);179179180 await expect(collectionHelper.methods.createNFTCollection('A', 'B', 'C').call({value: Number(SMALL_FEE)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');180 await expect(collectionHelper.methods.createNFTCollection('A', 'B', 'C').call({value: Number(SMALL_FEE)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');181 await expect(collectionHelper.methods.createNFTCollection('A', 'B', 'C').call({value: Number(BIG_FEE)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');181 await expect(collectionHelper.methods.createNFTCollection('A', 'B', 'C').call({value: Number(BIG_FEE)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');185 const SMALL_FEE = 1n * helper.balance.getOneTokenNominal();185 const SMALL_FEE = 1n * helper.balance.getOneTokenNominal();186 const BIG_FEE = 3n * helper.balance.getOneTokenNominal();186 const BIG_FEE = 3n * helper.balance.getOneTokenNominal();187 const caller = await helper.eth.createAccountWithBalance(donor);187 const caller = await helper.eth.createAccountWithBalance(donor);188 const collectionHelper = helper.ethNativeContract.collectionHelpers(caller);188 const collectionHelper = await helper.ethNativeContract.collectionHelpers(caller);189189190 await expect(collectionHelper.methods.createRFTCollection('A', 'B', 'C').call({value: Number(SMALL_FEE)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');190 await expect(collectionHelper.methods.createRFTCollection('A', 'B', 'C').call({value: Number(SMALL_FEE)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');191 await expect(collectionHelper.methods.createRFTCollection('A', 'B', 'C').call({value: Number(BIG_FEE)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');191 await expect(collectionHelper.methods.createRFTCollection('A', 'B', 'C').call({value: Number(BIG_FEE)})).to.be.rejectedWith('Sent amount not equals to collection creation price (2000000000000000000)');tests/src/eth/proxy/fungibleProxy.test.tsdiffbeforeafterboth48 await collection.mint(alice, 200n, {Substrate: alice.address});48 await collection.mint(alice, 200n, {Substrate: alice.address});494950 const address = helper.ethAddress.fromCollectionId(collection.collectionId);50 const address = helper.ethAddress.fromCollectionId(collection.collectionId);51 const evmCollection = helper.ethNativeContract.collection(address, 'ft', caller);51 const evmCollection = await helper.ethNativeContract.collection(address, 'ft', caller);52 const contract = await proxyWrap(helper, evmCollection, donor);52 const contract = await proxyWrap(helper, evmCollection, donor);53 const totalSupply = await contract.methods.totalSupply().call();53 const totalSupply = await contract.methods.totalSupply().call();545462 await collection.mint(alice, 200n, {Ethereum: caller});62 await collection.mint(alice, 200n, {Ethereum: caller});636364 const address = helper.ethAddress.fromCollectionId(collection.collectionId);64 const address = helper.ethAddress.fromCollectionId(collection.collectionId);65 const evmCollection = helper.ethNativeContract.collection(address, 'ft', caller);65 const evmCollection = await helper.ethNativeContract.collection(address, 'ft', caller);66 const contract = await proxyWrap(helper, evmCollection, donor);66 const contract = await proxyWrap(helper, evmCollection, donor);67 const balance = await contract.methods.balanceOf(caller).call();67 const balance = await contract.methods.balanceOf(caller).call();686887 const spender = helper.eth.createAccount();87 const spender = helper.eth.createAccount();888889 const address = helper.ethAddress.fromCollectionId(collection.collectionId);89 const address = helper.ethAddress.fromCollectionId(collection.collectionId);90 const evmCollection = helper.ethNativeContract.collection(address, 'ft', caller);90 const evmCollection = await helper.ethNativeContract.collection(address, 'ft', caller);91 const contract = await proxyWrap(helper, evmCollection, donor);91 const contract = await proxyWrap(helper, evmCollection, donor);92 await collection.mint(alice, 200n, {Ethereum: contract.options.address});92 await collection.mint(alice, 200n, {Ethereum: contract.options.address});9393123 const receiver = helper.eth.createAccount();123 const receiver = helper.eth.createAccount();124124125 const address = helper.ethAddress.fromCollectionId(collection.collectionId);125 const address = helper.ethAddress.fromCollectionId(collection.collectionId);126 const evmCollection = helper.ethNativeContract.collection(address, 'ft', caller);126 const evmCollection = await helper.ethNativeContract.collection(address, 'ft', caller);127 const contract = await proxyWrap(helper, evmCollection, donor);127 const contract = await proxyWrap(helper, evmCollection, donor);128128129 await evmCollection.methods.approve(contract.options.address, 100).send({from: owner});129 await evmCollection.methods.approve(contract.options.address, 100).send({from: owner});170 const receiver = await helper.eth.createAccountWithBalance(donor);170 const receiver = await helper.eth.createAccountWithBalance(donor);171171172 const address = helper.ethAddress.fromCollectionId(collection.collectionId);172 const address = helper.ethAddress.fromCollectionId(collection.collectionId);173 const evmCollection = helper.ethNativeContract.collection(address, 'ft', caller);173 const evmCollection = await helper.ethNativeContract.collection(address, 'ft', caller);174 const contract = await proxyWrap(helper, evmCollection, donor);174 const contract = await proxyWrap(helper, evmCollection, donor);175 await collection.mint(alice, 200n, {Ethereum: contract.options.address});175 await collection.mint(alice, 200n, {Ethereum: contract.options.address});176176tests/src/eth/proxy/nonFungibleProxy.test.tsdiffbeforeafterboth48 await collection.mintToken(alice, {Substrate: alice.address});48 await collection.mintToken(alice, {Substrate: alice.address});494950 const address = helper.ethAddress.fromCollectionId(collection.collectionId);50 const address = helper.ethAddress.fromCollectionId(collection.collectionId);51 const evmCollection = helper.ethNativeContract.collection(address, 'nft', caller);51 const evmCollection = await helper.ethNativeContract.collection(address, 'nft', caller);52 const contract = await proxyWrap(helper, evmCollection, donor);52 const contract = await proxyWrap(helper, evmCollection, donor);53 const totalSupply = await contract.methods.totalSupply().call();53 const totalSupply = await contract.methods.totalSupply().call();545466 ]);66 ]);676768 const address = helper.ethAddress.fromCollectionId(collection.collectionId);68 const address = helper.ethAddress.fromCollectionId(collection.collectionId);69 const evmCollection = helper.ethNativeContract.collection(address, 'nft', caller);69 const evmCollection = await helper.ethNativeContract.collection(address, 'nft', caller);70 const contract = await proxyWrap(helper, evmCollection, donor);70 const contract = await proxyWrap(helper, evmCollection, donor);71 const balance = await contract.methods.balanceOf(caller).call();71 const balance = await contract.methods.balanceOf(caller).call();727280 const {tokenId} = await collection.mintToken(alice, {Ethereum: caller});80 const {tokenId} = await collection.mintToken(alice, {Ethereum: caller});818182 const address = helper.ethAddress.fromCollectionId(collection.collectionId);82 const address = helper.ethAddress.fromCollectionId(collection.collectionId);83 const evmCollection = helper.ethNativeContract.collection(address, 'nft', caller);83 const evmCollection = await helper.ethNativeContract.collection(address, 'nft', caller);84 const contract = await proxyWrap(helper, evmCollection, donor);84 const contract = await proxyWrap(helper, evmCollection, donor);85 const owner = await contract.methods.ownerOf(tokenId).call();85 const owner = await contract.methods.ownerOf(tokenId).call();8686106 const caller = await helper.eth.createAccountWithBalance(donor);106 const caller = await helper.eth.createAccountWithBalance(donor);107 const receiver = helper.eth.createAccount();107 const receiver = helper.eth.createAccount();108108109 const collectionEvmOwned = helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);109 const collectionEvmOwned = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner, true);110 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', caller, true);110 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', caller, true);111 const contract = await proxyWrap(helper, collectionEvm, donor);111 const contract = await proxyWrap(helper, collectionEvm, donor);112 await collectionEvmOwned.methods.addCollectionAdmin(contract.options.address).send();112 await collectionEvmOwned.methods.addCollectionAdmin(contract.options.address).send();113113141 const caller = await helper.eth.createAccountWithBalance(donor);141 const caller = await helper.eth.createAccountWithBalance(donor);142 const receiver = helper.eth.createAccount();142 const receiver = helper.eth.createAccount();143143144 const collectionEvmOwned = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);144 const collectionEvmOwned = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);145 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', caller);145 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'nft', caller);146 const contract = await proxyWrap(helper, collectionEvm, donor);146 const contract = await proxyWrap(helper, collectionEvm, donor);147 const contractAddressCross = helper.ethCrossAccount.fromAddress(contract.options.address);147 const contractAddressCross = helper.ethCrossAccount.fromAddress(contract.options.address);148 await collectionEvmOwned.methods.addCollectionAdminCross(contractAddressCross).send();148 await collectionEvmOwned.methods.addCollectionAdminCross(contractAddressCross).send();179 const receiver = helper.eth.createAccount();179 const receiver = helper.eth.createAccount();180180181 const address = helper.ethAddress.fromCollectionId(collection.collectionId);181 const address = helper.ethAddress.fromCollectionId(collection.collectionId);182 const evmCollection = helper.ethNativeContract.collection(address, 'nft', caller);182 const evmCollection = await helper.ethNativeContract.collection(address, 'nft', caller);183 const contract = await proxyWrap(helper, evmCollection, donor);183 const contract = await proxyWrap(helper, evmCollection, donor);184 await collection.addAdmin(donor, {Ethereum: contract.options.address});184 await collection.addAdmin(donor, {Ethereum: contract.options.address});185185237 const caller = await helper.eth.createAccountWithBalance(donor);237 const caller = await helper.eth.createAccountWithBalance(donor);238238239 const address = helper.ethAddress.fromCollectionId(collection.collectionId);239 const address = helper.ethAddress.fromCollectionId(collection.collectionId);240 const evmCollection = helper.ethNativeContract.collection(address, 'nft', caller);240 const evmCollection = await helper.ethNativeContract.collection(address, 'nft', caller);241 const contract = await proxyWrap(helper, evmCollection, donor);241 const contract = await proxyWrap(helper, evmCollection, donor);242 const {tokenId} = await collection.mintToken(alice, {Ethereum: contract.options.address});242 const {tokenId} = await collection.mintToken(alice, {Ethereum: contract.options.address});243 await collection.addAdmin(alice, {Ethereum: contract.options.address});243 await collection.addAdmin(alice, {Ethereum: contract.options.address});266 const spender = helper.eth.createAccount();266 const spender = helper.eth.createAccount();267267268 const address = helper.ethAddress.fromCollectionId(collection.collectionId);268 const address = helper.ethAddress.fromCollectionId(collection.collectionId);269 const evmCollection = helper.ethNativeContract.collection(address, 'nft', caller);269 const evmCollection = await helper.ethNativeContract.collection(address, 'nft', caller);270 const contract = await proxyWrap(helper, evmCollection, donor);270 const contract = await proxyWrap(helper, evmCollection, donor);271 const {tokenId} = await collection.mintToken(alice, {Ethereum: contract.options.address});271 const {tokenId} = await collection.mintToken(alice, {Ethereum: contract.options.address});272272296 const receiver = helper.eth.createAccount();296 const receiver = helper.eth.createAccount();297297298 const address = helper.ethAddress.fromCollectionId(collection.collectionId);298 const address = helper.ethAddress.fromCollectionId(collection.collectionId);299 const evmCollection = helper.ethNativeContract.collection(address, 'nft', caller);299 const evmCollection = await helper.ethNativeContract.collection(address, 'nft', caller);300 const contract = await proxyWrap(helper, evmCollection, donor);300 const contract = await proxyWrap(helper, evmCollection, donor);301 const {tokenId} = await collection.mintToken(alice, {Ethereum: owner});301 const {tokenId} = await collection.mintToken(alice, {Ethereum: owner});302302335 const receiver = helper.eth.createAccount();335 const receiver = helper.eth.createAccount();336336337 const address = helper.ethAddress.fromCollectionId(collection.collectionId);337 const address = helper.ethAddress.fromCollectionId(collection.collectionId);338 const evmCollection = helper.ethNativeContract.collection(address, 'nft', caller);338 const evmCollection = await helper.ethNativeContract.collection(address, 'nft', caller);339 const contract = await proxyWrap(helper, evmCollection, donor);339 const contract = await proxyWrap(helper, evmCollection, donor);340 const {tokenId} = await collection.mintToken(alice, {Ethereum: contract.options.address});340 const {tokenId} = await collection.mintToken(alice, {Ethereum: contract.options.address});341341tests/src/eth/reFungible.test.tsdiffbeforeafterboth33 itEth('totalSupply', async ({helper}) => {33 itEth('totalSupply', async ({helper}) => {34 const caller = await helper.eth.createAccountWithBalance(donor);34 const caller = await helper.eth.createAccountWithBalance(donor);35 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'TotalSupply', '6', '6');35 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'TotalSupply', '6', '6');36 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);36 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);373738 await contract.methods.mint(caller).send();38 await contract.methods.mint(caller).send();393944 itEth('balanceOf', async ({helper}) => {44 itEth('balanceOf', async ({helper}) => {45 const caller = await helper.eth.createAccountWithBalance(donor);45 const caller = await helper.eth.createAccountWithBalance(donor);46 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'BalanceOf', '6', '6');46 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'BalanceOf', '6', '6');47 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);47 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);484849 await contract.methods.mint(caller).send();49 await contract.methods.mint(caller).send();50 await contract.methods.mint(caller).send();50 await contract.methods.mint(caller).send();57 itEth('ownerOf', async ({helper}) => {57 itEth('ownerOf', async ({helper}) => {58 const caller = await helper.eth.createAccountWithBalance(donor);58 const caller = await helper.eth.createAccountWithBalance(donor);59 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'OwnerOf', '6', '6');59 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'OwnerOf', '6', '6');60 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);60 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);616162 const result = await contract.methods.mint(caller).send();62 const result = await contract.methods.mint(caller).send();63 const tokenId = result.events.Transfer.returnValues.tokenId;63 const tokenId = result.events.Transfer.returnValues.tokenId;70 const caller = await helper.eth.createAccountWithBalance(donor);70 const caller = await helper.eth.createAccountWithBalance(donor);71 const receiver = helper.eth.createAccount();71 const receiver = helper.eth.createAccount();72 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'OwnerOf-AfterBurn', '6', '6');72 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'OwnerOf-AfterBurn', '6', '6');73 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);73 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);747475 const result = await contract.methods.mint(caller).send();75 const result = await contract.methods.mint(caller).send();76 const tokenId = result.events.Transfer.returnValues.tokenId;76 const tokenId = result.events.Transfer.returnValues.tokenId;77 const tokenContract = helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller);77 const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller);787879 await tokenContract.methods.repartition(2).send();79 await tokenContract.methods.repartition(2).send();80 await tokenContract.methods.transfer(receiver, 1).send();80 await tokenContract.methods.transfer(receiver, 1).send();89 const caller = await helper.eth.createAccountWithBalance(donor);89 const caller = await helper.eth.createAccountWithBalance(donor);90 const receiver = helper.eth.createAccount();90 const receiver = helper.eth.createAccount();91 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'Partial-OwnerOf', '6', '6');91 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'Partial-OwnerOf', '6', '6');92 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);92 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);939394 const result = await contract.methods.mint(caller).send();94 const result = await contract.methods.mint(caller).send();95 const tokenId = result.events.Transfer.returnValues.tokenId;95 const tokenId = result.events.Transfer.returnValues.tokenId;96 const tokenContract = helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller);96 const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller);979798 await tokenContract.methods.repartition(2).send();98 await tokenContract.methods.repartition(2).send();99 await tokenContract.methods.transfer(receiver, 1).send();99 await tokenContract.methods.transfer(receiver, 1).send();122 const owner = await helper.eth.createAccountWithBalance(donor);122 const owner = await helper.eth.createAccountWithBalance(donor);123 const receiver = helper.eth.createAccount();123 const receiver = helper.eth.createAccount();124 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, 'Minty', '6', '6', '');124 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, 'Minty', '6', '6', '');125 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', owner);125 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);126126127 const result = await contract.methods.mintWithTokenURI(receiver, 'Test URI').send();127 const result = await contract.methods.mintWithTokenURI(receiver, 'Test URI').send();128128164 await collection.addAdmin(minter, {Ethereum: collectionAdmin});164 await collection.addAdmin(minter, {Ethereum: collectionAdmin});165 165166 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);166 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);167 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', collectionAdmin, true);167 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', collectionAdmin, true);168 let expectedTokenId = await contract.methods.nextTokenId().call();168 let expectedTokenId = await contract.methods.nextTokenId().call();169 let result = await contract.methods.mintCross(testCase === 'ethereum' ? receiverCrossEth : receiverCrossSub, []).send();169 let result = await contract.methods.mintCross(testCase === 'ethereum' ? receiverCrossEth : receiverCrossSub, []).send();170 let tokenId = result.events.Transfer.returnValues.tokenId;170 let tokenId = result.events.Transfer.returnValues.tokenId;200 const owner = await helper.eth.createAccountWithBalance(donor);200 const owner = await helper.eth.createAccountWithBalance(donor);201 const receiver = helper.eth.createAccount();201 const receiver = helper.eth.createAccount();202 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, 'MintBulky', '6', '6', '');202 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, 'MintBulky', '6', '6', '');203 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', owner);203 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);204204205 {205 {206 const nextTokenId = await contract.methods.nextTokenId().call();206 const nextTokenId = await contract.methods.nextTokenId().call();236 const collection = await helper.rft.mintCollection(minter, {});236 const collection = await helper.rft.mintCollection(minter, {});237237238 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);238 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);239 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', owner);239 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);240240241 const approvedBefore = await contract.methods.isApprovedForAll(owner, operator).call();241 const approvedBefore = await contract.methods.isApprovedForAll(owner, operator).call();242 expect(approvedBefore).to.be.equal(false);242 expect(approvedBefore).to.be.equal(false);285 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});285 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});286286287 const address = helper.ethAddress.fromCollectionId(collection.collectionId);287 const address = helper.ethAddress.fromCollectionId(collection.collectionId);288 const contract = helper.ethNativeContract.collection(address, 'rft');288 const contract = await helper.ethNativeContract.collection(address, 'rft');289289290 {290 {291 await contract.methods.setApprovalForAll(operator, true).send({from: owner});291 await contract.methods.setApprovalForAll(operator, true).send({from: owner});314 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});314 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});315315316 const address = helper.ethAddress.fromCollectionId(collection.collectionId);316 const address = helper.ethAddress.fromCollectionId(collection.collectionId);317 const contract = helper.ethNativeContract.collection(address, 'rft');317 const contract = await helper.ethNativeContract.collection(address, 'rft');318318319 const rftToken = helper.ethNativeContract.rftTokenById(token.collectionId, token.tokenId, owner);319 const rftToken = await helper.ethNativeContract.rftTokenById(token.collectionId, token.tokenId, owner);320320321 {321 {322 await rftToken.methods.approve(operator, 15n).send({from: owner});322 await rftToken.methods.approve(operator, 15n).send({from: owner});337 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});337 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});338338339 const address = helper.ethAddress.fromCollectionId(collection.collectionId);339 const address = helper.ethAddress.fromCollectionId(collection.collectionId);340 const contract = helper.ethNativeContract.collection(address, 'rft');340 const contract = await helper.ethNativeContract.collection(address, 'rft');341341342 {342 {343 await contract.methods.setApprovalForAll(operator, true).send({from: owner});343 await contract.methods.setApprovalForAll(operator, true).send({from: owner});362 itEth('Can perform burn()', async ({helper}) => {362 itEth('Can perform burn()', async ({helper}) => {363 const caller = await helper.eth.createAccountWithBalance(donor);363 const caller = await helper.eth.createAccountWithBalance(donor);364 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Burny', '6', '6');364 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Burny', '6', '6');365 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);365 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);366366367 const result = await contract.methods.mint(caller).send();367 const result = await contract.methods.mint(caller).send();368 const tokenId = result.events.Transfer.returnValues.tokenId;368 const tokenId = result.events.Transfer.returnValues.tokenId;380 const caller = await helper.eth.createAccountWithBalance(donor);380 const caller = await helper.eth.createAccountWithBalance(donor);381 const receiver = helper.eth.createAccount();381 const receiver = helper.eth.createAccount();382 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'TransferFromy', '6', '6');382 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'TransferFromy', '6', '6');383 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);383 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);384384385 const result = await contract.methods.mint(caller).send();385 const result = await contract.methods.mint(caller).send();386 const tokenId = result.events.Transfer.returnValues.tokenId;386 const tokenId = result.events.Transfer.returnValues.tokenId;387387388 const tokenAddress = helper.ethAddress.fromTokenId(collectionId, tokenId);388 const tokenAddress = helper.ethAddress.fromTokenId(collectionId, tokenId);389389390 const tokenContract = helper.ethNativeContract.rftToken(tokenAddress, caller);390 const tokenContract = await helper.ethNativeContract.rftToken(tokenAddress, caller);391 await tokenContract.methods.repartition(15).send();391 await tokenContract.methods.repartition(15).send();392392393 {393 {432 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});432 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});433433434 const address = helper.ethAddress.fromCollectionId(collection.collectionId);434 const address = helper.ethAddress.fromCollectionId(collection.collectionId);435 const contract = helper.ethNativeContract.collection(address, 'rft', spender, true);435 const contract = await helper.ethNativeContract.collection(address, 'rft', spender, true);436436437 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);437 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);438 const tokenContract = helper.ethNativeContract.rftToken(tokenAddress, owner);438 const tokenContract = await helper.ethNativeContract.rftToken(tokenAddress, owner);439 await tokenContract.methods.repartition(15).send();439 await tokenContract.methods.repartition(15).send();440 await tokenContract.methods.approve(spender, 15).send();440 await tokenContract.methods.approve(spender, 15).send();441441465 const token = await collection.mintToken(minter, 100n, {Substrate: owner.address});465 const token = await collection.mintToken(minter, 100n, {Substrate: owner.address});466466467 const address = helper.ethAddress.fromCollectionId(collection.collectionId);467 const address = helper.ethAddress.fromCollectionId(collection.collectionId);468 const contract = helper.ethNativeContract.collection(address, 'rft');468 const contract = await helper.ethNativeContract.collection(address, 'rft');469469470 await token.repartition(owner, 15n);470 await token.repartition(owner, 15n);471 await token.approve(owner, {Ethereum: spender}, 15n);471 await token.approve(owner, {Ethereum: spender}, 15n);498 const token = await collection.mintToken(minter, 100n, {Substrate: owner.address});498 const token = await collection.mintToken(minter, 100n, {Substrate: owner.address});499499500 const address = helper.ethAddress.fromCollectionId(collection.collectionId);500 const address = helper.ethAddress.fromCollectionId(collection.collectionId);501 const contract = helper.ethNativeContract.collection(address, 'rft');501 const contract = await helper.ethNativeContract.collection(address, 'rft');502502503 await token.repartition(owner, 15n);503 await token.repartition(owner, 15n);504 await token.approve(owner, {Ethereum: spender}, 15n);504 await token.approve(owner, {Ethereum: spender}, 15n);526 const caller = await helper.eth.createAccountWithBalance(donor);526 const caller = await helper.eth.createAccountWithBalance(donor);527 const receiver = helper.eth.createAccount();527 const receiver = helper.eth.createAccount();528 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Transferry', '6', '6');528 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Transferry', '6', '6');529 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);529 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);530530531 const result = await contract.methods.mint(caller).send();531 const result = await contract.methods.mint(caller).send();532 const tokenId = result.events.Transfer.returnValues.tokenId;532 const tokenId = result.events.Transfer.returnValues.tokenId;560560561 const collection = await helper.rft.mintCollection(minter, {});561 const collection = await helper.rft.mintCollection(minter, {});562 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);562 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);563 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'rft', sender);563 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', sender);564564565 const token = await collection.mintToken(minter, 50n, {Ethereum: sender});565 const token = await collection.mintToken(minter, 50n, {Ethereum: sender});566566611611612 const collection = await helper.rft.mintCollection(minter, {});612 const collection = await helper.rft.mintCollection(minter, {});613 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);613 const collectionAddress = helper.ethAddress.fromCollectionId(collection.collectionId);614 const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'rft', sender);614 const collectionEvm = await helper.ethNativeContract.collection(collectionAddress, 'rft', sender);615615616 await collection.mintToken(minter, 50n, {Ethereum: sender});616 await collection.mintToken(minter, 50n, {Ethereum: sender});617 const nonSendersToken = await collection.mintToken(minter, 50n, {Ethereum: tokenOwner});617 const nonSendersToken = await collection.mintToken(minter, 50n, {Ethereum: tokenOwner});627 const caller = await helper.eth.createAccountWithBalance(donor);627 const caller = await helper.eth.createAccountWithBalance(donor);628 const receiver = helper.eth.createAccount();628 const receiver = helper.eth.createAccount();629 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'Transferry-Partial-to-Full', '6', '6');629 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'Transferry-Partial-to-Full', '6', '6');630 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);630 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);631631632 const result = await contract.methods.mint(caller).send();632 const result = await contract.methods.mint(caller).send();633 const tokenId = result.events.Transfer.returnValues.tokenId;633 const tokenId = result.events.Transfer.returnValues.tokenId;634634635 const tokenContract = helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller);635 const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller);636636637 await tokenContract.methods.repartition(2).send();637 await tokenContract.methods.repartition(2).send();638 await tokenContract.methods.transfer(receiver, 1).send();638 await tokenContract.methods.transfer(receiver, 1).send();656 const caller = await helper.eth.createAccountWithBalance(donor);656 const caller = await helper.eth.createAccountWithBalance(donor);657 const receiver = helper.eth.createAccount();657 const receiver = helper.eth.createAccount();658 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'Transferry-Full-to-Partial', '6', '6');658 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'Transferry-Full-to-Partial', '6', '6');659 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);659 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);660660661 const result = await contract.methods.mint(caller).send();661 const result = await contract.methods.mint(caller).send();662 const tokenId = result.events.Transfer.returnValues.tokenId;662 const tokenId = result.events.Transfer.returnValues.tokenId;663663664 const tokenContract = helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller);664 const tokenContract = await helper.ethNativeContract.rftTokenById(collectionId, tokenId, caller);665665666 await tokenContract.methods.repartition(2).send();666 await tokenContract.methods.repartition(2).send();667667696 const caller = await helper.eth.createAccountWithBalance(donor);696 const caller = await helper.eth.createAccountWithBalance(donor);697 const receiver = helper.eth.createAccount();697 const receiver = helper.eth.createAccount();698 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Feeful-Transfer-From', '6', '6');698 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Feeful-Transfer-From', '6', '6');699 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);699 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);700700701 const result = await contract.methods.mint(caller).send();701 const result = await contract.methods.mint(caller).send();702 const tokenId = result.events.Transfer.returnValues.tokenId;702 const tokenId = result.events.Transfer.returnValues.tokenId;710 const caller = await helper.eth.createAccountWithBalance(donor);710 const caller = await helper.eth.createAccountWithBalance(donor);711 const receiver = helper.eth.createAccount();711 const receiver = helper.eth.createAccount();712 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Feeful-Transfer', '6', '6');712 const {collectionAddress} = await helper.eth.createRFTCollection(caller, 'Feeful-Transfer', '6', '6');713 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);713 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);714714715 const result = await contract.methods.mint(caller).send();715 const result = await contract.methods.mint(caller).send();716 const tokenId = result.events.Transfer.returnValues.tokenId;716 const tokenId = result.events.Transfer.returnValues.tokenId;754 },754 },755 );755 );756756757 const contract = helper.ethNativeContract.collectionById(collection.collectionId, 'rft', caller);757 const contract = await helper.ethNativeContract.collectionById(collection.collectionId, 'rft', caller);758 const name = await contract.methods.name().call();758 const name = await contract.methods.name().call();759 expect(name).to.equal('Leviathan');759 expect(name).to.equal('Leviathan');760 });760 });779 },779 },780 );780 );781781782 const contract = helper.ethNativeContract.collectionById(collectionId, 'rft', caller);782 const contract = await helper.ethNativeContract.collectionById(collectionId, 'rft', caller);783 const symbol = await contract.methods.symbol().call();783 const symbol = await contract.methods.symbol().call();784 expect(symbol).to.equal('12');784 expect(symbol).to.equal('12');785 });785 });808 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});808 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});809809810 const address = helper.ethAddress.fromCollectionId(collection.collectionId);810 const address = helper.ethAddress.fromCollectionId(collection.collectionId);811 const contract = helper.ethNativeContract.collection(address, 'rft');811 const contract = await helper.ethNativeContract.collection(address, 'rft');812812813 const ownerCross = helper.ethCrossAccount.fromAddress(owner);813 const ownerCross = helper.ethCrossAccount.fromAddress(owner);814814830 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});830 const token = await collection.mintToken(minter, 100n, {Ethereum: owner});831831832 const address = helper.ethAddress.fromCollectionId(collection.collectionId);832 const address = helper.ethAddress.fromCollectionId(collection.collectionId);833 const contract = helper.ethNativeContract.collection(address, 'rft');833 const contract = await helper.ethNativeContract.collection(address, 'rft');834834835 const ownerCross = helper.ethCrossAccount.fromAddress(owner);835 const ownerCross = helper.ethCrossAccount.fromAddress(owner);836 const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);836 const recieverCross = helper.ethCrossAccount.fromKeyringPair(receiver);tests/src/eth/reFungibleToken.test.tsdiffbeforeafterboth38 const collection = await helper.rft.mintCollection(alice, {tokenPrefix: 'MUON'});38 const collection = await helper.rft.mintCollection(alice, {tokenPrefix: 'MUON'});39 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: caller});39 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: caller});404041 const contract = helper.ethNativeContract.rftTokenById(collection.collectionId, tokenId, caller);41 const contract = await helper.ethNativeContract.rftTokenById(collection.collectionId, tokenId, caller);42 const totalSupply = await contract.methods.totalSupply().call();42 const totalSupply = await contract.methods.totalSupply().call();43 expect(totalSupply).to.equal('200');43 expect(totalSupply).to.equal('200');44 });44 });48 const collection = await helper.rft.mintCollection(alice, {tokenPrefix: 'MUON'});48 const collection = await helper.rft.mintCollection(alice, {tokenPrefix: 'MUON'});49 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: caller});49 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: caller});505051 const contract = helper.ethNativeContract.rftTokenById(collection.collectionId, tokenId, caller);51 const contract = await helper.ethNativeContract.rftTokenById(collection.collectionId, tokenId, caller);52 const balance = await contract.methods.balanceOf(caller).call();52 const balance = await contract.methods.balanceOf(caller).call();53 expect(balance).to.equal('200');53 expect(balance).to.equal('200');54 });54 });58 const collection = await helper.rft.mintCollection(alice, {tokenPrefix: 'MUON'});58 const collection = await helper.rft.mintCollection(alice, {tokenPrefix: 'MUON'});59 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: caller});59 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: caller});606061 const contract = helper.ethNativeContract.rftTokenById(collection.collectionId, tokenId, caller);61 const contract = await helper.ethNativeContract.rftTokenById(collection.collectionId, tokenId, caller);62 const decimals = await contract.methods.decimals().call();62 const decimals = await contract.methods.decimals().call();63 expect(decimals).to.equal('0');63 expect(decimals).to.equal('0');64 });64 });81 const receiver = helper.eth.createAccount();81 const receiver = helper.eth.createAccount();828283 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, 'Mint collection', 'a', 'b', baseUri);83 const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleRFTCollection(owner, 'Mint collection', 'a', 'b', baseUri);84 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', owner);84 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);858586 const result = await contract.methods.mint(receiver).send();86 const result = await contract.methods.mint(receiver).send();8787143 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});143 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});144144145 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);145 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);146 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);146 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);147147148 {148 {149 const result = await contract.methods.approve(spender, 100).send({from: owner});149 const result = await contract.methods.approve(spender, 100).send({from: owner});172 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});172 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});173173174 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);174 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);175 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);175 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);176176177 {177 {178 const result = await contract.methods.approveCross(spenderCrossEth, 100).send({from: owner});178 const result = await contract.methods.approveCross(spenderCrossEth, 100).send({from: owner});216 const token = await collection.mintToken(alice, 100n, {Ethereum: owner});216 const token = await collection.mintToken(alice, 100n, {Ethereum: owner});217217218 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);218 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);219 const tokenEvm = helper.ethNativeContract.rftToken(tokenAddress, owner);219 const tokenEvm = await helper.ethNativeContract.rftToken(tokenAddress, owner);220220221 await expect(tokenEvm.methods.approveCross(nonOwnerCross, 20).call({from: nonOwner})).to.be.rejectedWith('CantApproveMoreThanOwned');221 await expect(tokenEvm.methods.approveCross(nonOwnerCross, 20).call({from: nonOwner})).to.be.rejectedWith('CantApproveMoreThanOwned');222 });222 });239 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});239 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});240240241 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);241 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);242 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);242 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);243243244 await contract.methods.approve(spender, 100).send({from: owner});244 await contract.methods.approve(spender, 100).send({from: owner});245 245312 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});312 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});313313314 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);314 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);315 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);315 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);316316317 // 1. Can transfer to plain ethereum or cross-ethereum account:317 // 1. Can transfer to plain ethereum or cross-ethereum account:318 {318 {330 expect(+receiverBalance).to.equal(50);330 expect(+receiverBalance).to.equal(50);331 }331 }332 332333 // 2. Can transfer to cross-substrate account: 333 // 2. Can transfer to cross-substrate account:334 if(isCross) {334 if(isCross) {335 const result = await contract.methods.transferCross(receiverCrossSub, 50).send({from: owner});335 const result = await contract.methods.transferCross(receiverCrossSub, 50).send({from: owner});336 // Check events:336 // Check events:365 const tokenAddress1 = helper.ethAddress.fromTokenId(collection.collectionId, rftOwner.tokenId);365 const tokenAddress1 = helper.ethAddress.fromTokenId(collection.collectionId, rftOwner.tokenId);366 const tokenAddress2 = helper.ethAddress.fromTokenId(collection.collectionId, rftReceiver.tokenId);366 const tokenAddress2 = helper.ethAddress.fromTokenId(collection.collectionId, rftReceiver.tokenId);367 const tokenAddressNonExist = helper.ethAddress.fromTokenId(collection.collectionId, tokenIdNonExist);367 const tokenAddressNonExist = helper.ethAddress.fromTokenId(collection.collectionId, tokenIdNonExist);368 const tokenEvmOwner = helper.ethNativeContract.rftToken(tokenAddress1, owner);368 const tokenEvmOwner = await helper.ethNativeContract.rftToken(tokenAddress1, owner);369 const tokenEvmReceiver = helper.ethNativeContract.rftToken(tokenAddress2, owner);369 const tokenEvmReceiver = await helper.ethNativeContract.rftToken(tokenAddress2, owner);370 const tokenEvmNonExist = helper.ethNativeContract.rftToken(tokenAddressNonExist, owner);370 const tokenEvmNonExist = await helper.ethNativeContract.rftToken(tokenAddressNonExist, owner);371 371372 // 1. Can transfer zero amount (EIP-20):372 // 1. Can transfer zero amount (EIP-20):373 await tokenEvmOwner.methods[testCase](isCross ? receiverCrossEth : receiverEth, 0).send({from: owner});373 await tokenEvmOwner.methods[testCase](isCross ? receiverCrossEth : receiverEth, 0).send({from: owner});397 const {tokenId} = await collection.mintToken(alice, 100n, {Ethereum: owner});397 const {tokenId} = await collection.mintToken(alice, 100n, {Ethereum: owner});398398399 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);399 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);400 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);400 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);401401402 await contract.methods.repartition(200).send({from: owner});402 await contract.methods.repartition(200).send({from: owner});403 expect(+await contract.methods.balanceOf(owner).call()).to.be.equal(200);403 expect(+await contract.methods.balanceOf(owner).call()).to.be.equal(200);422 const {tokenId} = await collection.mintToken(alice, 100n, {Ethereum: owner});422 const {tokenId} = await collection.mintToken(alice, 100n, {Ethereum: owner});423423424 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);424 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);425 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);425 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);426426427 const result = await contract.methods.repartition(200).send();427 const result = await contract.methods.repartition(200).send();428428439 const {tokenId} = await collection.mintToken(alice, 100n, {Ethereum: owner});439 const {tokenId} = await collection.mintToken(alice, 100n, {Ethereum: owner});440440441 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);441 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);442 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);442 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);443443444 const result = await contract.methods.repartition(50).send();444 const result = await contract.methods.repartition(50).send();445 const event = result.events.Transfer;445 const event = result.events.Transfer;453 const caller = await helper.eth.createAccountWithBalance(donor);453 const caller = await helper.eth.createAccountWithBalance(donor);454 const receiver = await helper.eth.createAccountWithBalance(donor);454 const receiver = await helper.eth.createAccountWithBalance(donor);455 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'Devastation', '6', '6');455 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(caller, 'Devastation', '6', '6');456 const contract = helper.ethNativeContract.collection(collectionAddress, 'rft', caller);456 const contract = await helper.ethNativeContract.collection(collectionAddress, 'rft', caller);457457458 const result = await contract.methods.mint(caller).send();458 const result = await contract.methods.mint(caller).send();459 const tokenId = result.events.Transfer.returnValues.tokenId;459 const tokenId = result.events.Transfer.returnValues.tokenId;460 const tokenAddress = helper.ethAddress.fromTokenId(collectionId, tokenId);460 const tokenAddress = helper.ethAddress.fromTokenId(collectionId, tokenId);461 const tokenContract = helper.ethNativeContract.rftToken(tokenAddress, caller);461 const tokenContract = await helper.ethNativeContract.rftToken(tokenAddress, caller);462462463 await tokenContract.methods.repartition(2).send();463 await tokenContract.methods.repartition(2).send();464 await tokenContract.methods.transfer(receiver, 1).send();464 await tokenContract.methods.transfer(receiver, 1).send();491 491492492493 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);493 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);494 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);494 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);495495496 {496 {497 await contract.methods.approveCross(spenderCrossEth, 100).send({from: owner});497 await contract.methods.approveCross(spenderCrossEth, 100).send({from: owner});504 const {tokenId} = await collection.mintToken(alice, 200n, {Substrate: ownerSub.address});504 const {tokenId} = await collection.mintToken(alice, 200n, {Substrate: ownerSub.address});505 await collection.approveToken(ownerSub, tokenId, {Ethereum: spender}, 100n);505 await collection.approveToken(ownerSub, tokenId, {Ethereum: spender}, 100n);506 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);506 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);507 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);507 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);508 508509 await expect(contract.methods.burnFromCross(ownerSubCross, 50).send({from: spender})).to.be.fulfilled;509 await expect(contract.methods.burnFromCross(ownerSubCross, 50).send({from: spender})).to.be.fulfilled;510 await expect(contract.methods.burnFromCross(ownerSubCross, 100).send({from: spender})).to.be.rejected;510 await expect(contract.methods.burnFromCross(ownerSubCross, 100).send({from: spender})).to.be.rejected;533 const {tokenId} = await collection.mintToken(alice, 100n, {Ethereum: owner});533 const {tokenId} = await collection.mintToken(alice, 100n, {Ethereum: owner});534534535 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);535 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);536 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);536 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);537537538 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.approve(spender, 100).send({from: owner}));538 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.approve(spender, 100).send({from: owner}));539 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));539 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));546 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});546 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});547547548 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);548 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);549 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);549 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);550550551 await contract.methods.approve(spender, 100).send({from: owner});551 await contract.methods.approve(spender, 100).send({from: owner});552552561 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});561 const {tokenId} = await collection.mintToken(alice, 200n, {Ethereum: owner});562562563 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);563 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, tokenId);564 const contract = helper.ethNativeContract.rftToken(tokenAddress, owner);564 const contract = await helper.ethNativeContract.rftToken(tokenAddress, owner);565565566 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.transfer(receiver, 100).send({from: owner}));566 const cost = await helper.eth.recordCallFee(owner, () => contract.methods.transfer(receiver, 100).send({from: owner}));567 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));567 expect(cost < BigInt(0.2 * Number(helper.balance.getOneTokenNominal())));587 const token = await collection.mintToken(alice, 200n);587 const token = await collection.mintToken(alice, 200n);588588589 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);589 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);590 const contract = helper.ethNativeContract.rftToken(tokenAddress);590 const contract = await helper.ethNativeContract.rftToken(tokenAddress);591591592 const events: any = [];592 const events: any = [];593 contract.events.allEvents((_: any, event: any) => {593 contract.events.allEvents((_: any, event: any) => {613 await token.approve(alice, {Substrate: bob.address}, 100n);613 await token.approve(alice, {Substrate: bob.address}, 100n);614614615 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);615 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);616 const contract = helper.ethNativeContract.rftToken(tokenAddress);616 const contract = await helper.ethNativeContract.rftToken(tokenAddress);617617618 const events: any = [];618 const events: any = [];619 contract.events.allEvents((_: any, event: any) => {619 contract.events.allEvents((_: any, event: any) => {644 const token = await collection.mintToken(alice, 200n);644 const token = await collection.mintToken(alice, 200n);645645646 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);646 const tokenAddress = helper.ethAddress.fromTokenId(collection.collectionId, token.tokenId);647 const contract = helper.ethNativeContract.rftToken(tokenAddress);647 const contract = await helper.ethNativeContract.rftToken(tokenAddress);648648649 const events: any = [];649 const events: any = [];650 contract.events.allEvents((_: any, event: any) => {650 contract.events.allEvents((_: any, event: any) => {678 const owner = await helper.eth.createAccountWithBalance(donor);678 const owner = await helper.eth.createAccountWithBalance(donor);679679680 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(owner, 'Sands', '', 'GRAIN');680 const {collectionId, collectionAddress} = await helper.eth.createRFTCollection(owner, 'Sands', '', 'GRAIN');681 const collectionContract = helper.ethNativeContract.collection(collectionAddress, 'rft', owner);681 const collectionContract = await helper.ethNativeContract.collection(collectionAddress, 'rft', owner);682682683 const result = await collectionContract.methods.mint(owner).send();683 const result = await collectionContract.methods.mint(owner).send();684 const tokenId = result.events.Transfer.returnValues.tokenId;684 const tokenId = result.events.Transfer.returnValues.tokenId;685685686 const tokenAddress = helper.ethAddress.fromTokenId(collectionId, tokenId);686 const tokenAddress = helper.ethAddress.fromTokenId(collectionId, tokenId);687 const tokenContract = helper.ethNativeContract.rftToken(tokenAddress, owner);687 const tokenContract = await helper.ethNativeContract.rftToken(tokenAddress, owner);688688689 expect(await tokenContract.methods.parentToken().call()).to.be.equal(collectionAddress);689 expect(await tokenContract.methods.parentToken().call()).to.be.equal(collectionAddress);690 expect(await tokenContract.methods.parentTokenId().call()).to.be.equal(tokenId);690 expect(await tokenContract.methods.parentTokenId().call()).to.be.equal(tokenId);tests/src/eth/sponsoring.test.tsdiffbeforeafterboth373738 const flipper = await helper.eth.deployFlipper(owner);38 const flipper = await helper.eth.deployFlipper(owner);393940 const helpers = helper.ethNativeContract.contractHelpers(owner);40 const helpers = await helper.ethNativeContract.contractHelpers(owner);414142 await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});42 await helpers.methods.toggleAllowlist(flipper.options.address, true).send({from: owner});43 await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({from: owner});43 await helpers.methods.toggleAllowed(flipper.options.address, caller, true).send({from: owner});717172 const collector = await helper.eth.deployCollectorContract(owner);72 const collector = await helper.eth.deployCollectorContract(owner);737374 const helpers = helper.ethNativeContract.contractHelpers(owner);74 const helpers = await helper.ethNativeContract.contractHelpers(owner);757576 await helpers.methods.toggleAllowlist(collector.options.address, true).send({from: owner});76 await helpers.methods.toggleAllowlist(collector.options.address, true).send({from: owner});77 await helpers.methods.toggleAllowed(collector.options.address, caller, true).send({from: owner});77 await helpers.methods.toggleAllowed(collector.options.address, caller, true).send({from: owner});tests/src/eth/tokenProperties.test.tsdiffbeforeafterboth76 const owner = await helper.eth.createAccountWithBalance(donor);76 const owner = await helper.eth.createAccountWithBalance(donor);77 7778 const {collectionId, collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');78 const {collectionId, collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');79 const collection = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);79 const collection = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);808081 await collection.methods.setTokenPropertyPermissions([81 await collection.methods.setTokenPropertyPermissions([82 ['testKey_0', [82 ['testKey_0', [139 const caller = await helper.ethCrossAccount.createAccountWithBalance(donor);139 const caller = await helper.ethCrossAccount.createAccountWithBalance(donor);140 140141 const {collectionId, collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');141 const {collectionId, collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');142 const collection = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);142 const collection = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);143 await collection.methods.addCollectionAdminCross(caller).send({from: owner});143 await collection.methods.addCollectionAdminCross(caller).send({from: owner});144144145 await collection.methods.setTokenPropertyPermissions([145 await collection.methods.setTokenPropertyPermissions([226 await collection.addAdmin(alice, {Ethereum: caller});226 await collection.addAdmin(alice, {Ethereum: caller});227 const token = await collection.mintToken(alice);227 const token = await collection.mintToken(alice);228 228229 const collectionEvm = helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller, testCase.method === 'setProperty');229 const collectionEvm = await helper.ethNativeContract.collectionById(collection.collectionId, 'nft', caller, testCase.method === 'setProperty');230 230231 await collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).send({from: caller});231 await collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).send({from: caller});232 232260 await collection.addAdmin(alice, {Ethereum: caller});260 await collection.addAdmin(alice, {Ethereum: caller});261 261262 const address = helper.ethAddress.fromCollectionId(collection.collectionId);262 const address = helper.ethAddress.fromCollectionId(collection.collectionId);263 const contract = helper.ethNativeContract.collection(address, testCase.mode, caller);263 const contract = await helper.ethNativeContract.collection(address, testCase.mode, caller);264 264265 expect(await contract.methods.properties(token.tokenId, []).call()).to.be.deep.equal([]);265 expect(await contract.methods.properties(token.tokenId, []).call()).to.be.deep.equal([]);266 266306 await collection.addAdmin(alice, {Ethereum: caller});306 await collection.addAdmin(alice, {Ethereum: caller});307307308 const address = helper.ethAddress.fromCollectionId(collection.collectionId);308 const address = helper.ethAddress.fromCollectionId(collection.collectionId);309 const contract = helper.ethNativeContract.collection(address, testCase.mode, caller);309 const contract = await helper.ethNativeContract.collection(address, testCase.mode, caller);310310311 await contract.methods.deleteProperties(token.tokenId, ['testKey', 'testKey_1']).send({from: caller});311 await contract.methods.deleteProperties(token.tokenId, ['testKey', 'testKey_1']).send({from: caller});312312329 await token.setProperties(alice, [{key: 'testKey', value: 'testValue'}]);329 await token.setProperties(alice, [{key: 'testKey', value: 'testValue'}]);330330331 const address = helper.ethAddress.fromCollectionId(collection.collectionId);331 const address = helper.ethAddress.fromCollectionId(collection.collectionId);332 const contract = helper.ethNativeContract.collection(address, 'nft', caller);332 const contract = await helper.ethNativeContract.collection(address, 'nft', caller);333333334 const value = await contract.methods.property(token.tokenId, 'testKey').call();334 const value = await contract.methods.property(token.tokenId, 'testKey').call();335 expect(value).to.equal(helper.getWeb3().utils.toHex('testValue'));335 expect(value).to.equal(helper.getWeb3().utils.toHex('testValue'));374 }); 374 });375 token = await aliceCollection.mintToken(alice);375 token = await aliceCollection.mintToken(alice);376 await token.setProperties(alice, tokenProps);376 await token.setProperties(alice, tokenProps);377 collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, true);377 collectionEvm = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, true);378 });378 });379 });379 });380380384 ].map(testCase =>384 ].map(testCase =>385 itEth(`[${testCase.method}] Cannot set properties of non-owned collection`, async ({helper}) => {385 itEth(`[${testCase.method}] Cannot set properties of non-owned collection`, async ({helper}) => {386 caller = await helper.eth.createAccountWithBalance(donor);386 caller = await helper.eth.createAccountWithBalance(donor);387 collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, true);387 collectionEvm = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, true);388 // Caller not an owner and not an admin, so he cannot set properties:388 // Caller not an owner and not an admin, so he cannot set properties:389 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).call({from: caller})).to.be.rejectedWith('NoPermission');389 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).call({from: caller})).to.be.rejectedWith('NoPermission');390 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).send({from: caller})).to.be.rejected;390 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).send({from: caller})).to.be.rejected;401 ].map(testCase =>401 ].map(testCase =>402 itEth(`[${testCase.method}] Cannot set non-existing properties`, async ({helper}) => {402 itEth(`[${testCase.method}] Cannot set non-existing properties`, async ({helper}) => {403 caller = await helper.eth.createAccountWithBalance(donor);403 caller = await helper.eth.createAccountWithBalance(donor);404 collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, true);404 collectionEvm = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, true);405 await helper.collection.addAdmin(alice, aliceCollection.collectionId, {Ethereum: caller});405 await helper.collection.addAdmin(alice, aliceCollection.collectionId, {Ethereum: caller});406406407 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).call({from: caller})).to.be.rejectedWith('NoPermission');407 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).call({from: caller})).to.be.rejectedWith('NoPermission');419 ].map(testCase => 419 ].map(testCase =>420 itEth(`[${testCase.method}] Cannot delete properties of non-owned collection`, async ({helper}) => {420 itEth(`[${testCase.method}] Cannot delete properties of non-owned collection`, async ({helper}) => {421 caller = await helper.eth.createAccountWithBalance(donor);421 caller = await helper.eth.createAccountWithBalance(donor);422 collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, testCase.method == 'deleteProperty');422 collectionEvm = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, testCase.method == 'deleteProperty');423 // Caller not an owner and not an admin, so he cannot set properties:423 // Caller not an owner and not an admin, so he cannot set properties:424 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).call({from: caller})).to.be.rejectedWith('NoPermission');424 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).call({from: caller})).to.be.rejectedWith('NoPermission');425 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).send({from: caller})).to.be.rejected;425 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).send({from: caller})).to.be.rejected;436 ].map(testCase => 436 ].map(testCase =>437 itEth(`[${testCase.method}] Cannot delete non-existing properties`, async ({helper}) => {437 itEth(`[${testCase.method}] Cannot delete non-existing properties`, async ({helper}) => {438 caller = await helper.eth.createAccountWithBalance(donor);438 caller = await helper.eth.createAccountWithBalance(donor);439 collectionEvm = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, testCase.method == 'deleteProperty');439 collectionEvm = await helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(aliceCollection.collectionId), 'nft', caller, testCase.method == 'deleteProperty');440 await helper.collection.addAdmin(alice, aliceCollection.collectionId, {Ethereum: caller});440 await helper.collection.addAdmin(alice, aliceCollection.collectionId, {Ethereum: caller});441 // Caller cannot delete non-existing properties:441 // Caller cannot delete non-existing properties:442 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).call({from: caller})).to.be.rejectedWith('NoPermission');442 await expect(collectionEvm.methods[testCase.method](token.tokenId, ...testCase.methodParams).call({from: caller})).to.be.rejectedWith('NoPermission');456 const caller = await helper.eth.createAccountWithBalance(donor);456 const caller = await helper.eth.createAccountWithBalance(donor);457 457458 const {collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');458 const {collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');459 const collection = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);459 const collection = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);460 460461 await expect(collection.methods.setTokenPropertyPermissions([461 await expect(collection.methods.setTokenPropertyPermissions([462 ['testKey_0', [462 ['testKey_0', [475 const owner = await helper.eth.createAccountWithBalance(donor);475 const owner = await helper.eth.createAccountWithBalance(donor);476 476477 const {collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');477 const {collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');478 const collection = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);478 const collection = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);479 479480 await expect(collection.methods.setTokenPropertyPermissions([480 await expect(collection.methods.setTokenPropertyPermissions([481 // "Space" is invalid character481 // "Space" is invalid character495 const owner = await helper.eth.createAccountWithBalance(donor);495 const owner = await helper.eth.createAccountWithBalance(donor);496 496497 const {collectionAddress, collectionId} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');497 const {collectionAddress, collectionId} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');498 const collection = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);498 const collection = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);499 499500 // 1. Owner sets strict property-permissions:500 // 1. Owner sets strict property-permissions:501 await collection.methods.setTokenPropertyPermissions([501 await collection.methods.setTokenPropertyPermissions([531 const owner = await helper.eth.createAccountWithBalance(donor);531 const owner = await helper.eth.createAccountWithBalance(donor);532 532533 const {collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');533 const {collectionAddress} = await helper.eth.createCollection(testCase.mode, owner, 'A', 'B', 'C');534 const collection = helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);534 const collection = await helper.ethNativeContract.collection(collectionAddress, testCase.mode, owner);535 535536 // 1. Owner sets strict property-permissions:536 // 1. Owner sets strict property-permissions:537 await collection.methods.setTokenPropertyPermissions([537 await collection.methods.setTokenPropertyPermissions([tests/src/eth/util/playgrounds/unique.dev.tsdiffbeforeafterboth353536class EthGroupBase {36class EthGroupBase {37 helper: EthUniqueHelper;37 helper: EthUniqueHelper;38 gasPrice?: string;383939 constructor(helper: EthUniqueHelper) {40 constructor(helper: EthUniqueHelper) {40 this.helper = helper;41 this.helper = helper;41 }42 }43 async getGasPrice() {44 if (this.gasPrice)45 return this.gasPrice;46 this.gasPrice = await this.helper.getWeb3().eth.getGasPrice();47 return this.gasPrice;48 }42}49}435051function unlimitedMoneyHack<C>(_contract: C): C {52 const contract = _contract as any;53 // Hack: fight against gasPrice override54 for (const method in contract.methods) {55 const _method = contract.methods[method];56 contract.methods[method] = function (...args: any) {57 const encodedCall = _method.call(this, ...args);58 const _call = encodedCall.call;59 encodedCall.call = function (...args: any) {60 if (args.length === 0) {61 return _call.call(this, {gasPrice: '0'});62 }63 // No support for callback/defaultBlock, they may be placed as first argument64 if (typeof args[0] !== 'object')65 throw new Error('only options are supported');66 args[0].gasPrice = '0';67 return _call.call(this, ...args);68 };69 return encodedCall;70 };71 }72 return contract;73}447445class ContractGroup extends EthGroupBase {75class ContractGroup extends EthGroupBase {46 async findImports(imports?: ContractImports[]){76 async findImports(imports?: ContractImports[]){104 data: object,134 data: object,105 from: signer,135 from: signer,106 gas: gas ?? this.helper.eth.DEFAULT_GAS,136 gas: gas ?? this.helper.eth.DEFAULT_GAS,137 gasPrice: await this.getGasPrice(),107 });138 });108 return await contract.deploy({data: object}).send({from: signer});139 return unlimitedMoneyHack(await contract.deploy({data: object}).send({from: signer}));109 }140 }110141111}142}112143113class NativeContractGroup extends EthGroupBase {144class NativeContractGroup extends EthGroupBase {114145115 contractHelpers(caller: string): Contract {146 async contractHelpers(caller: string): Promise<Contract> {116 const web3 = this.helper.getWeb3();147 const web3 = this.helper.getWeb3();117 return new web3.eth.Contract(contractHelpersAbi as any, this.helper.getApi().consts.evmContractHelpers.contractAddress.toString(), {from: caller, gas: this.helper.eth.DEFAULT_GAS});148 return unlimitedMoneyHack(new web3.eth.Contract(contractHelpersAbi as any, this.helper.getApi().consts.evmContractHelpers.contractAddress.toString(), {149 from: caller,150 gas: this.helper.eth.DEFAULT_GAS,151 gasPrice: await this.getGasPrice(),152 }));118 }153 }119154120 collectionHelpers(caller: string) {155 async collectionHelpers(caller: string) {121 const web3 = this.helper.getWeb3();156 const web3 = this.helper.getWeb3();122 return new web3.eth.Contract(collectionHelpersAbi as any, this.helper.getApi().consts.common.contractAddress.toString(), {from: caller, gas: this.helper.eth.DEFAULT_GAS});157 return unlimitedMoneyHack(new web3.eth.Contract(collectionHelpersAbi as any, this.helper.getApi().consts.common.contractAddress.toString(), {158 from: caller,159 gas: this.helper.eth.DEFAULT_GAS,160 gasPrice: await this.getGasPrice(),161 }));123 }162 }124163125 collection(address: string, mode: TCollectionMode, caller?: string, mergeDeprecated = false): Contract {164 async collection(address: string, mode: TCollectionMode, caller?: string, mergeDeprecated = false) {126 let abi = {165 let abi = {127 'nft': nonFungibleAbi,166 'nft': nonFungibleAbi,128 'rft': refungibleAbi,167 'rft': refungibleAbi,137 abi = [...abi,...deprecated];176 abi = [...abi,...deprecated];138 }177 }139 const web3 = this.helper.getWeb3();178 const web3 = this.helper.getWeb3();140 return new web3.eth.Contract(abi as any, address, {gas: this.helper.eth.DEFAULT_GAS, ...(caller ? {from: caller} : {})});179 return unlimitedMoneyHack(new web3.eth.Contract(abi as any, address, {180 gas: this.helper.eth.DEFAULT_GAS,181 gasPrice: await this.getGasPrice(),182 ...(caller ? {from: caller} : {}),183 }));141 }184 }142185143 collectionById(collectionId: number, mode: 'nft' | 'rft' | 'ft', caller?: string, mergeDeprecated = false): Contract {186 collectionById(collectionId: number, mode: 'nft' | 'rft' | 'ft', caller?: string, mergeDeprecated = false) {144 return this.collection(this.helper.ethAddress.fromCollectionId(collectionId), mode, caller, mergeDeprecated);187 return this.collection(this.helper.ethAddress.fromCollectionId(collectionId), mode, caller, mergeDeprecated);145 }188 }146189147 rftToken(address: string, caller?: string): Contract {190 async rftToken(address: string, caller?: string) {148 const web3 = this.helper.getWeb3();191 const web3 = this.helper.getWeb3();149 return new web3.eth.Contract(refungibleTokenAbi as any, address, {gas: this.helper.eth.DEFAULT_GAS, ...(caller ? {from: caller} : {})});192 return unlimitedMoneyHack(new web3.eth.Contract(refungibleTokenAbi as any, address, {193 gas: this.helper.eth.DEFAULT_GAS,194 gasPrice: await this.getGasPrice(),195 ...(caller ? {from: caller} : {}),196 }));150 }197 }151198152 rftTokenById(collectionId: number, tokenId: number, caller?: string): Contract {199 rftTokenById(collectionId: number, tokenId: number, caller?: string) {153 return this.rftToken(this.helper.ethAddress.fromTokenId(collectionId, tokenId), caller);200 return this.rftToken(this.helper.ethAddress.fromTokenId(collectionId, tokenId), caller);154 }201 }155}202}177 }224 }178225179 async getCollectionCreationFee(signer: string) {226 async getCollectionCreationFee(signer: string) {180 const collectionHelper = this.helper.ethNativeContract.collectionHelpers(signer);227 const collectionHelper = await this.helper.ethNativeContract.collectionHelpers(signer);181 return await collectionHelper.methods.collectionCreationFee().call();228 return await collectionHelper.methods.collectionCreationFee().call();182 }229 }183230210257211 async createCollection(mode: TCollectionMode, signer: string, name: string, description: string, tokenPrefix: string, decimals = 18): Promise<{ collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {258 async createCollection(mode: TCollectionMode, signer: string, name: string, description: string, tokenPrefix: string, decimals = 18): Promise<{ collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {212 const collectionCreationPrice = this.helper.balance.getCollectionCreationPrice();259 const collectionCreationPrice = this.helper.balance.getCollectionCreationPrice();213 const collectionHelper = this.helper.ethNativeContract.collectionHelpers(signer);260 const collectionHelper = await this.helper.ethNativeContract.collectionHelpers(signer);214 const functionName: string = this.createCollectionMethodName(mode);261 const functionName: string = this.createCollectionMethodName(mode);215262216 const functionParams = mode === 'ft' ? [name, decimals, description, tokenPrefix] : [name, description, tokenPrefix];263 const functionParams = mode === 'ft' ? [name, decimals, description, tokenPrefix] : [name, description, tokenPrefix];228 }275 }229276230 async createERC721MetadataCompatibleNFTCollection(signer: string, name: string, description: string, tokenPrefix: string, baseUri: string): Promise<{collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {277 async createERC721MetadataCompatibleNFTCollection(signer: string, name: string, description: string, tokenPrefix: string, baseUri: string): Promise<{collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {231 const collectionHelper = this.helper.ethNativeContract.collectionHelpers(signer);278 const collectionHelper = await this.helper.ethNativeContract.collectionHelpers(signer);232279233 const {collectionId, collectionAddress, events} = await this.createCollection('nft', signer, name, description, tokenPrefix);280 const {collectionId, collectionAddress, events} = await this.createCollection('nft', signer, name, description, tokenPrefix);234281246 }293 }247294248 async createERC721MetadataCompatibleRFTCollection(signer: string, name: string, description: string, tokenPrefix: string, baseUri: string): Promise<{collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {295 async createERC721MetadataCompatibleRFTCollection(signer: string, name: string, description: string, tokenPrefix: string, baseUri: string): Promise<{collectionId: number, collectionAddress: string, events: NormalizedEvent[] }> {249 const collectionHelper = this.helper.ethNativeContract.collectionHelpers(signer);296 const collectionHelper = await this.helper.ethNativeContract.collectionHelpers(signer);250297251 const {collectionId, collectionAddress, events} = await this.createCollection('rft', signer, name, description, tokenPrefix);298 const {collectionId, collectionAddress, events} = await this.createCollection('rft', signer, name, description, tokenPrefix);252299tests/src/maintenanceMode.seqtest.tsdiffbeforeafterboth232 await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);232 await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);233 expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;233 expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;234234235 const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);235 const contract = await helper.ethNativeContract.collection(collectionAddress, 'nft', owner);236 const tokenId = await contract.methods.nextTokenId().call();236 const tokenId = await contract.methods.nextTokenId().call();237 expect(tokenId).to.be.equal('1');237 expect(tokenId).to.be.equal('1');238238tests/yarn.lockdiffbeforeafterboth4811 randombytes "^2.1.0"4811 randombytes "^2.1.0"4812 utf8 "3.0.0"4812 utf8 "3.0.0"481348134814web3@^1.8.0:4814web3@^1.8.1:4815 version "1.8.1"4815 version "1.8.1"4816 resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.1.tgz#8ea67215ef5f3a6f6d3381800b527242ea22885a"4816 resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.1.tgz#8ea67215ef5f3a6f6d3381800b527242ea22885a"4817 integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ==4817 integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ==