Commit Graph

6480 Commits

Author SHA1 Message Date
Gavin Wood ff5765eac3 Repot frame_support::traits; introduce some new currency stuff (#8435)
* 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

* Fixes

* Update lock

* Grumbles

* Grumbles

* Fixes

Co-authored-by: Bastian Köcher <info@kchr.de>
2021-03-27 14:37:13 +01:00
Pierre Krieger 5d2640240c Fix &mut self -> &self in add_known_address (#8468) 2021-03-26 22:28:55 +01:00
Pierre Krieger e8aeadf202 Add NetworkService::add_known_address (#8467) 2021-03-26 17:02:41 +00:00
Bastian Köcher 3e64293bd4 Fix companion check (#8464) 2021-03-26 14:59:05 +00:00
Andrew Jones e7cd48767a Migrate pallet-sudo to pallet! (#8448)
* WIP convert sudo pallet to attribute macros

* Fix up tests and migrate mock

* Fix up genesis build

* Migrate doc comment example

* Update frame/sudo/src/lib.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* Update frame/sudo/src/lib.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* Update frame/sudo/src/lib.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* Update frame/sudo/src/lib.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* Allow unused metadata call_functions

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
2021-03-26 14:54:08 +00:00
Bastian Köcher 6adf24ca0c Change companion check order (#8460)
* Change companion check order

Apparently if the pr isn't approved it counts as not mergable. However,
this is rahter confusing. To fix this, we just change the order.

* Move exit
2021-03-26 14:21:00 +01:00
Guillaume Thiolliere da4518e518 Upgrade pallet atomic swap (#8452)
* upgrade pallet atomic swap

* fix doc
2021-03-26 06:46:03 +00:00
Andrew Jones b483c026e9 Remove redundant libp2p dependency from test runner (#8455)
* Upgrade test runner to use latest libp2p

* Update test-utils/test-runner/Cargo.toml

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

* Update Cargo.lock

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
2021-03-25 13:46:36 +00:00
Guillaume Thiolliere c529f13878 fix local variable names (#8450) 2021-03-25 10:43:20 +01:00
Kian Paimani f571023df3 Make the number of nominations configurable (#8368)
* 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>
2021-03-25 09:15:28 +00:00
Pierre Krieger 1063fc7e35 Use Debug for genesis mismatch message (#8449) 2021-03-24 20:51:58 +01:00
Roman Borschel e1570b9ab4 Update to libp2p-0.36 (#8420)
* Update to libp2p-0.36

* Some more Cargo.lock updates.
2021-03-24 18:29:35 +00:00
Falco Hirschenberger 9a72134188 Check unreserve and transfer returnvalues in debug code (#8398)
* Check `unreserve` and `transfer` returnvalues in debug code

fixes #8106

* few more

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2021-03-24 17:35:05 +00:00
Shaun Wang f93d7b874e Migrate pallet-vesting to pallet attribute macro. (#8440)
* Migrate pallet-vesting to pallet attribute macro.

* Update metadata type alias.

* Replace 'Module' with 'Pallet' in benchmarking.

* Trigger CI.
2021-03-24 12:29:30 +00:00
Kian Paimani e309d94f1a Make candidate intake in society configurable (#8445)
* Make candidate intake in society configurable

* Update frame/society/src/lib.rs

* fix fix
2021-03-24 12:27:25 +00:00
Thandile Nododile ab55f9dcab update README.adoc (#8412)
Fixes for better understanding and reading to developers. Added exact outputs and specific word names.

Note!
 - Couldn't merge the approved previous pull request found at https://github.com/paritytech/substrate/pull/8409 which is the same as this one, that I proposed earlier on.
2021-03-24 13:20:55 +01:00
Shaun Wang 4f5668b9bd Migrate pallet-utility to pallet attribute macro. (#8326)
* Migrate pallet-utility to pallet attribute macro.

* Replace 'Module' with 'Pallet' in benchmarking.
2021-03-24 10:35:39 +00:00
Seun Lanlege 4ac621292a test runner (#7665) 2021-03-24 11:28:26 +01:00
Guillaume Thiolliere aeff56260c remove outdated comment (#8442) 2021-03-24 10:06:41 +00:00
André Silva ee8e7f1bcd grandpa: speed up tests (#8439)
* grandpa: tests: add peers with authority role

* grandpa: tests: manually wake-up poll_fn future
2021-03-24 09:56:25 +01:00
Alexander Theißen d98a3c7942 contracts: Reduce the API surface (#8359)
* contracts: Remove types and storage from the public interface

* contracts: Remove current_schedule() getter

* contracts: Improve documentation

* Update README.md

* Fix integration test
2021-03-24 08:09:19 +00:00
Guillaume Thiolliere d343683ca9 improve doc (#8437) 2021-03-23 17:40:52 +01:00
Guillaume Thiolliere 1602f8dd2d Add tracing logic in pallet macro for hooks and dispatchables (#8305)
* span in hooks

* add span for dispatchable

* Update frame/support/src/lib.rs

* Update frame/support/src/lib.rs

Co-authored-by: David <dvdplm@gmail.com>

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: David <dvdplm@gmail.com>
2021-03-23 15:53:46 +01:00
Alexander Theißen 1f911ddb61 Expose block number in seal_random (#8329)
* Allow contract callable functions to specify the module

* Add new version of `seal_random`

* Fix overlong lines

* Fix benchmarking code

* Update README.md

* Replace Module by Pallet
2021-03-23 13:48:36 +00:00
Steve Biedermann f9b6c869a3 Improve remote-externalities (#8397)
* make builder generic to allow using different hash types

* expose "cache", "block_number" and "modules" as cli options for live state

* Change Builder to be generic over Block instead of Hash
add rpc method to get hash from block number
allow passing of block numbers and hashes

* fix live tests

* fix formatting in utils/frame/remote-externalities/src/lib.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* change cli to only accept block hashes
break up lines that were too long
use starts_with instead of match s.get
use unwrap_or_default instead of unwrap_or(Vec::new())

* improve error message

* fix indentation

* replace Block with sp_runtime::testing::Block

* Move cache test out of remote-test feature tests
Add cache file (contains only "Proxy" module) for local test

* simplify match expression to and_then

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Combine the two cfg attributes into one

Co-authored-by: David <dvdplm@gmail.com>

* Restrict visibility of test_prelude use statements to crate level

* Fix usage of and_then

* Rename cache to snapshot

* Remove fully qualified path for Debug

* Refine naming. snapshot to state_snapshot

* Remove unnecessary comment

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: David <dvdplm@gmail.com>
2021-03-23 13:23:07 +00:00
Gavin Wood b5b0ef592e Fungibles trait and impl for Assets pallet (#8425)
* Fungibles trait and impl for Assets pallet

* Comment & whitespace

* Fixes

* Fix up CI/CD for the new labels.

* New labels.

* Fix labels

* Fix labels

* Whitespace

* Bump impl version.

* Fix accidental change

* Fixes

* Questionable fix.

* Better benchmark
2021-03-23 14:10:36 +01:00
Gavin Wood 956262a182 Fix CI for new labels (#8432)
* Fix up CI/CD for the new labels.

* New labels.

* Fix labels

* Fix labels

* Fix accidental change
2021-03-23 12:10:03 +01:00
Alexander Theißen 0c91f60e13 contracts: Update deduct block when a contract is excempted (#8418) 2021-03-23 10:15:40 +00:00
Pierre Krieger fb922e2794 Refactor NotifsHandler::poll (#8422)
* Refactor a bit NotifsHandler::poll

* Avoid some spurious wake-ups
2021-03-23 10:02:07 +00:00
Pierre Krieger 3edfdead0f Optimize the peerset a bit (#8416)
* Only allocate slots for the relevant peer set

* Do a pre-check before calling has_free_outgoing_slot

* Oops, fix infinite loop
2021-03-22 16:51:57 +00:00
Denis Pisarev 80ba1f2cda CI: fix env file location (#8417) 2021-03-22 14:57:58 +01:00
Denis Pisarev 0a80f7b752 CI: address the bug with .env (#8404) 2021-03-22 12:02:20 +01:00
Pierre Krieger 5087634ccd Rename GenericProto to Notifications (#8415)
* Rename GenericProto to Notifications

* Small comment fix
2021-03-22 10:32:47 +00:00
Alexander Theißen 998d190ea0 Use the log crate to output contract generated messages. (#8403) 2021-03-21 14:49:44 +01:00
Shaun Wang 4fd69de38e Implement PartialEq for DispatchError. (#8407) 2021-03-20 20:50:53 -04:00
Kian Paimani 0c69651830 Decouple Staking and Election - Part 2.1: Unleash Multi Phase (#8113)
* 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

* remove fuzzer stuff.

* Self review

* Update frame/staking/src/lib.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* review comments

* add logs

* Add tests to demonstrate the capacity of the snapshot.

* Replace upgrade

* Last touches

* Fix benchmakrs

* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/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

* remove unused stuff

* Fix tests.

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>
2021-03-20 08:43:47 +00:00
Gavin Wood fd860501b0 Make work for no_std (#8402) 2021-03-19 15:47:28 -04:00
Guillaume Thiolliere 28fa5c2b6c Compute yearly inflation on-chain allowing to change x_ideal according to number of slots. (#8332)
* new crate

* Update frame/staking/reward-fn/src/lib.rs

Co-authored-by: Gavin Wood <gavin@parity.io>

* fix doc

Co-authored-by: Gavin Wood <gavin@parity.io>
2021-03-19 09:32:22 +01:00
Bastian Köcher c727799531 Better description for assert in frame-session genesis (#8399)
* 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>
2021-03-18 20:24:05 +01:00
sacha-l 33fefc258c doc(frame): [nitpicks] (#8396) 2021-03-18 17:20:02 +01:00
Arkadiy Paronyan 4a0d6d9490 Storage chains: indexing, renewals and reference counting (#8265)
* Transaction indexing

* Tests and fixes

* Fixed a comment

* Style

* Build

* Style

* Apply suggestions from code review

Co-authored-by: cheme <emericchevalier.pro@gmail.com>

* Code review suggestions

* Add missing impl

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* impl JoinInput

* Don't store empty slices

* JoinInput operates on slices

Co-authored-by: cheme <emericchevalier.pro@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2021-03-18 11:46:27 +00:00
Bastian Köcher f69f79cc20 Improve logging in network gossip (#8389)
* Improve logging in network gossip

This adds some more information to the logging output to get a better
understanding when something fails.

* Update client/network-gossip/src/state_machine.rs

Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>

Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
2021-03-18 12:16:42 +01:00
Shaun Wang 2e5522444a Replace 'Module' with 'Pallet' in construct_runtime macro (#8372)
* 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.
2021-03-18 08:50:08 +00:00
Peter Goodspeed-Niklaus 05f24931a9 Fast CompactAssignment search (#8385)
* 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>
2021-03-18 08:38:58 +00:00
Bastian Köcher 15e15e7d8e Aura and Slots refactoring (#8386)
* Make slot duration being exposed as `Duration` to the outside

* Some slot info love

* Add `build_aura_worker` utility function

* Copy copy copy
2021-03-17 23:25:58 +00:00
Jon Häggblad 0d6884b919 Storing multiple Justifications per block (#7640)
* primitives/runtime: initial changes on supporting multiple Justifications

* primitives/runtime: make Justifications strongly typed

* Encode/decode Justifications

* primitives/runtime: add Justification type

* backend: apply_finality and finalize_block takes a single Justification

* manual-seal: create engine id and let rpc take encoded justification

* backend: skeleton functions for appending justifications

* backend: initial implementation append_justification

Initial implementation of append_justification on the Backend trait, and also remove unused skeleton
functions for append_justificaton on Finaziler trait.
k

* backend: guard against duplicate consensus engine id

* client/db: add check for block finality

* client/api: add append_justification to in_mem db

* client/light: add no-op append_justification

* network: fix decode call for Justification

* network: only send a single Justification in BlockData

* network: minor comment update

* protocol: update field names to distinguish single justification

* client: further field renames to plural

* client: update function names to plural justifications

* client/db: upgrade existing database for new format

* network: remove dependency on grandpa crate

* db: fix check for finalized block

* grandpa: check for multiple grandpa justifications hwne importing

* backend: update Finalizer trait to take multiple Justifications

* db: remove debugging statements in migration code

* manual-seal: update note about engine id

* db: fix check for finalized block

* client: update variable name to reflect it is now plural

* grandpa: fix incorrect empty Justications in test

* primitives: make Justifications opaque to avoid being empty

* network: fix detecting empty Justification

* runtime: doc strings for Justifications functions

* runtime: add into_justifications

* primitives: check for duplicates in when adding to Justifications

* network/test: use real grandpa engine id in test

* client: fix reviewer comments

* primitives: rename Justifications::push to append

* backend: revert changes to Finalizer trait

* backend: revert mark_finalized

* backend: revert changes to finalize_block

* backend: revert finalized_blocks

* db: add a quick early return for performance

* client: minor reviewer comments

* service/test: use local ConsensusEngineId

* network: add link to issue for sending multiple Justifications

* Apply suggestions from code review

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

* Apply suggestions from code review

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

* network: tweaks to review suggestions

* network: revert change to BlockData for backwards compatibility

* Apply suggestion from code review

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

* Apply suggestions from code review

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* primitives: update doc comment for Justifications

* client/db/upgrade: avoid grandpa crate dependency

* consensus: revert to single Justification for import_justification

* primitives: improve justifications docs

* style cleanups

* use and_then

* client: rename JUSTIFICATIONS db column

* network: revert to using FRNK in network-test

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
Co-authored-by: André Silva <andrerfosilva@gmail.com>
2021-03-17 21:18:16 +00:00
Shaun Wang c7d32ba9a6 Migrate pallet-babe to pallet attribute macro. (#8310)
* Migrate pallet-babe to pallet attribute macro.

* Remove unnecessary bound in pallet storage.

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2021-03-17 20:47:39 +00:00
Martin Pugh da6bf01ad9 add D1-trivial label (#8388) 2021-03-17 20:04:53 +00:00
Martin Pugh bb2da340df fix check-labels.yml (#8387) 2021-03-17 20:02:58 +01:00
kaichao 1d206f65b3 Migrate node authorization pallet to FRAME v2 (#8337) 2021-03-17 14:32:24 +01:00