* Make use of PrefixIterator underneath Storage[Key]Iterator
* Add ChildTriePrefixIterator and methods
* Add documentation on ChilTriePrefixIterator fields
* Deprecate Storage[Key]Iterator API instead of removing them
* Allow fetching for the prefix as an option for ChildTriePrefixIterator
* Rename prefix_fetch to fetch_previous_key
* fix implementation + test
* make gitdiff better
* Add test for storage_iter and storage_key_iter
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Reservable, Transferrable Fungible(s), plus adapters.
* Repot into new dir
* Imbalances for Fungibles
* Repot and balanced fungible.
* Clean up names and bridge-over Imbalanced.
* Repot frame_support::trait. Finally.
* Make build.
* Docs
* Good errors
* Fix tests. Implement fungible::Inspect for Balances.
* Implement additional traits for Balances.
* Revert UI test "fixes"
* Fix UI error
* Fix UI test
* More work on fungibles
* Fixes
* More work.
* Update lock
* Make fungible::reserved work for Balances
* Introduce Freezer to Assets, ready for a reserve & locks pallet. Some renaming/refactoring.
* Cleanup errors
* Imbalances working with Assets
* Test for freezer.
* Grumbles
* Grumbles
* Fixes
* Extra "side-car" data for a user's asset balance.
* Fix
* Fix test
* Fixes
* Line lengths
* Comments
* Update frame/assets/src/tests.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update frame/support/src/traits/tokens/fungibles.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update frame/assets/src/lib.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update frame/support/src/traits/tokens/fungible.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Introduce `transfer_reserved`
* Rename fungible Reserve -> Hold, add flag structs
* Avoid the `melted` API - its too complex and gives little help
* Repot Assets pallet
Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* make types within `generate_solution_type` macro explicit
Closes#8444.
Just changes the parsing logic for that macro; does not change any
emitted code. The associated types associated with the macro now
require explicit, keyword-style declaration.
**Old**:
```rust
sp_npos_elections::generate_solution_type!(
#[compact]
pub struct TestCompact::<VoterIndex, TargetIndex, PerU16>(16)
);
```
**New**:
```rust
sp_npos_elections::generate_solution_type!(
#[compact]
pub struct TestCompact::<VoterIndex = VoterIndex, CandidateIndex = TargetIndex, Accuracy = PerU16>(16)
);
```
* un-ignore doc-tests
* use new form in bin/node/runtime/
* rename CandidateIndex -> TargetIndex
* add tests demonstrating some potential compile failures
* Base features and traits.
* pallet and unsigned phase
* Undo bad formattings.
* some formatting cleanup.
* Small self-cleanup.
* Make it all build
* self-review
* Some doc tests.
* Some changes from other PR
* Fix session test
* Update Cargo.lock
* Update frame/election-provider-multi-phase/src/lib.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* Some review comments
* Rename + make encode/decode
* Do an assert as well, just in case.
* Fix build
* Update frame/election-provider-multi-phase/src/unsigned.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* Las comment
* fix staking fuzzer.
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_election_provider_multi_phase --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/election-provider-multi-phase/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* Add one last layer of feasibility check as well.
* Last fixes to benchmarks
* Some more docs.
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_election_provider_multi_phase --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/election-provider-multi-phase/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_election_provider_multi_phase --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/election-provider-multi-phase/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* Some nits
* It all works
* Some self cleanup
* Update frame/staking/src/lib.rs
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* remove most todos.
* Round of self-review.
* Fix migration
* clean macro
* Revert wrong merge
* Make the number of nominations configurable
* Self reivew
* renmae.
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Parity Benchmarking Bot <admin@parity.io>
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* Better description for assert in frame-session genesis
There is an assert that checks that an account exists, after setting a
key. However, this assert isn't very self-descriptive.
* Update frame/session/src/lib.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Guillaume 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.
* use more efficient search through candidates in offchain-election
* mark linear accessors as test-only in election-provider-multi-phase
This prevents production code which uses them from compiling.
Also write an efficient helper for getting the target index.
* doc grammar
* use faster target_index_fn in benchmarks
* unbox helper functions
* remove unnecessary import
* write lifetime after primary trait
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Migrate pallet-proxy to pallet attribute macro
Part of #7882.
Converts the `Proxy` pallet to the new pallet attribute macro introduced in #6877.
[Upgrade guidelines used](https://substrate.dev/rustdocs/v3.0.0/frame_support/attr.pallet.html#upgrade-guidelines).
## ⚠️ Breaking Change ⚠️
From [checking upgrade guidelines](https://crates.parity.io/frame_support/attr.pallet.html#checking-upgrade-guidelines)
> storages now use PalletInfo for module_prefix instead of the one given to `decl_storage`: use of this pallet in `construct_runtime!` needs careful updating of the name in order to not break storage or to upgrade storage (moreover for instantiable pallet). If pallet is published, make sure to warn about this breaking change.
So users of the `Assets` pallet must be careful about the name they used in `construct_runtime!`. Hence the `runtime-migration` label, which might not be needed depending on the configuration of the `Assets` pallet.
### Notes
There are some changes to the docs in metadata for the constants. The docs in the metadata for constants are now more complete.
* Don't log so many stkaing events on genesis block
* Clean a few more warn and info logs
* Update frame/staking/src/lib.rs
* Update frame/staking/src/lib.rs