From 7820fe263b153be155c44c3f8997762892cf661c Mon Sep 17 00:00:00 2001 From: Alessandro Siniscalchi Date: Wed, 9 Aug 2023 10:17:05 +0200 Subject: [PATCH 1/3] release/v0.0.6 -> main (#117) * Delete polkadot-launch directory * Remove `template` mentions from runtime * Fix clippy * first hello world test * fmt * checking the selectors * testdata updated * renaming * added testdata for owner_of * removed a type declaration * fmt * using macro to help using behavior pattern testing * usign macro * refactoring * refactoring * main tests covered * name refactoring * removed unused dependency * removed testdata * add test on calling unexsiting selector * removed unused code * fix returning errors message * fmt * adding explicit value transferred in tests, and making explicit both methods supported * removing unreachable path * added tests that the implemented methods are non-payable * using closures * refactoring * declare name in temoplate * refactoring PrecompileMock -> Mock * created handle_from_input * added docuemntation * renaming: define_precompile_mock -> define_precompile_mock_simple * renaming: define_precompile_mock_closure -> impl_precompile_mock * name refactoring * refactoring: handle_from_input use create_mock_handle * refactoring: handle_from_input -> create_mock_handle_from_input * comment the inputs * using constants * first try * add create collection returning id to trati * fix compilation * trait crate_collection2 returns Result * test on create collection failure * create collection returns an id * precompiled return from pallet * added create_collection returning id in solidity interface * assign caller as owner * remove legacy create collection in precompile * removed create_collection2 from trait * compiling * compiling * create collection extrinsic create consecutive collections * removed legacy code from solidity interface * create file traits.rs * trait LivingAssetOwnership -> CollectionManager * doc: solidity * documentation * better tests * better testing * fix typo * conversion collection_id to address * removed owner of from precompile * adding test that create_collection is non-payable * checking err is as expected: "non payable" * fixing a test that was failing for a different reason, as shown by testing that the error received was as expected * fix compilation * fix compilation * adding event * added event Create Collection * fmt * copied MockHandle to implement log function * GRANDPA bridge (#106) * Only client side compile errors * Upgrade to v1.0.0 * Add grandpa bridge to runtime * Fix clippy and tests * Fix lints * Fix tests and clippy * Remove comment * test log selector * remove dependency * Mock logs logs * testing event * removed duplicated test * using succeed utility * collection_it_to_addressis private * return value is correctly encoded as a n Address (#109) * return value is correctly encoded as a n Address * removed outdated comment * fix the documentation * precompile erc 721 only owner_of (#104) * create mock and testing * first test * testing ethereum reserved addresses * refactoring * refactoring * refactoring tests * fmt * erc721 starting point * fmt * compiling * check selectors * create trait Erc721 * Erc721Precompile * set mocks * first implermentation * first integration of erc721 in the runtime * fmt * check on the collection id * test on extract owner form asset_id * fix tests * test for erc721 trait * fix compilation * refactoring * returning address * return value is correctly encoded as a n Address * is_erc721_contract is not member of PrecompoileSet * test on precompiled contracts * erc721 returns hardcoded address * refactoring * testing return of asset ownership * fix errors * remove unused use * refactoring * rewriting testing mod * refactoring * moving check for cllection address in pallet * collection address prefix changed * test passing * test passing * refactoring tests * do not panic the runtime * fmt * solidity tokenId -> _tokenId * erc721 functions are views * update docs * sp-core in std , removed duplicate function * documentaetion * using compilator type ifer * compiler infer the size of the array * added to std feature * rename variable * trait documentation * fmt * runtime spec to 4 * fix name on LivingAssetsOwnership pallet (#120) --------- Co-authored-by: dastan <137785454+dastanfv@users.noreply.github.com> Co-authored-by: Dastan Samatov Co-authored-by: Toni Mateos --- Cargo.lock | 1751 +++++++++++------ Cargo.toml | 288 +-- node/Cargo.toml | 1 + node/src/chain_spec.rs | 21 +- node/src/command.rs | 57 +- node/src/rpc/eth.rs | 5 +- node/src/service.rs | 30 +- pallets/living-assets-ownership/Cargo.toml | 17 +- .../living-assets-ownership/src/functions.rs | 43 +- pallets/living-assets-ownership/src/lib.rs | 170 +- pallets/living-assets-ownership/src/mock.rs | 17 +- pallets/living-assets-ownership/src/tests.rs | 260 ++- pallets/living-assets-ownership/src/traits.rs | 48 + polkadot-launch/config.json | 39 - precompile/erc721/Cargo.toml | 55 + precompile/erc721/contracts/IERC721.sol | 12 + precompile/erc721/src/lib.rs | 70 + precompile/erc721/src/tests.rs | 125 ++ precompile/living-assets/Cargo.toml | 7 +- .../contracts/LivingAssetsOwnership.sol | 26 +- .../LivingAssetsOwnershipWrapper.sol | 23 - precompile/living-assets/src/lib.rs | 102 +- precompile/living-assets/src/tests.rs | 185 ++ precompile/utils/Cargo.toml | 5 +- precompile/utils/macro/src/lib.rs | 17 +- precompile/utils/src/data.rs | 6 +- precompile/utils/src/lib.rs | 151 +- precompile/utils/src/testing.rs | 408 +--- runtime/Cargo.toml | 34 +- runtime/src/lib.rs | 132 +- runtime/src/precompiles/mock.rs | 141 ++ .../{precompiles.rs => precompiles/mod.rs} | 26 +- runtime/src/precompiles/test.rs | 29 + runtime/src/xcm_config.rs | 25 +- rust-toolchain.toml | 5 - 35 files changed, 2659 insertions(+), 1672 deletions(-) create mode 100644 pallets/living-assets-ownership/src/traits.rs delete mode 100644 polkadot-launch/config.json create mode 100644 precompile/erc721/Cargo.toml create mode 100644 precompile/erc721/contracts/IERC721.sol create mode 100644 precompile/erc721/src/lib.rs create mode 100644 precompile/erc721/src/tests.rs delete mode 100644 precompile/living-assets/contracts/LivingAssetsOwnershipWrapper.sol create mode 100644 precompile/living-assets/src/tests.rs create mode 100644 runtime/src/precompiles/mock.rs rename runtime/src/{precompiles.rs => precompiles/mod.rs} (75%) create mode 100644 runtime/src/precompiles/test.rs delete mode 100644 rust-toolchain.toml diff --git a/Cargo.lock b/Cargo.lock index 2009360d..c99b7a51 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -279,12 +279,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" -[[package]] -name = "array-bytes" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" - [[package]] name = "array-bytes" version = "6.1.0" @@ -555,7 +549,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "hash-db 0.16.0", "log", @@ -736,6 +730,240 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bp-beefy" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "binary-merkle-tree", + "bp-runtime", + "frame-support", + "pallet-beefy-mmr", + "pallet-mmr", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-beefy", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-bridge-hub-cumulus" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "frame-support", + "frame-system", + "polkadot-primitives", + "sp-api", + "sp-std", +] + +[[package]] +name = "bp-evochain" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-beefy", + "bp-header-chain", + "bp-messages", + "bp-runtime", + "fixed-hash", + "fp-account", + "frame-support", + "frame-system", + "hash256-std-hasher", + "impl-codec", + "impl-serde", + "parity-util-mem", + "scale-info", + "serde", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "bp-header-chain" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-runtime", + "finality-grandpa", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-grandpa", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-messages" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-header-chain", + "bp-runtime", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-std", +] + +[[package]] +name = "bp-ownership-parachain" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-bridge-hub-cumulus", + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "frame-support", + "frame-system", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-parachains" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-header-chain", + "bp-polkadot-core", + "bp-runtime", + "frame-support", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-polkadot-core" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "parity-util-mem", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-relayers" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-runtime" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "frame-support", + "frame-system", + "hash-db 0.16.0", + "impl-trait-for-tuples", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "trie-db", +] + +[[package]] +name = "bp-test-utils" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-header-chain", + "bp-parachains", + "bp-polkadot-core", + "bp-runtime", + "ed25519-dalek", + "finality-grandpa", + "parity-scale-codec", + "sp-application-crypto", + "sp-consensus-grandpa", + "sp-core", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "bridge-runtime-common" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-header-chain", + "bp-messages", + "bp-parachains", + "bp-polkadot-core", + "bp-relayers", + "bp-runtime", + "frame-support", + "frame-system", + "hash-db 0.16.0", + "log", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-bridge-parachains", + "pallet-bridge-relayers", + "pallet-transaction-payment", + "pallet-utility", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-trie", + "xcm", + "xcm-builder", +] + [[package]] name = "bs58" version = "0.4.0" @@ -943,13 +1171,13 @@ dependencies = [ [[package]] name = "cid" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" +checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" dependencies = [ "core2", "multibase", - "multihash 0.16.3", + "multihash", "serde", "unsigned-varint", ] @@ -1094,15 +1322,21 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comfy-table" -version = "6.2.0" +version = "7.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba" +checksum = "9ab77dbd8adecaf3f0db40581631b995f312a8a5ae3aa9993188bb8f23d83a5b" dependencies = [ "strum", "strum_macros", "unicode-width", ] +[[package]] +name = "common-path" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" + [[package]] name = "concurrent-queue" version = "2.2.0" @@ -1131,6 +1365,28 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747" +[[package]] +name = "const-random" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e" +dependencies = [ + "const-random-macro", + "proc-macro-hack", +] + +[[package]] +name = "const-random-macro" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb" +dependencies = [ + "getrandom 0.2.10", + "once_cell", + "proc-macro-hack", + "tiny-keccak", +] + [[package]] name = "constant_time_eq" version = "0.2.6" @@ -1459,12 +1715,13 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "clap", "parity-scale-codec", "sc-chain-spec", "sc-cli", + "sc-client-api", "sc-service", "sp-core", "sp-runtime", @@ -1474,7 +1731,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1497,16 +1754,18 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "async-trait", "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", + "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", "futures", + "lru 0.10.1", "parity-scale-codec", "polkadot-node-primitives", "polkadot-overseer", @@ -1514,6 +1773,7 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-consensus-aura", + "sc-consensus-babe", "sc-consensus-slots", "sc-telemetry", "sp-api", @@ -1535,7 +1795,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1548,11 +1808,14 @@ dependencies = [ "polkadot-primitives", "sc-client-api", "sc-consensus", + "sc-consensus-babe", "schnellru", "sp-blockchain", "sp-consensus", + "sp-consensus-slots", "sp-core", "sp-runtime", + "sp-timestamp", "sp-trie", "substrate-prometheus-endpoint", "tracing", @@ -1561,7 +1824,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "anyhow", "async-trait", @@ -1576,7 +1839,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1599,7 +1862,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1623,7 +1886,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1658,7 +1921,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "frame-support", "frame-system", @@ -1674,7 +1937,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1691,7 +1954,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1720,7 +1983,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1731,7 +1994,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "frame-benchmarking", "frame-support", @@ -1745,7 +2008,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1761,7 +2024,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1779,10 +2042,24 @@ dependencies = [ "xcm-executor", ] +[[package]] +name = "cumulus-primitives-aura" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" +dependencies = [ + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-primitives", + "sp-api", + "sp-consensus-aura", + "sp-runtime", + "sp-std", +] + [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -1799,7 +2076,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1822,7 +2099,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-primitives-core", "futures", @@ -1835,7 +2112,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1853,7 +2130,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1861,7 +2138,6 @@ dependencies = [ "futures", "futures-timer", "polkadot-cli", - "polkadot-client", "polkadot-service", "sc-cli", "sc-client-api", @@ -1878,7 +2154,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1896,9 +2172,9 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ - "array-bytes 6.1.0", + "array-bytes", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1934,7 +2210,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1964,7 +2240,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2009,7 +2285,7 @@ dependencies = [ "cfg-if", "fiat-crypto", "packed_simd_2", - "platforms 3.0.2", + "platforms", "subtle", "zeroize", ] @@ -2323,16 +2599,36 @@ dependencies = [ ] [[package]] -name = "downcast" -version = "0.11.0" +name = "docify" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" +checksum = "af1b04e6ef3d21119d3eb7b032bca17f99fe041e9c072f30f32cc0e1a2b1f3c4" +dependencies = [ + "docify_macros", +] [[package]] -name = "downcast-rs" -version = "1.2.0" +name = "docify_macros" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b5610df7f2acf89a1bb5d1a66ae56b1c7fcdcfe3948856fb3ace3f644d70eb7" +dependencies = [ + "common-path", + "derive-syn-parse", + "lazy_static", + "proc-macro2", + "quote", + "regex", + "syn 2.0.26", + "termcolor", + "walkdir", +] + +[[package]] +name = "downcast" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dtoa" @@ -2727,19 +3023,6 @@ dependencies = [ "quote", ] -[[package]] -name = "expander" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f360349150728553f92e4c997a16af8915f418d3a0f21b440d34c5632f16ed84" -dependencies = [ - "blake2", - "fs-err", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "expander" version = "2.0.0" @@ -2802,7 +3085,7 @@ dependencies = [ [[package]] name = "fc-cli" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "clap", "ethereum-types", @@ -2820,7 +3103,7 @@ dependencies = [ [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "async-trait", "fp-consensus", @@ -2836,7 +3119,7 @@ dependencies = [ [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "async-trait", "fp-storage", @@ -2856,7 +3139,7 @@ dependencies = [ [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "fc-db", "fc-storage", @@ -2877,7 +3160,7 @@ dependencies = [ [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "ethereum", "ethereum-types", @@ -2895,7 +3178,6 @@ dependencies = [ "jsonrpsee", "libsecp256k1", "log", - "lru 0.8.1", "pallet-evm", "parity-scale-codec", "prometheus", @@ -2910,6 +3192,7 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "sp-api", "sp-block-builder", @@ -2927,7 +3210,7 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "ethereum", "ethereum-types", @@ -2940,7 +3223,7 @@ dependencies = [ [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "ethereum", "ethereum-types", @@ -3075,7 +3358,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", ] @@ -3092,7 +3375,7 @@ dependencies = [ [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "hex", "impl-serde", @@ -3111,7 +3394,7 @@ dependencies = [ [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "ethereum", "parity-scale-codec", @@ -3123,7 +3406,7 @@ dependencies = [ [[package]] name = "fp-dynamic-fee" version = "1.0.0" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "async-trait", "sp-core", @@ -3133,7 +3416,7 @@ dependencies = [ [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "ethereum", "ethereum-types", @@ -3147,7 +3430,7 @@ dependencies = [ [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "evm", "frame-support", @@ -3162,7 +3445,7 @@ dependencies = [ [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "ethereum", "ethereum-types", @@ -3179,7 +3462,7 @@ dependencies = [ [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "frame-support", "parity-scale-codec", @@ -3191,7 +3474,7 @@ dependencies = [ [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "parity-scale-codec", "serde", @@ -3206,7 +3489,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-support-procedural", @@ -3231,10 +3514,10 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "Inflector", - "array-bytes 4.2.0", + "array-bytes", "chrono", "clap", "comfy-table", @@ -3265,12 +3548,13 @@ dependencies = [ "sp-database", "sp-externalities", "sp-inherents", + "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-std", "sp-storage", "sp-trie", + "sp-wasm-interface", "thiserror", "thousands", ] @@ -3278,7 +3562,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3289,7 +3573,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3306,7 +3590,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -3322,9 +3606,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "15.1.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" +checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" dependencies = [ "cfg-if", "parity-scale-codec", @@ -3335,7 +3619,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-recursion", "futures", @@ -3356,7 +3640,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "bitflags 1.3.2", "environmental", @@ -3365,7 +3649,7 @@ dependencies = [ "impl-trait-for-tuples", "k256", "log", - "once_cell", + "macro_magic", "parity-scale-codec", "paste", "scale-info", @@ -3390,13 +3674,15 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", + "expander 2.0.0", "frame-support-procedural-tools", "itertools", + "macro_magic", "proc-macro-warning", "proc-macro2", "quote", @@ -3406,7 +3692,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -3418,7 +3704,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "proc-macro2", "quote", @@ -3428,7 +3714,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "cfg-if", "frame-support", @@ -3447,7 +3733,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -3462,7 +3748,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "sp-api", @@ -3471,7 +3757,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "parity-scale-codec", @@ -3872,6 +4158,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + [[package]] name = "hex-literal" version = "0.4.1" @@ -4020,8 +4312,24 @@ dependencies = [ "rustls 0.20.8", "rustls-native-certs", "tokio", - "tokio-rustls", - "webpki-roots", + "tokio-rustls 0.23.4", + "webpki-roots", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.6", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.24.1", ] [[package]] @@ -4336,7 +4644,7 @@ dependencies = [ "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tokio-util", "tracing", "webpki-roots", @@ -4378,7 +4686,7 @@ checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad" dependencies = [ "async-trait", "hyper", - "hyper-rustls", + "hyper-rustls 0.23.2", "jsonrpsee-core", "jsonrpsee-types", "rustc-hash", @@ -4474,8 +4782,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", "frame-benchmarking", @@ -4486,7 +4794,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "kusama-runtime-constants", "log", "pallet-authority-discovery", @@ -4527,6 +4835,7 @@ dependencies = [ "pallet-society", "pallet-staking", "pallet-staking-runtime-api", + "pallet-state-trie-migration", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", @@ -4573,8 +4882,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "frame-support", "polkadot-primitives", @@ -4618,6 +4927,17 @@ dependencies = [ "smallvec", ] +[[package]] +name = "landlock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520baa32708c4e957d2fc3a186bc5bd8d26637c33137f399ddfc202adb240068" +dependencies = [ + "enumflags2", + "libc", + "thiserror", +] + [[package]] name = "laos" version = "0.1.0" @@ -4644,7 +4964,7 @@ dependencies = [ "frame-benchmarking", "frame-benchmarking-cli", "futures", - "hex-literal", + "hex-literal 0.4.1", "jsonrpsee", "laos-runtime", "log", @@ -4661,6 +4981,7 @@ dependencies = [ "sc-executor", "sc-network", "sc-network-sync", + "sc-offchain", "sc-rpc", "sc-service", "sc-sysinfo", @@ -4689,6 +5010,13 @@ dependencies = [ name = "laos-runtime" version = "0.1.0" dependencies = [ + "bp-evochain", + "bp-header-chain", + "bp-messages", + "bp-ownership-parachain", + "bp-relayers", + "bp-runtime", + "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", @@ -4707,15 +5035,19 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "pallet-aura", "pallet-authorship", "pallet-balances", "pallet-base-fee", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-bridge-relayers", "pallet-collator-selection", "pallet-ethereum", "pallet-evm", "pallet-evm-chain-id", + "pallet-evm-erc721", "pallet-evm-living-assets-ownership", "pallet-evm-precompile-modexp", "pallet-evm-precompile-simple", @@ -4785,12 +5117,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" -[[package]] -name = "libm" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" - [[package]] name = "libp2p" version = "0.51.3" @@ -4863,7 +5189,7 @@ dependencies = [ "libp2p-identity", "log", "multiaddr", - "multihash 0.17.0", + "multihash", "multistream-select", "once_cell", "parking_lot 0.12.1", @@ -4923,7 +5249,7 @@ dependencies = [ "ed25519-dalek", "log", "multiaddr", - "multihash 0.17.0", + "multihash", "quick-protobuf", "rand 0.8.5", "sha2 0.10.7", @@ -5170,7 +5496,7 @@ dependencies = [ "libp2p-identity", "libp2p-noise", "log", - "multihash 0.17.0", + "multihash", "quick-protobuf", "quick-protobuf-codec", "rand 0.8.5", @@ -5422,6 +5748,54 @@ dependencies = [ "libc", ] +[[package]] +name = "macro_magic" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aee866bfee30d2d7e83835a4574aad5b45adba4cc807f2a3bbba974e5d4383c9" +dependencies = [ + "macro_magic_core", + "macro_magic_macros", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "macro_magic_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e766a20fd9c72bab3e1e64ed63f36bd08410e75803813df210d1ce297d7ad00" +dependencies = [ + "const-random", + "derive-syn-parse", + "macro_magic_core_macros", + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "macro_magic_core_macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c12469fc165526520dff2807c2975310ab47cf7190a45b99b49a7dc8befab17b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "macro_magic_macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fb85ec1620619edf2984a7693497d4ec88a9665d8b87e942856884c92dbf2a" +dependencies = [ + "macro_magic_core", + "quote", + "syn 2.0.26", +] + [[package]] name = "maplit" version = "1.0.2" @@ -5528,12 +5902,6 @@ dependencies = [ "hash-db 0.16.0", ] -[[package]] -name = "memory_units" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" - [[package]] name = "merlin" version = "2.0.1" @@ -5586,7 +5954,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "futures", "log", @@ -5605,7 +5973,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "anyhow", "jsonrpsee", @@ -5656,7 +6024,7 @@ dependencies = [ "data-encoding", "log", "multibase", - "multihash 0.17.0", + "multihash", "percent-encoding", "serde", "static_assertions", @@ -5677,9 +6045,9 @@ dependencies = [ [[package]] name = "multihash" -version = "0.16.3" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ "blake2b_simd", "blake2s_simd", @@ -5692,19 +6060,6 @@ dependencies = [ "unsigned-varint", ] -[[package]] -name = "multihash" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" -dependencies = [ - "core2", - "digest 0.10.7", - "multihash-derive", - "sha2 0.10.7", - "unsigned-varint", -] - [[package]] name = "multihash-derive" version = "0.8.0" @@ -6158,21 +6513,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" dependencies = [ "cfg-if", - "libm 0.1.4", + "libm", ] [[package]] name = "pallet-asset-tx-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "frame-benchmarking", "frame-support", "frame-system", "pallet-transaction-payment", "parity-scale-codec", "scale-info", - "serde", "sp-core", "sp-io", "sp-runtime", @@ -6182,7 +6535,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6197,7 +6550,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -6213,7 +6566,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -6229,7 +6582,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -6243,7 +6596,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6267,7 +6620,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6287,7 +6640,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6302,7 +6655,7 @@ dependencies = [ [[package]] name = "pallet-base-fee" version = "1.0.0" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "fp-evm", "frame-support", @@ -6316,7 +6669,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -6335,9 +6688,9 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "binary-merkle-tree", "frame-support", "frame-system", @@ -6359,7 +6712,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6374,10 +6727,93 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-bridge-grandpa" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-header-chain", + "bp-runtime", + "bp-test-utils", + "finality-grandpa", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-consensus-grandpa", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-bridge-messages" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-header-chain", + "bp-messages", + "bp-runtime", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "num-traits", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-bridge-parachains" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-header-chain", + "bp-parachains", + "bp-polkadot-core", + "bp-runtime", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-bridge-grandpa", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-bridge-relayers" +version = "0.1.0" +source = "git+https://github.com/freeverseio/parity-bridges-common.git?branch=polkadot-v1.0.0#60a56bbad7ad646e71a9924a1cfeda61c47c4b2f" +dependencies = [ + "bp-messages", + "bp-relayers", + "bp-runtime", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-bridge-messages", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6396,7 +6832,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6415,7 +6851,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6432,7 +6868,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6449,7 +6885,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6467,7 +6903,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6490,7 +6926,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6503,7 +6939,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6515,13 +6951,14 @@ dependencies = [ "sp-io", "sp-npos-elections", "sp-runtime", + "sp-staking", "sp-std", ] [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "ethereum", "ethereum-types", @@ -6544,7 +6981,7 @@ dependencies = [ [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "environmental", "evm", @@ -6554,7 +6991,7 @@ dependencies = [ "frame-support", "frame-system", "hex", - "hex-literal", + "hex-literal 0.4.1", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -6569,20 +7006,44 @@ dependencies = [ [[package]] name = "pallet-evm-chain-id" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "scale-info", + "sp-runtime", +] + +[[package]] +name = "pallet-evm-erc721" +version = "0.0.1" +dependencies = [ + "evm", + "fp-evm", + "frame-support", + "hex", + "num_enum 0.5.11", + "pallet-evm", + "pallet-living-assets-ownership", + "parity-scale-codec", + "precompile-utils", + "precompile-utils-macro", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-evm-living-assets-ownership" version = "2.0.0-dev" dependencies = [ + "evm", "fp-evm", "frame-support", + "hex", "num_enum 0.5.11", "pallet-evm", "pallet-living-assets-ownership", @@ -6599,7 +7060,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-modexp" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "fp-evm", "num", @@ -6608,7 +7069,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#c2605558ad7e23362be1f16c7d2ec3e7d2e658ab" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v1.0.0#b520b749eb90df15177144dbece3fbd3622a2b19" dependencies = [ "fp-evm", "ripemd", @@ -6618,8 +7079,9 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ + "docify", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -6636,7 +7098,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6659,7 +7121,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "enumflags2", "frame-benchmarking", @@ -6675,7 +7137,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6695,7 +7157,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6716,9 +7178,12 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "hex", + "hex-literal 0.4.1", "parity-scale-codec", "scale-info", "serde", + "sp-arithmetic", "sp-core", "sp-io", "sp-runtime", @@ -6727,7 +7192,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6744,7 +7209,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6763,7 +7228,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6780,7 +7245,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6796,7 +7261,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6812,7 +7277,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -6829,7 +7294,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6849,7 +7314,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6860,7 +7325,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -6877,7 +7342,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6901,7 +7366,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6918,7 +7383,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6933,7 +7398,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6951,7 +7416,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6966,7 +7431,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6985,7 +7450,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7002,7 +7467,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -7023,7 +7488,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7039,13 +7504,18 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", + "hex-literal 0.3.4", + "log", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", + "sp-arithmetic", + "sp-io", "sp-runtime", "sp-std", ] @@ -7053,7 +7523,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7076,7 +7546,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -7087,7 +7557,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "log", "sp-arithmetic", @@ -7096,7 +7566,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "sp-api", @@ -7105,7 +7575,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7122,7 +7592,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7137,7 +7607,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7155,7 +7625,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7174,7 +7644,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-support", "frame-system", @@ -7190,7 +7660,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -7206,7 +7676,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -7218,7 +7688,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7235,7 +7705,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7251,7 +7721,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7266,7 +7736,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-benchmarking", "frame-support", @@ -7280,8 +7750,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -7301,8 +7771,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "frame-benchmarking", "frame-support", @@ -7321,23 +7791,27 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", + "sp-runtime", + "sp-std", ] [[package]] name = "parachains-common" version = "1.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.43#b8999fce0f61fb757f9e57e326cda48e70137019" +source = "git+https://github.com/paritytech/cumulus?branch=release-v1.0.0#2306bfb75651bd23d7367c8d51a868e5bdab121a" dependencies = [ + "cumulus-primitives-core", "cumulus-primitives-utility", "frame-support", "frame-system", + "num-traits", "pallet-asset-tx-payment", "pallet-assets", "pallet-authorship", @@ -7410,6 +7884,35 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" +[[package]] +name = "parity-util-mem" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8" +dependencies = [ + "cfg-if", + "ethereum-types", + "hashbrown 0.12.3", + "impl-trait-for-tuples", + "lru 0.8.1", + "parity-util-mem-derive", + "parking_lot 0.12.1", + "primitive-types", + "smallvec", + "winapi", +] + +[[package]] +name = "parity-util-mem-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" +dependencies = [ + "proc-macro2", + "syn 1.0.109", + "synstructure", +] + [[package]] name = "parity-wasm" version = "0.45.0" @@ -7648,12 +8151,6 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" -[[package]] -name = "platforms" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" - [[package]] name = "platforms" version = "3.0.2" @@ -7662,15 +8159,17 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polkadot-approval-distribution" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", + "futures-timer", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", + "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", "tracing-gum", @@ -7678,10 +8177,11 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", + "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -7692,8 +8192,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "derive_more", "fatality", @@ -7715,8 +8215,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "fatality", "futures", @@ -7736,15 +8236,15 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "clap", "frame-benchmarking-cli", "futures", "log", - "polkadot-client", - "polkadot-node-core-pvf-worker", + "polkadot-node-core-pvf-execute-worker", + "polkadot-node-core-pvf-prepare-worker", "polkadot-node-metrics", "polkadot-performance-test", "polkadot-service", @@ -7763,53 +8263,10 @@ dependencies = [ "try-runtime-cli", ] -[[package]] -name = "polkadot-client" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" -dependencies = [ - "async-trait", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-system", - "frame-system-rpc-runtime-api", - "futures", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "polkadot-core-primitives", - "polkadot-node-core-parachains-inherent", - "polkadot-primitives", - "polkadot-runtime", - "polkadot-runtime-common", - "rococo-runtime", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-service", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-core", - "sp-inherents", - "sp-keyring", - "sp-mmr-primitives", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-storage", - "sp-timestamp", - "sp-transaction-pool", -] - [[package]] name = "polkadot-collator-protocol" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "always-assert", "bitvec", @@ -7830,8 +8287,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "parity-scale-codec", "scale-info", @@ -7842,8 +8299,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "derive_more", "fatality", @@ -7867,8 +8324,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -7881,8 +8338,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", "futures-timer", @@ -7901,8 +8358,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "always-assert", "async-trait", @@ -7924,8 +8381,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", "parity-scale-codec", @@ -7942,8 +8399,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", "derive_more", @@ -7971,8 +8428,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", "futures", @@ -7980,6 +8437,7 @@ dependencies = [ "kvdb", "parity-scale-codec", "polkadot-erasure-coding", + "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -7992,8 +8450,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", "fatality", @@ -8011,8 +8469,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", "polkadot-node-subsystem", @@ -8026,8 +8484,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "async-trait", "futures", @@ -8046,8 +8504,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", "polkadot-node-metrics", @@ -8061,8 +8519,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", "futures-timer", @@ -8078,8 +8536,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "fatality", "futures", @@ -8097,8 +8555,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "async-trait", "futures", @@ -8114,8 +8572,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", "fatality", @@ -8132,8 +8590,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "always-assert", "futures", @@ -8142,6 +8600,9 @@ dependencies = [ "parity-scale-codec", "pin-project", "polkadot-core-primitives", + "polkadot-node-core-pvf-common", + "polkadot-node-core-pvf-execute-worker", + "polkadot-node-core-pvf-prepare-worker", "polkadot-node-metrics", "polkadot-node-primitives", "polkadot-parachain", @@ -8153,14 +8614,15 @@ dependencies = [ "sp-tracing", "sp-wasm-interface", "substrate-build-script-utils", + "tempfile", "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", "polkadot-node-primitives", @@ -8174,29 +8636,67 @@ dependencies = [ ] [[package]] -name = "polkadot-node-core-pvf-worker" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +name = "polkadot-node-core-pvf-common" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ - "assert_matches", "cpu-time", "futures", + "landlock", "libc", "parity-scale-codec", - "polkadot-node-core-pvf", "polkadot-parachain", "polkadot-primitives", - "rayon", "sc-executor", "sc-executor-common", "sc-executor-wasmtime", "sp-core", "sp-externalities", "sp-io", - "sp-maybe-compressed-blob", "sp-tracing", "substrate-build-script-utils", - "tempfile", + "tokio", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-pvf-execute-worker" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +dependencies = [ + "cpu-time", + "futures", + "parity-scale-codec", + "polkadot-node-core-pvf-common", + "polkadot-parachain", + "polkadot-primitives", + "rayon", + "sp-core", + "sp-maybe-compressed-blob", + "sp-tracing", + "tikv-jemalloc-ctl", + "tokio", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-pvf-prepare-worker" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" +dependencies = [ + "futures", + "libc", + "parity-scale-codec", + "polkadot-node-core-pvf-common", + "polkadot-parachain", + "polkadot-primitives", + "rayon", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "sp-io", + "sp-maybe-compressed-blob", + "sp-tracing", "tikv-jemalloc-ctl", "tokio", "tracing-gum", @@ -8204,8 +8704,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "futures", "lru 0.9.0", @@ -8219,8 +8719,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "lazy_static", "log", @@ -8237,8 +8737,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bs58", "futures", @@ -8256,8 +8756,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "async-channel", "async-trait", @@ -8279,8 +8779,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bounded-vec", "futures", @@ -8301,8 +8801,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -8311,8 +8811,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "async-trait", "derive_more", @@ -8324,6 +8824,7 @@ dependencies = [ "polkadot-primitives", "polkadot-statement-table", "sc-network", + "sc-transaction-pool-api", "smallvec", "sp-api", "sp-authority-discovery", @@ -8334,8 +8835,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "async-trait", "derive_more", @@ -8367,8 +8868,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "async-trait", "futures", @@ -8390,8 +8891,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bounded-collections", "derive_more", @@ -8407,14 +8908,14 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "env_logger 0.9.3", "kusama-runtime", "log", "polkadot-erasure-coding", - "polkadot-node-core-pvf-worker", + "polkadot-node-core-pvf-prepare-worker", "polkadot-node-primitives", "polkadot-primitives", "quote", @@ -8425,11 +8926,11 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", - "hex-literal", + "hex-literal 0.4.1", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", @@ -8451,8 +8952,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -8483,8 +8984,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", "frame-benchmarking", @@ -8495,7 +8996,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-authority-discovery", "pallet-authorship", @@ -8578,8 +9079,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", "frame-benchmarking", @@ -8624,8 +9125,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "frame-support", "polkadot-primitives", @@ -8638,8 +9139,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bs58", "parity-scale-codec", @@ -8650,8 +9151,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -8695,15 +9196,17 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "async-trait", + "frame-benchmarking", "frame-benchmarking-cli", "frame-support", + "frame-system", "frame-system-rpc-runtime-api", "futures", - "hex-literal", + "hex-literal 0.4.1", "kusama-runtime", "kvdb", "kvdb-rocksdb", @@ -8713,14 +9216,16 @@ dependencies = [ "pallet-babe", "pallet-im-online", "pallet-staking", + "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "parity-db", + "parity-scale-codec", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", - "polkadot-client", "polkadot-collator-protocol", + "polkadot-core-primitives", "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", @@ -8747,7 +9252,7 @@ dependencies = [ "polkadot-primitives", "polkadot-rpc", "polkadot-runtime", - "polkadot-runtime-constants", + "polkadot-runtime-common", "polkadot-runtime-parachains", "polkadot-statement-distribution", "rococo-runtime", @@ -8774,6 +9279,7 @@ dependencies = [ "sc-sysinfo", "sc-telemetry", "sc-transaction-pool", + "sc-transaction-pool-api", "serde", "serde_json", "sp-api", @@ -8787,6 +9293,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-keyring", "sp-keystore", "sp-mmr-primitives", "sp-offchain", @@ -8797,6 +9304,8 @@ dependencies = [ "sp-timestamp", "sp-transaction-pool", "sp-trie", + "sp-version", + "sp-weights", "substrate-prometheus-endpoint", "thiserror", "tracing-gum", @@ -8805,12 +9314,13 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "arrayvec 0.5.2", "fatality", "futures", + "futures-timer", "indexmap 1.9.3", "parity-scale-codec", "polkadot-node-network-protocol", @@ -8826,8 +9336,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -8906,7 +9416,7 @@ dependencies = [ "fp-evm", "frame-support", "frame-system", - "hex-literal", + "hex-literal 0.4.1", "impl-trait-for-tuples", "num_enum 0.5.11", "pallet-evm", @@ -9046,11 +9556,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + [[package]] name = "proc-macro-warning" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" +checksum = "70550716265d1ec349c41f70dd4f964b4fd88394efe4405f0c1da679c4799a07" dependencies = [ "proc-macro2", "quote", @@ -9578,8 +10094,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -9589,7 +10105,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-authority-discovery", "pallet-authorship", @@ -9665,8 +10181,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "frame-support", "polkadot-primitives", @@ -9840,6 +10356,18 @@ dependencies = [ "webpki 0.22.0", ] +[[package]] +name = "rustls" +version = "0.21.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct 0.7.0", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -9861,6 +10389,16 @@ dependencies = [ "base64 0.21.2", ] +[[package]] +name = "rustls-webpki" +version = "0.101.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.14" @@ -9905,7 +10443,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "log", "sp-core", @@ -9916,7 +10454,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "futures", @@ -9924,14 +10462,13 @@ dependencies = [ "ip_network", "libp2p", "log", - "multihash 0.17.0", + "multihash", "parity-scale-codec", "prost", "prost-build", "rand 0.8.5", "sc-client-api", "sc-network", - "sc-network-common", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -9945,7 +10482,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "futures", "futures-timer", @@ -9968,7 +10505,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9983,7 +10520,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -10002,7 +10539,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10013,9 +10550,9 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "chrono", "clap", "fdlimit", @@ -10031,7 +10568,6 @@ dependencies = [ "sc-client-db", "sc-keystore", "sc-network", - "sc-network-common", "sc-service", "sc-telemetry", "sc-tracing", @@ -10053,7 +10589,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "fnv", "futures", @@ -10069,7 +10605,6 @@ dependencies = [ "sp-core", "sp-database", "sp-externalities", - "sp-keystore", "sp-runtime", "sp-state-machine", "sp-statement-store", @@ -10080,7 +10615,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "hash-db 0.16.0", "kvdb", @@ -10106,7 +10641,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "futures", @@ -10131,7 +10666,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "futures", @@ -10160,7 +10695,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "fork-tree", @@ -10175,8 +10710,8 @@ dependencies = [ "sc-consensus", "sc-consensus-epochs", "sc-consensus-slots", - "sc-keystore", "sc-telemetry", + "sc-transaction-pool-api", "scale-info", "sp-api", "sp-application-crypto", @@ -10196,7 +10731,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "futures", "jsonrpsee", @@ -10218,9 +10753,9 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "async-channel", "async-trait", "fnv", @@ -10230,9 +10765,7 @@ dependencies = [ "parking_lot 0.12.1", "sc-client-api", "sc-consensus", - "sc-keystore", "sc-network", - "sc-network-common", "sc-network-gossip", "sc-network-sync", "sc-utils", @@ -10254,7 +10787,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "futures", "jsonrpsee", @@ -10273,7 +10806,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10286,10 +10819,10 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "ahash 0.8.3", - "array-bytes 4.2.0", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", @@ -10308,6 +10841,7 @@ dependencies = [ "sc-network-common", "sc-network-gossip", "sc-telemetry", + "sc-transaction-pool-api", "sc-utils", "serde_json", "sp-api", @@ -10326,7 +10860,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "finality-grandpa", "futures", @@ -10346,7 +10880,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "futures", @@ -10369,13 +10903,13 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", "sc-executor-common", "sc-executor-wasmtime", + "schnellru", "sp-api", "sp-core", "sp-externalities", @@ -10391,7 +10925,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -10403,13 +10937,12 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "anyhow", "cfg-if", "libc", "log", - "once_cell", "rustix 0.36.15", "sc-allocator", "sc-executor-common", @@ -10421,7 +10954,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "ansi_term", "futures", @@ -10437,9 +10970,9 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "parking_lot 0.12.1", "serde_json", "sp-application-crypto", @@ -10451,9 +10984,9 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "async-channel", "async-trait", "asynchronous-codec", @@ -10466,37 +10999,33 @@ dependencies = [ "libp2p", "linked_hash_set", "log", - "lru 0.8.1", "mockall", "parity-scale-codec", "parking_lot 0.12.1", + "partial_sort", "pin-project", "rand 0.8.5", - "sc-block-builder", "sc-client-api", - "sc-consensus", "sc-network-common", - "sc-peerset", "sc-utils", "serde", "serde_json", "smallvec", - "snow", "sp-arithmetic", "sp-blockchain", - "sp-consensus", "sp-core", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", "unsigned-varint", + "wasm-timer", "zeroize", ] [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-channel", "cid", @@ -10507,7 +11036,6 @@ dependencies = [ "prost-build", "sc-client-api", "sc-network", - "sc-network-common", "sp-blockchain", "sp-runtime", "thiserror", @@ -10517,45 +11045,33 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", "async-trait", "bitflags 1.3.2", - "bytes", "futures", - "futures-timer", "libp2p-identity", "parity-scale-codec", "prost-build", "sc-consensus", - "sc-peerset", - "sc-utils", - "serde", - "smallvec", - "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "zeroize", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "ahash 0.8.3", "futures", "futures-timer", "libp2p", "log", - "lru 0.8.1", "sc-network", "sc-network-common", - "sc-peerset", + "schnellru", "sp-runtime", "substrate-prometheus-endpoint", "tracing", @@ -10564,9 +11080,9 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "async-channel", "futures", "libp2p-identity", @@ -10576,8 +11092,6 @@ dependencies = [ "prost-build", "sc-client-api", "sc-network", - "sc-network-common", - "sc-peerset", "sp-blockchain", "sp-core", "sp-runtime", @@ -10587,9 +11101,9 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "async-channel", "async-trait", "fork-tree", @@ -10597,7 +11111,6 @@ dependencies = [ "futures-timer", "libp2p", "log", - "lru 0.8.1", "mockall", "parity-scale-codec", "prost", @@ -10606,8 +11119,8 @@ dependencies = [ "sc-consensus", "sc-network", "sc-network-common", - "sc-peerset", "sc-utils", + "schnellru", "smallvec", "sp-arithmetic", "sp-blockchain", @@ -10622,17 +11135,15 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "futures", "libp2p", "log", "parity-scale-codec", - "pin-project", "sc-network", "sc-network-common", - "sc-peerset", "sc-utils", "sp-consensus", "sp-runtime", @@ -10642,16 +11153,17 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "bytes", "fnv", "futures", "futures-timer", "hyper", - "hyper-rustls", + "hyper-rustls 0.24.1", "libp2p", + "log", "num_cpus", "once_cell", "parity-scale-codec", @@ -10660,36 +11172,22 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-common", - "sc-peerset", + "sc-transaction-pool-api", "sc-utils", "sp-api", "sp-core", + "sp-externalities", + "sp-keystore", "sp-offchain", "sp-runtime", "threadpool", "tracing", ] -[[package]] -name = "sc-peerset" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" -dependencies = [ - "futures", - "libp2p-identity", - "log", - "parking_lot 0.12.1", - "partial_sort", - "sc-utils", - "serde_json", - "sp-arithmetic", - "wasm-timer", -] - [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10698,7 +11196,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "futures", "jsonrpsee", @@ -10729,7 +11227,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10748,7 +11246,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "http", "jsonrpsee", @@ -10763,9 +11261,9 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "futures", "futures-util", "hex", @@ -10789,7 +11287,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "directories", @@ -10816,11 +11314,9 @@ dependencies = [ "sc-network-light", "sc-network-sync", "sc-network-transactions", - "sc-offchain", "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", - "sc-storage-monitor", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -10855,7 +11351,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "log", "parity-scale-codec", @@ -10866,14 +11362,12 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "clap", "fs4", - "futures", "log", "sc-client-db", - "sc-utils", "sp-core", "thiserror", "tokio", @@ -10882,7 +11376,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10901,7 +11395,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "futures", "libc", @@ -10920,7 +11414,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "chrono", "futures", @@ -10939,7 +11433,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "ansi_term", "atty", @@ -10947,12 +11441,10 @@ dependencies = [ "lazy_static", "libc", "log", - "once_cell", "parking_lot 0.12.1", "regex", "rustc-hash", "sc-client-api", - "sc-rpc-server", "sc-tracing-proc-macro", "serde", "sp-api", @@ -10970,7 +11462,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10981,14 +11473,13 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "futures", "futures-timer", "linked-hash-map", "log", - "num-traits", "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", @@ -11008,13 +11499,15 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "futures", "log", + "parity-scale-codec", "serde", "sp-blockchain", + "sp-core", "sp-runtime", "thiserror", ] @@ -11022,7 +11515,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-channel", "futures", @@ -11454,8 +11947,8 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "enumn", "parity-scale-codec", @@ -11542,7 +12035,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "hash-db 0.16.0", "log", @@ -11550,6 +12043,7 @@ dependencies = [ "scale-info", "sp-api-proc-macro", "sp-core", + "sp-externalities", "sp-metadata-ir", "sp-runtime", "sp-state-machine", @@ -11562,11 +12056,11 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "Inflector", "blake2", - "expander 1.0.0", + "expander 2.0.0", "proc-macro-crate", "proc-macro2", "quote", @@ -11575,8 +12069,8 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "23.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11588,8 +12082,8 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "16.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "integer-sqrt", "num-traits", @@ -11603,7 +12097,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11616,9 +12110,8 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "parity-scale-codec", "sp-api", "sp-inherents", "sp-runtime", @@ -11628,13 +12121,13 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "futures", "log", - "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", + "schnellru", "sp-api", "sp-consensus", "sp-database", @@ -11646,7 +12139,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "futures", @@ -11661,14 +12154,13 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-consensus", "sp-consensus-slots", "sp-inherents", "sp-runtime", @@ -11679,7 +12171,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "parity-scale-codec", @@ -11687,11 +12179,9 @@ dependencies = [ "serde", "sp-api", "sp-application-crypto", - "sp-consensus", "sp-consensus-slots", "sp-core", "sp-inherents", - "sp-keystore", "sp-runtime", "sp-std", "sp-timestamp", @@ -11700,7 +12190,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11719,7 +12209,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "finality-grandpa", "log", @@ -11737,7 +12227,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11748,10 +12238,10 @@ dependencies = [ [[package]] name = "sp-core" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "21.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "bitflags 1.3.2", "blake2", "bounded-collections", @@ -11787,29 +12277,28 @@ dependencies = [ "substrate-bip39", "thiserror", "tiny-bip39", + "tracing", "zeroize", ] [[package]] name = "sp-core-hashing" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "9.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", "sha2 0.10.7", "sha3", - "sp-std", "twox-hash", ] [[package]] name = "sp-core-hashing-proc-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "9.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "proc-macro2", "quote", "sp-core-hashing", "syn 2.0.26", @@ -11818,7 +12307,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11826,8 +12315,8 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "8.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "proc-macro2", "quote", @@ -11836,8 +12325,8 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "0.19.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "environmental", "parity-scale-codec", @@ -11848,13 +12337,12 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-core", "sp-runtime", "sp-std", "thiserror", @@ -11862,13 +12350,12 @@ dependencies = [ [[package]] name = "sp-io" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "23.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "bytes", "ed25519", "ed25519-dalek", - "futures", "libsecp256k1", "log", "parity-scale-codec", @@ -11888,8 +12375,8 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "24.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "lazy_static", "sp-core", @@ -11899,13 +12386,11 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "0.27.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "futures", "parity-scale-codec", "parking_lot 0.12.1", - "serde", "sp-core", "sp-externalities", "thiserror", @@ -11914,7 +12399,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "thiserror", "zstd 0.12.4", @@ -11923,7 +12408,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11934,7 +12419,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11952,7 +12437,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "scale-info", @@ -11966,7 +12451,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "sp-api", "sp-core", @@ -11975,8 +12460,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "8.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "backtrace", "lazy_static", @@ -11986,7 +12471,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "rustc-hash", "serde", @@ -11995,8 +12480,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "24.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "either", "hash256-std-hasher", @@ -12017,8 +12502,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "17.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -12035,8 +12520,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "11.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "Inflector", "proc-macro-crate", @@ -12048,12 +12533,13 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-core", + "sp-keystore", "sp-runtime", "sp-staking", "sp-std", @@ -12062,8 +12548,9 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ + "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", @@ -12074,8 +12561,8 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "0.28.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "hash-db 0.16.0", "log", @@ -12090,14 +12577,14 @@ dependencies = [ "sp-trie", "thiserror", "tracing", + "trie-db", ] [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ - "log", "parity-scale-codec", "scale-info", "sp-api", @@ -12112,13 +12599,13 @@ dependencies = [ [[package]] name = "sp-std" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "8.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" [[package]] name = "sp-storage" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "13.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12131,11 +12618,9 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", - "futures-timer", - "log", "parity-scale-codec", "sp-inherents", "sp-runtime", @@ -12145,8 +12630,8 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "10.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "sp-std", @@ -12158,7 +12643,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "sp-api", "sp-runtime", @@ -12167,10 +12652,9 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", - "log", "parity-scale-codec", "scale-info", "sp-core", @@ -12182,8 +12666,8 @@ dependencies = [ [[package]] name = "sp-trie" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "22.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "ahash 0.8.3", "hash-db 0.16.0", @@ -12205,8 +12689,8 @@ dependencies = [ [[package]] name = "sp-version" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "22.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12222,8 +12706,8 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "8.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -12233,22 +12717,21 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "14.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", "sp-std", - "wasmi", "wasmtime", ] [[package]] name = "sp-weights" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +version = "20.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "parity-scale-codec", "scale-info", @@ -12440,15 +12923,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" -dependencies = [ - "platforms 2.0.0", -] +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12467,7 +12947,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "hyper", "log", @@ -12479,7 +12959,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "jsonrpsee", @@ -12492,14 +12972,12 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "jsonrpsee", - "log", "parity-scale-codec", "sc-client-api", "sc-rpc-api", - "scale-info", "serde", "sp-core", "sp-runtime", @@ -12511,12 +12989,13 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", "filetime", + "parity-wasm", "sp-maybe-compressed-blob", "strum", "tempfile", @@ -12859,6 +13338,16 @@ dependencies = [ "webpki 0.22.0", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.6", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.14" @@ -13016,8 +13505,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -13027,8 +13516,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "expander 2.0.0", "proc-macro-crate", @@ -13168,7 +13657,7 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#5e49f6e44820affccaf517fd22af564f4b495d40" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v1.0.0#948fbd2fd1233dc26dbb9f9bbc1d2cca2c03945d" dependencies = [ "async-trait", "clap", @@ -13179,7 +13668,6 @@ dependencies = [ "parity-scale-codec", "sc-cli", "sc-executor", - "sc-service", "serde", "serde_json", "sp-api", @@ -13572,39 +14060,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wasmi" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06c326c93fbf86419608361a2c925a31754cf109da1b8b55737070b4d6669422" -dependencies = [ - "parity-wasm", - "wasmi-validation", - "wasmi_core", -] - -[[package]] -name = "wasmi-validation" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ff416ad1ff0c42e5a926ed5d5fab74c0f098749aa0ad8b2a34b982ce0e867b" -dependencies = [ - "parity-wasm", -] - -[[package]] -name = "wasmi_core" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" -dependencies = [ - "downcast-rs", - "libm 0.2.7", - "memory_units", - "num-rational", - "num-traits", -] - [[package]] name = "wasmparser" version = "0.102.0" @@ -14060,8 +14515,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bitvec", "frame-benchmarking", @@ -14072,7 +14527,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-authority-discovery", "pallet-authorship", @@ -14153,8 +14608,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "frame-support", "polkadot-primitives", @@ -14496,8 +14951,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "bounded-collections", "derivative", @@ -14512,8 +14967,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "frame-support", "frame-system", @@ -14534,8 +14989,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "environmental", "frame-benchmarking", @@ -14554,8 +15009,8 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v1.0.0#c9ec8c5a15959ce711bb60aa79add58f560d61e9" dependencies = [ "Inflector", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index b9a4ad3b..ac213229 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,97 +31,97 @@ quote = "1.0" syn = { version = "1.0" } # Wasm builder -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } # Substrate # (wasm) -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-runtime-interface = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-staking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } # (native) -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } - -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-consensus-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } + +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0" } # Substrate pallets # (wasm) -pallet-assets = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-contracts = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-contracts-primitives = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false, features = ["historical"] } -pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } -pallet-message-queue = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43", default-features = false } +pallet-assets = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-contracts = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-contracts-primitives = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false, features = ["historical"] } +pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v1.0.0", default-features = false } # EVM & Ethereum # (wasm) @@ -134,84 +134,96 @@ ethereum = { version = "0.14.0", default-features = false } # Frontier # (wasm) -pallet-base-fee = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } -pallet-evm = { git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.43", default-features = false } -pallet-ethereum = { git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.43", default-features = false } -pallet-evm-chain-id = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } -pallet-evm-precompile-modexp = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } -pallet-evm-precompile-simple = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } -fp-self-contained = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } -fp-rpc = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } -fp-evm = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } +pallet-base-fee = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } +pallet-evm = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } +pallet-ethereum = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } +pallet-evm-chain-id = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } +fp-self-contained = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } +fp-rpc = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } +fp-evm = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", default-features = false } # Frontier # (native) -fc-cli = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } -fc-rpc = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", features = [ "rpc-binary-search-estimate" ] } -fc-rpc-core = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } -fc-mapping-sync = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } -fc-db = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } -fc-consensus = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } -fc-storage = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } -fp-dynamic-fee = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } +fc-cli = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0" } +fc-rpc = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0", features = [ "rpc-binary-search-estimate" ] } +fc-rpc-core = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0" } +fc-mapping-sync = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0" } +fc-db = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0" } +fc-consensus = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0" } +fc-storage = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0" } +fp-dynamic-fee = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v1.0.0" } # Cumulus # (wasm) -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } -parachains-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +parachains-common = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } # (native) -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-client-consensus-relay-chain = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } -cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-client-consensus-relay-chain = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } +cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0" } # Polkadot # (wasm) -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v1.0.0" } # Temporary, to ensure `runtime-benchmarks` features can compile -polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } # XCM # (wasm) -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.43", default-features = false } -xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } -xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } -xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } -xcm-simulator = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "release-v1.0.0", default-features = false } +xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } +xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } +xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } +xcm-simulator = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0", default-features = false } # (native) -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v1.0.0" } + +# Bridge dependencies +bp-header-chain = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +bp-messages = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +bp-evochain = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +bp-relayers = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +bp-runtime = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +bp-ownership-parachain = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +bridge-runtime-common = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +pallet-bridge-grandpa = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +pallet-bridge-messages = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } +pallet-bridge-relayers = { git = "https://github.com/freeverseio/parity-bridges-common.git", branch = "polkadot-v1.0.0", default-features = false } # LAOS pallets pallet-living-assets-ownership = { path = "./pallets/living-assets-ownership", default-features = false } pallet-evm-living-assets-ownership = { path = "./precompile/living-assets", default-features = false } +pallet-evm-erc721 = { path = "./precompile/erc721", default-features = false } -# utils # Utils precompile-utils = { path = "./precompile/utils", default-features = false } precompile-utils-macro = { path = "./precompile/utils/macro", default-features = false } diff --git a/node/Cargo.toml b/node/Cargo.toml index 8bb1f4b9..fd03265d 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -33,6 +33,7 @@ sc-consensus = { workspace = true } sc-executor = { workspace = true } sc-network = { workspace = true } sc-network-sync = { workspace = true } +sc-offchain = { workspace = true } sc-rpc = { workspace = true } sc-service = { workspace = true } sc-sysinfo = { workspace = true } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index fbc9c672..00da817e 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -8,7 +8,7 @@ use sp_runtime::traits::{IdentifyAccount, Verify}; use std::{collections::BTreeMap, str::FromStr}; /// Specialized `ChainSpec` for the normal parachain runtime. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// The default XCM version to set in genesis config. const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; @@ -186,15 +186,16 @@ fn testnet_genesis( endowed_accounts: Vec, root_key: Option, id: ParaId, -) -> laos_runtime::GenesisConfig { +) -> laos_runtime::RuntimeGenesisConfig { // let alice = get_from_seed::("Alice"); // let bob = get_from_seed::("Bob"); - laos_runtime::GenesisConfig { + laos_runtime::RuntimeGenesisConfig { system: laos_runtime::SystemConfig { code: laos_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), + ..Default::default() }, // Configure additional assets here // For example, this configures asset "ALT1" & "ALT2" with owners, alice and bob, respectively @@ -222,7 +223,10 @@ fn testnet_genesis( // .filter_map(|(idx, acc)| if idx % 2 == 0 { Some(acc.clone()) } else { None }) // .collect::>(), // }, - parachain_info: laos_runtime::ParachainInfoConfig { parachain_id: id }, + parachain_info: laos_runtime::ParachainInfoConfig { + parachain_id: id, + ..Default::default() + }, collator_selection: laos_runtime::CollatorSelectionConfig { invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), candidacy_bond: EXISTENTIAL_DEPOSIT * 16, @@ -245,11 +249,14 @@ fn testnet_genesis( aura: Default::default(), aura_ext: Default::default(), parachain_system: Default::default(), - polkadot_xcm: laos_runtime::PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION) }, + polkadot_xcm: laos_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + ..Default::default() + }, sudo: laos_runtime::SudoConfig { key: root_key }, transaction_payment: Default::default(), // EVM compatibility - evm_chain_id: laos_runtime::EVMChainIdConfig { chain_id: 1000 }, + evm_chain_id: laos_runtime::EVMChainIdConfig { chain_id: 1000, ..Default::default() }, evm: laos_runtime::EVMConfig { accounts: { let mut map = BTreeMap::new(); @@ -307,9 +314,11 @@ fn testnet_genesis( ); map }, + ..Default::default() }, ethereum: Default::default(), // dynamic_fee: Default::default(), base_fee: Default::default(), + bridge_evochain_grandpa: Default::default(), } } diff --git a/node/src/command.rs b/node/src/command.rs index ff7b3bbf..35ca82b5 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,26 +1,23 @@ use std::net::SocketAddr; -use cumulus_client_cli::generate_genesis_block; use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use laos_runtime::Block; use log::{info, warn}; -use parity_scale_codec::Encode; use polkadot_service::RococoChainSpec; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, - NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, + NetworkParams, Result, SharedParams, SubstrateCli, }; use sc_service::config::{BasePath, /*DatabaseSource,*/ PrometheusConfig}; -use sp_core::hexdisplay::HexDisplay; -use sp_runtime::traits::{AccountIdConversion, Block as BlockT}; +use sp_runtime::traits::AccountIdConversion; // Frontier // use fc_db::frontier_database_dir; use crate::{ chain_spec, cli::{Cli, RelayChainCli, Subcommand}, - service::{/*db_config_dir,*/ new_partial, ParachainNativeExecutor}, + service::{self, /*db_config_dir,*/ new_partial}, }; fn load_spec(id: &str) -> std::result::Result, String> { @@ -69,10 +66,6 @@ impl SubstrateCli for Cli { fn load_spec(&self, id: &str) -> std::result::Result, String> { load_spec(id) } - - fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { - &laos_runtime::VERSION - } } impl SubstrateCli for RelayChainCli { @@ -115,10 +108,6 @@ impl SubstrateCli for RelayChainCli { .load_spec(id), } } - - fn native_runtime_version(chain_spec: &Box) -> &'static RuntimeVersion { - polkadot_cli::Cli::native_runtime_version(chain_spec) - } } macro_rules! construct_async_run { @@ -203,10 +192,9 @@ pub fn run() -> Result<()> { }, Some(Subcommand::ExportGenesisState(cmd)) => { let runner = cli.create_runner(cmd)?; - runner.sync_run(|_config| { - let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?; - let state_version = Cli::native_runtime_version(&spec).state_version(); - cmd.run::(&*spec, state_version) + runner.sync_run(|config| { + let partials = service::new_partial(&config, &cli.eth)?; + cmd.run(&*config.chain_spec, &*partials.client) }) }, Some(Subcommand::ExportGenesisWasm(cmd)) => { @@ -220,26 +208,25 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(cmd)?; // Switch on the concrete benchmark sub-command- match cmd { - BenchmarkCmd::Pallet(cmd) => + BenchmarkCmd::Pallet(cmd) => { if cfg!(feature = "runtime-benchmarks") { - runner.sync_run(|config| cmd.run::(config)) + runner.sync_run(|config| cmd.run::(config)) } else { Err("Benchmarking wasn't enabled when building the node. \ You can enable it with `--features runtime-benchmarks`." .into()) - }, + } + }, BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { let partials = new_partial(&config, ð_cfg)?; cmd.run(partials.client) }), #[cfg(not(feature = "runtime-benchmarks"))] - BenchmarkCmd::Storage(_) => - return Err(sc_cli::Error::Input( - "Compile with --features=runtime-benchmarks \ + BenchmarkCmd::Storage(_) => Err(sc_cli::Error::Input( + "Compile with --features=runtime-benchmarks \ to enable storage benchmarks." - .into(), - ) - .into()), + .into(), + )), #[cfg(feature = "runtime-benchmarks")] BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { let partials = new_partial(&config, ð_cfg)?; @@ -247,8 +234,9 @@ pub fn run() -> Result<()> { let storage = partials.backend.expose_storage(); cmd.run(config, partials.client.clone(), db, storage) }), - BenchmarkCmd::Machine(cmd) => - runner.sync_run(|config| cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone())), + BenchmarkCmd::Machine(cmd) => { + runner.sync_run(|config| cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone())) + }, // NOTE: this allows the Client to leniently implement // new benchmark commands without requiring a companion MR. #[allow(unreachable_patterns)] @@ -257,6 +245,7 @@ pub fn run() -> Result<()> { }, #[cfg(feature = "try-runtime")] Some(Subcommand::TryRuntime(cmd)) => { + use crate::service::ParachainNativeExecutor; use laos_runtime::MILLISECS_PER_BLOCK; use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; use try_runtime_cli::block_building_info::timestamp_with_aura_info; @@ -324,14 +313,7 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); - - let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); - - #[allow(clippy::redundant_clone)] - let block: Block = generate_genesis_block(&*config.chain_spec, state_version) - .map_err(|e| e.to_string())?; - let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); + AccountIdConversion::::into_account_truncating(&id); let tokio_handle = config.tokio_handle.clone(); let polkadot_config = @@ -340,7 +322,6 @@ pub fn run() -> Result<()> { info!("Parachain id: {:?}", id); info!("Parachain Account: {}", parachain_account); - info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); if !collator_options.relay_chain_rpc_urls.is_empty() && !cli.relay_chain_args.is_empty() { diff --git a/node/src/rpc/eth.rs b/node/src/rpc/eth.rs index 4834ff9d..ddfea606 100644 --- a/node/src/rpc/eth.rs +++ b/node/src/rpc/eth.rs @@ -1,6 +1,5 @@ use std::{collections::BTreeMap, sync::Arc}; -use fc_rpc::TxPool; use jsonrpsee::RpcModule; // Substrate use sc_client_api::{ @@ -151,14 +150,12 @@ where .into_rpc(), )?; - let tx_pool = TxPool::new(client.clone(), graph); - if let Some(filter_pool) = filter_pool { io.merge( EthFilter::new( client.clone(), frontier_backend, - tx_pool, + graph, filter_pool, 500_usize, // max stored filters max_past_logs, diff --git a/node/src/service.rs b/node/src/service.rs index c6be4939..f993cbd0 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -18,8 +18,10 @@ use cumulus_client_service::{ }; use cumulus_primitives_core::ParaId; use cumulus_relay_chain_interface::RelayChainInterface; +use futures::FutureExt; // Substrate Imports +use sc_client_api::Backend; use sc_consensus::ImportQueue; use sc_executor::{ HeapAllocStrategy, NativeElseWasmExecutor, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY, @@ -28,6 +30,7 @@ use sc_network::NetworkBlock; use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; +use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sp_core::U256; use sp_keystore::KeystorePtr; use substrate_prometheus_endpoint::Registry; @@ -189,6 +192,7 @@ async fn start_node_impl( let client = params.client.clone(); let backend = params.backend.clone(); let mut task_manager = params.task_manager; + let keystore_container = params.keystore_container; let (relay_chain_interface, collator_key) = build_relay_chain_interface( polkadot_config, @@ -232,11 +236,23 @@ async fn start_node_impl( .await?; if parachain_config.offchain_worker.enabled { - sc_service::build_offchain_workers( - ¶chain_config, - task_manager.spawn_handle(), - client.clone(), - network.clone(), + task_manager.spawn_handle().spawn( + "offchain-workers-runner", + "offchain-work", + sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { + runtime_api_provider: client.clone(), + keystore: Some(keystore_container.keystore()), + offchain_db: backend.offchain_storage(), + transaction_pool: Some(OffchainTransactionPoolFactory::new( + transaction_pool.clone(), + )), + network_provider: network.clone(), + is_validator: parachain_config.role.is_authority(), + enable_http_requests: true, + custom_extensions: move |_| vec![], + }) + .run(client.clone(), task_manager.spawn_handle()) + .boxed(), ); } @@ -298,7 +314,7 @@ async fn start_node_impl( transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, config: parachain_config, - keystore: params.keystore_container.keystore(), + keystore: keystore_container.keystore(), backend: backend.clone(), network: network.clone(), sync_service: sync_service.clone(), @@ -354,7 +370,7 @@ async fn start_node_impl( relay_chain_interface.clone(), transaction_pool, sync_service.clone(), - params.keystore_container.keystore(), + keystore_container.keystore(), force_authoring, para_id, )?; diff --git a/pallets/living-assets-ownership/Cargo.toml b/pallets/living-assets-ownership/Cargo.toml index 9b4a4f32..10def798 100644 --- a/pallets/living-assets-ownership/Cargo.toml +++ b/pallets/living-assets-ownership/Cargo.toml @@ -12,6 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [dependencies] +hex-literal = { workspace = true, optional = true} parity-scale-codec = { workspace = true, features = ["derive"] } scale-info = { workspace = true, features = ["derive"] } @@ -19,9 +20,12 @@ scale-info = { workspace = true, features = ["derive"] } frame-benchmarking = { workspace = true, optional = true } frame-support = { workspace = true } frame-system = { workspace = true } +sp-arithmetic = { workspace = true } +sp-core = { workspace = true } [dev-dependencies] serde = { workspace = true } +hex = { version = "0.4.3" } # Substrate sp-core = { workspace = true } @@ -30,12 +34,21 @@ sp-runtime = { workspace = true } [features] default = ["std"] -runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"] +runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "frame-support/runtime-benchmarks" +] std = [ "parity-scale-codec/std", "scale-info/std", "frame-benchmarking/std", "frame-support/std", "frame-system/std", + "sp-arithmetic/std", + "sp-core/std", +] +try-runtime = [ + "frame-system/try-runtime", + "frame-support/try-runtime" ] -try-runtime = [ "frame-support/try-runtime" ] diff --git a/pallets/living-assets-ownership/src/functions.rs b/pallets/living-assets-ownership/src/functions.rs index ab3dce53..abf2b028 100644 --- a/pallets/living-assets-ownership/src/functions.rs +++ b/pallets/living-assets-ownership/src/functions.rs @@ -1,22 +1,45 @@ //! Contains helper and utility functions of the pallet use super::*; -use frame_support::{ensure, sp_runtime::DispatchResult}; +use frame_support::sp_runtime::traits::One; +use sp_core::{H160, U256}; impl Pallet { /// See [Self::create_collection] - pub fn do_create_collection( - collection_id: T::CollectionId, - who: T::AccountId, - ) -> DispatchResult { - ensure!( - !OwnerOfCollection::::contains_key(collection_id), - Error::::CollectionAlreadyExists - ); + pub fn do_create_collection(who: T::AccountId) -> Result { + // Retrieve the current collection count to use as the new collection's ID + let collection_id = Self::collection_counter(); + // Insert a new entry into the OwnerOfCollection map, mapping the new + // collection's ID to the owner's account ID OwnerOfCollection::::insert(collection_id, &who); + // Attempt to increment the collection counter by 1. If this operation + // would result in an overflow, return early with an error + let counter = + collection_id.checked_add(One::one()).ok_or(Error::::CollectionIdOverflow)?; + CollectionCounter::::put(counter); + Self::deposit_event(Event::CollectionCreated { collection_id, who }); - Ok(()) + Ok(collection_id) + } +} + +pub fn convert_asset_id_to_owner(value: U256) -> H160 { + let mut bytes = [0u8; 20]; + let value_bytes: [u8; 32] = value.into(); + bytes.copy_from_slice(&value_bytes[value_bytes.len() - 20..]); + H160::from(bytes) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn check_convert_asset_id_to_owner() { + let value = U256::from(5); + let expected_address = H160::from_low_u64_be(5); + assert_eq!(convert_asset_id_to_owner(value), expected_address); } } diff --git a/pallets/living-assets-ownership/src/lib.rs b/pallets/living-assets-ownership/src/lib.rs index d5219cfb..57cfc62a 100644 --- a/pallets/living-assets-ownership/src/lib.rs +++ b/pallets/living-assets-ownership/src/lib.rs @@ -4,19 +4,23 @@ /// Learn more about FRAME and the core library of Substrate FRAME pallets: /// pub use pallet::*; +use sp_core::H160; mod functions; - -#[cfg(test)] -mod mock; - -#[cfg(test)] -mod tests; +pub mod traits; #[frame_support::pallet] pub mod pallet { - use frame_support::pallet_prelude::{OptionQuery, *}; + use crate::functions::convert_asset_id_to_owner; + + use super::*; + use frame_support::pallet_prelude::{OptionQuery, ValueQuery, *}; use frame_system::pallet_prelude::*; + use sp_core::{H160, U256}; + + /// Collection id type + /// TODO: use 256 bits + pub type CollectionId = u64; #[pallet::pallet] pub struct Pallet(_); @@ -26,15 +30,18 @@ pub mod pallet { pub trait Config: frame_system::Config { /// Because this pallet emits events, it depends on the runtime's definition of an event. type RuntimeEvent: From> + IsType<::RuntimeEvent>; - /// Collection id type - type CollectionId: Member + Parameter + MaxEncodedLen + Copy; } /// Mapping from collection id to owner #[pallet::storage] #[pallet::getter(fn owner_of_collection)] pub(super) type OwnerOfCollection = - StorageMap<_, Blake2_128Concat, T::CollectionId, T::AccountId, OptionQuery>; + StorageMap<_, Blake2_128Concat, CollectionId, T::AccountId, OptionQuery>; + + /// Collection counter + #[pallet::storage] + #[pallet::getter(fn collection_counter)] + pub(super) type CollectionCounter = StorageValue<_, CollectionId, ValueQuery>; /// Pallet events #[pallet::event] @@ -42,7 +49,7 @@ pub mod pallet { pub enum Event { /// Collection created /// parameters. [collection_id, who] - CollectionCreated { collection_id: T::CollectionId, who: T::AccountId }, + CollectionCreated { collection_id: CollectionId, who: T::AccountId }, } // Errors inform users that something went wrong. @@ -50,6 +57,8 @@ pub mod pallet { pub enum Error { /// Collection already exists CollectionAlreadyExists, + /// Collection id overflow + CollectionIdOverflow, } // Dispatchable functions allows users to interact with the pallet and invoke state changes. @@ -59,53 +68,112 @@ pub mod pallet { impl Pallet { #[pallet::call_index(0)] #[pallet::weight(10_000 + T::DbWeight::get().writes(1).ref_time())] // TODO set proper weight - pub fn create_collection( - origin: OriginFor, - collection_id: T::CollectionId, - ) -> DispatchResult { + pub fn create_collection(origin: OriginFor) -> DispatchResult { let who = ensure_signed(origin)?; - Self::do_create_collection(collection_id, who) - } - } - /// The `LivingAssetsOwnership` trait provides an interface for managing collections in a - /// decentralized and non-fungible asset management system. This system allows for the creation of - /// collections, each of which can be owned by a unique `AccountId`. - /// - /// A collection in this context can be thought of as a container for non-fungible assets. - /// Each collection has an associated `collection_id` which is a unique identifier for the collection - /// and can be used to retrieve the owner of the collection. - /// - /// # Methods - /// - /// - `owner_of_collection(collection_id: T::CollectionId) -> Option`: This method retrieves the owner - /// of a collection given its `collection_id`. If no collection exists with the provided `collection_id`, - /// the method returns `None`. - /// - /// - `create_collection(collection_id: T::CollectionId, who: AccountId) -> DispatchResult`: This method creates a - /// new collection with the specified `collection_id` and assigns ownership to the provided `AccountId`. - /// If a collection already exists with the provided `collection_id`, the method will return an error. - /// - /// # Errors - /// - /// - `CollectionAlreadyExists`: This error is returned by the `create_collection` method when a collection - /// with the provided `collection_id` already exists. - /// - pub trait LivingAssetsOwnership { - /// Get owner of collection - fn owner_of_collection(collection_id: CollectionId) -> Option; - - /// Create collection - fn create_collection(collection_id: CollectionId, who: AccountId) -> DispatchResult; + match Self::do_create_collection(who) { + Ok(_) => Ok(()), + Err(err) => Err(err.into()), + } + } } - impl LivingAssetsOwnership for Pallet { - fn owner_of_collection(collection_id: T::CollectionId) -> Option { + impl traits::CollectionManager for Pallet { + fn owner_of_collection(collection_id: CollectionId) -> Option { OwnerOfCollection::::get(collection_id) } - fn create_collection(collection_id: T::CollectionId, who: T::AccountId) -> DispatchResult { - Self::do_create_collection(collection_id, who) + fn create_collection(owner: T::AccountId) -> Result { + Self::do_create_collection(owner) + } + } + + impl traits::Erc721 for Pallet { + fn owner_of(collection_id: CollectionId, asset_id: U256) -> Result { + match OwnerOfCollection::::get(collection_id) { + Some(_) => Ok(convert_asset_id_to_owner(asset_id)), + None => Err("Collection does not exist"), + } } } } + +/// `ASSET_PRECOMPILE_ADDRESS_PREFIX` is a predefined prefix used to identify collection addresses. +/// +/// All addresses that start with this prefix are considered as collection addresses. +/// Since `CollectionId` is represented as a `u64`, it leaves these bits free to be +/// utilized for such a prefix. +/// +/// Usage of this prefix provides a consistent and recognizable pattern for distinguishing +/// collection addresses from other types of addresses in the system. +pub const ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[0xff; 12]; + +/// Enum representing possible errors related to collections. +#[derive(Debug, PartialEq)] +pub enum CollectionError { + /// Error indicating that the provided address does not have the correct prefix. + InvalidPrefix, +} + +/// Converts a `CollectionId` into an `H160` address format. +/// +/// This function takes the given `CollectionId`, which is assumed to be a `u64`, +/// and maps it into an `H160` address, prepending it with the `ASSET_PRECOMPILE_ADDRESS_PREFIX`. +/// +/// # Arguments +/// +/// * `collection_id`: The ID of the collection to be converted. +/// +/// # Returns +/// +/// * An `H160` representation of the collection ID. +pub fn collection_id_to_address(collection_id: CollectionId) -> H160 { + let mut bytes = [0u8; 20]; + bytes[12..20].copy_from_slice(&collection_id.to_be_bytes()); + for (i, byte) in ASSET_PRECOMPILE_ADDRESS_PREFIX.iter().enumerate() { + bytes[i] = *byte; + } + H160(bytes) +} + +/// Converts an `H160` address into a `CollectionId` format. +/// +/// This function takes the given `H160` address, checks for the correct prefix, and extracts +/// the `CollectionId` from it. If the prefix is incorrect, it returns a `CollectionError::InvalidPrefix` error. +/// +/// # Arguments +/// +/// * `address`: The `H160` address to be converted. +/// +/// # Returns +/// +/// * A `Result` which is either the `CollectionId` or an error indicating the address is invalid. +pub fn address_to_collection_id(address: H160) -> Result { + if &address.0[0..12] != ASSET_PRECOMPILE_ADDRESS_PREFIX { + return Err(CollectionError::InvalidPrefix); + } + let id_bytes: [u8; 8] = address.0[12..].try_into().unwrap(); + Ok(CollectionId::from_be_bytes(id_bytes)) +} + +/// Checks if a given `H160` address is a collection address. +/// +/// This function examines the prefix of the given `H160` address to determine if it is a +/// collection address, based on the `ASSET_PRECOMPILE_ADDRESS_PREFIX`. +/// +/// # Arguments +/// +/// * `address`: The `H160` address to be checked. +/// +/// # Returns +/// +/// * A boolean indicating if the address is a collection address. +pub fn is_collection_address(address: H160) -> bool { + &address.to_fixed_bytes()[0..12] == ASSET_PRECOMPILE_ADDRESS_PREFIX +} + +#[cfg(test)] +mod mock; + +#[cfg(test)] +mod tests; diff --git a/pallets/living-assets-ownership/src/mock.rs b/pallets/living-assets-ownership/src/mock.rs index 71a79e3f..ca8fcaa8 100644 --- a/pallets/living-assets-ownership/src/mock.rs +++ b/pallets/living-assets-ownership/src/mock.rs @@ -2,19 +2,16 @@ use crate as pallet_livingassets_ownership; use frame_support::traits::{ConstU16, ConstU64}; use sp_core::H256; use sp_runtime::{ - testing::Header, traits::{BlakeTwo256, IdentityLookup}, + BuildStorage, }; -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; +type Nonce = u32; // Configure a mock runtime to test the pallet. frame_support::construct_runtime!( - pub enum Test where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, + pub enum Test { System: frame_system, LivingAssetsModule: pallet_livingassets_ownership, @@ -28,13 +25,12 @@ impl frame_system::Config for Test { type DbWeight = (); type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; - type Index = u64; - type BlockNumber = u64; + type Block = Block; type Hash = H256; + type Nonce = Nonce; type Hashing = BlakeTwo256; type AccountId = u64; type Lookup = IdentityLookup; - type Header = Header; type RuntimeEvent = RuntimeEvent; type BlockHashCount = ConstU64<250>; type Version = (); @@ -50,10 +46,9 @@ impl frame_system::Config for Test { impl pallet_livingassets_ownership::Config for Test { type RuntimeEvent = RuntimeEvent; - type CollectionId = u64; } // Build genesis storage according to the mock runtime. pub fn new_test_ext() -> sp_io::TestExternalities { - frame_system::GenesisConfig::default().build_storage::().unwrap().into() + RuntimeGenesisConfig::default().build_storage().unwrap().into() } diff --git a/pallets/living-assets-ownership/src/tests.rs b/pallets/living-assets-ownership/src/tests.rs index 0251eb82..a6e34157 100644 --- a/pallets/living-assets-ownership/src/tests.rs +++ b/pallets/living-assets-ownership/src/tests.rs @@ -1,87 +1,175 @@ -use crate::{mock::*, Error, Event, LivingAssetsOwnership}; -use frame_support::{assert_noop, assert_ok}; - -#[cfg(test)] -mod test { - use super::*; - - type AccountId = ::AccountId; - type CollectionId = ::CollectionId; - - #[test] - fn owner_of_unexistent_collection_is_none() { - new_test_ext().execute_with(|| { - assert_eq!(LivingAssetsModule::owner_of_collection(0), None); - assert_eq!(LivingAssetsModule::owner_of_collection(1), None); - }); - } - - #[test] - fn create_new_collection() { - new_test_ext().execute_with(|| { - assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(1), 0)); - assert_eq!(LivingAssetsModule::owner_of_collection(0), Some(1)); - }); - } - - #[test] - fn create_an_existing_collection_should_fail() { - new_test_ext().execute_with(|| { - assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(1), 0)); - assert_noop!( - LivingAssetsModule::create_collection(RuntimeOrigin::signed(1), 0), - Error::::CollectionAlreadyExists - ); - }); - } - - #[test] - fn create_new_collection_should_emit_an_event() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited - System::set_block_number(1); - - assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(1), 0)); - System::assert_last_event(Event::CollectionCreated { collection_id: 0, who: 1 }.into()); - }); - } - - #[test] - fn living_assets_ownership_trait_create_new_collection_by_living() { - new_test_ext().execute_with(|| { - let result = >::create_collection(0, 1); - assert_ok!(result); - assert_eq!(LivingAssetsModule::owner_of_collection(0), Some(1)); - }); - } - - #[test] - fn living_assets_ownership_trait_owner_of_unexistent_collection_is_none() { - new_test_ext().execute_with(|| { - assert_eq!(>::owner_of_collection(0), None); - assert_eq!(>::owner_of_collection(1), None); - }); - } - - #[test] - fn living_assets_ownership_trait_create_an_existing_collection_should_fail() { - new_test_ext().execute_with(|| { - assert_ok!(>::create_collection(0, 1)); - assert_noop!( - >::create_collection(0, 1), - Error::::CollectionAlreadyExists - ); - }); - } - - #[test] - fn living_assets_ownership_trait_create_new_collection_should_emit_an_event() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited - System::set_block_number(1); - - assert_ok!(>::create_collection(0, 1)); - System::assert_last_event(Event::CollectionCreated { collection_id: 0, who: 1 }.into()); - }); - } +use core::str::FromStr; + +use crate::{ + address_to_collection_id, collection_id_to_address, is_collection_address, + mock::*, + traits::{CollectionManager, Erc721}, + CollectionError, Event, +}; +use frame_support::assert_ok; +use sp_core::H160; + +type AccountId = ::AccountId; + +const ALICE: AccountId = 0x1234; + +#[test] +fn owner_of_unexistent_collection_is_none() { + new_test_ext().execute_with(|| { + assert_eq!(LivingAssetsModule::owner_of_collection(0), None); + assert_eq!(LivingAssetsModule::owner_of_collection(1), None); + }); +} + +#[test] +fn create_new_collection() { + new_test_ext().execute_with(|| { + assert_eq!(LivingAssetsModule::owner_of_collection(0), None); + + assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(ALICE))); + assert_eq!(LivingAssetsModule::owner_of_collection(0).unwrap(), ALICE); + assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(ALICE))); + assert_eq!(LivingAssetsModule::owner_of_collection(1).unwrap(), ALICE); + assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(ALICE))); + assert_eq!(LivingAssetsModule::owner_of_collection(2).unwrap(), ALICE); + }); +} + +#[test] +fn create_new_collections_should_emit_events_with_collection_id_consecutive() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited + System::set_block_number(1); + + assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(ALICE))); + System::assert_last_event(Event::CollectionCreated { collection_id: 0, who: ALICE }.into()); + assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(ALICE))); + System::assert_last_event(Event::CollectionCreated { collection_id: 1, who: ALICE }.into()); + assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(ALICE))); + System::assert_last_event(Event::CollectionCreated { collection_id: 2, who: ALICE }.into()); + assert_ok!(LivingAssetsModule::create_collection(RuntimeOrigin::signed(ALICE))); + System::assert_last_event(Event::CollectionCreated { collection_id: 3, who: ALICE }.into()); + }); +} + +#[test] +fn living_assets_ownership_trait_create_new_collection() { + new_test_ext().execute_with(|| { + let result = >::create_collection(ALICE); + assert_ok!(result); + assert_eq!(LivingAssetsModule::owner_of_collection(0).unwrap(), ALICE); + }); +} + +#[test] +fn living_assets_ownership_trait_owner_of_unexistent_collection_is_none() { + new_test_ext().execute_with(|| { + assert_eq!( + >::owner_of_collection(0), + None + ); + assert_eq!( + >::owner_of_collection(1), + None + ); + }); +} + +#[test] +fn living_assets_ownership_trait_create_new_collection_should_emit_an_event() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited + System::set_block_number(1); + + assert_ok!(>::create_collection(ALICE)); + System::assert_last_event(Event::CollectionCreated { collection_id: 0, who: ALICE }.into()); + }); +} + +#[test] +fn living_assets_ownership_trait_id_of_new_collection_should_be_consecutive() { + new_test_ext().execute_with(|| { + assert_eq!( + >::create_collection(ALICE).unwrap(), + 0 + ); + assert_eq!( + >::create_collection(ALICE).unwrap(), + 1 + ); + assert_eq!( + >::create_collection(ALICE).unwrap(), + 2 + ); + assert_eq!( + >::create_collection(ALICE).unwrap(), + 3 + ); + assert_eq!( + >::create_collection(ALICE).unwrap(), + 4 + ); + assert_eq!( + >::create_collection(ALICE).unwrap(), + 5 + ); + }); +} + +#[test] +fn erc721_owner_of_asset_of_unexistent_collection() { + new_test_ext().execute_with(|| { + assert_eq!( + ::owner_of(0, 2.into()), + Err("Collection does not exist") + ); + }); +} + +#[test] +fn erc721_owner_of_asset_of_collection() { + new_test_ext().execute_with(|| { + let collection_id = + >::create_collection(ALICE).unwrap(); + assert_eq!( + ::owner_of(collection_id, 2.into()).unwrap(), + H160::from_low_u64_be(0x0000000000000002) + ); + }); +} + +#[test] +fn test_collection_id_to_address() { + let collection_id = 5; + let expected_address = H160::from_str("ffffffffffffffffffffffff0000000000000005").unwrap(); + assert_eq!(collection_id_to_address(collection_id), expected_address); +} + +#[test] +fn invalid_collection_address_should_error() { + let address = H160::from_str("8000000000000000000000000000000000000005").unwrap(); + let error = address_to_collection_id(address).unwrap_err(); + assert_eq!(error, CollectionError::InvalidPrefix); +} + +#[test] +fn valid_collection_address_should_return_collection_id() { + let address = H160::from_str("ffffffffffffffffffffffff0000000000000005").unwrap(); + let collection_id = address_to_collection_id(address).unwrap(); + assert_eq!(collection_id, 5); +} + +#[test] +fn test_is_collection_address_valid() { + let collection_id = 1234567890; + let address = collection_id_to_address(collection_id); + + assert!(is_collection_address(address)); +} + +#[test] +fn test_is_collection_address_invalid() { + let invalid_address = H160([0u8; 20]); + + assert!(!is_collection_address(invalid_address)); } diff --git a/pallets/living-assets-ownership/src/traits.rs b/pallets/living-assets-ownership/src/traits.rs new file mode 100644 index 00000000..c5db2984 --- /dev/null +++ b/pallets/living-assets-ownership/src/traits.rs @@ -0,0 +1,48 @@ +use sp_core::{H160, U256}; + +use crate::CollectionId; + +/// The `CollectionManager` trait provides an interface for managing collections in a +/// decentralized and non-fungible asset management system. This system allows for the creation of +/// collections, each of which can be owned by a unique `AccountId`. +/// +/// A collection in this context can be thought of as a container for non-fungible assets. +/// Each collection has an associated `collection_id` which is a unique identifier for the collection +/// and can be used to retrieve the owner of the collection. +/// +/// # Methods +/// +/// - `owner_of_collection(collection_id: CollectionId) -> Option`: This method retrieves the owner +/// of a collection given its `collection_id`. If no collection exists with the provided `collection_id`, +/// the method returns `None`. +/// +/// - `create_collection(owner: AccountId) -> Result`: This method creates a +/// new collection and assigns ownership to the provided `AccountId`. The method returns the `collection_id` +/// of the newly created collection. +/// +pub trait CollectionManager { + /// Get owner of collection + fn owner_of_collection(collection_id: CollectionId) -> Option; + + /// Create collection + fn create_collection(owner: AccountId) -> Result; +} + +/// `Erc721` Trait +/// +/// This trait provides an interface for handling ERC721 tokens, a standard for non-fungible tokens on the blockchain. +pub trait Erc721 { + /// Retrieves the owner of a specific asset in a collection. + /// + /// # Parameters + /// + /// * `collection_id`: An identifier for the collection to which the asset belongs. + /// * `asset_id`: The unique identifier for the asset within the specified collection. + /// + /// # Returns + /// + /// * A `Result` which is: + /// - `Ok(H160)`: Returns the Ethereum address (`H160`) of the owner of the asset. + /// - `Err(&'static str)`: Returns an error message if the asset owner could not be determined. + fn owner_of(collection_id: CollectionId, asset_id: U256) -> Result; +} diff --git a/polkadot-launch/config.json b/polkadot-launch/config.json deleted file mode 100644 index f03f983a..00000000 --- a/polkadot-launch/config.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "relaychain": { - "bin": "../../polkadot/target/release/polkadot", - "chain": "rococo-local", - "nodes": [ - { - "name": "alice", - "wsPort": 9944, - "port": 30444 - }, - { - "name": "bob", - "wsPort": 9955, - "port": 30555 - } - ] - }, - "parachains": [ - { - "bin": "../target/release/polkadot-parachain", - "id": "200", - "balance": "1000000000000000000000", - "nodes": [ - { - "wsPort": 9988, - "name": "alice", - "port": 31200, - "flags": [ - "--force-authoring", - "--", - "--execution=wasm" - ] - } - ] - } - ], - "types": { - } -} diff --git a/precompile/erc721/Cargo.toml b/precompile/erc721/Cargo.toml new file mode 100644 index 00000000..04d19196 --- /dev/null +++ b/precompile/erc721/Cargo.toml @@ -0,0 +1,55 @@ +[package] +name = "pallet-evm-erc721" +version = "0.0.1" +edition = "2021" + +[dependencies] +parity-scale-codec = { workspace = true, features = [ + "derive", +] } +scale-info = { workspace = true, features = [ + "derive", +] } + +# Frontier +fp-evm = { workspace = true } +pallet-evm = { workspace = true } + +# Substrate +frame-support = { workspace = true } +sp-arithmetic = { workspace = true } +sp-core = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } + +# Local pallet +pallet-living-assets-ownership = { workspace = true } + +# Utils +precompile-utils = { workspace = true } +precompile-utils-macro = { workspace = true } + +num_enum = { workspace = true } + +[dev-dependencies] +evm = { workspace = true } +hex = { version = "0.4.3" } +precompile-utils = { workspace = true, features = ["testing"]} + +[features] +default = ["std"] +std = [ + # Frontier + "fp-evm/std", + "pallet-evm/std", + "sp-core/std", + "sp-runtime/std", + "sp-std/std", + "pallet-living-assets-ownership/std", + "num_enum/std", + "frame-support/std", + "sp-arithmetic/std", + "precompile-utils/std", + "parity-scale-codec/std", + "scale-info/std", +] diff --git a/precompile/erc721/contracts/IERC721.sol b/precompile/erc721/contracts/IERC721.sol new file mode 100644 index 00000000..c12dcb51 --- /dev/null +++ b/precompile/erc721/contracts/IERC721.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: MIT +// derived from OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol) +pragma solidity >=0.8.3; + +interface IERC721 { + /** + * @dev See {IERC721Metadata-tokenURI}. + */ + function tokenURI(uint256 _tokenId) external view returns (string memory); + + function ownerOf(uint256 _tokenId) external view returns (address); +} diff --git a/precompile/erc721/src/lib.rs b/precompile/erc721/src/lib.rs new file mode 100644 index 00000000..9d9708ea --- /dev/null +++ b/precompile/erc721/src/lib.rs @@ -0,0 +1,70 @@ +//! Living Assets precompile module. + +#![cfg_attr(not(feature = "std"), no_std)] +use fp_evm::{Precompile, PrecompileHandle, PrecompileOutput}; +use pallet_living_assets_ownership::{address_to_collection_id, traits::Erc721}; +use parity_scale_codec::Encode; +use precompile_utils::{ + revert, succeed, Address, EvmDataWriter, EvmResult, FunctionModifier, PrecompileHandleExt, +}; + +use sp_core::U256; +use sp_std::{fmt::Debug, marker::PhantomData}; + +#[precompile_utils_macro::generate_function_selector] +#[derive(Debug, PartialEq)] +pub enum Action { + /// Get tocken URI + TockenURI = "tokenURI(uint256)", + /// Owner of + OwnerOf = "ownerOf(uint256)", +} + +/// Wrapper for the precompile function. +pub struct Erc721Precompile( + PhantomData<(AddressMapping, AccountId, AssetManager)>, +) +where + AddressMapping: pallet_evm::AddressMapping, + AccountId: Encode + Debug, + AssetManager: Erc721; + +impl Precompile + for Erc721Precompile +where + AddressMapping: pallet_evm::AddressMapping, + AccountId: Encode + Debug, + AssetManager: Erc721, +{ + fn execute(handle: &mut impl PrecompileHandle) -> EvmResult { + let selector = handle.read_selector()?; + + handle.check_function_modifier(match selector { + Action::TockenURI => FunctionModifier::View, + Action::OwnerOf => FunctionModifier::View, + })?; + + match selector { + Action::TockenURI => Err(revert("not implemented")), + Action::OwnerOf => { + let mut input = handle.read_input()?; + input.expect_arguments(1)?; + + let asset_id: U256 = input.read()?; + + // collection id is encoded into the contract address + let collection_id = match address_to_collection_id(handle.code_address()) { + Ok(collection_id) => collection_id, + Err(_) => return Err(revert("invalid collection address")), + }; + match AssetManager::owner_of(collection_id, asset_id) { + Ok(owner) => Ok(succeed(EvmDataWriter::new().write(Address(owner)).build())), + Err(err) => Err(revert(err)), + } + }, + } + } +} + +#[cfg(test)] +mod tests; diff --git a/precompile/erc721/src/tests.rs b/precompile/erc721/src/tests.rs new file mode 100644 index 00000000..07fc1b4a --- /dev/null +++ b/precompile/erc721/src/tests.rs @@ -0,0 +1,125 @@ +use core::str::FromStr; + +use super::*; +use pallet_living_assets_ownership::CollectionId; +use precompile_utils::testing::create_mock_handle_from_input; +use sp_core::{H160, U256}; + +type AccountId = H160; +type AddressMapping = pallet_evm::IdentityAddressMapping; + +#[test] +fn check_selectors() { + assert_eq!(Action::OwnerOf as u32, 0x6352211E); + assert_eq!(Action::TockenURI as u32, 0xC87B56DD); +} + +#[test] +fn owner_of_asset_should_return_an_address() { + impl_precompile_mock_simple!( + Mock, + Ok(H160::from_str("ff00000000000000000000000000000012345678").unwrap()) + ); + + let owner_of_asset_4 = + hex::decode("6352211e0000000000000000000000000000000000000000000000000000000000000004") + .unwrap(); + let mut handle = create_mock_handle_from_input(owner_of_asset_4); + handle.code_address = H160::from_str("ffffffffffffffffffffffff0000000000000005").unwrap(); + let result = Mock::execute(&mut handle); + assert!(result.is_ok()); + assert_eq!( + result.unwrap(), + succeed( + hex::decode("000000000000000000000000ff00000000000000000000000000000012345678") + .unwrap() + ), + ); +} + +#[test] +fn if_mock_fails_should_return_the_error() { + impl_precompile_mock_simple!(Mock, Err("spaghetti error")); + + let owner_of_asset_4 = + hex::decode("6352211e0000000000000000000000000000000000000000000000000000000000000004") + .unwrap(); + let mut handle = create_mock_handle_from_input(owner_of_asset_4); + handle.code_address = H160::from_str("ffffffffffffffffffffffff0000000000000005").unwrap(); + let result = Mock::execute(&mut handle); + assert!(result.is_err()); + assert_eq!(result.unwrap_err(), revert("spaghetti error"),); +} + +#[test] +fn invalid_contract_address_should_error() { + impl_precompile_mock_simple!(Mock, Ok(H160::zero())); + + let mut handle = create_mock_handle_from_input(Vec::new()); + handle.code_address = H160::zero(); + let result = Mock::execute(&mut handle); + assert!(result.is_err()); + assert_eq!(result.unwrap_err(), revert("tried to parse selector out of bounds"),); +} + +mod helpers { + /// Macro to define a precompile mock with custom closures for testing. + /// + /// This macro creates mock implementations of the `Erc721` trait, + /// allowing you to test how your code interacts with the precompiled contracts. + /// You can define a custom closure for the owner_of function. + /// + /// # Arguments + /// + /// * `$name`: An identifier to name the precompile mock type. + /// * `$owner_of_collection`: A closure that takes `collection_id` and `asset_id` and returns a `Result`. + /// + /// # Example + /// + /// ``` + /// impl_precompile_mock!( + /// MyMock, + /// |collection_id, asset_id| { Ok(AccountId::default()) } + /// ); + /// ``` + #[macro_export] + macro_rules! impl_precompile_mock { + ($name:ident, $owner_of_collection:expr) => { + struct Erc721Mock; + + impl pallet_living_assets_ownership::traits::Erc721 for Erc721Mock { + fn owner_of( + collectio_id: CollectionId, + asset_id: U256, + ) -> Result { + ($owner_of_collection)(collectio_id, asset_id) + } + } + + type $name = Erc721Precompile; + }; + } + + /// Macro to define a precompile mock for testing. + /// + /// This macro creates mock implementations of the `Erc721` trait, + /// allowing you to test how your code interacts with the precompiled contracts. + /// The mock type is named based on the provided identifier, and the implementation uses the provided expression. + /// + /// # Arguments + /// + /// * `$name`: An identifier to name the precompile mock type. + /// * `$owner_of_collection`: An expression that evaluates to a `Result`. + /// + /// # Example + /// + /// ``` + /// impl_precompile_mock_simple!(Mock, Ok(AccountId::default())); + /// ``` + #[macro_export] + macro_rules! impl_precompile_mock_simple { + ($name:ident, $owner_of_collection:expr) => { + impl_precompile_mock!($name, |_asset_id, _collection_id| { $owner_of_collection }); + }; + } +} diff --git a/precompile/living-assets/Cargo.toml b/precompile/living-assets/Cargo.toml index 3bbab7e2..57d0c67c 100644 --- a/precompile/living-assets/Cargo.toml +++ b/precompile/living-assets/Cargo.toml @@ -16,7 +16,7 @@ scale-info = { workspace = true, features = [ ] } # Frontier -fp-evm = { workspace = true } +fp-evm = { workspace = true, features = ["serde"] } pallet-evm = { workspace = true } # Substrate @@ -35,6 +35,11 @@ precompile-utils-macro = { workspace = true } num_enum = { workspace = true } +[dev-dependencies] +evm = { workspace = true } +hex = { version = "0.4.3" } +precompile-utils = { workspace = true, features = ["testing"]} + [features] default = ["std"] std = [ diff --git a/precompile/living-assets/contracts/LivingAssetsOwnership.sol b/precompile/living-assets/contracts/LivingAssetsOwnership.sol index fb8f65ef..04c7e087 100644 --- a/precompile/living-assets/contracts/LivingAssetsOwnership.sol +++ b/precompile/living-assets/contracts/LivingAssetsOwnership.sol @@ -1,25 +1,17 @@ // SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.8.3; +/// @title Pallet Collection Manager Interface /// @author Freeverse team -/// @title Pallet LivingAssetsOwnership Interface -/// @dev The interface through which solidity contracts will interact with pallet-living-assets +/// @notice This interface allows Solidity contracts to interact with pallet-living-assets /// @custom:address 0x0000000000000000000000000000000000000402 interface LivingAssets { - /// @dev Create collection - /// @custom:selector 0x1eaf2516 - /// - /// @param collection_id The `collection_id` to be associated - function createCollection( - uint64 collection_id, - address who - ) external payable; + /// @notice Event emitted when a new collection is created + /// @param collectionAddress Address of the newly created ERC721 collection + event CreateCollection(address indexed collectionAddress); - /// @dev Get collection owner - /// @custom:selector 0xfb34ae53 - /// - /// @param collection_id The `collection_id` - function ownerOfCollection( - uint64 collection_id - ) external view returns (bytes32); + /// @notice Creates a new collection + /// @dev Call this function to create a new collection + /// @return address of the ERC721 collection + function createCollection() external returns (address); } diff --git a/precompile/living-assets/contracts/LivingAssetsOwnershipWrapper.sol b/precompile/living-assets/contracts/LivingAssetsOwnershipWrapper.sol deleted file mode 100644 index eab17502..00000000 --- a/precompile/living-assets/contracts/LivingAssetsOwnershipWrapper.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-only -pragma solidity >=0.8.3; -import "./LivingAssetsOwnership.sol"; - -contract A { - LivingAssets public constant LIVING_ASSETS = - LivingAssets(0x0000000000000000000000000000000000000402); - - /// @notice Get owner of collection - function ownerOfCollection( - uint64 collection_id - ) public view returns (bytes32) { - return LIVING_ASSETS.ownerOfCollection(collection_id); - } - - /// @notice Create collection - function createCollection( - uint64 collection_id, - address who - ) public payable { - LIVING_ASSETS.createCollection(collection_id, who); - } -} diff --git a/precompile/living-assets/src/lib.rs b/precompile/living-assets/src/lib.rs index 91509c38..ab1242b4 100644 --- a/precompile/living-assets/src/lib.rs +++ b/precompile/living-assets/src/lib.rs @@ -1,105 +1,75 @@ //! Living Assets precompile module. #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(test, feature(assert_matches))] -use fp_evm::{ExitError, ExitSucceed, PrecompileFailure, PrecompileHandle, PrecompileOutput}; -use pallet_living_assets_ownership::LivingAssetsOwnership; +use fp_evm::{Precompile, PrecompileHandle, PrecompileOutput}; +use pallet_living_assets_ownership::{ + collection_id_to_address, traits::CollectionManager, CollectionId, +}; use parity_scale_codec::Encode; use precompile_utils::{ - succeed, Address, EvmDataWriter, EvmResult, FunctionModifier, PrecompileHandleExt, + keccak256, revert, succeed, Address, EvmDataWriter, EvmResult, FunctionModifier, LogExt, + LogsBuilder, PrecompileHandleExt, }; -use sp_arithmetic::traits::BaseArithmetic; use sp_runtime::SaturatedConversion; -use sp_std::{fmt::Debug, marker::PhantomData}; +use sp_std::{fmt::Debug, marker::PhantomData, vec::Vec}; + +/// Solidity selector of the CreateCollection log, which is the Keccak of the Log signature. +pub const SELECTOR_LOG_CREATE_COLLECTION: [u8; 32] = keccak256!("CreateCollection(address)"); #[precompile_utils_macro::generate_function_selector] #[derive(Debug, PartialEq)] pub enum Action { - /// Create a new collection - CreateCollection = "createCollection(uint64,address)", - /// Get owner of the collection - OwnerOfCollection = "ownerOfCollection(uint64)", + /// Create collection + CreateCollection = "createCollection()", } /// Wrapper for the precompile function. -pub struct LivingAssetsOwnershipPrecompile( - PhantomData<(AddressMapping, AccountId, CollectionId, LivingAssets)>, +pub struct CollectionManagerPrecompile( + PhantomData<(AddressMapping, AccountId, LivingAssets)>, ) where AddressMapping: pallet_evm::AddressMapping, AccountId: Encode + Debug, - CollectionId: BaseArithmetic + Debug, - LivingAssets: LivingAssetsOwnership; + LivingAssets: CollectionManager; -impl - LivingAssetsOwnershipPrecompile +impl Precompile + for CollectionManagerPrecompile where AddressMapping: pallet_evm::AddressMapping, AccountId: Encode + Debug, - CollectionId: BaseArithmetic + Debug, - LivingAssets: LivingAssetsOwnership, -{ - #[allow(clippy::new_without_default)] - pub fn new() -> Self { - Self(PhantomData) - } -} - -impl fp_evm::Precompile - for LivingAssetsOwnershipPrecompile -where - AddressMapping: pallet_evm::AddressMapping, - AccountId: Encode + Debug, - CollectionId: BaseArithmetic + Debug, - LivingAssets: LivingAssetsOwnership, + LivingAssets: CollectionManager, { fn execute(handle: &mut impl PrecompileHandle) -> EvmResult { let selector = handle.read_selector()?; handle.check_function_modifier(match selector { - Action::OwnerOfCollection => FunctionModifier::View, - _ => FunctionModifier::NonPayable, + Action::CreateCollection => FunctionModifier::NonPayable, })?; match selector { - // read storage - Action::OwnerOfCollection => { - let mut input = handle.read_input()?; - input.expect_arguments(1)?; - - if let Some(owner) = - LivingAssets::owner_of_collection(input.read::()?.saturated_into()) - { - Ok(PrecompileOutput { - exit_status: ExitSucceed::Returned, - output: owner.encode(), - }) - } else { - Ok(PrecompileOutput { - exit_status: ExitSucceed::Stopped, - output: sp_std::vec::Vec::new(), - }) - } - }, - // write storage Action::CreateCollection => { - let mut input = handle.read_input()?; - input.expect_arguments(2)?; + let caller = handle.context().caller; + let owner = AddressMapping::into_account_id(caller); - let collection_id = input.read::()?.saturated_into(); - let owner = AddressMapping::into_account_id(input.read::
()?.0); + match LivingAssets::create_collection(owner) { + Ok(collection_id) => { + let collection_address = collection_id_to_address( + collection_id.saturated_into::(), + ); - if LivingAssets::create_collection(collection_id, owner).is_err() { - return Err(PrecompileFailure::Error { - exit_status: ExitError::Other(sp_std::borrow::Cow::Borrowed( - "Could net create collection", - )), - }) - } + LogsBuilder::new(handle.context().address) + .log2(SELECTOR_LOG_CREATE_COLLECTION, collection_address, Vec::new()) + .record(handle)?; - Ok(succeed(EvmDataWriter::new().write(true).build())) + Ok(succeed(EvmDataWriter::new().write(Address(collection_address)).build())) + }, + Err(err) => Err(revert(err)), + } }, } } } + +#[cfg(test)] +mod tests; diff --git a/precompile/living-assets/src/tests.rs b/precompile/living-assets/src/tests.rs new file mode 100644 index 00000000..a4ac1b8e --- /dev/null +++ b/precompile/living-assets/src/tests.rs @@ -0,0 +1,185 @@ +//! Living assets precompile tests. + +//TODO: remove this and fix clippy issues +#![allow(clippy::redundant_closure_call)] + +use super::*; +use precompile_utils::{ + revert, succeed, + testing::{create_mock_handle, create_mock_handle_from_input}, +}; +use sp_core::H160; +use sp_std::vec::Vec; + +type AccountId = H160; +type AddressMapping = pallet_evm::IdentityAddressMapping; + +const CREATE_COLLECTION: &str = "647f1a9c"; + +#[test] +fn check_selectors() { + assert_eq!(Action::CreateCollection as u32, 0x647F1A9C); +} + +#[test] +fn check_log_selectors() { + assert_eq!( + hex::encode(SELECTOR_LOG_CREATE_COLLECTION), + "18896a5e5f9fd6b9d74f89291fe4640722c8dc4d6a1025ccf047607f3e6954ee" + ); +} + +#[test] +fn failing_create_collection_should_return_error() { + impl_precompile_mock_simple!(Mock, Err("spaghetti code"), Some(H160::zero())); + + let mut handle = create_mock_handle_from_input(hex::decode(CREATE_COLLECTION).unwrap()); + let result = Mock::execute(&mut handle); + assert_eq!(result.unwrap_err(), revert("spaghetti code")); +} + +#[test] +fn create_collection_should_return_address() { + impl_precompile_mock_simple!(Mock, Ok(5), Some(H160::zero())); + + let mut handle = create_mock_handle_from_input(hex::decode(CREATE_COLLECTION).unwrap()); + let result = Mock::execute(&mut handle); + assert!(result.is_ok()); + assert_eq!( + result.unwrap(), + succeed( + hex::decode("000000000000000000000000ffffffffffffffffffffffff0000000000000005") + .unwrap() + ) + ); +} + +#[test] +fn create_collection_should_generate_log() { + impl_precompile_mock_simple!(Mock, Ok(0xffff), Some(H160::zero())); + + let mut handle = create_mock_handle_from_input(hex::decode(CREATE_COLLECTION).unwrap()); + let result = Mock::execute(&mut handle); + assert!(result.is_ok()); + let logs = handle.logs; + assert_eq!(logs.len(), 1); + assert_eq!(logs[0].address, H160::zero()); + assert_eq!(logs[0].topics.len(), 2); + assert_eq!(logs[0].topics[0], SELECTOR_LOG_CREATE_COLLECTION.into()); + assert_eq!( + hex::encode(logs[0].topics[1]), + "000000000000000000000000ffffffffffffffffffffffff000000000000ffff" + ); + assert_eq!(logs[0].data, Vec::::new()); +} + +#[test] +fn create_collection_on_mock_with_nonzero_value_fails() { + impl_precompile_mock_simple!(Mock, Ok(5), Some(H160::zero())); + let mut handle = + create_mock_handle(hex::decode(CREATE_COLLECTION).unwrap(), 0, 1, H160::zero()); + let result = Mock::execute(&mut handle); + assert!(result.is_err()); + assert_eq!(result.unwrap_err(), revert("function is not payable")); +} + +#[test] +fn create_collection_assign_collection_to_caller() { + impl_precompile_mock!( + Mock, // name of the defined precompile + |owner| { + assert_eq!(owner, H160::from_low_u64_be(0x1234)); + Ok(0) + }, // Closure for create_collection result + |_| { Some(H160::zero()) } // Closure for owner_of_collection result + ); + + let mut handle = create_mock_handle( + hex::decode(CREATE_COLLECTION).unwrap(), + 0, + 0, + H160::from_low_u64_be(0x1234), + ); + let result = Mock::execute(&mut handle); + assert!(result.is_ok()); +} + +#[test] +fn call_unexistent_selector_should_fail() { + impl_precompile_mock_simple!(Mock, Ok(0), Some(H160::from_low_u64_be(0x1234))); + + let unexistent_selector = + hex::decode("fb24ae530000000000000000000000000000000000000000000000000000000000000000") + .unwrap(); + let mut handle = create_mock_handle_from_input(unexistent_selector); + let result = Mock::execute(&mut handle); + assert_eq!(result.unwrap_err(), revert("unknown selector")); +} + +mod helpers { + /// Macro to define a precompile mock for testing. + /// + /// This macro creates mock implementations of the `CollectionManager` trait, + /// allowing you to test how your code interacts with the precompiled contracts. + /// The mock type is named `Mock`, and the implementation uses the provided expressions. + /// + /// # Arguments + /// + /// * `$name`: An identifier to name the precompile mock type. + /// * `$create_collection_result`: An expression that evaluates to a `Result`. + /// * `$owner_of_collection_result`: An expression that evaluates to an `Option`. + /// + /// # Example + /// + /// ``` + /// impl_precompile_mock_simple!(Mock, Ok(0), Some(H160::zero())); + /// ``` + #[macro_export] + macro_rules! impl_precompile_mock { + ($name:ident, $create_collection_result:expr, $owner_of_collection_result:expr) => { + struct CollectionManagerMock; + + impl pallet_living_assets_ownership::traits::CollectionManager + for CollectionManagerMock + { + fn create_collection(owner: AccountId) -> Result { + ($create_collection_result)(owner) + } + + fn owner_of_collection(collection_id: CollectionId) -> Option { + ($owner_of_collection_result)(collection_id) + } + } + + type $name = + CollectionManagerPrecompile; + }; + } + + /// Macro to define a precompile mock for testing. + /// + /// This macro creates mock implementations of the `CollectionManager` trait, + /// allowing you to test how your code interacts with the precompiled contracts. + /// The mock type is named `Mock`, and the implementation uses the provided expressions. + /// + /// # Arguments + /// + /// * `$create_collection_result`: An expression that evaluates to a `Result`. + /// * `$owner_of_collection_result`: An expression that evaluates to an `Option`. + /// + /// # Example + /// + /// ``` + /// impl_precompile_mock_simple!(Mock, Ok(0), Some(H160::zero())); + /// ``` + #[macro_export] + macro_rules! impl_precompile_mock_simple { + ($name:ident, $create_collection_result:expr, $owner_of_collection_result:expr) => { + impl_precompile_mock!( + $name, + |_owner| { $create_collection_result }, + |_collection_id| { $owner_of_collection_result } + ); + }; + } +} diff --git a/precompile/utils/Cargo.toml b/precompile/utils/Cargo.toml index 41748f73..86af6314 100644 --- a/precompile/utils/Cargo.toml +++ b/precompile/utils/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [dependencies] # There's a problem with --all-features when this is moved under dev-deps -evm = { workspace = true, features = ["std"], optional = true } +evm = { workspace = true, optional = true } impl-trait-for-tuples = { workspace = true } num_enum = { workspace = true } sha3 = { workspace = true } @@ -38,12 +38,13 @@ hex-literal = { workspace = true } [features] default = ["std"] std = [ - "evm/std", + "evm", "parity-scale-codec/std", "fp-evm/std", "frame-support/std", "frame-system/std", "pallet-evm/std", + "evm/with-serde", "sp-core/std", "sp-io/std", "sp-std/std", diff --git a/precompile/utils/macro/src/lib.rs b/precompile/utils/macro/src/lib.rs index 1682a14b..0f049389 100644 --- a/precompile/utils/macro/src/lib.rs +++ b/precompile/utils/macro/src/lib.rs @@ -96,7 +96,7 @@ pub fn generate_function_selector(_: TokenStream, input: TokenStream) -> TokenSt let mut variant_expressions: Vec = vec![]; for variant in variants { match variant.discriminant { - Some((_, Expr::Lit(ExprLit { lit, .. }))) => + Some((_, Expr::Lit(ExprLit { lit, .. }))) => { if let Lit::Str(lit_str) = lit { let digest = Keccak256::digest(lit_str.value().as_bytes()); let selector = u32::from_be_bytes([digest[0], digest[1], digest[2], digest[3]]); @@ -110,18 +110,21 @@ pub fn generate_function_selector(_: TokenStream, input: TokenStream) -> TokenSt return quote_spanned! { lit.span() => compile_error("Expected literal string"); } - .into() - }, - Some((_eg, expr)) => + .into(); + } + }, + Some((_eg, expr)) => { return quote_spanned! { expr.span() => compile_error("Expected literal"); } - .into(), - None => + .into() + }, + None => { return quote_spanned! { variant.span() => compile_error("Each variant must have a discriminant"); } - .into(), + .into() + }, } } diff --git a/precompile/utils/src/data.rs b/precompile/utils/src/data.rs index 251af1c6..edc5ba32 100644 --- a/precompile/utils/src/data.rs +++ b/precompile/utils/src/data.rs @@ -103,7 +103,7 @@ impl<'a> EvmDataReader<'a> { T: num_enum::TryFromPrimitive, { if input.len() < 4 { - return Err(revert("tried to parse selector out of bounds")) + return Err(revert("tried to parse selector out of bounds")); } let mut buffer = [0u8; 4]; @@ -123,7 +123,7 @@ impl<'a> EvmDataReader<'a> { /// Create a new input parser from a selector-initial input. pub fn new_skip_selector(input: &'a [u8]) -> EvmResult { if input.len() < 4 { - return Err(revert("input is too short")) + return Err(revert("input is too short")); } Ok(Self::new(&input[4..])) @@ -166,7 +166,7 @@ impl<'a> EvmDataReader<'a> { .map_err(|_| revert("array offset is too large"))?; if offset >= self.input.len() { - return Err(revert("pointer points out of bounds")) + return Err(revert("pointer points out of bounds")); } Ok(Self { input: &self.input[offset..], cursor: 0 }) diff --git a/precompile/utils/src/lib.rs b/precompile/utils/src/lib.rs index d073d087..9f23028e 100644 --- a/precompile/utils/src/lib.rs +++ b/precompile/utils/src/lib.rs @@ -30,13 +30,10 @@ use fp_evm::{ Context, ExitError, ExitRevert, ExitSucceed, PrecompileFailure, PrecompileHandle, PrecompileOutput, }; -use frame_support::{ - dispatch::{Dispatchable, GetDispatchInfo, PostDispatchInfo}, - traits::Get, -}; -use pallet_evm::{GasWeightMapping, Log}; + +use pallet_evm::Log; use sp_core::{H160, H256, U256}; -use sp_std::{marker::PhantomData, vec, vec::Vec}; +use sp_std::{vec, vec::Vec}; mod data; @@ -147,75 +144,75 @@ impl LogExt for Log { } } -/// Helper functions requiring a Runtime. -/// This runtime must of course implement `pallet_evm::Config`. -#[derive(Clone, Copy, Debug)] -pub struct RuntimeHelper(PhantomData); - -impl RuntimeHelper -where - Runtime: pallet_evm::Config, - Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, -{ - /// Try to dispatch a Substrate call. - /// Return an error if there are not enough gas, or if the call fails. - /// If successful returns the used gas using the Runtime GasWeightMapping. - pub fn try_dispatch( - handle: &mut impl PrecompileHandleExt, - origin: ::RuntimeOrigin, - call: Call, - ) -> EvmResult<()> - where - Runtime::RuntimeCall: From, - { - let call = Runtime::RuntimeCall::from(call); - let dispatch_info = call.get_dispatch_info(); - - // Make sure there is enough gas. - let remaining_gas = handle.remaining_gas(); - let required_gas = Runtime::GasWeightMapping::weight_to_gas(dispatch_info.weight); - if required_gas > remaining_gas { - return Err(PrecompileFailure::Error { exit_status: ExitError::OutOfGas }) - } - - // Dispatch call. - // It may be possible to not record gas cost if the call returns Pays::No. - // However while Substrate handle checking weight while not making the sender pay for it, - // the EVM doesn't. It seems this safer to always record the costs to avoid unmetered - // computations. - let result = call - .dispatch(origin) - .map_err(|e| revert(alloc::format!("Dispatched call failed with error: {:?}", e)))?; - - let used_weight = result.actual_weight; - - let used_gas = - Runtime::GasWeightMapping::weight_to_gas(used_weight.unwrap_or(dispatch_info.weight)); - - handle.record_cost(used_gas)?; - - Ok(()) - } -} - -impl RuntimeHelper -where - Runtime: pallet_evm::Config, -{ - /// Cost of a Substrate DB write in gas. - pub fn db_write_gas_cost() -> u64 { - ::GasWeightMapping::weight_to_gas( - ::DbWeight::get().writes(1), - ) - } - - /// Cost of a Substrate DB read in gas. - pub fn db_read_gas_cost() -> u64 { - ::GasWeightMapping::weight_to_gas( - ::DbWeight::get().reads(1), - ) - } -} +// /// Helper functions requiring a Runtime. +// /// This runtime must of course implement `pallet_evm::Config`. +// #[derive(Clone, Copy, Debug)] +// pub struct RuntimeHelper(PhantomData); + +// impl RuntimeHelper +// where +// Runtime: pallet_evm::Config, +// Runtime::RuntimeCall: Dispatchable + GetDispatchInfo, +// { +// /// Try to dispatch a Substrate call. +// /// Return an error if there are not enough gas, or if the call fails. +// /// If successful returns the used gas using the Runtime GasWeightMapping. +// pub fn try_dispatch( +// handle: &mut impl PrecompileHandleExt, +// origin: ::RuntimeOrigin, +// call: Call, +// ) -> EvmResult<()> +// where +// Runtime::RuntimeCall: From, +// { +// let call = Runtime::RuntimeCall::from(call); +// let dispatch_info = call.get_dispatch_info(); + +// // Make sure there is enough gas. +// let remaining_gas = handle.remaining_gas(); +// let required_gas = Runtime::GasWeightMapping::weight_to_gas(dispatch_info.weight); +// if required_gas > remaining_gas { +// return Err(PrecompileFailure::Error { exit_status: ExitError::OutOfGas }) +// } + +// // Dispatch call. +// // It may be possible to not record gas cost if the call returns Pays::No. +// // However while Substrate handle checking weight while not making the sender pay for it, +// // the EVM doesn't. It seems this safer to always record the costs to avoid unmetered +// // computations. +// let result = call +// .dispatch(origin) +// .map_err(|e| revert(alloc::format!("Dispatched call failed with error: {:?}", e)))?; + +// let used_weight = result.actual_weight; + +// let used_gas = +// Runtime::GasWeightMapping::weight_to_gas(used_weight.unwrap_or(dispatch_info.weight)); + +// handle.record_cost(used_gas)?; + +// Ok(()) +// } +// } + +// impl RuntimeHelper +// where +// Runtime: pallet_evm::Config + frame_system::Config, +// { +// /// Cost of a Substrate DB write in gas. +// pub fn db_write_gas_cost() -> u64 { +// ::GasWeightMapping::weight_to_gas( +// ::DbWeight::get().writes(1), +// ) +// } + +// /// Cost of a Substrate DB read in gas. +// pub fn db_read_gas_cost() -> u64 { +// ::GasWeightMapping::weight_to_gas( +// ::DbWeight::get().reads(1), +// ) +// } +// } /// Represents modifiers a Solidity function can be annotated with. #[derive(Copy, Clone, PartialEq, Eq)] @@ -343,11 +340,11 @@ fn check_function_modifier( modifier: FunctionModifier, ) -> EvmResult { if is_static && modifier != FunctionModifier::View { - return Err(revert("can't call non-static function in static context")) + return Err(revert("can't call non-static function in static context")); } if modifier != FunctionModifier::Payable && context.apparent_value > U256::zero() { - return Err(revert("function is not payable")) + return Err(revert("function is not payable")); } Ok(()) diff --git a/precompile/utils/src/testing.rs b/precompile/utils/src/testing.rs index 1dbfeab3..9ed36bfc 100644 --- a/precompile/utils/src/testing.rs +++ b/precompile/utils/src/testing.rs @@ -1,410 +1,112 @@ -// This file is part of Astar. - -// Copyright 2019-2022 PureStake Inc. -// Copyright (C) 2022-2023 Stake Technologies Pte.Ltd. -// SPDX-License-Identifier: GPL-3.0-or-later -// -// This file is part of Utils package, originally developed by Purestake Inc. -// Utils package used in Astar Network in terms of GPLv3. -// -// Utils is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Utils is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Utils. If not, see . use super::*; -use assert_matches::assert_matches; -use fp_evm::{ - ExitReason, ExitSucceed, PrecompileOutput, PrecompileResult, PrecompileSet, Transfer, -}; -use sp_std::boxed::Box; - -pub struct Subcall { - pub address: H160, - pub transfer: Option, - pub input: Vec, - pub target_gas: Option, - pub is_static: bool, - pub context: Context, -} - -pub struct SubcallOutput { - pub reason: ExitReason, - pub output: Vec, - pub cost: u64, - pub logs: Vec, -} - -pub trait SubcallTrait: FnMut(Subcall) -> SubcallOutput + 'static {} - -impl SubcallOutput + 'static> SubcallTrait for T {} - -pub type SubcallHandle = Box; +use fp_evm::{ExitReason, Transfer}; -/// Mock handle to write tests for precompiles. pub struct MockHandle { - pub gas_limit: u64, - pub gas_used: u64, - pub logs: Vec, - pub subcall_handle: Option, - pub code_address: H160, pub input: Vec, + pub gas_limit: Option, pub context: Context, pub is_static: bool, + pub gas_used: u64, + pub logs: Vec, + pub code_address: H160, } impl MockHandle { - pub fn new(code_address: H160, context: Context) -> Self { + pub fn new(input: Vec, gas_limit: Option, context: Context) -> Self { Self { - gas_limit: u64::MAX, - gas_used: 0, - logs: vec![], - subcall_handle: None, - code_address, - input: Vec::new(), + input, + gas_limit, context, is_static: false, + gas_used: 0, + logs: vec![], + code_address: H160::zero(), } } } -// Compute the cost of doing a subcall. -// Some parameters cannot be known in advance, so we estimate the worst possible cost. -pub fn call_cost(value: U256, config: &evm::Config) -> u64 { - // Copied from EVM code since not public. - pub const G_CALLVALUE: u64 = 9000; - pub const G_NEWACCOUNT: u64 = 25000; - - fn address_access_cost(is_cold: bool, regular_value: u64, config: &evm::Config) -> u64 { - if config.increase_state_access_gas { - if is_cold { - config.gas_account_access_cold - } else { - config.gas_storage_read_warm - } - } else { - regular_value - } - } - - fn xfer_cost(is_call_or_callcode: bool, transfers_value: bool) -> u64 { - if is_call_or_callcode && transfers_value { - G_CALLVALUE - } else { - 0 - } - } - - fn new_cost( - is_call_or_staticcall: bool, - new_account: bool, - transfers_value: bool, - config: &evm::Config, - ) -> u64 { - let eip161 = !config.empty_considered_exists; - if is_call_or_staticcall { - if eip161 { - if transfers_value && new_account { - G_NEWACCOUNT - } else { - 0 - } - } else if new_account { - G_NEWACCOUNT - } else { - 0 - } - } else { - 0 - } - } - - let transfers_value = value != U256::default(); - let is_cold = true; - let is_call_or_callcode = true; - let is_call_or_staticcall = true; - let new_account = true; - - address_access_cost(is_cold, config.gas_call, config) + - xfer_cost(is_call_or_callcode, transfers_value) + - new_cost(is_call_or_staticcall, new_account, transfers_value, config) -} - impl PrecompileHandle for MockHandle { /// Perform subcall in provided context. /// Precompile specifies in which context the subcall is executed. fn call( &mut self, - address: H160, - transfer: Option, - input: Vec, - target_gas: Option, - is_static: bool, - context: &Context, + _: H160, + _: Option, + _: Vec, + _: Option, + _: bool, + _: &Context, ) -> (ExitReason, Vec) { - if self - .record_cost(call_cost(context.apparent_value, &evm::Config::london())) - .is_err() - { - return (ExitReason::Error(ExitError::OutOfGas), vec![]) - } - - match &mut self.subcall_handle { - Some(handle) => { - let SubcallOutput { reason, output, cost, logs } = handle(Subcall { - address, - transfer, - input, - target_gas, - is_static, - context: context.clone(), - }); - - if self.record_cost(cost).is_err() { - return (ExitReason::Error(ExitError::OutOfGas), vec![]) - } - - for log in logs { - self.log(log.address, log.topics, log.data).expect("cannot fail"); - } - - (reason, output) - }, - None => panic!("no subcall handle registered"), - } + unimplemented!() } fn record_cost(&mut self, cost: u64) -> Result<(), ExitError> { self.gas_used += cost; - - if self.gas_used > self.gas_limit { - Err(ExitError::OutOfGas) - } else { - Ok(()) - } + Ok(()) } - fn remaining_gas(&self) -> u64 { - self.gas_limit - self.gas_used + fn record_external_cost(&mut self, _: Option, _: Option) -> Result<(), ExitError> { + Ok(()) } + fn refund_external_cost(&mut self, _: Option, _: Option) {} + fn log(&mut self, address: H160, topics: Vec, data: Vec) -> Result<(), ExitError> { - self.logs.push(PrettyLog(Log { address, topics, data })); + let log = Log { address, topics, data }; + self.logs.push(log); Ok(()) } - /// Retreive the code address (what is the address of the precompile being called). + fn remaining_gas(&self) -> u64 { + unimplemented!() + } + fn code_address(&self) -> H160 { self.code_address } - /// Retreive the input data the precompile is called with. fn input(&self) -> &[u8] { &self.input } - /// Retreive the context in which the precompile is executed. fn context(&self) -> &Context { &self.context } - /// Is the precompile call is done statically. fn is_static(&self) -> bool { self.is_static } - /// Retreive the gas limit of this call. fn gas_limit(&self) -> Option { - Some(self.gas_limit) + self.gas_limit } } -pub struct PrecompilesTester<'p, P> { - precompiles: &'p P, - handle: MockHandle, - - target_gas: Option, - subcall_handle: Option, - - expected_cost: Option, - expected_logs: Option>, +/// Create a mock handle for testing precompiled contracts. +/// +/// This function takes an input string representing the data to be sent to the precompiled contract +/// and a cost value, returning a `MockHandle` that can be used for testing. +/// +/// # Arguments +/// +/// * `input` - The input data as a hexadecimal string. +/// * `cost` - A cost value as u64. +/// * `value` - The amount of coins transferred as u64. +pub fn create_mock_handle(input: Vec, cost: u64, value: u64, caller: H160) -> MockHandle { + let context: Context = + Context { address: Default::default(), caller, apparent_value: From::from(value) }; + + MockHandle::new(input, Some(cost), context) } -impl<'p, P: PrecompileSet> PrecompilesTester<'p, P> { - pub fn new( - precompiles: &'p P, - from: impl Into, - to: impl Into, - data: Vec, - ) -> Self { - let to = to.into(); - let mut handle = MockHandle::new( - to, - Context { address: to, caller: from.into(), apparent_value: U256::zero() }, - ); - - handle.input = data; - - Self { - precompiles, - handle, - - target_gas: None, - subcall_handle: None, - - expected_cost: None, - expected_logs: None, - } - } - - pub fn with_value(mut self, value: impl Into) -> Self { - self.handle.context.apparent_value = value.into(); - self - } - - pub fn with_subcall_handle(mut self, subcall_handle: impl SubcallTrait) -> Self { - self.subcall_handle = Some(Box::new(subcall_handle)); - self - } - - pub fn with_target_gas(mut self, target_gas: Option) -> Self { - self.target_gas = target_gas; - self - } - - pub fn expect_cost(mut self, cost: u64) -> Self { - self.expected_cost = Some(cost); - self - } - - pub fn expect_no_logs(mut self) -> Self { - self.expected_logs = Some(vec![]); - self - } - - pub fn expect_log(mut self, log: Log) -> Self { - self.expected_logs = Some({ - let mut logs = self.expected_logs.unwrap_or_default(); - logs.push(PrettyLog(log)); - logs - }); - self - } - - fn assert_optionals(&self) { - if let Some(cost) = &self.expected_cost { - assert_eq!(&self.handle.gas_used, cost); - } - - if let Some(logs) = &self.expected_logs { - similar_asserts::assert_eq!(&self.handle.logs, logs); - } - } - - fn execute(&mut self) -> Option { - let handle = &mut self.handle; - handle.subcall_handle = self.subcall_handle.take(); - - if let Some(gas_limit) = self.target_gas { - handle.gas_limit = gas_limit; - } - - let res = self.precompiles.execute(handle); - - self.subcall_handle = handle.subcall_handle.take(); - - res - } - - /// Execute the precompile set and expect some precompile to have been executed, regardless of the - /// result. - pub fn execute_some(mut self) { - let res = self.execute(); - assert!(res.is_some()); - self.assert_optionals(); - } - - /// Execute the precompile set and expect no precompile to have been executed. - pub fn execute_none(mut self) { - let res = self.execute(); - assert!(res.is_none()); - self.assert_optionals(); - } - - /// Execute the precompile set and check it returns provided output. - pub fn execute_returns(mut self, output: Vec) { - let res = self.execute(); - assert_eq!(res, Some(Ok(PrecompileOutput { exit_status: ExitSucceed::Returned, output }))); - self.assert_optionals(); - } - - /// Execute the precompile set and check if it reverts. - /// Take a closure allowing to perform custom matching on the output. - pub fn execute_reverts(mut self, check: impl Fn(&[u8]) -> bool) { - let res = self.execute(); - assert_matches!( - res, - Some(Err(PrecompileFailure::Revert { output, ..})) - if check(&output) - ); - self.assert_optionals(); - } - - /// Execute the precompile set and check it returns provided output. - pub fn execute_error(mut self, error: ExitError) { - let res = self.execute(); - assert_eq!(res, Some(Err(PrecompileFailure::Error { exit_status: error }))); - self.assert_optionals(); - } -} - -pub trait PrecompileTesterExt: PrecompileSet + Sized { - fn prepare_test( - &self, - from: impl Into, - to: impl Into, - data: Vec, - ) -> PrecompilesTester; -} - -impl PrecompileTesterExt for T { - fn prepare_test( - &self, - from: impl Into, - to: impl Into, - data: Vec, - ) -> PrecompilesTester { - PrecompilesTester::new(self, from, to, data) - } -} - -#[derive(Clone, PartialEq, Eq)] -pub struct PrettyLog(Log); - -impl core::fmt::Debug for PrettyLog { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> { - let bytes = self - .0 - .data - .iter() - .map(|b| format!("{:02X}", b)) - .collect::>() - .join(""); - - let message = String::from_utf8(self.0.data.clone()).ok(); - - f.debug_struct("Log") - .field("address", &self.0.address) - .field("topics", &self.0.topics) - .field("data", &bytes) - .field("data_utf8", &message) - .finish() - } +/// Create a mock handle for testing precompiled contracts without a specific cost or value. +/// +/// This function takes an input string representing the data to be sent to the precompiled contract +/// and returns a `MockHandle` that can be used for testing. +/// +/// # Arguments +/// +/// * `input` - The input data as a hexadecimal string. +pub fn create_mock_handle_from_input(input: Vec) -> MockHandle { + create_mock_handle(input, 0, 0, H160::zero()) } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 6565bc31..0b2d436c 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -50,6 +50,7 @@ sp-version = { workspace = true } pallet-living-assets-ownership = { workspace = true } pallet-evm-living-assets-ownership = { workspace = true } +pallet-evm-erc721 = { workspace = true } # Polkadot pallet-xcm = { workspace = true } @@ -76,7 +77,7 @@ parachains-common = { workspace = true } # Frontier fp-rpc = { workspace = true } -fp-self-contained = { workspace = true } +fp-self-contained = { workspace = true, features = ["serde"] } # Frontier FRAME pallet-base-fee = { workspace = true } @@ -86,6 +87,18 @@ pallet-evm-chain-id = { workspace = true } pallet-evm-precompile-modexp = { workspace = true } pallet-evm-precompile-simple = { workspace = true } +# Bridge dependencies +bp-header-chain = { workspace = true } +bp-messages = { workspace = true } +bp-evochain = { workspace = true } +bp-relayers = { workspace = true } +bp-runtime = { workspace = true } +bp-ownership-parachain = { workspace = true } +bridge-runtime-common = { workspace = true } +pallet-bridge-grandpa = { workspace = true } +pallet-bridge-messages = { workspace = true } +pallet-bridge-relayers = { workspace = true } + [features] default = [ "std", @@ -143,6 +156,7 @@ std = [ "pallet-base-fee/std", "pallet-ethereum/std", "pallet-evm/std", + "pallet-evm-erc721/std", "pallet-evm-chain-id/std", "pallet-evm-precompile-modexp/std", "pallet-evm-precompile-simple/std", @@ -151,6 +165,17 @@ std = [ "frame-system-benchmarking", "frame-try-runtime", "pallet-evm-living-assets-ownership/std", + # Bridge deps, + "bp-evochain/std", + "bp-header-chain/std", + "bp-messages/std", + "bp-ownership-parachain/std", + "bp-relayers/std", + "bp-runtime/std", + "bridge-runtime-common/std", + "pallet-bridge-grandpa/std", + "pallet-bridge-messages/std", + "pallet-bridge-relayers/std", ] runtime-benchmarks = [ @@ -176,6 +201,10 @@ runtime-benchmarks = [ "polkadot-primitives/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks", "xcm-executor/runtime-benchmarks", + "bridge-runtime-common/runtime-benchmarks", + "pallet-bridge-grandpa/runtime-benchmarks", + "pallet-bridge-messages/runtime-benchmarks", + "pallet-bridge-relayers/runtime-benchmarks", ] try-runtime = [ @@ -206,4 +235,7 @@ try-runtime = [ "frame-support/try-runtime", "polkadot-runtime-common/try-runtime", "sp-runtime/try-runtime", + "pallet-bridge-grandpa/try-runtime", + "pallet-bridge-messages/try-runtime", + "pallet-bridge-relayers/try-runtime", ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 6c8a9970..f4990179 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -39,8 +39,8 @@ use frame_support::{ dispatch::DispatchClass, parameter_types, traits::{ - ConstU32, ConstU64, ConstU8, Currency, EitherOfDiverse, Everything, FindAuthor, Hooks, - Imbalance, OnUnbalanced, + ConstBool, ConstU32, ConstU64, ConstU8, Currency, EitherOfDiverse, Everything, FindAuthor, + Hooks, Imbalance, OnUnbalanced, }, weights::{ constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient, @@ -85,7 +85,7 @@ use pallet_evm::{ mod precompiles; use precompiles::FrontierPrecompiles; -/// Import the template pallet. +/// Import the living assets ownership pallet. pub use pallet_living_assets_ownership; /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. @@ -98,9 +98,6 @@ pub type AccountId = <::Signer as IdentifyAccount>::Account /// Balance of an account. pub type Balance = u128; -/// Collection id -pub type CollectionId = u64; - /// Index of a transaction in the chain. pub type Index = u32; @@ -110,6 +107,9 @@ pub type Hash = sp_core::H256; /// An index to a block. pub type BlockNumber = u32; +/// The type for storing how many extrinsics an account has signed. +pub type Nonce = u32; + /// The address format for describing accounts. pub type Address = MultiAddress; @@ -169,7 +169,7 @@ impl WeightToFeePolynomial for WeightToFee { type Balance = Balance; fn polynomial() -> WeightToFeeCoefficients { // in Rococo, extrinsic base weight (smallest non-zero weight) is mapped to 1 MILLIUNIT: - // in our template, we map to 1/10 of that, or 1/10 MILLIUNIT + // in our parachain, we map to 1/10 of that, or 1/10 MILLIUNIT let p = MILLIUNIT / 10; let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); smallvec![WeightToFeeCoefficient { @@ -206,10 +206,10 @@ impl_opaque_keys! { #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("template-parachain"), - impl_name: create_runtime_str!("template-parachain"), + spec_name: create_runtime_str!("laos-parachain"), + impl_name: create_runtime_str!("laos-parachain"), authoring_version: 1, - spec_version: 3, + spec_version: 4, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -316,16 +316,14 @@ impl frame_system::Config for Runtime { type RuntimeCall = RuntimeCall; /// The lookup mechanism to get account ID from whatever is passed in dispatchers. type Lookup = AccountIdLookup; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; + /// The block type + type Block = Block; /// The type for hashing blocks and tries. type Hash = Hash; + /// The type for storing how many extrinsics an account has signed. + type Nonce = Nonce; /// The hashing algorithm used. type Hashing = BlakeTwo256; - /// The header type. - type Header = generic::Header; /// The ubiquitous event type. type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. @@ -388,9 +386,9 @@ impl pallet_balances::Config for Runtime { type WeightInfo = pallet_balances::weights::SubstrateWeight; type MaxReserves = ConstU32<50>; type ReserveIdentifier = [u8; 8]; - type HoldIdentifier = (); type FreezeIdentifier = (); type MaxHolds = ConstU32<0>; + type RuntimeHoldReason = (); type MaxFreezes = ConstU32<0>; } @@ -470,6 +468,7 @@ impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; type DisabledValidators = (); type MaxAuthorities = ConstU32<100_000>; + type AllowMultipleBlocksPerSlot = ConstBool; } parameter_types! { @@ -494,7 +493,6 @@ impl pallet_collator_selection::Config for Runtime { type UpdateOrigin = CollatorSelectionUpdateOrigin; type PotId = PotId; type MaxCandidates = MaxCandidates; - type MinCandidates = MinCandidates; type MaxInvulnerables = MaxInvulnerables; // should be a multiple of session or things will get inconsistent type KickThreshold = Period; @@ -502,11 +500,11 @@ impl pallet_collator_selection::Config for Runtime { type ValidatorIdOf = pallet_collator_selection::IdentityCollator; type ValidatorRegistration = Session; type WeightInfo = (); + type MinEligibleCollators = ConstU32<4>; } impl pallet_living_assets_ownership::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type CollectionId = CollectionId; } impl pallet_sudo::Config for Runtime { @@ -527,7 +525,7 @@ impl> FindAuthor for FindAuthorTruncated { { if let Some(author_index) = F::find_author(digests) { let authority_id = Aura::authorities()[author_index as usize].clone(); - return Some(H160::from_slice(&authority_id.to_raw_vec()[4..24])) + return Some(H160::from_slice(&authority_id.to_raw_vec()[4..24])); } None } @@ -540,7 +538,7 @@ impl OnUnbalanced> for EVMDealWithFees where R: pallet_balances::Config + pallet_collator_selection::Config + core::fmt::Debug, AccountIdOf: - From + Into, + From + Into, ::RuntimeEvent: From>, { fn on_nonzero_unbalanced(amount: NegativeImbalance) { @@ -660,12 +658,18 @@ impl pallet_base_fee::Config for Runtime { type DefaultElasticity = DefaultElasticity; } +// Bridge pallets +impl pallet_bridge_grandpa::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type BridgedChain = bp_evochain::Evochain; + type MaxFreeMandatoryHeadersPerBlock = ConstU32<4>; + type HeadersToKeep = ConstU32<{ bp_evochain::DAYS as u32 }>; + type WeightInfo = pallet_bridge_grandpa::weights::BridgeWeight; +} + // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( - pub enum Runtime where - Block = Block, - NodeBlock = opaque::Block, - UncheckedExtrinsic = UncheckedExtrinsic, + pub enum Runtime { // System support stuff. System: frame_system = 0, @@ -690,9 +694,11 @@ construct_runtime!( CumulusXcm: cumulus_pallet_xcm = 32, DmpQueue: cumulus_pallet_dmp_queue = 33, - // Template + // Sudo Sudo: pallet_sudo = 40, - LivingassetsOwnership: pallet_living_assets_ownership = 41, + + // Local pallets + LivingAssetsOwnership: pallet_living_assets_ownership = 41, // Frontier Ethereum: pallet_ethereum = 50, @@ -700,10 +706,41 @@ construct_runtime!( EVMChainId: pallet_evm_chain_id = 52, // DynamicFee: pallet_dynamic_fee = 43, BaseFee: pallet_base_fee = 54, - // HotfixSufficients: pallet_hotfix_sufficients = 45, + + // Bridge + BridgeEvochainGrandpa: pallet_bridge_grandpa = 60, } ); +struct CheckInherents; + +impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { + fn check_inherents( + block: &Block, + relay_state_proof: &cumulus_pallet_parachain_system::RelayChainStateProof, + ) -> sp_inherents::CheckInherentsResult { + let relay_chain_slot = relay_state_proof + .read_slot() + .expect("Could not read the relay chain slot from the proof"); + + let inherent_data = + cumulus_primitives_timestamp::InherentDataProvider::from_relay_chain_slot_and_duration( + relay_chain_slot, + sp_std::time::Duration::from_secs(6), + ) + .create_inherent_data() + .expect("Could not create the timestamp inherent data"); + + inherent_data.check_extrinsics(block) + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, + CheckInherents = CheckInherents, +} + #[derive(Clone)] pub struct TransactionConverter; @@ -765,8 +802,9 @@ impl fp_self_contained::SelfContainedCall for RuntimeCall { len: usize, ) -> Option> { match self { - RuntimeCall::Ethereum(call) => - call.pre_dispatch_self_contained(info, dispatch_info, len), + RuntimeCall::Ethereum(call) => { + call.pre_dispatch_self_contained(info, dispatch_info, len) + }, _ => None, } } @@ -776,10 +814,11 @@ impl fp_self_contained::SelfContainedCall for RuntimeCall { info: Self::SignedInfo, ) -> Option>> { match self { - call @ RuntimeCall::Ethereum(pallet_ethereum::Call::transact { .. }) => + call @ RuntimeCall::Ethereum(pallet_ethereum::Call::transact { .. }) => { Some(call.dispatch(RuntimeOrigin::from( pallet_ethereum::RawOrigin::EthereumTransaction(info), - ))), + ))) + }, _ => None, } } @@ -1173,32 +1212,3 @@ impl_runtime_apis! { } } } - -struct CheckInherents; - -impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { - fn check_inherents( - block: &Block, - relay_state_proof: &cumulus_pallet_parachain_system::RelayChainStateProof, - ) -> sp_inherents::CheckInherentsResult { - let relay_chain_slot = relay_state_proof - .read_slot() - .expect("Could not read the relay chain slot from the proof"); - - let inherent_data = - cumulus_primitives_timestamp::InherentDataProvider::from_relay_chain_slot_and_duration( - relay_chain_slot, - sp_std::time::Duration::from_secs(6), - ) - .create_inherent_data() - .expect("Could not create the timestamp inherent data"); - - inherent_data.check_extrinsics(block) - } -} - -cumulus_pallet_parachain_system::register_validate_block! { - Runtime = Runtime, - BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, - CheckInherents = CheckInherents, -} diff --git a/runtime/src/precompiles/mock.rs b/runtime/src/precompiles/mock.rs new file mode 100644 index 00000000..bf680f02 --- /dev/null +++ b/runtime/src/precompiles/mock.rs @@ -0,0 +1,141 @@ +use frame_support::{ + construct_runtime, parameter_types, + traits::{ConstU64, FindAuthor}, + weights::Weight, +}; +use pallet_evm::{ + runner, EnsureAddressNever, EnsureAddressRoot, FeeCalculator, FixedGasWeightMapping, + IdentityAddressMapping, SubstrateBlockHashMapping, +}; +use sp_core::{H160, H256, U256}; +use sp_runtime::{ + traits::{BlakeTwo256, IdentityLookup}, + ConsensusEngineId, +}; +use sp_std::{boxed::Box, prelude::*, str::FromStr}; + +use super::FrontierPrecompiles; + +type Block = frame_system::mocking::MockBlock; + +// Configure a mock runtime to test the pallet. +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + Timestamp: pallet_timestamp, + LivingassetsOwnership: pallet_living_assets_ownership, + EVM: pallet_evm, + } +); + +impl frame_system::Config for Runtime { + type BaseCallFilter = frame_support::traits::Everything; + type BlockWeights = (); + type BlockLength = (); + type DbWeight = (); + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = H160; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = ConstU64<250>; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; + type Nonce = u64; + type Block = Block; +} + +parameter_types! { + pub const ExistentialDeposit: u64 = 1; +} + +impl pallet_balances::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = (); + type Balance = u64; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type ReserveIdentifier = (); + type FreezeIdentifier = (); + type MaxLocks = (); + type MaxReserves = (); + type MaxHolds = (); + type MaxFreezes = (); + type RuntimeHoldReason = (); +} + +parameter_types! { + pub const MinimumPeriod: u64 = 1000; +} + +impl pallet_timestamp::Config for Runtime { + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); +} + +impl pallet_living_assets_ownership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +pub struct FixedGasPrice; +impl FeeCalculator for FixedGasPrice { + fn min_gas_price() -> (U256, Weight) { + // Return some meaningful gas price and weight + (1_000_000_000u128.into(), Weight::from_parts(7u64, 0)) + } +} +pub struct FindAuthorTruncated; +impl FindAuthor for FindAuthorTruncated { + fn find_author<'a, I>(_digests: I) -> Option + where + I: 'a + IntoIterator, + { + Some(H160::from_str("1234500000000000000000000000000000000000").unwrap()) + } +} + +const BLOCK_GAS_LIMIT: u64 = 150_000_000; +const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; + +parameter_types! { + pub BlockGasLimit: U256 = U256::from(BLOCK_GAS_LIMIT); + pub const GasLimitPovSizeRatio: u64 = BLOCK_GAS_LIMIT.saturating_div(MAX_POV_SIZE); + pub WeightPerGas: Weight = Weight::from_parts(20_000, 0); + pub PrecompilesValue: FrontierPrecompiles = FrontierPrecompiles::<_>::new(); +} + +impl pallet_evm::Config for Runtime { + type FeeCalculator = FixedGasPrice; + type GasWeightMapping = FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + type BlockHashMapping = SubstrateBlockHashMapping; + type CallOrigin = EnsureAddressRoot; + type WithdrawOrigin = EnsureAddressNever; + type AddressMapping = IdentityAddressMapping; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type PrecompilesType = FrontierPrecompiles; + type PrecompilesValue = PrecompilesValue; + type ChainId = (); + type BlockGasLimit = BlockGasLimit; + type Runner = runner::stack::Runner; + type OnChargeTransaction = (); + type OnCreate = (); + type FindAuthor = FindAuthorTruncated; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; + type Timestamp = Timestamp; + type WeightInfo = (); +} diff --git a/runtime/src/precompiles.rs b/runtime/src/precompiles/mod.rs similarity index 75% rename from runtime/src/precompiles.rs rename to runtime/src/precompiles/mod.rs index 8aaa6e01..399b5e2c 100644 --- a/runtime/src/precompiles.rs +++ b/runtime/src/precompiles/mod.rs @@ -7,11 +7,13 @@ use polkadot_primitives::BlakeTwo256; use sp_core::H160; use sp_std::marker::PhantomData; -use pallet_evm_living_assets_ownership::LivingAssetsOwnershipPrecompile; +use pallet_evm_erc721::Erc721Precompile; +use pallet_evm_living_assets_ownership::CollectionManagerPrecompile; use pallet_evm_precompile_modexp::Modexp; use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; +use pallet_living_assets_ownership::is_collection_address; -use crate::{AccountId, CollectionId}; +use crate::AccountId; pub struct FrontierPrecompiles(PhantomData); @@ -27,10 +29,15 @@ where } } -type LivingAssetsPrecompile = LivingAssetsOwnershipPrecompile< +type LivingAssetsPrecompile = CollectionManagerPrecompile< + pallet_evm::HashedAddressMapping, + AccountId, + pallet_living_assets_ownership::Pallet, +>; + +type Erc721 = Erc721Precompile< pallet_evm::HashedAddressMapping, AccountId, - CollectionId, pallet_living_assets_ownership::Pallet, >; @@ -50,11 +57,16 @@ where // a if a == hash(1024) => Some(Sha3FIPS256::execute(handle)), a if a == hash(1025) => Some(ECRecoverPublicKey::execute(handle)), a if a == hash(1026) => Some(LivingAssetsPrecompile::execute(handle)), + a if is_collection_address(a) => Some(Erc721::execute(handle)), _ => None, } } fn is_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { + if is_collection_address(address) { + return IsPrecompileResult::Answer { is_precompile: true, extra_cost: 0 }; + } + IsPrecompileResult::Answer { is_precompile: Self::used_addresses().contains(&address), extra_cost: 0, @@ -65,3 +77,9 @@ where fn hash(a: u64) -> H160 { H160::from_low_u64_be(a) } + +#[cfg(test)] +mod mock; + +#[cfg(test)] +mod test; diff --git a/runtime/src/precompiles/test.rs b/runtime/src/precompiles/test.rs new file mode 100644 index 00000000..1f9d25da --- /dev/null +++ b/runtime/src/precompiles/test.rs @@ -0,0 +1,29 @@ +use super::{hash, mock::*, FrontierPrecompiles}; +use core::str::FromStr; +use pallet_evm::{IsPrecompileResult, PrecompileSet}; +use sp_core::H160; + +fn is_precompile(address: H160) -> Result { + let p = FrontierPrecompiles::::new(); + match p.is_precompile(address, 0) { + IsPrecompileResult::Answer { is_precompile, extra_cost: _ } => Ok(is_precompile), + _ => Err("Unexpected result variant"), + } +} + +#[test] +fn null_address_is_not_precompile() { + assert!(!is_precompile(H160::zero()).unwrap()); +} + +#[test] +fn ethereum_precompiled_addresses_are_precompile() { + assert!(is_precompile(hash(1)).unwrap()); + assert!(is_precompile(hash(2)).unwrap()); + assert!(is_precompile(hash(3)).unwrap()); + assert!(is_precompile(hash(4)).unwrap()); + assert!(is_precompile(hash(5)).unwrap()); + assert!(is_precompile(hash(1026)).unwrap()); + assert!(is_precompile(H160::from_str("0xffffffffffffffffffffffff0000000000000005").unwrap()) + .unwrap()); +} diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index 775455cc..d0718670 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -20,7 +20,7 @@ use xcm_builder::{ SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WithComputedOrigin, }; -use xcm_executor::{traits::ShouldExecute, XcmExecutor}; +use xcm_executor::{traits::Properties, traits::ShouldExecute, XcmExecutor}; parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); @@ -105,12 +105,12 @@ where { fn should_execute( origin: &MultiLocation, - message: &mut [Instruction], + instructions: &mut [Instruction], max_weight: Weight, - weight_credit: &mut Weight, + properties: &mut Properties, ) -> Result<(), ProcessMessageError> { - Deny::should_execute(origin, message, max_weight, weight_credit)?; - Allow::should_execute(origin, message, max_weight, weight_credit) + Deny::should_execute(origin, instructions, max_weight, properties)?; + Allow::should_execute(origin, instructions, max_weight, properties) } } @@ -119,21 +119,21 @@ pub struct DenyReserveTransferToRelayChain; impl ShouldExecute for DenyReserveTransferToRelayChain { fn should_execute( origin: &MultiLocation, - message: &mut [Instruction], + instructions: &mut [Instruction], _max_weight: Weight, - _weight_credit: &mut Weight, + _properties: &mut Properties, ) -> Result<(), ProcessMessageError> { - message.matcher().match_next_inst_while( + instructions.matcher().match_next_inst_while( |_| true, |inst| match inst { InitiateReserveWithdraw { reserve: MultiLocation { parents: 1, interior: Here }, .. - } | - DepositReserveAsset { + } + | DepositReserveAsset { dest: MultiLocation { parents: 1, interior: Here }, .. - } | - TransferReserveAsset { + } + | TransferReserveAsset { dest: MultiLocation { parents: 1, interior: Here }, .. } => { Err(ProcessMessageError::Unsupported) // Deny @@ -201,6 +201,7 @@ impl xcm_executor::Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; + type Aliasers = Nothing; } /// No local origins on this chain are allowed to dispatch XCM sends/executions. diff --git a/rust-toolchain.toml b/rust-toolchain.toml deleted file mode 100644 index eea0b8e4..00000000 --- a/rust-toolchain.toml +++ /dev/null @@ -1,5 +0,0 @@ -[toolchain] -channel = "nightly-2023-01-01" -components = [ "rustfmt" ] -targets = [ "wasm32-unknown-unknown" ] -profile = "minimal" From b7674d597c9d479c9d7e6ef4a0b75a067384c590 Mon Sep 17 00:00:00 2001 From: Alessandro Siniscalchi Date: Wed, 23 Aug 2023 10:45:13 +0200 Subject: [PATCH 2/3] chain spec_version 4->5 --- runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 20b8804f..0e0fb976 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -211,7 +211,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("laos-parachain"), impl_name: create_runtime_str!("laos-parachain"), authoring_version: 1, - spec_version: 4, + spec_version: 5, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, From 0c0c5b91be82edf37ce92c9119c00a83c112632f Mon Sep 17 00:00:00 2001 From: Alessandro Siniscalchi Date: Wed, 23 Aug 2023 11:05:22 +0200 Subject: [PATCH 3/3] fix compilation --- pallets/living-assets-ownership/src/lib.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pallets/living-assets-ownership/src/lib.rs b/pallets/living-assets-ownership/src/lib.rs index 3b3a6c2b..33c356e8 100644 --- a/pallets/living-assets-ownership/src/lib.rs +++ b/pallets/living-assets-ownership/src/lib.rs @@ -5,7 +5,7 @@ /// pub use pallet::*; use parity_scale_codec::alloc::string::ToString; -use sp_core::{H160, U256}; +use sp_core::H160; use sp_std::vec::Vec; mod functions; @@ -23,10 +23,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; use sp_core::{H160, U256}; - /// Collection id type - /// TODO: use 256 bits - pub type CollectionId = u64; - /// Collection id type pub type CollectionId = u64;