gupnik
5e7b27e98c
Moves Block to frame_system instead of construct_runtime and removes Header and BlockNumber ( #14437 )
...
* Initial setup
* Adds node block
* Uses UncheckedExtrinsic and removes Where section
* Updates frame_system to use Block
* Adds deprecation warning
* Fixes pallet-timestamp
* Removes Header and BlockNumber
* Addresses review comments
* Addresses review comments
* Adds comment about compiler bug
* Removes where clause
* Refactors code
* Fixes errors in cargo check
* Fixes errors in cargo check
* Fixes warnings in cargo check
* Formatting
* Fixes construct_runtime tests
* Uses import instead of full path for BlockNumber
* Uses import instead of full path for Header
* Formatting
* Fixes construct_runtime tests
* Fixes imports in benchmarks
* Formatting
* Fixes construct_runtime tests
* Formatting
* Minor updates
* Fixes construct_runtime ui tests
* Fixes construct_runtime ui tests with 1.70
* Fixes docs
* Fixes docs
* Adds u128 mock block type
* Fixes split example
* fixes for cumulus
* ".git/.scripts/commands/fmt/fmt.sh"
* Updates new tests
* Fixes fully-qualified path in few places
* Formatting
* Update frame/examples/default-config/src/lib.rs
Co-authored-by: Juan <juangirini@gmail.com >
* Update frame/support/procedural/src/construct_runtime/mod.rs
Co-authored-by: Juan <juangirini@gmail.com >
* ".git/.scripts/commands/fmt/fmt.sh"
* Addresses some review comments
* Fixes build
* ".git/.scripts/commands/fmt/fmt.sh"
* Update frame/democracy/src/lib.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update frame/democracy/src/lib.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update frame/support/procedural/src/construct_runtime/mod.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update frame/support/procedural/src/construct_runtime/mod.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Addresses review comments
* Updates trait bounds
* Minor fix
* ".git/.scripts/commands/fmt/fmt.sh"
* Removes unnecessary bound
* ".git/.scripts/commands/fmt/fmt.sh"
* Updates test
* Fixes build
* Adds a bound for header
* ".git/.scripts/commands/fmt/fmt.sh"
* Removes where block
* Minor fix
* Minor fix
* Fixes tests
* ".git/.scripts/commands/update-ui/update-ui.sh" 1.70
* Updates test
* Update primitives/runtime/src/traits.rs
Co-authored-by: Bastian Köcher <git@kchr.de >
* Update primitives/runtime/src/traits.rs
Co-authored-by: Bastian Köcher <git@kchr.de >
* Updates doc
* Updates doc
---------
Co-authored-by: command-bot <>
Co-authored-by: Juan <juangirini@gmail.com >
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: Bastian Köcher <git@kchr.de >
2023-07-13 12:01:34 +00:00
Michal Kucharczyk
87d41d0a89
GenesisBuild<T,I> deprecated. BuildGenesisConfig added. (#14306 )
...
* frame::support: GenesisConfig types for Runtime enabled
* frame::support: macro generating GenesisBuild::build for RuntimeGenesisConfig
* frame: ambiguity BuildStorage vs GenesisBuild fixed
* fix
* RuntimeGenesisBuild added
* Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed"
This reverts commit 950f3d019d0e21c55a739c44cc19cdabd3ff0293.
* Revert "fix"
This reverts commit a2f76dd24e9a16cf9230d45825ed28787211118b.
* Revert "RuntimeGenesisBuild added"
This reverts commit 3c131b618138ced29c01ab8d15d8c6410c9e128b.
* Revert "Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed""
This reverts commit 2b1ecd467231eddec69f8d328039ba48a380da3d.
* Revert "Revert "fix""
This reverts commit fd7fa629adf579d83e30e6ae9fd162637fc45e30.
* Code review suggestions
* frame: BuildGenesisConfig added, BuildGenesis deprecated
* frame: some pallets updated with BuildGenesisConfig
* constuct_runtime: support for BuildGenesisConfig
* frame::support: genesis_build macro supports BuildGenesisConfig
* frame: BuildGenesisConfig added, BuildGenesis deprecated
* Cargo.lock update
* test-runtime: fixes
* Revert "fix"
This reverts commit a2f76dd24e9a16cf9230d45825ed28787211118b.
* Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed"
This reverts commit 950f3d019d0e21c55a739c44cc19cdabd3ff0293.
* self review
* doc fixed
* ui tests fixed
* fmt
* tests fixed
* genesis_build macrto fixed for non-generic GenesisConfig
* BuildGenesisConfig constraints added
* warning fixed
* some duplication removed
* fmt
* fix
* doc tests fix
* doc fix
* cleanup: remove BuildModuleGenesisStorage
* self review comments
* fix
* Update frame/treasury/src/tests.rs
Co-authored-by: Sebastian Kunert <skunert49@gmail.com >
* Update frame/support/src/traits/hooks.rs
Co-authored-by: Sebastian Kunert <skunert49@gmail.com >
* doc fix: GenesisBuild exposed
* ".git/.scripts/commands/fmt/fmt.sh"
* frame: more serde(skip) + cleanup
* Update frame/support/src/traits/hooks.rs
Co-authored-by: Davide Galassi <davxy@datawok.net >
* frame: phantom fields moved to the end of structs
* chain-spec: Default::default cleanup
* test-runtime: phantom at the end
* merge master fixes
* fix
* fix
* fix
* fix
* fix (facepalm)
* Update frame/support/procedural/src/pallet/expand/genesis_build.rs
Co-authored-by: Bastian Köcher <git@kchr.de >
* fmt
* fix
* fix
---------
Co-authored-by: parity-processbot <>
Co-authored-by: Sebastian Kunert <skunert49@gmail.com >
Co-authored-by: Davide Galassi <davxy@datawok.net >
Co-authored-by: Bastian Köcher <git@kchr.de >
2023-07-12 10:22:12 +00:00
Kian Paimani
6dd625d568
remove OnStakerSlash replace with OnStakingEvents ( #14527 )
...
* remove 'OnStakerSlash', replace with 'OnStakingEvents'
* fix other features in pallets
* small fixes
* fix docs
* fix docs
* fix docs
* Update primitives/staking/src/lib.rs
Co-authored-by: Gonçalo Pestana <g6pestana@gmail.com >
---------
Co-authored-by: Gonçalo Pestana <g6pestana@gmail.com >
2023-07-09 12:46:18 +00:00
Hugo Trentesaux
7a2a1b93cb
Fix typo ( #14479 ) ( #14480 )
2023-07-03 17:09:29 +00:00
Koute
9d1741eb3c
Bump parity-scale-codec to 3.6.1 ( #14428 )
2023-06-21 11:37:11 +00:00
Abhijit Roy
4ba78088d3
Update Pallet placeholder struct as per FRAME v2 ( #14348 )
...
* Update Pallet placeholder struct as per FRAME v3
* ".git/.scripts/commands/fmt/fmt.sh"
* Update lib.rs
Removed the unused import
---------
Co-authored-by: command-bot <>
2023-06-12 15:22:05 +00:00
Michal Kucharczyk
dc7161276d
frame: support for serde added ( #14261 )
...
* frame: support for serde added
- enabled `serde` features in dependent crates, no gate feature introduced, linker should do the job and strip unused code.
- frame::staking: added impl of `serde::Serialize, serde::Deserialize` for `enum Forcing`
- primitives::runtime: impl_opaque_keys macro provides `Serialize/Deserialize` impl if `serde` is enabled
- primitives::staking: added impl of `serde::Serialize`, `serde::Deserialize` for `enum StakerStatus`
* frame::support: serde for pallets' GenesisConfig enabled in no-std
* Cargo.lock updated
* Update primitives/staking/Cargo.toml
Co-authored-by: Bastian Köcher <git@kchr.de >
* fix
* Cargo.lock update + missed serde/std in beefy
---------
Co-authored-by: Bastian Köcher <git@kchr.de >
2023-06-01 15:35:34 +00:00
dependabot[bot]
688ac3d1c7
Bump serde from 1.0.162 to 1.0.163 ( #14271 )
...
* Bump serde from 1.0.162 to 1.0.163
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.162 to 1.0.163.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.162...v1.0.163 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
* bump ci
* bump ci for cumulus
* bump ci again
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sam Johnson <sam@durosoft.com >
2023-05-31 17:10:00 +00:00
Alexandru Vasile
3da9449067
Bump sp-crates from latest crates.io version + release ( #14265 )
...
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
2023-05-31 12:11:01 +00:00
Alexandru Vasile
98a0550ea2
Release: Bump SP crates to release on crates.io ( #14237 )
...
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
2023-05-29 10:40:59 +00:00
Adrian Catangiu
b907f52066
sc-consensus-beefy: graceful support for pallet-beefy reset ( #14217 )
...
BEEFY consensus can be restarted by resetting "genesisBlock" in
pallet-beefy, but we don't want to also reset authority set IDs so
that they are uniquely identified across the entire chain history
regardless of how many times BEEFY consensus has been reset/restarted.
This is why the client now also accepts initial authority_set_id != 0.
BEEFY client now detects pallet-beefy reset/reinit and errors-out and
asks for a restart.
BEEFY client persisted state should be discarded on client restarts
following pallet-beefy reset/reinit.
End result is BEEFY client/voter can now completely reinitialize using
"new" on-chain info following pallet-beefy reset/reinit, discarding old state.
Fixes #14203
Fixes #14204
Signed-off-by: acatangiu <adrian@parity.io >
2023-05-25 15:16:37 +03:00
Bastian Köcher
05da6d8e84
HoldReason: Improve usage ( #13869 )
...
* HoldReason: Improve usage
`HoldReason` was switched recently to use the `composite_enum` attribute that will merge the enums
from all pallets in the runtime to `RuntimeHoldReason`. `pallet-nis` was still requiring that the
variant was passed as constant to call `hold`. The proper implementation is to use the `HoldReason`
from inside the pallet directly when calling `hold`. This is done by adding a `RuntimeHoldReason` as
type to the `Config` trait and requiring that `Currency` is using the same reason. Besides that the
pr changes the name `HoldIdentifier` in `pallet_balances::Config` to `RuntimeHoldReason`.
* Update frame/nis/src/lib.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Review comment
* Fixes
---------
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
2023-05-24 21:59:34 +00:00
Michal Kucharczyk
613420a035
frame: Enable GenesisConfig in no_std ( #14108 )
...
* frame: Default for GenesisConfig in no_std
`Default` for `GenesisConfig` will be required for no_std in no native
runtime world. It must be possible to instantiate default GenesisConfig
for pallets and runtime.
* ".git/.scripts/commands/fmt/fmt.sh"
* hash69 in no_std reverted
* derive(DefaultNoBound) for GenesisConfig used when possible
* treasury: derive(Default)
* Cargo.lock update
* genesis_config: compiler error improved
When std feature is not enabled for pallet, the GenesisConfig will be
defined, but serde::{Serialize,Deserialize} traits will not be
implemented.
The compiler error indicates the reason of latter errors.
This is temporary and serde traits will be enabled with together with
`serde` support in frame.
---------
Co-authored-by: command-bot <>
2023-05-20 07:34:23 +00:00
Ross Bulat
56940bc874
Staking::{bond, set_controller} to set controllers to stash only. ( #14039 )
...
* update set_controller
* clone
* bond uses `stash`
* remove controller from bond(), chill_other test works
* remove ctlr from testing_utils & dead ctlr -> dead payee
* mvs controllers to stashes for 3 tests
* migrate mock bond fns & fix 1 test
* mvs controllers to stashes for 7 tests
* mvs controllers to stashes for 9 tests
* remove double_controlling_should_fail
* remove double_staking_should_fail
* mvs controllers to stashes for 10 tests
* mvs controllers to stashes for 2 tests
* remove payout_creates_controller
* mvs controllers to stashes for 27 tests
* remove println!
* fix rewards_should_work
* fix test_payout_stakers
* fix bond benchmark
* clone
* rm unused import
* rm unused var
* rm controller from create_offender
* fix GenesisConfig stakers
* fix controllers in consensus pallets
* fix unqiue controller in chain_spec
* fmt
* fix create_offender
* fix set_controller benchmark
* add TODO
* create_unique_stash_controller
* staking benchmarks working
* fmt
* fix args
* rm println
* import
* import
* fix fast unstake tests
* fix staking-tests-e2e
* fix root-offenses
* fmt
* differentiate controller to stash
* bring back change_controller_works w. unique ctrl
* bring back double_staking_should_fail
* double_controlling_attempt_should_fail
* bring back payout_creates_controller
* add commnet to controller balances
* + set_controller call description
* fmt
* rm clones
* fmt
* clippy fixes
* fmt
* update README
* small fixes
* use controller_to_be_deprecated
* .comment
* comment
* bump zombienet version
* ci
---------
Co-authored-by: parity-processbot <>
Co-authored-by: Javier Viola <javier@parity.io >
2023-05-11 18:22:15 +00:00
Roman Useinov
376a288fb6
[Deps] Bump scale-info to match cumulus and polkadot ( #13873 )
...
* [Deps] Bump scale-info to match cumulus and polkadot
* fix Cargo.lock
* fix identity
* more fixes
* fix
* fixes
* more fixes
2023-04-12 14:14:06 +02:00
Gavin Wood
5d81f23f8f
Deprecate Currency; introduce holds and freezing into fungible traits ( #12951 )
...
* First reworking of fungibles API
* New API and docs
* More fungible::* API improvements
* New ref-counting logic for old API
* Missing files
* Fixes
* Use the new transfer logic
* Use fungibles for the dispatchables
* Use shelve/restore names
* Locking works with total balance.
* repotting and removal
* Separate Holds from Reserves
* Introduce freezes
* Missing files
* Tests for freezing
* Fix hold+freeze combo
* More tests
* Fee-free dispatchable for upgrading accounts
* Benchmarks and a few fixes
* Another test
* Docs and refactor to avoid blanket impls
* Repot
* Fit out ItemOf fully
* Add events to Balanced traits
* Introduced events into Hold traits
* Fix Assets pallet tests
* Assets benchmarks pass
* Missing files and fixes
* Fixes
* Fixes
* Benchmarks fixes
* Fix balance benchmarks
* Formatting
* Expose fungible sub modules
* Move NIS to fungible API
* Fix broken impl and add test
* Fix tests
* API for `transfer_and_hold`
* Use composite APIs
* Formatting
* Upgraded event
* Fixes
* Fixes
* Fixes
* Fixes
* Repot tests and some fixed
* Fix some bits
* Fix dust tests
* Rename `set_balance`
- `Balances::set_balance` becomes `Balances::force_set_balance`
- `Unbalanced::set_balance` becomes `Unbalances::write_balance`
* becomes
* Move dust handling to fungibles API
* Formatting
* Fixes and more refactoring
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Use reducible_balance for better correctness on fees
* Reducing hold to zero should remove entry.
* Add test
* Docs
* Update frame/support/src/traits/tokens/fungibles/hold.rs
Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com >
* Update frame/support/src/traits/tokens/fungibles/regular.rs
Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com >
* Update frame/support/src/traits/tokens/fungible/hold.rs
Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com >
* Update frame/support/src/traits/tokens/fungible/regular.rs
Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com >
* Docs
* Docs
* Docs
* Fix NIS benchmarks
* Doc comment
* Remove post_mutation
* Fix some tests
* Fix some grumbles
* Enumify bool args to fungible(s) functions
* Fix up assets and balances
* Formatting
* Fix contracts
* Fix tests & benchmarks build
* Typify minted boolean arg
* Typify on_hold boolean arg; renames
* Fix numerous tests
* Fix dependency issue
* Privatize dangerous API mutate_account
* Fix contracts (@alext - please check this commit)
* Remove println
* Fix tests for contracts
* Fix broken rename
* Fix broken rename
* Fix broken rename
* Docs
* Update frame/support/src/traits/tokens/fungible/hold.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* remove from_ref_time
* Update frame/executive/src/lib.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/executive/src/lib.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Reenable test
* Update frame/support/src/traits/tokens/fungibles/hold.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungible/hold.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungible/hold.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungible/hold.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/currency.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/lottery/src/tests.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungible/mod.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungible/regular.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungibles/freeze.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungible/regular.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungibles/hold.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungibles/hold.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Update frame/support/src/traits/tokens/fungibles/hold.rs
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
* Rename UnwantedRemoval to UnwantedAccountRemoval
* Docs
* Formatting
* Update frame/balances/src/lib.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update primitives/runtime/src/lib.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* handle_raw_dust oes nothing
* Formatting
* Fixes
* Grumble
* Fixes
* Add test
* Add test
* Tests for reducible_balance
* Fixes
* Fix Salary
* Fixes
* Disable broken test
* Disable nicely
* Fixes
* Fixes
* Fixes
* Rename some events
* Fix nomination pools breakage
* Add compatibility stub for transfer tx
* Reinstate a safely compatible version of Balances set_balance
* Fixes
* Grumble
* Update frame/nis/src/lib.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_balances
* disable flakey tests
* Update frame/balances/src/lib.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Grumbles
* Grumble
---------
Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com >
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
Co-authored-by: Anthony Alaribe <anthonyalaribe@gmail.com >
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
Co-authored-by: command-bot <>
2023-03-18 14:47:55 +00:00
Davide Galassi
66f3d9e237
BEEFY: introduce offence report system ( #13564 )
...
* Trivial adjustments to beefy and grandpa pallets
* Introduce offence report system to beefy pallet
* Minor adjustments
* Fix beefy-mmr mock
* Apply suggestions from code review
Co-authored-by: Anton <anton.kalyaev@gmail.com >
---------
Co-authored-by: Anton <anton.kalyaev@gmail.com >
2023-03-11 18:05:55 +00:00
Oliver Tale-Yazdi
9e56e1acdd
Deprecate Weight::from_{ref_time, proof_size} ( #13475 )
...
* Deprecate Weight::from_{ref_time, proof_size}
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update templates
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Use from_parts
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Use from_parts
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Dont revert comment 🤦
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_balances
* Update weight files
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* More fixes
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Adapt to Master changes
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
---------
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: command-bot <>
2023-03-02 21:28:17 +00:00
Davide Galassi
1ef9c473e7
Move BEEFY code to consensus ( #13484 )
...
* Move beefy primitives to consensus dir
* Move beefy gadget to client consensus folder
* Rename beefy crates
2023-02-28 15:56:22 +01:00
Vivek Pandya
bc53b9a03a
Remove years from copyright notes. ( #13415 )
...
* Change copyright year to 2023 from 2022
* Fix incorrect update of copyright year
* Remove years from copy right header
* Fix remaining files
* Fix typo in a header and remove update-copyright.sh
2023-02-21 18:46:41 +00:00
Adrian Catangiu
67c250fecb
frame/beefy: prune entries in set id session mapping ( #13411 )
...
Add limit for the number of entries in the `SetIdSession` mapping.
For example, it can be set to the bonding duration (in sessions).
Signed-off-by: acatangiu <adrian@parity.io >
2023-02-21 10:50:41 +00:00
Adrian Catangiu
c21f292a02
BEEFY: implement equivocations detection, reporting and slashing ( #13121 )
...
* client/beefy: simplify self_vote logic
* client/beefy: migrate to new state version
* client/beefy: detect equivocated votes
* fix typos
* sp-beefy: add equivocation primitives
* client/beefy: refactor vote processing
* fix version migration for new rounds struct
* client/beefy: track equivocations and create proofs
* client/beefy: adjust tests for new voting logic
* sp-beefy: fix commitment ordering and equality
* client/beefy: simplify handle_vote() a bit
* client/beefy: add simple equivocation test
* client/beefy: submit equivocation proof - WIP
* frame/beefy: add equivocation report runtime api - part 1
* frame/beefy: report equivocation logic - part 2
* frame/beefy: add pluggable Equivocation handler - part 3
* frame/beefy: impl ValidateUnsigned for equivocations reporting
* client/beefy: submit report equivocation unsigned extrinsic
* primitives/beefy: fix tests
* frame/beefy: add default weights
* frame/beefy: fix tests
* client/beefy: fix tests
* frame/beefy-mmr: fix tests
* frame/beefy: cross-check session index with equivocation report
* sp-beefy: make test Keyring useable in pallet
* frame/beefy: add basic equivocation test
* frame/beefy: test verify equivocation results in slashing
* frame/beefy: test report_equivocation_old_set
* frame/beefy: add more equivocation tests
* sp-beefy: fix docs
* beefy: simplify equivocations and fix tests
* client/beefy: address review comments
* frame/beefy: add ValidateUnsigned to test/mock runtime
* client/beefy: fixes after merge master
* fix missed merge damage
* client/beefy: add test for reporting equivocations
Also validated there's no unexpected equivocations reported in the
other tests.
Signed-off-by: acatangiu <adrian@parity.io >
* sp-beefy: move test utils to their own file
* client/beefy: add negative test for equivocation reports
* sp-beefy: move back MmrRootProvider - used in polkadot-service
* impl review suggestions
* client/beefy: add equivocation metrics
---------
Signed-off-by: acatangiu <adrian@parity.io >
Co-authored-by: parity-processbot <>
2023-02-17 09:45:00 +00:00
Adrian Catangiu
981ffb29f5
BEEFY: define on-chain beefy-genesis and use it to coordinate voter initialization ( #13215 )
...
* beefy: add support to configure BEEFY genesis
* client/beefy: more flexible test runtime api
* client/beefy: add tests for custom BEEFY genesis
* client/beefy: ignore old state that didn't account for pallet genesis
* client/beefy: fix clippy
* frame/beefy: default BEEFY-genesis is block One::one()
* frame/beefy: add extra doc comments
---------
Co-authored-by: parity-processbot <>
2023-02-03 10:16:16 +00:00
Gavin Wood
2d7fa18e73
Make DispatchError impl MEL ( #13169 )
...
* Make DispatchError impl MEL
* Upgrade SCALE codec to support `codec(skip)` for MEL
Co-authored-by: Bastian Köcher <info@kchr.de >
2023-01-19 16:47:47 +00:00
João Paulo Silva de Souza
045ef86f12
Rename some crates for publishing to crates.io ( #12837 )
...
* rename some crates for publishing to crates.io
* s/remote-ext/frame-remote-externalities
2022-12-06 11:42:38 +00:00
Adrian Catangiu
3e7a277878
client/beefy: persist voter state ( #12712 )
...
* client/beefy: prepare worker for persisting state
* client/beefy: persist voter state
* client/beefy: initialize persistent state
* client/beefy: try to vote from the very beginning
Now that voter is initialized from persistent state, it makes
sense that it can attempt voting right away. This also helps
the genesis case when we consider block `One` as mandatory.
* client/beefy: add tests for voter state db
* client/beefy: persist voter state as soon as initialized
* client/beefy: make sure min-block-delta is at least 1
* client/beefy: persist state after voting
Persist state after handling self vote to avoid double voting in case
of voter restarts.
* client/beefy: persist state after handling mandatory block vote
For mandatory blocks we want to make sure we're not losing votes
in case of crashes or restarts, since voter will not make further
progress without finalizing them.
* frame/beefy: use GENESIS_AUTHORITY_SET_ID on pallet genesis
* client/beefy: initialize voter at either genesis or last finalized
To guarantee unbroken chain of mandatory blocks justifications, voter
will always resume from either last BEEFY-justified block or
`pallet-beefy` genesis, whichever is more recent.
Initialization walks back the chain from latest GRANDPA finalized
block looking for one of the above. Along the way, it also records
and enqueues for processing any BEEFY mandatory blocks that have
been already GRANDPA finalized but not BEEFY finalized.
* client/beefy: decouple voter init from aux db state load
* client/beefy: fix voter init tests
* remove debug prints
* gadget future must be type ()
* fix init from last justification
Signed-off-by: Adrian Catangiu <adrian@parity.io >
2022-11-21 16:56:29 +02:00
Niklas Adolfsson
2b8af8cb1a
release sp-core 7.0.0 and sp-runtime 7.0.0 ( #12599 )
...
* chore(release): sp-core v7.0.0
* chore(release): sp-runtime v7.0.0
* fix bad merge
2022-11-15 14:54:14 +00:00
Oliver Tale-Yazdi
48a02bb056
Add DefensiveTruncateFrom ( #12515 )
...
* Add DefensiveTruncateFrom
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Add tests
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Fix tests
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Map_err in preimage
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Map_err in beefy
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Make test dependant in debug-assertions
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: parity-processbot <>
2022-10-20 21:06:12 +00:00
Sergej Sakac
e4b6f4a66d
BREAKING: Rename Origin ( #12258 )
...
* BREAKING: Rename Origin
* more renaming
* a bit more renaming
* fix
* more fixing
* fix in frame_support
* even more fixes
* fix
* small fix
* ...
* update .stderr
* docs
* update docs
* update docs
* docs
2022-09-20 22:13:09 +00:00
Sergej Sakac
6e8795afe6
BREAKING: Rename Call & Event ( #11981 )
...
* rename Event to RuntimeEvent
* rename Call
* rename in runtimes
* small fix
* rename Event
* small fix & rename RuntimeCall back to Call for now
* small fixes
* more renaming
* a bit more renaming
* fmt
* small fix
* commit
* prep for renaming associated types
* fix
* rename associated Event type
* rename to RuntimeEvent
* commit
* merge conflict fixes & fmt
* additional renaming
* fix.
* fix decl_event
* rename in tests
* remove warnings
* remove accidental rename
* .
* commit
* update .stderr
* fix in test
* update .stderr
* TRYBUILD=overwrite
* docs
* fmt
* small change in docs
* rename PalletEvent to Event
* rename Call to RuntimeCall
* renamed at wrong places :P
* rename Call
* rename
* rename associated type
* fix
* fix & fmt
* commit
* frame-support-test
* passing tests
* update docs
* rustdoc fix
* update .stderr
* wrong code in docs
* merge fix
* fix in error message
* update .stderr
* docs & error message
* .
* merge fix
* merge fix
* fmt
* fmt
* merge fix
* more fixing
* fmt
* remove unused
* fmt
* fix
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2022-09-12 22:03:31 +00:00
Kian Paimani
f67c06ce22
Runtime State Test + Integration with try-runtime ( #10174 )
...
* add missing version to dependencies
* Huh
* add features more
* more fixing
* last touches
* it all finally works
* remove some feature gates
* remove unused
* fix old macro
* make it work again
* fmt
* remove unused import
* ".git/.scripts/fmt.sh" 1
* Cleanup more
* fix and rename everything
* a few clippy fixes
* Add try-runtime feature
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* small fixes
* fmt
* Update bin/node-template/runtime/src/lib.rs
* fix build
* Update utils/frame/try-runtime/cli/src/lib.rs
Co-authored-by: David <dvdplm@gmail.com >
* Update utils/frame/try-runtime/cli/src/commands/execute_block.rs
Co-authored-by: David <dvdplm@gmail.com >
* address all review comments
* fix typos
* revert spec change
* last touches
* update docs
* fmt
* remove some debug_assertions
* fmt
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: command-bot <>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: David <dvdplm@gmail.com >
2022-09-01 10:33:22 +00:00
Adrian Catangiu
3018051cdd
pallet-beefy-mmr: add API for BEEFY Authority Sets ( #11406 )
...
* pallet-beefy: add Config::OnNewValidatorSet type
Add a hook to pallet-beefy for doing specific work when
BEEFY validator set changes.
For example, this can be used by pallet-beefy-mmr to cache
a lightweight MMR root over validators and make it available
to light clients.
* pallet-beefy-mmr: implement OnNewValidatorSet
Implement pallet-beefy::OnNewValidatorSet to be notified of BEEFY
validator set changes. Use the notifications to compute and cache
a light weight 'BEEFY authority set' which is an MMR root over
BEEFY validator set plus some extra info.
Previously, pallet-beefy-mmr was interogating pallet-beefy about
validator set id on every block to find out when it needs to recompute
the authority set.
By using the event-driven approach in this commit, we also save one
extra state interogation per block.
* pallet-beefy-mmr: add new authority_set() API
Expose current and next BEEFY authority sets through runtime API.
These can be directly used by light clients to avoid having them
compute them themselves based on BEEFY validator sets.
Signed-off-by: acatangiu <adrian@parity.io >
* rename BeefyMmr exposed runtime api
2022-06-22 18:39:24 +00:00
Keith Yeung
4e2fb0af60
Implement MaxEncodedLen on pallet-beefy ( #11584 )
...
* Implement MaxEncodedLen on pallet-beefy
* Return Result in intialize_authorities
* Update docs
* Log error when authorities list gets truncated
* Update frame/beefy/src/lib.rs
Co-authored-by: Adrian Catangiu <adrian@parity.io >
* cargo fmt
Co-authored-by: Adrian Catangiu <adrian@parity.io >
2022-06-13 17:53:07 +00:00
dependabot[bot]
a5d0a65bf4
Bump scale-info from 2.0.1 to 2.1.1 ( #11420 )
...
Bumps [scale-info](https://github.com/paritytech/scale-info ) from 2.0.1 to 2.1.1.
- [Release notes](https://github.com/paritytech/scale-info/releases )
- [Changelog](https://github.com/paritytech/scale-info/blob/master/CHANGELOG.md )
- [Commits](https://github.com/paritytech/scale-info/commits/v2.1.1 )
---
updated-dependencies:
- dependency-name: scale-info
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-16 10:07:00 +02:00
Shawn Tabrizi
7d5202341b
Basic TOML Lint ( #11348 )
...
* basic lint
* lint ordering
2022-05-04 13:38:54 +00:00
Adrian Catangiu
0d73371bb8
pallet-beefy: ensure mandatory block once per session ( #11269 )
...
* pallet-beefy: ensure mandatory block once per session
Signed-off-by: acatangiu <adrian@parity.io >
* pallet-beefy: fix tests with auth changes every session
Signed-off-by: acatangiu <adrian@parity.io >
* Apply suggestions from code review
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com >
* beefy: fix incorrect skip session metric on node restart
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com >
2022-04-28 11:19:32 +00:00
Adrian Catangiu
498e8c181f
Implement Lean BEEFY ( #10882 )
...
Simplified BEEFY worker logic based on the invariant that GRANDPA
will always finalize 1st block of each new session, meaning BEEFY
worker is guaranteed to receive finality notification for the
BEEFY mandatory blocks.
Under these conditions the current design is as follows:
- session changes are detected based on BEEFY Digest present in
BEEFY mandatory blocks,
- on each new session new `Rounds` of voting is created, with old
rounds being dropped (for gossip rounds, last 3 are still alive
so votes are still being gossiped),
- after processing finality for a block, the worker votes if
a new voting target has become available as a result of said
block finality processing,
- incoming votes as well as self-created votes are processed
and signed commitments are created for completed BEEFY voting
rounds,
- the worker votes if a new voting target becomes available
once a round successfully completes.
On worker startup, the current validator set is retrieved from
the BEEFY pallet. If it is the genesis validator set, worker
starts voting right away considering Block #1 as session start.
Otherwise (not genesis), the worker will vote starting with
mandatory block of the next session.
Later on when we add the BEEFY initial-sync (catch-up) logic,
the worker will sync all past mandatory blocks Signed Commitments
and will be able to start voting right away.
BEEFY mandatory block is the block with header containing the BEEFY
`AuthoritiesChange` Digest, this block is guaranteed to be finalized
by GRANDPA.
This session-boundary block is signed by the ending-session's
validator set. Next blocks will be signed by the new session's
validator set. This behavior is consistent with what GRANDPA does
as well.
Also drop the limit N on active gossip rounds. In an adversarial
network, a bad actor could create and gossip N invalid votes with
round numbers larger than the current correct round number. This
would lead to votes for correct rounds to no longer be gossiped.
Add unit-tests for all components, including full voter consensus
tests.
Signed-off-by: Adrian Catangiu <adrian@parity.io >
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
Co-authored-by: David Salami <Wizdave97>
2022-03-25 17:31:42 +02:00
dependabot[bot]
ee084279c8
Bump scale-info from 2.0.0 to 2.0.1 ( #10965 )
...
Bumps [scale-info](https://github.com/paritytech/scale-info ) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/paritytech/scale-info/releases )
- [Changelog](https://github.com/paritytech/scale-info/blob/master/CHANGELOG.md )
- [Commits](https://github.com/paritytech/scale-info/commits )
---
updated-dependencies:
- dependency-name: scale-info
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-02 21:13:24 +01:00
Andrew Jones
a3a7fe9041
Release primitive crates ( #10937 )
...
* cargo set-version --bump major -p pallet-contracts-primitives
* cargo set-version --bump major -p sp-core
* cargo set-version --bump major -p sp-runtime-interface
* cargo set-version --bump major -p sp-wasm-interface
* cargo set-version --bump major -p sp-runtime
* cargo set-version --bump major -p sp-storage
* cargo set-version --bump major -p sp-rpc
* cargo set-version --bump major -p sp-io
* cargo set-version --bump major -p sp-trie
* cargo set-version -p sp-state-machine -- 0.12.0
* cargo set-version -p sp-externalities -- 0.12.0
* cargo set-version -p sp-keystore -- 0.12.0
* cargo set-version --bump major -p sp-keyring
* cargo set-version --bump major -p sp-version
* cargo set-version --bump major -p sp-tracing
* cargo set-version --bump major -p sp-application-crypto
* cargo set-version --bump major -p sp-arithmetic
* cargo unleash version bump-major -p sp-runtime-interface-proc-macro
* Add codec max-encoded-len feature to sp-arithmetic
* cargo unleash version bump-major -p sp-core-hashing-proc-macro
2022-03-01 14:35:23 +01:00
wigy
535325d2e6
Upgrading parity-scale-codec to v3 ( #10825 )
...
* Upgraded dependencies
* Adapting code to scale v3
* Empty commit to trigger CI
* Triggering CI
* Fixing UI test
* Remove superfluous dev-dep added by #9228
* Cryout for CI
2022-02-24 15:34:34 +01:00
Davide Galassi
6f53b974b2
Fix beefy mock ecdsa keys ( #10854 )
...
Compressed ECDSA keys requires to have 0x02 or 0x03 as their first byte
in order to allow public key recovery.
Nevertheless the test was working because of the `unwrap_or_default()`
at the end of the conversion routine (i.e. the invalid keys were
converted to an empty vector).
2022-02-15 14:19:39 +01:00
dependabot[bot]
2632cbb866
Bump serde from 1.0.132 to 1.0.136 ( #10816 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.132 to 1.0.136.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.132...v1.0.136 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-08 19:27:08 +00:00
Alexander Theißen
3938c1cb62
Release pallet-contracts-primitives ( #10772 )
...
* Bump sp-storage
* Bump sp-rpc
* Bump sp-io
* Bump sp-trie
* Bump sp-state-machine
* Bump sp-externalities
* Bump sp-keystore
* Bump sp-application-crypto
* Bump pallet-contracts-primitives
* Bump sp-core
* Bump sp-runtime-interface
* Bump sp-wasm-interface
* Bump sp-runtime
* Bump sp-storage
* Update lock file
* Revert "Bump sp-storage"
This reverts commit f86c6db1ae334e28207b658fd90714ade0332e3b.
* Update lock file
2022-02-01 20:38:02 +01:00
Oliver Tale-Yazdi
362a6d9b28
Require MaxEncodedLen per default ( #10662 )
...
* Remove generate_storage_info
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Add without_storage_info where needed
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update doc tests
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Add more without_storage_info
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* fix TryBuild
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* fix TryBuild tests
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
2022-01-20 11:16:04 +00:00
Nazar Mokrynskyi
6b60c3dbff
Relax types on DigestItemRef, such that byte slices can be used in addition to vector references ( #10536 )
...
* Relax types on `DigestItemRef`, such that byte slices can be used in addition to vector references
* Apply clippy suggestions
2022-01-20 11:02:22 +01:00
Bastian Köcher
f3662b4bba
Happy new year 2022 ( #10573 )
2022-01-03 09:22:14 +01:00
Adrian Catangiu
3d8ce67383
Beefy: Provide well-formed ValidatorSet ( #10445 )
...
* beefy: provide well-formed ValidatorSet
* pallet-beefy: use well-formed ValidatorSet
* pallet-beefy-mmr: use well-formed ValidatorSet
* beefy-gadget: fail votes early when ValidatorSet empty
* beefy: small efficiency improvements
* address review comments
Signed-off-by: acatangiu <adrian@parity.io >
2021-12-21 16:34:32 +02:00
dependabot[bot]
03d726aac3
Bump serde from 1.0.131 to 1.0.132 ( #10517 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.131 to 1.0.132.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.131...v1.0.132 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-21 11:17:06 +01:00
dependabot[bot]
d2e9026444
Bump serde from 1.0.130 to 1.0.131 ( #10500 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.130 to 1.0.131.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.130...v1.0.131 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-17 08:30:58 +00:00
dharjeezy
1b0be8ae06
Replace parameter_types with ConstU32 &c. ( #10402 )
...
* remove parameter types and use const type
* remove parameter types and use const type
* Delete {
* Delete count,
* refractor for beefy, benchmarking, child bounties, and collective pallets
* refractor for pallet contracts
* refractor for elections
* refractor for more pallets
* fix CI issues
* fix CI issues
* fix CI issues
* fix CI issues
* remove warning to fix CI issue
* remove warning to fix CI issue
refractor for pallet preimage
* remove warning to fix CI issue
refractor for pallet proxy
* remove warning to fix CI issue
refractor for pallet recovery
refractor for pallet randomness-collective-flip
* remove warning to fix CI issue
refractor for pallet scored-pool
refractor for pallet scheduler
refractor for pallet session
* remove warning to fix CI issue
refractor for pallet society, support, system, timestamp, tips
* remove warning to fix CI issue
refractor for pallet transaction_payment, transaction_storage, treasury, uniques, utility
* remove warning to fix CI issue
* cargo +nightly fmt
* CI fix
* more param refractor on beefy-mmr
* refractor for beefy
* Update frame/babe/src/mock.rs
* Update frame/babe/src/mock.rs
* Update frame/bounties/src/tests.rs
* Update frame/tips/src/tests.rs
* Delete mock.rs
* Update frame/examples/basic/src/tests.rs
* Apply suggestions from code review
* Update frame/im-online/src/mock.rs
* Update frame/im-online/src/mock.rs
* Update frame/offences/benchmarking/src/mock.rs
* Update frame/session/benchmarking/src/mock.rs
* Update frame/support/test/tests/pallet_compatibility.rs
* Update frame/support/test/tests/pallet_compatibility_instance.rs
* Update frame/treasury/src/tests.rs
* Update test-utils/runtime/src/lib.rs
* some cleanup
* fmt
* remove unused
Co-authored-by: Damilare <dakinlose@teamapt.com >
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com >
2021-12-16 03:06:11 +00:00