* implement max_values + storages info
* some formatting + doc
* rename StoragesInfo -> PalletStorageInfo
* merge both StorageInfoTrait and PalletStorageInfo
I think it is more future proof. In the future some storage could make
use of multiple prefix. Like one to store how much value has been
inserted, etc...
* Update frame/support/procedural/src/storage/parse.rs
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* Update frame/support/procedural/src/storage/storage_struct.rs
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* Fix max_size using hasher information
hasher now expose `max_len` which allows to computes their maximum len.
For hasher without concatenation, it is the size of the hash part,
for hasher with concatenation, it is the size of the hash part + max
encoded len of the key.
* fix tests
* fix ui tests
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* 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>
* generate accessor to PalletInfo information on pallet placeholder
* remove unused
* use trait, and add tests
* less verbose doc
* add PalletInfoAccess to prelude for ease usage
* Remove `serde` requirement from FRAME macros
Currently there is some implicit requirement on `serde` being present in
the `Cargo.toml` of a pallet when `GenesisConfig` is used. This pr
removes this requirement by using the serde attribute `serde(crate = "..")`.
* build a unique reexport of serde in impl_opaque_keys, by abusing paste doc concatenation
* Optimize
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Use 'Pallet' struct in construct_runtime.
* Fix genesis and metadata macro.
* Fix 'Pallet' type alias.
* Replace 'Module' with 'Pallet' for all construct_runtime use cases.
* Replace more deprecated 'Module' struct.
* Bring back AllModules and AllPalletsWithSystem type, but deprecate them.
* Replace deprecated 'Module' struct from merge master.
* Minor fix.
* Fix UI tests.
* Revert UI override in derive_no_bound.
* Fix more deprecated 'Module' use from master branch.
* Fix more deprecated 'Module' use from master branch.
* Fix weight syntax in comments
* Mention to add `IsType` bound
* Link to subsee
* Fix link
* Update frame/support/procedural/src/pallet/parse/call.rs
Co-authored-by: David <dvdplm@gmail.com>
* Apply review suggestion from @dvdplm, make StorageInstance doc link
* fix ui test
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* fix clippy replace clone with copy
* fix clippy warning pattern
* fix clippy warning replace into_iter with iter
* replace match with if let
* replace =0 with is_empty
* replace or with or_else
* replace vec! with Vec::new
* improve error message on where clause on pallet error
* Revert "improve error message on where clause on pallet error"
This reverts commit 5a3cc38976813fccef3357833553ce30f5b988ea.
* Revert "Revert "improve error message on where clause on pallet error""
This reverts commit e3b3fca6bc4fa89816f80dbcb82dc4536a9b2549.
* rename system Config to system Trait.
command used:
```
find frame/ bin/ test-utils/ utils/ -name *.rs -exec sed -i 's/system::Trait>::/system::Config>::/g' {} \;
find frame/ bin/ test-utils/ utils/ -name *.rs -exec sed -i 's/impl frame_system::Trait for /impl frame_system::Config for /g' {} \;
find frame/ bin/ test-utils/ utils/ -name *.rs -exec sed -i 's/impl system::Trait for /impl system::Config for /g' {} \;
```
plus some manual ones especially for frame-support tests and frame-system
* make construct_runtime handle Pallet and Module
pallets can now be implemented on struct named Pallet or Module, both
definition are valid.
This is because next macro will generate only Pallet placeholder.
* introduce pallet attribute macro
currently just with tests, frame_system and other example hasn't been
upgraded
* allow to print some upgrade helper from decl_storage
* Improved error msg, typo.
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Improved error msg, typo.
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Improved error message on unexpected attributes + ui test
* add test for transactional
* various typo
* some tips when spans are lost
* allow pallet to depend on other pallet instances
* make event type metadata consistent with call and constant
* error messages
* ignore doc example
* fix pallet upgrade template
* fixup
* fix doc
* fix indentation
* Apply suggestions code formatting
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* some renames + fix compilation
* remove unsupported genesis config type alias
* merge fixup
* fix ui tests
* additional doc
* implement StorageInstance with new syntax
* fix line width
* fix doc: because pallet doc goes below reexport doc
* Update frame/support/procedural/src/pallet/parse/event.rs
Co-authored-by: Andrew Jones <ascjones@gmail.com>
* Update frame/system/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Update frame/support/test/tests/pallet_ui.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* improve doc as suggested
* revert construct_runtime Pallet part.
This revert the changes on construct_runtime. Now construct_runtime is
unchanged and instead pallet macro create a type alias
`type Module<..> = Pallet<..>` to be used by construct_runtime
* refactor with less intricated code
* fix ui test with new image
* fix ui tests
* add minor tests
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: Andrew Jones <ascjones@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>