* Implement StorageNMap
* Change copyright date to 2021
* Rewrite keys to use impl_for_tuples instead of recursion
* Implement prefix iteration on StorageNMap
* Implement EncodeLike for key arguments
* Rename KeyGenerator::Arg to KeyGenerator::KArg
* Support StorageNMap in decl_storage and #[pallet::storage] macros
* Use StorageNMap in assets pallet
* Support migrate_keys in StorageNMap
* Reduce line characters on select files
* Refactor crate imports in decl_storage macros
* Some more line char reductions and doc comment update
* Update UI test expectations
* Revert whitespace changes to untouched files
* Generate Key struct instead of a 1-tuple when only 1 pair of key and hasher is provided
* Revert formatting changes to unrelated files
* Introduce KeyGeneratorInner
* Add tests for StorageNMap in FRAMEv2 pallet macro
* Small fixes to unit tests for StorageNMap
* Bump runtime metadata version
* Remove unused import
* Update tests to use runtime metadata v13
* Introduce and use EncodeLikeTuple as a trait bound for KArg
* Add some rustdocs
* Revert usage of StorageNMap in assets pallet
* Make use of ext::PunctuatedTrailing
* Add rustdoc for final_hash
* Fix StorageNMap proc macro expansions for single key cases
* Create associated const in KeyGenerator for hasher metadata
* Refactor code according to comments from Basti
* Add module docs for generator/nmap.rs
* Re-export storage::Key as NMapKey in pallet prelude
* Seal the EncodeLikeTuple trait
* Extract sealing code out of key.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Before when loading a chain spec from a file it was always using the
rococo parachains runtime genesis config. This leaded to problems when
trying to convert a shell chain spec json file to a raw chain spec.
* Move `Schedule` from Storage to Config
* Updated CHANGELOG
* Fix nits from review
* Fix migration
* Print the debug buffer as tracing message
* Use `debug` instead of `trace` and update README
* Add additional assert to test
* Rename `schedule_version` to `instruction_weights_version`
* Fixed typo
* Added more comments to wat fixtures
* Add clarification for the `debug_message` field
* bump spec versions in kusama, polkadot and westend again II
* Don't build artifacts for the downstream simnet job as it's disabled now
* uncomment rococo-v1 publishing job
Co-authored-by: Vladimir Istyufeev <vladimir@parity.io>
* emit a custom section from impl_runtime_apis!
This change emits a custom section from the impl_runtime_apis! proc macro.
Each implemented API will result to emitting a link section `runtime_apis`.
During linking all sections with this name will be concatenated and
placed into the final wasm binary under the same name.
* Introduce `runtime_version` proc macro
This macro takes an existing `RuntimeVersion` const declaration, parses
it and emits the version information in form of a linking section.
Ultimately such a linking section will result into a custom wasm
section.
* Parse custom wasm section for runtime version
* Apply suggestions from code review
Co-authored-by: David <dvdplm@gmail.com>
* Fix sc-executor integration tests
* Nits
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Refactor apis section deserialization
* Fix version decoding
* Reuse uncompressed value for CallInWasm
* Log on decompression error
* Simplify if
* Reexport proc-macro from sp_version
* Merge ReadRuntimeVersionExt
* Export `read_embedded_version`
* Fix test
* Simplify searching for custom section
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
We need this in order to be able to assemble more fine grained host
function sets.
E.g. we don't want to use `SubstrateHostFunctions` for PVF. We would
better whitelist certain host functions. However, we cannot do that
because we cannot refer to the `Allocator` runtime interface.
I have not been able to find the reason why it wasn't made `pub` in the
first place, but do not see any reason why not to.
* Update polkadot
* Migrate all uses of MQC heads to merkle proofs
* Mass rename `relay_parent_storage_root`
* Restore parachain-system tests
* Update polkadot and libp2p swarm for testing
* Collapse match into an if let
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Start with something
* Update Substrate & Polkadot
* Start to make it compile
* Make it compile
* Begin with something
* Yep
* I'm a hacker
* Bring back the builder
* Make it work in some way
* Compile
* Parachains use their own "slot"
* Adds cumulus-pallet-aura
* Wrap AuRa import queue to disable equivocation checking by default
* Pass slot duration
* Check the seal when validating a block
* Adds missing file
* Try to make the seal working
* Fix it
* Some fixes
* Bring in the latest features to cleanup the code
* Update and make it compile
* Improve the import
* Start fixing
* More work
* Fix fix fix
* Make everything compile
* Small cleanups
* Rename and more docs
* Docs
* Fixes fixes fixes
* Update rococo-parachains/src/chain_spec.rs
* Update client/consensus/aura/src/lib.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update client/consensus/aura/src/lib.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update primitives/parachain-inherent/Cargo.toml
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update primitives/parachain-inherent/Cargo.toml
* Update primitives/parachain-inherent/Cargo.toml
* Update primitives/parachain-inherent/Cargo.toml
Co-authored-by: Sergei Shulepov <sergei@parity.io>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Upgrade parachain info pallet to FRAMEv2
* Upgrade parachain system pallet to FRAMEv2
* Use Pallet<T> instead of Module<T>
* Upgrade XCMP queue pallet to FRAMEv2
* Correctly specify the metadata for events in xcmp-queue pallet
* Apply suggestions from code review
* Update pallets/parachain-system/src/tests.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* requiring users to maintain an unchecked invariant is unsafe
* relax trait restrictions on BoundedVec<T, S>
A normal `Vec<T>` can do many things without any particular trait
bounds on `T`. This commit relaxes the bounds on `BoundedVec<T, S>`
to give it similar capabilities.