diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d40ee037630..65c38afd084 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -128,6 +128,8 @@ jobs: ./target/${{ matrix.profiles.name }}/gear benchmark pallet --chain=dev --pallet=pallet_gear --repeat=0 --extrinsic="read_big_state" --heap-pages=4096 --extra # check that signal_stack_limit_exceeded_works benchmarks works ./target/${{ matrix.profiles.name }}/gear benchmark pallet --chain=dev --pallet=pallet_gear --repeat=0 --extrinsic="signal_stack_limit_exceeded_works" --heap-pages=4096 --extra + # check that gear-tasks works + ./target/${{ matrix.profiles.name }}/gear benchmark pallet --chain=dev --pallet=pallet_gear --repeat=0 --extrinsic="check_gear_tasks" --heap-pages=4096 --extra # check that check/test benchmarks works ./target/${{ matrix.profiles.name }}/gear benchmark pallet --chain=dev --pallet=pallet_gear --repeat=0 --extrinsic="check_all" --heap-pages=4096 --extra diff --git a/Cargo.lock b/Cargo.lock index 2b66c0da651..f0b24db7a7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3701,7 +3701,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", ] @@ -3724,7 +3724,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-support-procedural", @@ -3741,7 +3741,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-runtime-interface", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-storage", "static_assertions", ] @@ -3749,7 +3749,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "Inflector", "array-bytes 6.2.2", @@ -3797,7 +3797,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -3808,7 +3808,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3819,13 +3819,13 @@ dependencies = [ "sp-core", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-system", @@ -3836,7 +3836,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-tracing", ] @@ -3867,7 +3867,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "futures", "indicatif", @@ -3888,7 +3888,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "aquamarine", "bitflags 1.3.2", @@ -3918,7 +3918,7 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-tracing", "sp-weights", "static_assertions", @@ -3928,7 +3928,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "Inflector", "cfg-expr", @@ -3940,14 +3940,14 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "sp-core-hashing 9.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-core-hashing 9.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "syn 2.0.66", ] [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.3", @@ -3959,7 +3959,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "proc-macro2", "quote", @@ -3969,7 +3969,7 @@ dependencies = [ [[package]] name = "frame-support-test" version = "3.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-executive", @@ -3989,7 +3989,7 @@ dependencies = [ "sp-metadata-ir", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-version", "static_assertions", "trybuild", @@ -3998,7 +3998,7 @@ dependencies = [ [[package]] name = "frame-support-test-pallet" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-system", @@ -4011,7 +4011,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "cfg-if", "frame-support", @@ -4022,7 +4022,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-version", "sp-weights", ] @@ -4030,7 +4030,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -4039,13 +4039,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "sp-api", @@ -4054,13 +4054,13 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "parity-scale-codec", "sp-api", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -4432,6 +4432,7 @@ dependencies = [ "gear-runtime-interface", "gear-runtime-primitives", "gear-service", + "gear-tasks", "log", "mimalloc", "pallet-gear-payment", @@ -4473,7 +4474,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -4621,7 +4622,7 @@ dependencies = [ "gear-lazy-pages-common", "gear-runtime-interface", "log", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -4696,7 +4697,7 @@ dependencies = [ "sp-io", "sp-keyring", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "substrate-test-client", "vara-runtime", ] @@ -4764,7 +4765,7 @@ dependencies = [ "pallet-gear-messenger", "pallet-session", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -4780,12 +4781,13 @@ dependencies = [ "gear-lazy-pages", "gear-lazy-pages-common", "gear-sandbox-host", + "gear-tasks", "log", "parity-scale-codec", "sha2 0.10.8", "sp-io", "sp-runtime-interface", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-wasm-interface", "winapi", ] @@ -4808,7 +4810,7 @@ dependencies = [ "log", "parity-scale-codec", "sp-core", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-wasm-interface-common", "wasmi 0.30.0 (git+https://github.com/gear-tech/wasmi?branch=gear-v0.30.0)", "wat", @@ -4820,7 +4822,7 @@ version = "1.4.2" dependencies = [ "parity-scale-codec", "sp-debug-derive", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-wasm-interface-common", ] @@ -4856,6 +4858,8 @@ dependencies = [ "gear-runtime-common", "gear-runtime-interface", "gear-runtime-primitives", + "gear-tasks", + "gear-tasks-runtime-api", "hex-literal", "jsonrpsee 0.16.3", "log", @@ -4937,6 +4941,33 @@ dependencies = [ "cc", ] +[[package]] +name = "gear-tasks" +version = "1.4.2" +dependencies = [ + "env_logger", + "futures-executor", + "gear-node-testing", + "gear-tasks", + "gear-tasks-runtime-api", + "log", + "parity-scale-codec", + "sc-client-api", + "sp-api", + "sp-externalities", + "sp-io", + "sp-runtime-interface", + "sp-state-machine", + "vara-runtime", +] + +[[package]] +name = "gear-tasks-runtime-api" +version = "1.4.2" +dependencies = [ + "sp-api", +] + [[package]] name = "gear-utils" version = "1.4.2" @@ -5059,7 +5090,7 @@ dependencies = [ [[package]] name = "generate-bags" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "chrono", "frame-election-provider-support", @@ -7950,7 +7981,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-system", @@ -7960,13 +7991,13 @@ dependencies = [ "sp-application-crypto", "sp-authority-discovery", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-system", @@ -7974,13 +8005,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -7998,13 +8029,13 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "aquamarine", "docify", @@ -8019,14 +8050,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-tracing", ] [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8035,13 +8066,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8053,13 +8084,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8072,13 +8103,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8089,13 +8120,13 @@ dependencies = [ "serde", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8111,14 +8142,14 @@ dependencies = [ "sp-io", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "strum 0.24.1", ] [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8126,7 +8157,7 @@ dependencies = [ "parity-scale-codec", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -8195,6 +8226,7 @@ dependencies = [ "gear-lazy-pages-interface", "gear-runtime-interface", "gear-sandbox", + "gear-tasks", "gear-wasm-instrument", "gmeta", "gstd", @@ -8225,7 +8257,7 @@ dependencies = [ "sp-externalities", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "test-syscalls", "wabt", ] @@ -8293,7 +8325,7 @@ dependencies = [ "sp-externalities", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -8346,7 +8378,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "test-syscalls", "wabt", ] @@ -8376,7 +8408,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -8401,7 +8433,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -8433,7 +8465,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "wabt", ] @@ -8468,7 +8500,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -8495,7 +8527,7 @@ dependencies = [ "sp-api", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -8526,7 +8558,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -8561,7 +8593,7 @@ dependencies = [ "sp-io", "sp-npos-elections", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -8604,13 +8636,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8627,13 +8659,13 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "enumflags2 0.7.7", "frame-benchmarking", @@ -8643,13 +8675,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8663,13 +8695,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8679,13 +8711,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-system", @@ -8697,25 +8729,25 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-tracing", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-system", @@ -8726,13 +8758,13 @@ dependencies = [ "serde", "sp-runtime", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8743,13 +8775,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8758,13 +8790,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8776,13 +8808,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8795,13 +8827,13 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "docify", "frame-benchmarking", @@ -8812,14 +8844,14 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-weights", ] [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-system", @@ -8834,14 +8866,14 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-trie", ] [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8858,13 +8890,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "log", "sp-arithmetic", @@ -8873,7 +8905,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "sp-api", @@ -8882,7 +8914,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "docify", "frame-benchmarking", @@ -8892,13 +8924,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "docify", "frame-benchmarking", @@ -8910,7 +8942,7 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-storage", "sp-timestamp", ] @@ -8918,7 +8950,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-support", "frame-system", @@ -8928,13 +8960,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "jsonrpsee 0.16.3", "pallet-transaction-payment-rpc-runtime-api", @@ -8950,7 +8982,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -8962,7 +8994,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "docify", "frame-benchmarking", @@ -8975,13 +9007,13 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -8991,13 +9023,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -9006,13 +9038,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-benchmarking", "frame-support", @@ -9021,7 +9053,7 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -10494,7 +10526,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -10509,7 +10541,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -10528,7 +10560,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -10539,7 +10571,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "chrono", @@ -10579,7 +10611,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "fnv", "futures", @@ -10606,7 +10638,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "hash-db", "kvdb", @@ -10632,7 +10664,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "futures", @@ -10657,7 +10689,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "fork-tree", @@ -10692,7 +10724,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "futures", "jsonrpsee 0.16.3", @@ -10714,7 +10746,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10727,7 +10759,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "ahash 0.8.11", "array-bytes 6.2.2", @@ -10768,7 +10800,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "finality-grandpa", "futures", @@ -10788,7 +10820,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "futures", @@ -10811,7 +10843,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -10834,7 +10866,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "sp-allocator", "sp-maybe-compressed-blob", @@ -10846,7 +10878,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "anyhow", "cfg-if", @@ -10864,7 +10896,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "ansi_term", "futures", @@ -10880,7 +10912,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "parking_lot 0.12.3", @@ -10894,7 +10926,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.1.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.4", @@ -10922,7 +10954,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "async-channel", @@ -10963,7 +10995,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-channel", "cid", @@ -10983,7 +11015,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -11000,7 +11032,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "ahash 0.8.11", "futures", @@ -11018,7 +11050,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "async-channel", @@ -11039,7 +11071,7 @@ dependencies = [ [[package]] name = "sc-network-statement" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "async-channel", @@ -11057,7 +11089,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "async-channel", @@ -11092,7 +11124,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "futures", @@ -11110,7 +11142,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "bytes", @@ -11144,7 +11176,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -11153,7 +11185,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "futures", "jsonrpsee 0.16.3", @@ -11185,7 +11217,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "jsonrpsee 0.16.3", "parity-scale-codec", @@ -11205,7 +11237,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "http", "jsonrpsee 0.16.3", @@ -11220,7 +11252,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "futures", @@ -11248,7 +11280,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "directories", @@ -11312,7 +11344,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "log", "parity-scale-codec", @@ -11323,7 +11355,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "jsonrpsee 0.16.3", "parity-scale-codec", @@ -11342,7 +11374,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "futures", "libc", @@ -11355,13 +11387,13 @@ dependencies = [ "serde_json", "sp-core", "sp-io", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "chrono", "futures", @@ -11380,7 +11412,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "ansi_term", "atty", @@ -11409,7 +11441,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -11420,7 +11452,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "futures", @@ -11446,7 +11478,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "futures", @@ -11462,7 +11494,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-channel", "futures", @@ -11785,9 +11817,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] @@ -11803,9 +11835,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", @@ -12189,7 +12221,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "4.1.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "log", "parity-scale-codec", @@ -12200,7 +12232,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "hash-db", "log", @@ -12212,7 +12244,7 @@ dependencies = [ "sp-metadata-ir", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-trie", "sp-version", "thiserror", @@ -12221,7 +12253,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "Inflector", "blake2 0.10.6", @@ -12235,58 +12267,58 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "static_assertions", ] [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "sp-api", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "futures", "log", @@ -12304,7 +12336,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "futures", @@ -12319,7 +12351,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "parity-scale-codec", @@ -12329,14 +12361,14 @@ dependencies = [ "sp-consensus-slots", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "parity-scale-codec", @@ -12348,14 +12380,14 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-timestamp", ] [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "finality-grandpa", "log", @@ -12367,25 +12399,25 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-timestamp", ] [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "bandersnatch_vrfs", @@ -12415,11 +12447,11 @@ dependencies = [ "secrecy", "serde", "sp-allocator", - "sp-core-hashing 9.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-core-hashing 9.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-storage", "ss58-registry", "substrate-bip39", @@ -12448,7 +12480,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "blake2b_simd", "byteorder", @@ -12461,17 +12493,17 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "quote", - "sp-core-hashing 9.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-core-hashing 9.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "syn 2.0.66", ] [[package]] name = "sp-crypto-ec-utils" version = "0.4.1" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -12486,13 +12518,13 @@ dependencies = [ "ark-ed-on-bls12-381-bandersnatch-ext", "ark-scale 0.0.12", "sp-runtime-interface", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -12501,7 +12533,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "proc-macro2", "quote", @@ -12511,43 +12543,43 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-storage", ] [[package]] name = "sp-genesis-builder" version = "0.1.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "serde_json", "sp-api", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "thiserror", ] [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "bytes", "ed25519-dalek", @@ -12561,7 +12593,7 @@ dependencies = [ "sp-keystore", "sp-runtime-interface", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-tracing", "sp-trie", "tracing", @@ -12571,7 +12603,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "lazy_static", "sp-core", @@ -12582,7 +12614,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -12594,7 +12626,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "thiserror", "zstd 0.12.4", @@ -12603,30 +12635,30 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-metadata 16.0.0", "parity-scale-codec", "scale-info", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-mixnet" version = "0.1.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "scale-info", @@ -12634,13 +12666,13 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "sp-api", "sp-core", @@ -12650,7 +12682,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "backtrace", "lazy_static", @@ -12660,7 +12692,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "rustc-hash", "serde", @@ -12670,7 +12702,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "either", "hash256-std-hasher", @@ -12685,14 +12717,14 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-io", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-weights", ] [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -12700,7 +12732,7 @@ dependencies = [ "primitive-types", "sp-externalities", "sp-runtime-interface-proc-macro", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-storage", "sp-tracing", "sp-wasm-interface", @@ -12710,7 +12742,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "Inflector", "proc-macro-crate 1.1.3", @@ -12722,7 +12754,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "scale-info", @@ -12731,13 +12763,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -12745,13 +12777,13 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "hash-db", "log", @@ -12762,7 +12794,7 @@ dependencies = [ "sp-core", "sp-externalities", "sp-panic-handler", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-trie", "thiserror", "tracing", @@ -12772,7 +12804,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "aes-gcm 0.10.3", "curve25519-dalek 4.0.0", @@ -12788,7 +12820,7 @@ dependencies = [ "sp-externalities", "sp-runtime", "sp-runtime-interface", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "thiserror", "x25519-dalek 2.0.1", ] @@ -12802,41 +12834,41 @@ checksum = "53458e3c57df53698b3401ec0934bea8e8cfce034816873c0b0abbd83d7bac0d" [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", "sp-debug-derive", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "thiserror", ] [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "tracing", "tracing-core", "tracing-subscriber 0.2.25", @@ -12845,7 +12877,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "sp-api", "sp-runtime", @@ -12854,7 +12886,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "parity-scale-codec", @@ -12862,14 +12894,14 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-trie", ] [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "ahash 0.8.11", "hash-db", @@ -12883,7 +12915,7 @@ dependencies = [ "scale-info", "schnellru", "sp-core", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "thiserror", "tracing", "trie-db", @@ -12893,7 +12925,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12902,7 +12934,7 @@ dependencies = [ "serde", "sp-core-hashing-proc-macro", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-version-proc-macro", "thiserror", ] @@ -12910,7 +12942,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -12921,14 +12953,14 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", "sp-allocator", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-wasm-interface-common", "wasmtime", ] @@ -12936,17 +12968,17 @@ dependencies = [ [[package]] name = "sp-wasm-interface-common" version = "7.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "wasmi 0.13.2", ] [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "parity-scale-codec", "scale-info", @@ -12955,7 +12987,7 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-debug-derive", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", ] [[package]] @@ -13048,9 +13080,9 @@ dependencies = [ [[package]] name = "statrs" -version = "0.16.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35a062dbadac17a42e0fc64c27f419b25d6fae98572eb43c8814c9e873d7721" +checksum = "2d08e5e1748192713cc281da8b16924fb46be7b0c2431854eadc785823e5696e" dependencies = [ "approx", "lazy_static", @@ -13134,12 +13166,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -13158,7 +13190,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "hyper", "log", @@ -13170,7 +13202,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "jsonrpsee 0.16.3", @@ -13183,7 +13215,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "jsonrpsee 0.16.3", "parity-scale-codec", @@ -13200,7 +13232,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "array-bytes 6.2.2", "async-trait", @@ -13226,7 +13258,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "ansi_term", "build-helper", @@ -14058,7 +14090,7 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0#8c76964cc3c2debb09a81f8b85976bb3a43f766b" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks#8028b07de0a108c12d4af7f01171f9adee654f58" dependencies = [ "async-trait", "clap 4.5.4", @@ -14282,6 +14314,8 @@ dependencies = [ "gear-lazy-pages-common", "gear-runtime-common", "gear-runtime-primitives", + "gear-tasks", + "gear-tasks-runtime-api", "hex-literal", "log", "pallet-authority-discovery", @@ -14346,7 +14380,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.3.0)", + "sp-std 8.0.0 (git+https://github.com/gear-tech/polkadot-sdk.git?branch=al/sp-tasks)", "sp-storage", "sp-transaction-pool", "sp-version", diff --git a/Cargo.toml b/Cargo.toml index fbf1a63785b..3c1687c09c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,6 +100,7 @@ members = [ "pallets/*", "runtime/*", "utils/*", + "utils/gear-tasks/runtime-api", "utils/runtime-fuzzer/fuzz" ] @@ -128,6 +129,7 @@ environmental = "1.1.3" futures = { version = "0.3", default-features = false } futures-timer = "3.0.3" futures-util = "0.3.30" +futures-executor = "0.3.30" hashbrown = "0.14.5" hex = { version = "0.4.3", default-features = false } hex-literal = "0.4.1" @@ -240,6 +242,8 @@ gear-utils = { path = "utils/utils" } gear-wasm-builder = { path = "utils/wasm-builder", default-features = false } gear-wasm-gen = { path = "utils/wasm-gen" } gear-wasm-instrument = { path = "utils/wasm-instrument", default-features = false } +gear-tasks = { path = "utils/gear-tasks", default-features = false } +gear-tasks-runtime-api = { path = "utils/gear-tasks/runtime-api", default-features = false } junit-common = { path = "utils/junit-common" } actor-system-error = { path = "utils/actor-system-error" } calc-stack-height = { path = "utils/calc-stack-height" } @@ -272,126 +276,126 @@ sandbox-wasmer = { package = "wasmer", version = "2.2", features = ["singlepass" sandbox-wasmer-types = { package = "wasmer-types", version = "2.2" } # Substrate deps -frame-benchmarking = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -frame-benchmarking-cli = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -frame-election-provider-support = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -frame-executive = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -frame-support = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -frame-support-test = { version = "3.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -frame-system = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -frame-system-benchmarking = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -frame-remote-externalities = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -frame-try-runtime = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -frame-system-rpc-runtime-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -generate-bags = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -pallet-authorship = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-authority-discovery = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-babe = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-bags-list = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-bounties = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-child-bounties = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-balances = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-conviction-voting = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-election-provider-multi-phase = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-grandpa = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-identity = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-im-online = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-multisig = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-nomination-pools = { version = "1.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-nomination-pools-runtime-api = { version = "1.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-offences = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-preimage = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-proxy = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-ranked-collective = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-referenda = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-scheduler = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-session = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-staking = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-staking-runtime-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-staking-reward-fn = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-sudo = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-timestamp = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-transaction-payment = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-transaction-payment-rpc = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-treasury = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-utility = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-vesting = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -pallet-whitelist = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-authority-discovery = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-block-builder = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-consensus = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-consensus-babe = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-consensus-babe-rpc = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-consensus-epochs = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-consensus-slots = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sp-crypto-ec-utils = { version = "0.4.1", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-debug-derive = { version = "8.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sc-chain-spec = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-cli = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-client-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-executor = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-executor-common = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-consensus-grandpa = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-consensus-grandpa-rpc = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-keystore = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-network = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-network-common = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-network-sync = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-network-statement = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-offchain = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-proposer-metrics = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-service = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-telemetry = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-rpc = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-rpc-api = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-rpc-spec-v2 = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-sync-state-rpc = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-sysinfo = { version = "6.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-transaction-pool-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sc-tracing = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -sp-allocator = { version = "4.1.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-authority-discovery = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-arithmetic = { version = "16.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-block-builder = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-core = { version = "21.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-consensus = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-consensus-babe = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-consensus-slots = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-externalities = { version = "0.19.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-consensus-grandpa = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-inherents = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-io = { version = "23.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-keyring = { version = "24.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-keystore = { version = "0.27.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-npos-elections = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-offchain = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-rpc = { version = "6.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-runtime = { version = "24.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-runtime-interface = { version = "17.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-session = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-std = { version = "8.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-state-machine = { version = "0.28.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-staking = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-storage = { version = "13.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-timestamp = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-transaction-storage-proof = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-trie = { version = "22.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-version = { version = "22.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-wasm-interface = { version = "14.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -sp-wasm-interface-common = { version = "7.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0", default-features = false } -substrate-build-script-utils = { version = "3.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -substrate-frame-rpc-system = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -substrate-rpc-client = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -substrate-state-trie-migration-rpc = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -substrate-test-client = { version = "2.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -substrate-wasm-builder = { version = "5.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } -try-runtime-cli = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-v1.3.0" } +frame-benchmarking = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +frame-benchmarking-cli = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +frame-election-provider-support = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +frame-executive = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +frame-support = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +frame-support-test = { version = "3.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +frame-system = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +frame-system-benchmarking = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +frame-remote-externalities = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +frame-try-runtime = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +frame-system-rpc-runtime-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +generate-bags = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +pallet-authorship = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-authority-discovery = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-babe = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-bags-list = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-bounties = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-child-bounties = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-balances = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-conviction-voting = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-election-provider-multi-phase = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-grandpa = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-identity = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-im-online = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-multisig = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-nomination-pools = { version = "1.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-nomination-pools-runtime-api = { version = "1.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-offences = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-preimage = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-proxy = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-ranked-collective = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-referenda = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-scheduler = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-session = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-staking = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-staking-runtime-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-staking-reward-fn = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-sudo = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-timestamp = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-transaction-payment = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-transaction-payment-rpc = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-treasury = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-utility = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-vesting = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +pallet-whitelist = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-authority-discovery = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-block-builder = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-consensus = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-consensus-babe = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-consensus-babe-rpc = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-consensus-epochs = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-consensus-slots = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sp-crypto-ec-utils = { version = "0.4.1", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-debug-derive = { version = "8.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sc-chain-spec = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-cli = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-client-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-executor = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-executor-common = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-consensus-grandpa = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-consensus-grandpa-rpc = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-keystore = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-network = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-network-common = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-network-sync = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-network-statement = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-offchain = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-proposer-metrics = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-service = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-telemetry = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-rpc = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-rpc-api = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-rpc-spec-v2 = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-sync-state-rpc = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-sysinfo = { version = "6.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-transaction-pool-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sc-tracing = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +sp-allocator = { version = "4.1.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-api = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-authority-discovery = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-arithmetic = { version = "16.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-block-builder = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-core = { version = "21.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-consensus = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-consensus-babe = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-consensus-slots = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-externalities = { version = "0.19.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-consensus-grandpa = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-inherents = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-io = { version = "23.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-keyring = { version = "24.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-keystore = { version = "0.27.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-npos-elections = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-offchain = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-rpc = { version = "6.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-runtime = { version = "24.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-runtime-interface = { version = "17.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-session = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-std = { version = "8.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-state-machine = { version = "0.28.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-staking = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-storage = { version = "13.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-timestamp = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-transaction-storage-proof = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-trie = { version = "22.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-version = { version = "22.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-wasm-interface = { version = "14.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +sp-wasm-interface-common = { version = "7.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks", default-features = false } +substrate-build-script-utils = { version = "3.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +substrate-frame-rpc-system = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +substrate-rpc-client = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +substrate-state-trie-migration-rpc = { version = "4.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +substrate-test-client = { version = "2.0.0", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +substrate-wasm-builder = { version = "5.0.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } +try-runtime-cli = { version = "0.10.0-dev", git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "al/sp-tasks" } # Examples test-syscalls = { path = "examples/syscalls", default-features = false } diff --git a/gsdk/tests/rpc.rs b/gsdk/tests/rpc.rs index 711af261826..b97d8b1cf07 100644 --- a/gsdk/tests/rpc.rs +++ b/gsdk/tests/rpc.rs @@ -457,10 +457,10 @@ async fn test_calculate_reply_for_handle_does_not_change_state() -> Result<()> { ); // 5. read state after calculate - let calcualted_state = signer.api().read_state(pid_h256, vec![], None).await?; + let calculated_state = signer.api().read_state(pid_h256, vec![], None).await?; // 6. assert that state hasn't changed - assert_eq!(initial_state, calcualted_state); + assert_eq!(initial_state, calculated_state); // 7. make call signer diff --git a/node/cli/Cargo.toml b/node/cli/Cargo.toml index 3de1a1494d6..c294092fd25 100644 --- a/node/cli/Cargo.toml +++ b/node/cli/Cargo.toml @@ -30,6 +30,7 @@ gear-runtime-interface = { workspace = true, features = ["std"] } service.workspace = true pallet-gear-payment = { workspace = true, features = ["std"] } pallet-gear-staking-rewards = { workspace = true, optional = true, features = ["std"] } +gear-tasks.workspace = true # Gear Runtimes vara-runtime = { workspace = true, optional = true, features = ["std", "dev"] } diff --git a/node/cli/src/command.rs b/node/cli/src/command.rs index ff01bcef590..49736844ab2 100644 --- a/node/cli/src/command.rs +++ b/node/cli/src/command.rs @@ -121,7 +121,7 @@ macro_rules! unwrap_client { #[cfg(feature = "vara-native")] service::Client::Vara($client) => $code, #[allow(unreachable_patterns)] - _ => Err("invalid chain spec".into()), + _ => return Err("invalid chain spec".into()), } }; } @@ -228,6 +228,22 @@ pub fn run() -> sc_cli::Result<()> { .into(), ); } + + let (client, _, _, _) = service::new_chain_ops( + &config, + cli.run.rpc_calculations_multiplier, + cli.run.rpc_max_batch_size, + )?; + + unwrap_client!(client, { + let runner = gear_tasks::GearTasksRunner::new(client.clone()); + std::thread::spawn(|| { + futures::executor::block_on(async move { + runner.run().await; + }); + }); + }); + match &config.chain_spec { #[cfg(feature = "vara-native")] spec if spec.is_vara() => cmd diff --git a/node/service/Cargo.toml b/node/service/Cargo.toml index 253641c0712..503e394d962 100644 --- a/node/service/Cargo.toml +++ b/node/service/Cargo.toml @@ -30,6 +30,8 @@ pallet-gear-builtin-rpc-runtime-api = { workspace = true, features = ["std"] } runtime-primitives = { workspace = true, features = ["std"] } gear-runtime-interface = { workspace = true, features = ["std"] } authorship.workspace = true +gear-tasks = { workspace = true, features = ["std"] } +gear-tasks-runtime-api = { workspace = true, features = ["std"] } # Gear Runtimes gear-runtime-common = { workspace = true, features = ["std"] } diff --git a/node/service/src/client.rs b/node/service/src/client.rs index 831a55e61a9..bce220e7f82 100644 --- a/node/service/src/client.rs +++ b/node/service/src/client.rs @@ -56,6 +56,7 @@ impl sc_executor::NativeExecutionDispatch for VaraExecutorDispatch { frame_benchmarking::benchmarking::HostFunctions, gear_ri::gear_ri::HostFunctions, gear_ri::sandbox::HostFunctions, + gear_ri::gear_tasks::HostFunctions, sp_crypto_ec_utils::bls12_381::host_calls::HostFunctions, gear_ri::gear_bls_12_381::HostFunctions, ); @@ -64,6 +65,7 @@ impl sc_executor::NativeExecutionDispatch for VaraExecutorDispatch { type ExtendHostFunctions = ( gear_ri::gear_ri::HostFunctions, gear_ri::sandbox::HostFunctions, + gear_ri::gear_tasks::HostFunctions, sp_crypto_ec_utils::bls12_381::host_calls::HostFunctions, gear_ri::gear_bls_12_381::HostFunctions, ); @@ -95,6 +97,8 @@ pub trait RuntimeApiCollection: + pallet_gear_rpc_runtime_api::GearApi + pallet_gear_staking_rewards_rpc_runtime_api::GearStakingRewardsApi + pallet_gear_builtin_rpc_runtime_api::GearBuiltinApi + + gear_tasks_runtime_api::GearTasksApi + + gear_tasks::RuntimeSetOverlayedChanges { } @@ -112,6 +116,8 @@ impl RuntimeApiCollection for Api where + pallet_gear_rpc_runtime_api::GearApi + pallet_gear_staking_rewards_rpc_runtime_api::GearStakingRewardsApi + pallet_gear_builtin_rpc_runtime_api::GearBuiltinApi + + gear_tasks_runtime_api::GearTasksApi + + gear_tasks::RuntimeSetOverlayedChanges { } diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index 09e366b0ad1..03aa54bec04 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -626,6 +626,12 @@ where ); } + task_manager.spawn_handle().spawn( + "gear-tasks-runner", + "gear-tasks", + gear_tasks::GearTasksRunner::new(client.clone()).run(), + ); + network_starter.start_network(); Ok(NewFullBase { task_manager, diff --git a/node/testing/src/client.rs b/node/testing/src/client.rs index 41b53b11aba..c024f3ea8ee 100644 --- a/node/testing/src/client.rs +++ b/node/testing/src/client.rs @@ -31,6 +31,7 @@ impl sc_executor::NativeExecutionDispatch for LocalExecutorDispatch { frame_benchmarking::benchmarking::HostFunctions, gear_runtime_interface::gear_ri::HostFunctions, gear_runtime_interface::sandbox::HostFunctions, + gear_runtime_interface::gear_tasks::HostFunctions, sp_crypto_ec_utils::bls12_381::host_calls::HostFunctions, gear_runtime_interface::gear_bls_12_381::HostFunctions, ); diff --git a/pallets/gear-builtin/src/mock.rs b/pallets/gear-builtin/src/mock.rs index fe079721eb3..6e11b08887b 100644 --- a/pallets/gear-builtin/src/mock.rs +++ b/pallets/gear-builtin/src/mock.rs @@ -21,7 +21,7 @@ use common::{GasProvider, GasTree}; use core::cell::RefCell; use frame_support::{ construct_runtime, parameter_types, - traits::{ConstBool, ConstU32, ConstU64, FindAuthor, OnFinalize, OnInitialize}, + traits::{ConstBool, ConstU32, ConstU64, ConstU8, FindAuthor, OnFinalize, OnInitialize}, }; use frame_support_test::TestRandomness; use frame_system::{self as system, pallet_prelude::BlockNumberFor}; diff --git a/pallets/gear-builtin/src/tests/bad_builtin_ids.rs b/pallets/gear-builtin/src/tests/bad_builtin_ids.rs index 7dbf3add208..2de76271098 100644 --- a/pallets/gear-builtin/src/tests/bad_builtin_ids.rs +++ b/pallets/gear-builtin/src/tests/bad_builtin_ids.rs @@ -19,7 +19,7 @@ use crate::{self as pallet_gear_builtin, BuiltinActor, BuiltinActorError}; use frame_support::{ construct_runtime, parameter_types, - traits::{ConstBool, ConstU32, ConstU64, FindAuthor, OnFinalize, OnInitialize}, + traits::{ConstBool, ConstU32, ConstU64, ConstU8, FindAuthor, OnFinalize, OnInitialize}, }; use frame_support_test::TestRandomness; use frame_system::{self as system, pallet_prelude::BlockNumberFor}; diff --git a/pallets/gear-debug/src/mock.rs b/pallets/gear-debug/src/mock.rs index 4bcc6808f77..420a01acf1c 100644 --- a/pallets/gear-debug/src/mock.rs +++ b/pallets/gear-debug/src/mock.rs @@ -22,7 +22,7 @@ use frame_support::{ construct_runtime, dispatch::DispatchClass, parameter_types, - traits::{ConstU32, FindAuthor, Get, OnFinalize, OnInitialize}, + traits::{ConstU32, ConstU8, FindAuthor, Get, OnFinalize, OnInitialize}, weights::Weight, }; use frame_support_test::TestRandomness; diff --git a/pallets/gear-scheduler/src/mock.rs b/pallets/gear-scheduler/src/mock.rs index 609ac8cbcc8..1008aa9a192 100644 --- a/pallets/gear-scheduler/src/mock.rs +++ b/pallets/gear-scheduler/src/mock.rs @@ -23,7 +23,7 @@ use frame_support::{ dispatch::DispatchClass, pallet_prelude::*, parameter_types, - traits::{ConstU32, ConstU64, FindAuthor}, + traits::{ConstU32, ConstU64, ConstU8, FindAuthor}, weights::constants::RocksDbWeight, }; use frame_support_test::TestRandomness; diff --git a/pallets/gear/Cargo.toml b/pallets/gear/Cargo.toml index f6535852b6e..71184058b20 100644 --- a/pallets/gear/Cargo.toml +++ b/pallets/gear/Cargo.toml @@ -66,6 +66,7 @@ demo-constructor = { workspace = true, optional = true } demo-waiter = { workspace = true, optional = true } demo-init-wait = { workspace = true, optional = true } demo-signal-entry = { workspace = true, optional = true } +gear-tasks = { workspace = true, optional = true } # Some of tests require `debug` feature enabled [dev-dependencies] @@ -134,47 +135,47 @@ rand.workspace = true [features] default = ['std'] std = [ - "parity-scale-codec/std", - "env_logger", - "log/std", - "common/std", - "frame-benchmarking?/std", - "frame-support/std", - "frame-support-test/std", - "frame-system/std", - "gear-wasm-instrument/std", - "scopeguard/use_std", - "core-processor/std", - "gear-core-backend/std", - "gear-lazy-pages-interface/std", - "scale-info/std", - "sp-io/std", - "sp-std/std", - "sp-core/std", - "sp-runtime/std", - "sp-externalities/std", - "pallet-balances/std", - "pallet-authorship/std", - "pallet-gear-gas/std", - "pallet-gear-messenger/std", - "pallet-gear-scheduler/std", - "pallet-gear-program/std", - "pallet-gear-voucher/std", - "pallet-gear-bank/std", - "pallet-gear-proc-macro/full", - "primitive-types/std", - "serde/std", - "sp-consensus-babe/std", - "test-syscalls?/std", - "demo-read-big-state?/std", - "demo-proxy?/std", - "demo-reserve-gas?/std", - "demo-delayed-sender?/std", - "demo-constructor?/std", - "demo-waiter?/std", - "demo-init-wait?/std", - "demo-signal-entry?/std", - "gear-runtime-interface/std", + "parity-scale-codec/std", + "env_logger", + "log/std", + "common/std", + "frame-benchmarking?/std", + "frame-support/std", + "frame-support-test/std", + "frame-system/std", + "gear-wasm-instrument/std", + "scopeguard/use_std", + "core-processor/std", + "gear-core-backend/std", + "gear-lazy-pages-interface/std", + "scale-info/std", + "sp-io/std", + "sp-std/std", + "sp-core/std", + "sp-runtime/std", + "sp-externalities/std", + "pallet-balances/std", + "pallet-authorship/std", + "pallet-gear-gas/std", + "pallet-gear-messenger/std", + "pallet-gear-scheduler/std", + "pallet-gear-program/std", + "pallet-gear-voucher/std", + "pallet-gear-bank/std", + "pallet-gear-proc-macro/full", + "primitive-types/std", + "serde/std", + "sp-consensus-babe/std", + "test-syscalls?/std", + "demo-read-big-state?/std", + "demo-proxy?/std", + "demo-reserve-gas?/std", + "demo-delayed-sender?/std", + "demo-constructor?/std", + "demo-waiter?/std", + "demo-init-wait?/std", + "demo-signal-entry?/std", + "gear-runtime-interface/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", @@ -184,6 +185,7 @@ runtime-benchmarks = [ "gear-core-backend/mock", "gear-core-errors/codec", "gear-sandbox", + "gear-tasks", "sp-consensus-slots", "sp-consensus-babe", "rand", @@ -198,7 +200,7 @@ runtime-benchmarks = [ "demo-waiter/wasm-wrapper", "demo-init-wait/wasm-wrapper", "demo-signal-entry/wasm-wrapper", - "core-processor/mock", + "core-processor/mock", ] runtime-benchmarks-checkers = [] try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/gear/src/benchmarking/mod.rs b/pallets/gear/src/benchmarking/mod.rs index cab7b0b7b72..2796bf7e006 100644 --- a/pallets/gear/src/benchmarking/mod.rs +++ b/pallets/gear/src/benchmarking/mod.rs @@ -352,6 +352,11 @@ benchmarks! { tests::lazy_pages::lazy_pages_gas_exceed::(); }: {} + #[extra] + check_gear_tasks { + tests::gear_tasks::smoke::(); + }: {} + // This bench uses `StorageMap` as a storage, due to the fact that // the most of the gear storages represented with this type. db_write_per_kb { diff --git a/pallets/gear/src/benchmarking/tests/gear_tasks.rs b/pallets/gear/src/benchmarking/tests/gear_tasks.rs new file mode 100644 index 00000000000..c7d91bfdb92 --- /dev/null +++ b/pallets/gear/src/benchmarking/tests/gear_tasks.rs @@ -0,0 +1,67 @@ +// This file is part of Gear. +// +// Copyright (C) 2024 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program 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. +// +// This program 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 this program. If not, see . + +// We have to spawn a client and `GearTasksRunner` for native benchmark execution. +// Also, we anyway run the same set of tests in `gear-tasks` crate itself. +#[cfg(feature = "std")] +pub fn smoke() {} + +#[cfg(target_arch = "wasm32")] +pub fn smoke() { + use crate::{benchmarking::tests::utils, BalanceOf, CurrencyOf}; + use alloc::{vec, vec::Vec}; + use frame_support::traits::{Currency, Get}; + use parity_scale_codec::Encode; + use sp_runtime::SaturatedConversion; + + const MAIN_KEY: &[u8] = b"MAIN_KEY"; + const MAIN_VALUE: &[u8] = b"MAIN_VALUE"; + + const THREAD_KEY: &[u8] = b"THREAD_KEY"; + const THREAD_VALUE: &[u8] = b"THREAD_VALUE"; + + gear_runtime_interface::reinit_tasks(T::ProcessingTasksAmount::get()); + + sp_io::storage::set(MAIN_KEY, MAIN_VALUE); + + let unsorted = vec![9, 7, 5, 3, 2, 1]; + let handle = gear_tasks::spawn( + |mut payload| { + let bank_address = ::BankAddress::get(); + let balance = CurrencyOf::::free_balance(&bank_address); + + assert_eq!(sp_io::storage::get(MAIN_KEY).as_deref(), Some(MAIN_VALUE)); + + sp_io::storage::set(THREAD_KEY, THREAD_VALUE); + + payload.sort(); + (payload, balance).encode() + }, + unsorted, + ); + + let payload = handle.join().unwrap(); + let (sorted, bank_balance): (Vec, BalanceOf) = + parity_scale_codec::Decode::decode(&mut &payload[..]).unwrap(); + assert_eq!(sorted, vec![1, 2, 3, 5, 7, 9]); + assert_eq!(bank_balance, CurrencyOf::::minimum_balance()); + + assert_eq!(sp_io::storage::get(THREAD_KEY), None); + + log::info!("Bank balance: {}", bank_balance.saturated_into::()); +} diff --git a/pallets/gear/src/benchmarking/tests/mod.rs b/pallets/gear/src/benchmarking/tests/mod.rs index 639fb5a2dcf..2d57f74c4df 100644 --- a/pallets/gear/src/benchmarking/tests/mod.rs +++ b/pallets/gear/src/benchmarking/tests/mod.rs @@ -23,6 +23,7 @@ use super::*; +pub mod gear_tasks; pub mod lazy_pages; pub mod syscalls_integrity; mod utils; diff --git a/pallets/gear/src/lib.rs b/pallets/gear/src/lib.rs index e6ca6575ffc..4086970c7ce 100644 --- a/pallets/gear/src/lib.rs +++ b/pallets/gear/src/lib.rs @@ -256,6 +256,10 @@ pub mod pallet { /// Message Queue processing routing provider. type QueueRunner: QueueRunner>; + /// Amount of parallel processing tasks. + #[pallet::constant] + type ProcessingTasksAmount: Get; + /// The free of charge period of rent. #[pallet::constant] type ProgramRentFreePeriod: Get>; diff --git a/pallets/gear/src/pallet_tests.rs b/pallets/gear/src/pallet_tests.rs index f0a2a14d1c1..b80249467fa 100644 --- a/pallets/gear/src/pallet_tests.rs +++ b/pallets/gear/src/pallet_tests.rs @@ -61,6 +61,7 @@ macro_rules! impl_config_inner { type BlockLimiter = GearGas; type Scheduler = GearScheduler; type QueueRunner = Gear; + type ProcessingTasksAmount = ConstU8<4>; type BuiltinDispatcherFactory = GearConfigBuiltinDispatcherFactory; type ProgramRentFreePeriod = RentFreePeriod; type ProgramResumeMinimalRentPeriod = ResumeMinimalPeriod; diff --git a/runtime-interface/Cargo.toml b/runtime-interface/Cargo.toml index 776f36ef099..3b8483f33f5 100644 --- a/runtime-interface/Cargo.toml +++ b/runtime-interface/Cargo.toml @@ -13,6 +13,7 @@ gear-core.workspace = true gear-lazy-pages-common.workspace = true gear-lazy-pages = { workspace = true, optional = true } gear-sandbox-host = { workspace = true, optional = true } +gear-tasks.workspace = true sp-io.workspace = true sp-runtime-interface.workspace = true @@ -35,18 +36,19 @@ winapi = { workspace = true, features = ["memoryapi"] } [features] default = ["std"] std = [ - "gear-core/std", - "gear-lazy-pages", - "gear-sandbox-host", - - "sp-io/std", - "sp-std/std", - "sp-runtime-interface/std", - "sp-wasm-interface/std", - - "byteorder/std", - "codec/std", - "log", + "gear-core/std", + "gear-lazy-pages", + "gear-sandbox-host", + "gear-tasks/std", + + "sp-io/std", + "sp-std/std", + "sp-runtime-interface/std", + "sp-wasm-interface/std", + + "byteorder/std", + "codec/std", + "log", "ark-bls12-381/std", "ark-ec/std", diff --git a/runtime-interface/src/lib.rs b/runtime-interface/src/lib.rs index c1aecb21437..d8be59b1004 100644 --- a/runtime-interface/src/lib.rs +++ b/runtime-interface/src/lib.rs @@ -54,11 +54,18 @@ mod gear_sandbox; pub use gear_sandbox::init as sandbox_init; pub use gear_sandbox::sandbox; +#[cfg(feature = "std")] +pub use gear_tasks::gear_tasks; + const _: () = assert!(core::mem::size_of::() >= core::mem::size_of::()); // Domain Separation Tag for signatures on G2. pub const DST_G2: &[u8] = b"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_"; +pub fn reinit_tasks(tasks: u8) { + ::gear_tasks::gear_tasks::reinit(tasks); +} + #[derive(Debug, Clone, Encode, Decode)] #[codec(crate = codec)] pub struct LazyPagesProgramContext { diff --git a/runtime/vara/Cargo.toml b/runtime/vara/Cargo.toml index 59982570338..96ddfe83efa 100644 --- a/runtime/vara/Cargo.toml +++ b/runtime/vara/Cargo.toml @@ -102,6 +102,8 @@ pallet-gear-rpc-runtime-api.workspace = true pallet-gear-staking-rewards-rpc-runtime-api.workspace = true pallet-gear-builtin-rpc-runtime-api.workspace = true runtime-primitives.workspace = true +gear-tasks.workspace = true +gear-tasks-runtime-api.workspace = true [dev-dependencies] sp-io.workspace = true @@ -120,6 +122,8 @@ default = ["std"] std = [ "parity-scale-codec/std", "common/std", + "gear-tasks/std", + "gear-tasks-runtime-api/std", "frame-try-runtime?/std", "frame-system-benchmarking?/std", "frame-benchmarking?/std", diff --git a/runtime/vara/src/lib.rs b/runtime/vara/src/lib.rs index c3bac531559..c8c2f28f1da 100644 --- a/runtime/vara/src/lib.rs +++ b/runtime/vara/src/lib.rs @@ -1029,6 +1029,11 @@ impl pallet_gear_bank::Config for Runtime { type GasMultiplier = GasMultiplier; } +parameter_types! { + // corresponding to the number of cores in reference validator machine + pub ProcessingTasksAmount: u8 = 4; +} + impl pallet_gear::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Randomness = pallet_babe::RandomnessFromOneEpochAgo; @@ -1047,6 +1052,7 @@ impl pallet_gear::Config for Runtime { type BlockLimiter = GearGas; type Scheduler = GearScheduler; type QueueRunner = Gear; + type ProcessingTasksAmount = ProcessingTasksAmount; type BuiltinDispatcherFactory = GearBuiltin; type ProgramRentFreePeriod = ConstU32<{ MONTHS * RENT_FREE_PERIOD_MONTH_FACTOR }>; type ProgramResumeMinimalRentPeriod = ConstU32<{ WEEKS * RENT_RESUME_WEEK_FACTOR }>; @@ -1495,6 +1501,23 @@ impl_runtime_apis_plus_common! { Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() } } + + impl gear_tasks_runtime_api::GearTasksApi for Runtime { + fn execute_task(func_ref: u64, payload: Vec) -> Vec { + gear_tasks::runtime_api_impl(func_ref, payload) + } + } +} + +#[cfg(any(feature = "std", test))] +impl gear_tasks::RuntimeSetOverlayedChanges for RuntimeApiImpl +where + B: BlockT, + C: CallApiAt, +{ + fn set_overlayed_changes(&mut self, changes: OverlayedChanges>) { + let _changes = self.changes.replace(changes); + } } #[cfg(any(feature = "std", test))] diff --git a/utils/crates-io/src/handler.rs b/utils/crates-io/src/handler.rs index ae2bc69bb0d..0ffd3730b91 100644 --- a/utils/crates-io/src/handler.rs +++ b/utils/crates-io/src/handler.rs @@ -24,7 +24,10 @@ use cargo_metadata::Package; use toml_edit::DocumentMut; /// The working version of sp-wasm-interface. -pub const GP_RUNTIME_INTERFACE_VERSION: &str = "18.0.0"; +pub const GP_RUNTIME_INTERFACE_VERSION: &str = "22.0.0-pre.1"; + +/// The working version of gp-externalities. +pub const GP_EXTERNALITIES_VERSION: &str = "0.23.0-pre.1"; /// Get the crates-io name of the provided package. pub fn crates_io_name(pkg: &str) -> &str { @@ -44,6 +47,7 @@ pub fn patch(pkg: &Package) -> Result { match manifest.name.as_str() { "gear-core-processor" => core_processor::patch(doc), + "gear-tasks" => runtime_interface::patch(doc), "gear-runtime-interface" => runtime_interface::patch(doc), "gear-sandbox" => sandbox::patch(doc), "gear-sandbox-host" => sandbox_host::patch(doc), @@ -197,57 +201,75 @@ mod sandbox_host { /// substrate handler. mod substrate { - use super::GP_RUNTIME_INTERFACE_VERSION; + use super::{GP_EXTERNALITIES_VERSION, GP_RUNTIME_INTERFACE_VERSION}; use toml_edit::InlineTable; /// Patch the substrate packages in the manifest of workspace. /// /// Substrate packages on crates-io currently have no version management /// (), - /// the following versions are pinned to frame-support-v22.0.0 on crates-io - /// now, for + /// the following versions are pinned to frame-support-v23.0.0 on crates-io + /// now, for /// the details. /// /// NOTE: The packages inside of this function are located at /// . pub fn patch_workspace(name: &str, table: &mut InlineTable) { match name { - "frame-support" | "frame-system" | "sp-core" => { - table.insert("version", "22.0.0".into()); + "frame-support" | "frame-system" | "sp-core" | "sc-client-api" => { + table.insert("version", "25.0.0".into()); } + // matching `frame-support-25.0.0` "frame-support-test" => return, + // matching `frame-support-25.0.0` "frame-benchmarking-cli" => { - table.insert("version", "26.0.0".into()); + table.insert("version", "29.0.0".into()); } + // matching `sp-core-25.0.0` "sc-cli" => { - table.insert("version", "0.30.0".into()); + table.insert("version", "0.33.0".into()); } - "sc-client-db" | "sc-service" => { - table.insert("version", "0.29.0".into()); + // matching `sp-core-25.0.0` + "sp-state-machine" | "sc-client-db" | "sc-service" => { + table.insert("version", "0.32.0".into()); } + // matching `sp-core-25.0.0` "sp-api" | "sp-rpc" => { - table.insert("version", "20.0.0".into()); + table.insert("version", "23.0.0".into()); + } + // matching `sp-core-25.0.0` + "sp-externalities" => { + // table.insert("version", "0.23.0".into()); + table.insert("version", GP_EXTERNALITIES_VERSION.into()); + table.insert("package", "gp-externalities".into()); } + // matching `frame-support-25.0.0` "sp-arithmetic" => { - table.insert("version", "17.0.0".into()); + table.insert("version", "20.0.0".into()); } + // matching `sp-core-25.0.0` "sp-debug-derive" | "sp-std" => { - table.insert("version", "9.0.0".into()); + table.insert("version", "12.0.0".into()); } + // matching `sp-core-25.0.0` "sp-io" => { - table.insert("version", "24.0.0".into()); + table.insert("version", "27.0.0".into()); } + // matching `sp-core-25.0.0` "sp-runtime" => { - table.insert("version", "25.0.0".into()); + table.insert("version", "28.0.0".into()); } + // matching `sp-runtime-28.0.0` "sp-version" => { - table.insert("version", "23.0.0".into()); + table.insert("version", "26.0.0".into()); } + // matching `sp-core-25.0.0` "sp-weights" => { - table.insert("version", "21.0.0".into()); + table.insert("version", "24.0.0".into()); } + // matching `sp-core-25.0.0` "try-runtime-cli" => { - table.insert("version", "0.32.0".into()); + table.insert("version", "0.35.0".into()); } // sp-allocator is outdated on crates.io, last // 3.0.0 forever, here we use gp-allocator instead. diff --git a/utils/crates-io/src/lib.rs b/utils/crates-io/src/lib.rs index 75eecbccd67..71b6e3b4b8b 100644 --- a/utils/crates-io/src/lib.rs +++ b/utils/crates-io/src/lib.rs @@ -52,12 +52,14 @@ pub const SAFE_DEPENDENCIES: [&str; 15] = [ /// NOTE: Each package in this array could possibly depend /// on the previous one, please be cautious about changing /// the order. -pub const STACKED_DEPENDENCIES: [&str; 13] = [ +pub const STACKED_DEPENDENCIES: [&str; 15] = [ "gcore", "gmeta", "gear-core", "gear-utils", "gear-common", + "gear-tasks-runtime-api", + "gear-tasks", "gear-sandbox-host", "gear-lazy-pages-common", "gear-lazy-pages", diff --git a/utils/gear-tasks/Cargo.toml b/utils/gear-tasks/Cargo.toml new file mode 100644 index 00000000000..beb5f31ce14 --- /dev/null +++ b/utils/gear-tasks/Cargo.toml @@ -0,0 +1,48 @@ +[package] +name = "gear-tasks" +version.workspace = true +authors.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true + +[dependencies] +gear-tasks-runtime-api.workspace = true + +# substrate +sp-runtime-interface.workspace = true +sp-externalities.workspace = true +sp-api.workspace = true +# std only +sc-client-api = { workspace = true, optional = true } +sp-state-machine = { workspace = true, optional = true, features = ["std"] } +futures-executor = { workspace = true, optional = true, features = ["thread-pool"] } + +# utility +parity-scale-codec.workspace = true +log.workspace = true + +[dev-dependencies] +gear-tasks = { workspace = true, features = ["std", "testing"] } + +sp-io = { workspace = true, features = ["std"] } +sp-state-machine = { workspace = true, features = ["std"] } +gear-node-testing.workspace = true +vara-runtime = { workspace = true, features = ["dev"] } + +env_logger.workspace = true + +[features] +default = ["std"] +std = [ + "gear-tasks-runtime-api/std", + "sp-runtime-interface/std", + "sp-externalities/std", + "sp-api/std", + "sc-client-api", + "sp-state-machine", + "futures-executor", + "parity-scale-codec/std", +] +testing = [] diff --git a/utils/gear-tasks/runtime-api/Cargo.toml b/utils/gear-tasks/runtime-api/Cargo.toml new file mode 100644 index 00000000000..f8505495c74 --- /dev/null +++ b/utils/gear-tasks/runtime-api/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "gear-tasks-runtime-api" +version.workspace = true +authors.workspace = true +edition.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true + +[dependencies] +sp-api.workspace = true + +[features] +default = ["std"] +std = ["sp-api/std"] diff --git a/utils/gear-tasks/runtime-api/src/lib.rs b/utils/gear-tasks/runtime-api/src/lib.rs new file mode 100644 index 00000000000..1e6b459190a --- /dev/null +++ b/utils/gear-tasks/runtime-api/src/lib.rs @@ -0,0 +1,29 @@ +// This file is part of Gear. +// +// Copyright (C) 2024 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program 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. +// +// This program 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 this program. If not, see . + +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate alloc; + +use alloc::vec::Vec; + +sp_api::decl_runtime_apis! { + pub trait GearTasksApi { + fn execute_task(func_ref: u64, payload: Vec) -> Vec; + } +} diff --git a/utils/gear-tasks/src/host.rs b/utils/gear-tasks/src/host.rs new file mode 100644 index 00000000000..24a5a5b5471 --- /dev/null +++ b/utils/gear-tasks/src/host.rs @@ -0,0 +1,215 @@ +// This file is part of Gear. +// +// Copyright (C) 2024 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program 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. +// +// This program 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 this program. If not, see . + +use crate::{JoinError, JoinHandle, JoinResult}; +use futures_executor::ThreadPool; +use gear_tasks_runtime_api::GearTasksApi; +use sc_client_api::UsageProvider; +use sp_api::{ApiExt, BlockT, HashingFor, ProvideRuntimeApi}; +use sp_state_machine::OverlayedChanges; +use std::{ + any::Any, + collections::HashMap, + marker::PhantomData, + sync::{mpsc, Arc, OnceLock}, +}; + +static RUNNER_TX: OnceLock> = OnceLock::new(); + +enum TasksRunnerEvent { + ReInit { + tasks: u8, + }, + Spawn { + overlayed_changes: Box, + func_ref: u64, + payload: Vec, + rx: mpsc::SyncSender, + }, +} + +impl TasksRunnerEvent { + fn send(self) { + RUNNER_TX + .get() + .expect("`GearTasksRunner` is not spawned") + .send(self) + .expect("`GearTasksRunner` has been dropped") + } +} + +pub trait RuntimeSetOverlayedChanges { + fn set_overlayed_changes(&mut self, changes: OverlayedChanges>); +} + +sp_externalities::decl_extension! { + /// Set only by `GearTasksRunner` + /// and checked by [`gear_tasks::check_context()`](crate::gear_tasks::check_context) host call, + /// so no one can call API outside. + pub(crate) struct GearTasksContextExt; +} + +/// The tasks' runner we spawn after node client creation. +pub struct GearTasksRunner { + runtime_api_provider: Arc, + rx: mpsc::Receiver, + thread_pool: Option, + _block: PhantomData, +} + +impl GearTasksRunner +where + RA: ProvideRuntimeApi + UsageProvider + Send + Sync + 'static, + RA::Api: GearTasksApi + RuntimeSetOverlayedChanges, + Block: BlockT, +{ + pub fn new(client: Arc) -> Self { + let (tx, rx) = mpsc::channel(); + assert!( + RUNNER_TX.get().is_none(), + "`GearTasksRunner` initialized twice" + ); + let _tx = RUNNER_TX.get_or_init(move || tx); + + Self { + runtime_api_provider: client, + rx, + thread_pool: None, + _block: PhantomData, + } + } + + pub async fn run(mut self) { + for info in self.rx { + match info { + TasksRunnerEvent::ReInit { tasks } => { + self.thread_pool = Some( + ThreadPool::builder() + .pool_size(tasks as usize) + .name_prefix("gear-tasks-") + .create() + .expect("Thread pool creation failed"), + ); + } + TasksRunnerEvent::Spawn { + overlayed_changes, + func_ref, + payload, + rx, + } => { + let client = self.runtime_api_provider.clone(); + let thread_pool = self + .thread_pool + .as_ref() + .expect("`TasksRunnerEvent::ReInit` has never been sent"); + thread_pool.spawn_ok(async move { + let mut runtime_api = client.runtime_api(); + runtime_api.register_extension(GearTasksContextExt); + + let mut overlayed_changes = overlayed_changes + .downcast::>>() + .expect( + "`Externalities::gear_overlayed_changes()` returns invalid type", + ); + // Overlayed changes enter runtime mode in `StateMachine::execute()` + // so we definitely want to exit from it before `execute_task()` tries to + // enter it again. + overlayed_changes.exit_runtime().expect( + "Overlayed changes is never called in `sp_state_machine::StateMachine::execute()`", + ); + runtime_api.set_overlayed_changes(*overlayed_changes); + + let block_hash = client.usage_info().chain.best_hash; + + let res = runtime_api + .execute_task(block_hash, func_ref, payload) + .map_err(|e| JoinError::RuntimeApi(e.to_string())); + + rx.send(res).expect( + "`TaskSpawner` dropped before task completion and `join()` on it", + ) + }); + } + } + } + } +} + +sp_externalities::decl_extension! { + pub(crate) struct TaskSpawnerExt(TaskSpawner); +} + +impl TaskSpawnerExt { + pub(crate) fn new(tasks: u8) -> Self { + Self(TaskSpawner::new(tasks)) + } +} + +pub struct TaskSpawner { + counter: u64, + tasks: HashMap>, +} + +impl TaskSpawner { + fn new(tasks: u8) -> Self { + TasksRunnerEvent::ReInit { tasks }.send(); + + Self { + counter: 0, + tasks: HashMap::new(), + } + } + + pub(crate) fn spawn( + &mut self, + overlayed_changes: Box, + func_ref: u64, + payload: Vec, + ) -> JoinHandle { + let handle = self.counter; + self.counter += 1; + + let (rx, tx) = mpsc::sync_channel(1); + + TasksRunnerEvent::Spawn { + overlayed_changes, + func_ref, + payload, + rx, + } + .send(); + + self.tasks.insert(handle, tx); + JoinHandle { inner: handle } + } + + pub(crate) fn join(&mut self, handle: JoinHandle) -> JoinResult { + let tx = self + .tasks + .remove(&handle.inner) + .expect("`JoinHandle` is duplicated so task not found"); + tx.recv() + .expect("Sender has been disconnected which means thread was somehow terminated") + } +} + +impl Drop for TaskSpawner { + fn drop(&mut self) { + assert_eq!(self.tasks.len(), 0, "Not every task has been joined"); + } +} diff --git a/utils/gear-tasks/src/lib.rs b/utils/gear-tasks/src/lib.rs new file mode 100644 index 00000000000..ad6d1803beb --- /dev/null +++ b/utils/gear-tasks/src/lib.rs @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2024 + * All rights reserved. + */ +// This file is part of Gear. +// +// Copyright (C) 2024 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program 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. +// +// This program 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 this program. If not, see . + +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate alloc; + +#[cfg(feature = "std")] +mod host; + +#[cfg(feature = "std")] +pub use host::{GearTasksRunner, RuntimeSetOverlayedChanges}; + +use alloc::{string::String, vec::Vec}; +use parity_scale_codec::{Decode, Encode}; +use sp_externalities::ExternalitiesExt; +use sp_runtime_interface::runtime_interface; + +/// WASM host functions for managing tasks. +#[runtime_interface] +pub trait GearTasks { + fn reinit(&mut self, tasks: u8) { + self.register_extension(host::TaskSpawnerExt::new(tasks)) + .expect("`GearTasks` initialized twice"); + } + + /// Check that nobody calls the API outside. + /// + /// Used in [`runtime_api_impl`]. + fn check_context(&mut self) { + self.extension::() + .expect("`GearTasksApi::execute_task()` called without context"); + } + + fn spawn(&mut self, func_ref: u64, payload: Vec) -> u64 { + let changes = self + .gear_overlayed_changes() + .expect("`GearTasks::spawn` called outside `sp_state_machine::StateMachine`"); + + let spawner = self + .extension::() + .expect("Cannot spawn without dynamic runtime dispatcher (TaskSpawnerExt)"); + let handle = spawner.spawn(changes, func_ref, payload); + handle.inner + } + + fn join(&mut self, handle: u64) -> JoinResult { + let spawner = self + .extension::() + .expect("Cannot join without dynamic runtime dispatcher (TaskSpawnerExt)"); + spawner.join(JoinHandle { inner: handle }) + } +} + +/// Implementation of `GearTasksApi::execute_task()`. +pub fn runtime_api_impl(func_ref: u64, payload: Vec) -> Vec { + gear_tasks::check_context(); + + #[cfg(target_arch = "wasm32")] + let f = unsafe { core::mem::transmute::) -> Vec>(func_ref as u32) }; + + #[cfg(all(feature = "std", feature = "testing"))] + let f = unsafe { core::mem::transmute::) -> Vec>(func_ref) }; + + #[cfg(all(feature = "std", not(feature = "testing")))] + let f: fn(Vec) -> Vec = { + let _ = func_ref; + |_payload| { + panic!( + "`gear-tasks` runtime API implementation have not to be used for native in production" + ) + } + }; + + f(payload) +} + +/// Error returned from [`JoinHandle::join()`]. +#[derive(Debug, Encode, Decode)] +pub enum JoinError { + /// `::execute_task()` error. + RuntimeApi(String), +} + +pub type JoinResult = Result, JoinError>; + +/// Handle returned from [`spawn()`]. +#[must_use] +#[derive(Debug, Eq, PartialEq)] +pub struct JoinHandle { + pub(crate) inner: u64, +} + +impl JoinHandle { + /// Wait for task completion. + pub fn join(self) -> JoinResult { + gear_tasks::join(self.inner) + } +} + +/// Spawn a new task using static function and payload. +pub fn spawn(f: fn(Vec) -> Vec, payload: Vec) -> JoinHandle { + let inner = gear_tasks::spawn(f as usize as u64, payload); + JoinHandle { inner } +} diff --git a/utils/gear-tasks/tests/with_client.rs b/utils/gear-tasks/tests/with_client.rs new file mode 100644 index 00000000000..54890aef91b --- /dev/null +++ b/utils/gear-tasks/tests/with_client.rs @@ -0,0 +1,199 @@ +// This file is part of Gear. +// +// Copyright (C) 2024 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program 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. +// +// This program 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 this program. If not, see . + +use gear_node_testing::client::{ + Client as TestClient, NativeElseWasmExecutor, TestClientBuilder, TestClientBuilderExt, + WasmExecutor, +}; +use gear_tasks::GearTasksRunner; +use sc_client_api::UsageProvider; +use sp_api::HashingFor; +use sp_externalities::Extensions; +use sp_state_machine::{Ext, OverlayedChanges}; +use std::{ + sync::{Arc, OnceLock}, + time::Duration, +}; +use vara_runtime::{Block, ProcessingTasksAmount}; + +static CLIENT: OnceLock> = OnceLock::new(); + +struct BackendExternalities { + extensions: Extensions, + overlay: OverlayedChanges>, +} + +impl Default for BackendExternalities { + fn default() -> Self { + let mut overlay = OverlayedChanges::default(); + // emulate actual runtime behavior + overlay.enter_runtime().unwrap(); + + Self { + extensions: Default::default(), + overlay, + } + } +} + +impl BackendExternalities { + fn execute_with(&mut self, f: impl FnOnce() -> R) -> R { + let client = CLIENT.get().unwrap(); + let block_hash = client.usage_info().chain.best_hash; + let state = client.state_at(block_hash).unwrap(); + + let mut ext = Ext::new(&mut self.overlay, &state, Some(&mut self.extensions)); + sp_externalities::set_and_run_with_externalities(&mut ext, || { + gear_tasks::gear_tasks::reinit(ProcessingTasksAmount::get()); + f() + }) + } +} + +pub fn init_logger() { + let _ = env_logger::Builder::from_default_env() + .format(|f, record| { + use std::io::Write; + + let current_thread = std::thread::current(); + + let level = f.default_styled_level(record.level()); + let module = record.module_path().unwrap_or_default(); + let thread_name = current_thread + .name() + .map(str::to_string) + .unwrap_or_else(|| format!("{:?}", current_thread.id())); + + writeln!(f, "[{level:<5} ({thread_name}) {module}] {}", record.args(),) + }) + .try_init(); +} + +fn new_test_ext() -> BackendExternalities { + CLIENT.get_or_init(|| { + let mut executor = + NativeElseWasmExecutor::new_with_wasm_executor(WasmExecutor::builder().build()); + // Substrate's `CodeExecutor::call()` has explicit flag to use native execution, + // so it's applicable for `NativeElseWasmExecutor`, too. + // The flag is always set to `false` in our case, so + // we set it to true + executor.gear_force_native(); + let client = TestClientBuilder::new().build_with_wasm_executor(Some(executor)); + + let client = Arc::new(client); + + let runner = GearTasksRunner::new(client.clone()); + + std::thread::spawn(|| { + futures_executor::block_on(async move { + runner.run().await; + }); + }); + + client + }); + + BackendExternalities::default() +} + +#[test] +fn smoke_native() { + init_logger(); + new_test_ext().execute_with(|| { + const PAYLOAD_SIZE: usize = 32 * 1024; + + let payload = vec![0xff; PAYLOAD_SIZE]; + let handles = (0..ProcessingTasksAmount::get() as usize).map(|i| { + let mut payload = payload.clone(); + payload[i * (PAYLOAD_SIZE / ProcessingTasksAmount::get() as usize)] = 0xfe; + gear_tasks::spawn( + |mut payload| { + payload.sort(); + payload + }, + payload, + ) + }); + + let mut expected = vec![0xff; PAYLOAD_SIZE]; + expected[0] = 0xfe; + + for handle in handles { + let payload = handle.join().unwrap(); + assert_eq!(payload, expected); + } + }) +} + +#[test] +fn write_has_no_effect() { + init_logger(); + new_test_ext().execute_with(|| { + const MAIN_KEY: &[u8] = b"MAIN_KEY"; + const MAIN_VALUE: &[u8] = b"MAIN_VALUE"; + + const THREAD_KEY: &[u8] = b"THREAD_KEY"; + const THREAD_VALUE: &[u8] = b"THREAD_VALUE"; + + sp_io::storage::set(MAIN_KEY, MAIN_VALUE); + assert_eq!(sp_io::storage::get(MAIN_KEY).as_deref(), Some(MAIN_VALUE)); + + gear_tasks::spawn( + |_payload| { + assert_eq!(sp_io::storage::get(MAIN_KEY).as_deref(), Some(MAIN_VALUE)); + + sp_io::storage::set(THREAD_KEY, THREAD_VALUE); + + vec![] + }, + vec![], + ) + .join() + .unwrap(); + + gear_tasks::spawn( + |_payload| { + assert_eq!(sp_io::storage::get(MAIN_KEY).as_deref(), Some(MAIN_VALUE)); + + assert_eq!(sp_io::storage::get(THREAD_KEY), None); + vec![] + }, + vec![], + ) + .join() + .unwrap(); + + assert_eq!(sp_io::storage::get(MAIN_KEY).as_deref(), Some(MAIN_VALUE)); + assert_eq!(sp_io::storage::get(THREAD_KEY), None); + }); +} + +#[test] +#[should_panic = "Not every task has been joined"] +fn unjoined_task_detected() { + init_logger(); + new_test_ext().execute_with(|| { + let _handle = gear_tasks::spawn( + |_payload| { + std::thread::sleep(Duration::MAX); + vec![] + }, + vec![], + ); + }); +} diff --git a/utils/wasm-proc/src/main.rs b/utils/wasm-proc/src/main.rs index 0cb28647689..ec899776a51 100644 --- a/utils/wasm-proc/src/main.rs +++ b/utils/wasm-proc/src/main.rs @@ -24,7 +24,7 @@ use gear_wasm_builder::{ use parity_wasm::elements::External; use std::{collections::HashSet, fs, path::PathBuf}; -const RT_ALLOWED_IMPORTS: [&str; 75] = [ +const RT_ALLOWED_IMPORTS: [&str; 79] = [ // From `Allocator` (substrate/primitives/io/src/lib.rs) "ext_allocator_free_version_1", "ext_allocator_malloc_version_1", @@ -113,6 +113,11 @@ const RT_ALLOWED_IMPORTS: [&str; 75] = [ // From `GearBls12_381` "ext_gear_bls_12_381_aggregate_g1_version_1", "ext_gear_bls_12_381_map_to_g2affine_version_1", + // From `GearTasks` + "ext_gear_tasks_reinit_version_1", + "ext_gear_tasks_check_context_version_1", + "ext_gear_tasks_spawn_version_1", + "ext_gear_tasks_join_version_1", ]; #[derive(Debug, clap::Parser)]