* use CountedMap in pallet-bags-list
* Fix build
* Update frame/bags-list/src/list/mod.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
* add a check as well
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
* pallet-scheduler: Introduce `OriginPrivilegeCmp`
When a scheduled task should be canceled, the origin that tries to
cancel the task is compared to the origin the task should be executed
with. Before this pr this check only allowed that both origins are
equal. However, this is problematic as this means that for example a
council origin it needs to be have the same amount of yes votes to
cancel the scheduled task. While a council origin with more yes votes
should be able to cancel this task. This happened recently on Kusama and
lead to a failed cancelation of a scheduled task. With this pr the two
origins are compared and the cancelling origin needs to have greater or
equal privileges as the origin that scheduled the task. What a greater,
equal or less privilege is, can be configured in the runtime.
For simplicity, a `EqualPrivilegeOnly` implementation is provided that
only checks if two origins are equal. So, this mimics the old behaviour.
* FMT
* fix import
* Small optimizations
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* pallet-multisig: Improve opaque call handling
Before the opaque call was just a type redefinition of `Vec<u8>`. With metadata v14 that was
breaking external tools, as they stopped looking at the type name. To improve the situation the
`WrapperKeepOpaque` type is introduced that communicates to the outside the correct type info.
* Cleanup
* Fix benchmarks
* FMT
* improve root filter bypass
* improve doc
* fmt
* refactor test for more understandable flow
* Update frame/support/procedural/src/construct_runtime/expand/origin.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
* match
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
* Focus on correctness lints. This relies on a compiler patch that landed 8th July 2021.
If people are using an earlier version of the compiler everything will still work unless they try and run clippy.
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Denis Pisarev <denis.pisarev@parity.io>
* Record pallet indices in CallMetadata
* Resurrect PalletVersion infrastructure and rename as CrateVersion
* cargo fmt
* Add missing runtime generics to pallet struct
* Fix path to instance
* Fix test
* Fix UI test expectations
* Fix UI test expectations
* Move crate_version function to PalletInfoAccess
* Update UI test expectations
* Add crate_name method to PalletInfo
* Convert path to module name instead of exposing crate name
* cargo fmt
* Keep the double colons when constructing the module name
* Remove unused import
* Update UI test expectations
* Update frame/support/src/traits/metadata.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* Update UI test expectations
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* refactor `do_destroy`
* destroy trait
* refactor do_force_create
* impl create trait
* do not bleed weight into api
* Do the same for uniques
* add docs
* Prepare UI tests for rust 1.54
* Delete wrong_page.stderr
* CI: run with a staging CI image
* Revert "CI: run with a staging CI image"
This reverts commit 66f5b00d14b50fd9d8fbf773f7e884f380697591.
* CI: debug, again
* LOG_TARGET is only used in std
* Remove unnecessary unsafe
* Fixes
* Use correct rustc locally
* FMT
* Compile with benchmarking
* Review feedback
* Some ui tests
* I know...
* Fix wasm tests
Co-authored-by: Denis P <denis.pisarev@parity.io>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Integrating WrapperOpaque from PR #9738
* Adding storage_info to pallet im-online
Changing some `Vec` to `WeakBoundedVec`
Adding the following bounds:
* `MaxKeys
* `MaxPeerInHeartbeats`
* `MaxPeerDataEncodingSize`
to limit the size of `WeakBoundedVec`
* Fix syntax
* Need to clone keys
* Changes in formatting
* add query types to generate_storage_alias
* adjust comment
* use ValueQuery explicitly for generate_storage_alias with generic value type
* bump impl_version
* adjust line width and add import
* more compilation and formatting fixes
* formatting
* Support multiple, mergable vesting schedules
* Update node runtime
* Remove some TODO design questions and put them as commennts
* Update frame/vesting/src/benchmarking.rs
* Syntax and comment clean up
* Create filter enum for removing schedules
* Dry vesting calls with do_vest
* Improve old benchmarks to account for max schedules
* Update WeightInfo trait and make dummy fns
* Add merge_schedule weights
* Explicitly test multiple vesting scheudles
* Make new vesting tests more more clear
* Apply suggestions from code review
* Update remove_vesting_schedule to error with no index
* Try reduce spacing diff
* Apply suggestions from code review
* Use get on vesting for bounds check; check origin first
* No filter tuple; various simplifications
* unwrap or default when getting user schedules
* spaces be gone
* ReadMe fixes
* Update frame/vesting/src/lib.rs
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* address some comments for docs
* merge sched docs
* Apply suggestions from code review
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* log error when trying to push to vesting vec
* use let Some, not is_some
* remove_vesting_schedule u32, not optin
* new not try_new, create validate builder; VestingInfo
* Merge prep: break out tests and mock
* Add files forgot to include in merge
* revert some accidental changes to merged files
* Revert remaining accidental file changes
* More revert of accidental file change
* Try to reduce diff on tests
* namespace Vesting; check key when key should not exist;
* ending_block throws error on per_block of 0
* Try improve merge vesting info comment
* Update frame/vesting/src/lib.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* add validate + correct; handle duration > blocknumber
* Move vesting_info module to its own file
* Seperate Vesting/locks updates from writing
* Add can_add_vesting schedule
* Adjust min vested transfer to be greater than all ED
* Initial integrity test impl
* merge_finished_and_yet_to_be_started_schedules
* Make sure to assert storage items are cleaned up
* Migration initial impl (not tested)
* Correct try-runtime hooks
* Apply suggestions from code review
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* header
* WIP: improve benchmarks
* Benchmarking working
* benchmarking: step over max schedules
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_vesting --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/vesting/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* Simplify APIs by accepting vec; convert to bounded on write
* Test: build_genesis_has_storage_version_v1
* Test more error cases
* Hack to get polkadot weights to work; should revert later
* Improve benchmarking; works on polkadot
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_vesting --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/vesting/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* WIP override storage
* Set storage not working example
* Remove unused tests
* VestingInfo: make public, derive MaxEndcodedLen
* Rename ending_block to ending_block_as_balance
* Superificial improvements
* Check for end block infinite, not just duration
* More superficial update
* Update tests
* Test vest with multi schedule
* Don't use half max balance in benchmarks
* Use debug_assert when locked is unexpected 0
* Implement exec_action
* Simplify per_block calc in vesting_info
* VestingInfo.validate in add_vesting_schedule & can_add_vesting_schedule
* Simplify post migrate check
* Remove merge event
* Minor benchmarking updates
* Remove VestingInfo.correct
* per_block accesor max with 1
* Improve comment
* Remoe debug
* Fix add schedule comment
* Apply suggestions from code review
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* no ref for should_remove param
* Remove unused vestingaction derive
* Asserts to show balance unlock in merge benchmark
* Remove unused imports
* trivial
* Fix benchmark asserts to handle non-multiple of 20 locked
* Add generate_storage_info
* migration :facepalm
* Remove per_block 0 logic
* Update frame/vesting/src/lib.rs
* Do not check for ending later than greatest block
* Apply suggestions from code review
* Benchmarks: simplify vesting schedule creation
* Add log back for migration
* Add note in ext docs explaining that all schedules will vest
* Make integrity test work
* Improve integrity test
* Remove unnescary type param from VestingInfo::new
* Remove unnescary resut for ending_block_as_balance
* Remove T param from ending_block_as_balance
* Reduce visibility of raw_per_block
* Remove unused type param for validate
* update old comment
* Make log a dep; log warn in migrate
* VestingInfo.validate returns Err(()), no T type param
* Try improve report_schedule_updates
* is_valid, not validate
* revert node runtime reorg;
* change schedule validity check to just warning
* Simplify merge_vesting_info return type
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Add warning for migration
* Fix indentation
* Delete duplicate warnings
* Reduce diff in node runtime
* Fix benchmark build
* Upgrade cargo.toml to use 4.0.0-dev
* Cleanup
* MaxVestingSchedulesGetter initial impl
* MinVestedTransfer getter inintial impl
* Test MaxVestingSchedules & MinVestedTransfer getters; use getters in benchmarks
* Run cargo fmt
* Revert MinVestedTransfer & MaxVestingSchedules getters; Add integrity test
* Make MAX_VESTING_SCHEDULES a const
* fmt
* WIP: benchmark improvements
* Finish benchmark update
* Add test for transfer to account with less than ed
* Rm min_new_account_transfer; move sp-io to dev-dep
* Reduce cargo.toml diff
* Explain MAX_VESTING_SCHEDULES choice
* Fix after merge
* Try fix CI complaints
* cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_vesting --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/vesting/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_vesting --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/vesting/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* fmt
* trigger
* fmt
Co-authored-by: Parity Bot <admin@parity.io>
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: kianenigma <kian@parity.io>
Remove unneeded dependencies and dev-dependencies.
Made self_destruct test not dependent on wasm bin size.
Updated code related to deprecated warning on tracing-subscriber `scope()`
( See https://github.com/tokio-rs/tracing/issues/1429 )
* Move `PalletVersion` away from the crate version
Before this pr, `PalletVersion` was referring to the crate version that
hosted the pallet. This pr introduces a custom `package.metadata.frame`
section in the `Cargo.toml` that can contain a `pallet-version` key
value pair. While the value is expected to be a valid u16. If this
key/value pair isn't given, the version is set to 1.
It also changes the `PalletVersion` declaration. We now only have one
`u16` that represents the version. Not a major/minor/patch version. As
the old `PalletVersion` was starting with the `u16` major, decoding the
old values will work.
* Overhaul the entire implementation
- Drop PalletVersion
- Introduce StorageVersion
- StorageVersion needs to be set in the crate and set for the macros
- Added migration
* Fix migrations
* Review feedback
* Remove unneeded dep
* remove pub consts
* Brings back logging and implements `GetStorageVersion`
* Return weight from migration
* Fmt and remove unused import
* Update frame/support/src/dispatch.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* Update frame/support/src/traits/metadata.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* Add methods to PrefixIterator to support iterating from a specific key
* Expose the decode functions used in iterators for storage maps
* Use associated decode function in tests
* Revert "Expose the decode functions used in iterators for storage maps"
This reverts commit 34f57d92db89646d0c98ea1880df58d58e523b09.
* Fix documentation for next_key
* Add API for iterating from a specified key for all storage map types
* Enhance pagination test
* Add API methods to storage map types
* Rename next_key to last_key
* Rename last_key to last_raw_key
* Specify that iteration starts after starting_raw_key
* Update documentation on iteration ordering
* Rename next_key to previous_key
* Enhance pagination unit test
* Create unit tests for all kinds of iter_from methods
* Define iter_from in terms of iter rather than vice versa
* Cargo fmt