Commit Graph

2912 Commits

Author SHA1 Message Date
thiolliere 4de8d5cef9 Add translate function for storage prefixed map. (#4555)
* translace values for prefixed storages

* improve doc

* new impl

* update test
2020-01-13 12:14:44 +01:00
Xiliang Chen 507909c3be Improve PaysFee trait and dispatch info logic in utility module (#4606)
* pass target to PaysFee trait and allow batch call to be free if all its calls are free

* bump version

* fix error
2020-01-13 08:48:34 +01:00
Bastian Köcher 070148e9fd Add test files I forgot to commit with #4520 (#4598) 2020-01-11 18:23:04 +01:00
Gavin Wood 8bde366d32 Fixes for pallets (#4595)
* Move rebond to the end

* Fix identity module

* Fix order of things in tresury

* Fixes

* Fix.

* Fix test

* Fix test
2020-01-10 19:23:20 +01:00
Shawn Tabrizi 2b03bcdd4f Fix tests (#4597) 2020-01-10 18:06:23 +01:00
Kian Paimani 90f85a52b1 Fix runners-up candidacy submission check in council (#4592)
* fix is_runner()

* add a test

* Bump
2020-01-10 15:26:12 +01:00
thiolliere 2d0c382daf fix society (#4594) 2020-01-10 15:10:16 +01:00
thiolliere b74c88b3cc Modify doublemap syntax (#4576)
* modify doublemap syntax

* Apply suggestions from code review

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

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-01-10 11:52:56 +01:00
Bastian Köcher 3d74b9b669 Fix pallet-society on master (#4588) 2020-01-10 11:31:42 +01:00
Gavin Wood c81e9df162 Society pallet (#4170)
* Introduce efficient Hash-based RNG streamer

* Initial draft of the society module

* Introduce a test

* Dual-pot logic

* Vouching

* Use chacha

* Half way through moving to cliff payout.

* Fixes

* Add some tests

* Remove printlns

* Merge remote-tracking branch 'origin/gav-verified-id' into gav-verified-id

# Conflicts:
#	frame/identity/src/lib.rs

* Merge remote-tracking branch 'origin/gav-verified-id' into gav-verified-id

# Conflicts:
#	frame/identity/src/lib.rs

* Fix `slash_payout`, add test

* Test for multi-slash_payout

* Add docs to `put_bid` function and `bidding_works` test

* Add strikes to test

* Add comments to `rotate_period`

* Implement `suspend_member`

* Off chain iteration of suspended members using linked_map

* Half of suspended candidate

* Finish suspend_candidate, need tests

* Resolve mistakes and feedback, add `suspended_candidate_rejected` test

* Remove logic which increases payout time after un-suspension

* Fix error in `slash_suspended_candidates`, add member check to `vote`

* Fix vouch rewards, dont create zero payouts, add tests for vouch

* Test unvouch

* Unbid tests

* Add lifecycle events, fix `add_member` to update `MembershipChanged`

* Head cannot be removed from society

* Use `add_member` in `found` to ensure `MembershipChanged` is triggered

* Use `Judgement` enum for suspended candidate judgement

* Make society instantiable

* Implement challenges

* Remove extra text in test

* Remove `BlockNumber` return from `slash_payout`

* Add bad vote causes slash test

* Update frame/society/src/lib.rs

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* Add consts to module metadata

* Check `suspended_member` cant bid

* Increase strength of payout check, **must** be a member.

* Start pallet documentation

* Finish docs

* Update library names, use decl_error

* Prevent double bids, add test

* Use `map` for vouching member, and introduce banned vouchers

* Remove leftover docs

* Vouching handles removed member lifecycles w/ tests

* `take` the votes when tallying, add comprehensive checks before vouch or bid

* Check votes are cleaned up

* Check vote is for a valid candidate, add vote event

* Defender vote event

* Fix `judge_suspended_candidate`, add weight docs

* First pass fixes (blank lines, formatting, no operational)

* Bump copyright year

* Make `add_member` infallible

* More feedback updates

* Add storage access complexity

* Fix logic for AutoUnbid

* Complete weight documentation

* Optimize logic which used to result in double storage read.

* Use Bid struct rather than tuple

* Introduce `MaxMembers` configuration constant

* Add comment about fringe scenario where `MaxMembers` could go over, NBD

* Change MaxMembership to configurable storage item with ability for root to update

* Make membership challenges skew toward failure.

If no one at all votes, or the vote is tied, the user will be suspended from society. This means, that the user simply needs to vote for themselves to stay in society assuming no one else participates.

* Refactor `is_candidate`as to avoid possible double storage reads in the future.

* Blank lines

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
2020-01-10 10:55:16 +01:00
Bastian Köcher fd6b29dd2c Remove requirement on Hash = H256, make Proposer return StorageChanges and Proof (#3860)
* Extend `Proposer` to optionally generate a proof of the proposal

* Something

* Refactor sr-api to not depend on client anymore

* Fix benches

* Apply suggestions from code review

Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

* Apply suggestions from code review

* Introduce new `into_storage_changes` function

* Switch to runtime api for `execute_block` and don't require `H256`
anywhere in the code

* Put the `StorageChanges` into the `Proposal`

* Move the runtime api error to its own trait

* Adds `StorageTransactionCache` to the runtime api

This requires that we add `type NodeBlock = ` to the
`impl_runtime_apis!` macro to work around some bugs in rustc :(

* Remove `type NodeBlock` and switch to a "better" hack

* Start using the transaction cache from the runtime api

* Make it compile

* Move `InMemory` to its own file

* Make all tests work again

* Return block, storage_changes and proof from Blockbuilder::bake()

* Make sure that we use/set `storage_changes` when possible

* Add test

* Fix deadlock

* Remove accidentally added folders

* Introduce `RecordProof` as argument type to be more explicit

* Update client/src/client.rs

Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

* Update primitives/state-machine/src/ext.rs

Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

* Integrates review feedback

* Remove `unsafe` usage

* Update client/block-builder/src/lib.rs

Co-Authored-By: Benjamin Kampmann <ben@gnunicorn.org>

* Update client/src/call_executor.rs

* Bump versions

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Benjamin Kampmann <ben.kampmann@googlemail.com>
2020-01-10 10:48:32 +01:00
Tomasz Drwięga 74d6e660c6 Add documentation to SubmitSignedTransaction and actually make it work (#4200)
* Add documentation to signed transactions and actually make them work.

* Fix naming and bounds.

* Forgotten import.

* Remove warning.

* Make accounts optional, fix logic.

* Split the method to avoid confusing type error message.

* Move executor tests to integration.

* Add submit transactions tests.

* Make `submit_transaction` tests compile

* Remove a file that was accidently committed

* Add can_sign helper function.

* Fix compilation.

* Add a key to keystore.

* Fix the tests.

* Remove env_logger.

* Fix sending multiple transactions.

* Remove commented code.

* Bring back criterion.

* Remove stray debug log.

* Apply suggestions from code review

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

* Make sure to initialize block correctly.

* Initialize block for offchain workers.

* Add test for transaction validity.

* Fix tests.

* Review suggestions.

* Remove redundant comment.

* Make sure to use correct block number of authoring.

* Change the runtime API.

* Support both versions.

* Bump spec version, fix RPC test.

Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
Co-authored-by: Gavin Wood <github@gavwood.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2020-01-10 01:46:55 +01:00
Shawn Tabrizi a1e0076aa8 Introduce OnReapAccount (#4585)
* Initial run and gun at `OnReapAccount`

* Fix some imports

* More fixes

* Whitespace

* More wack-a-mole

* Gotta catch em all

* Update lib.rs

* Small doc update

* Whitespace
2020-01-10 01:46:23 +01:00
Gavin Wood 6d8b99cf5e Add an extra test to check rebond is a LIFO (#4578) 2020-01-09 18:19:11 +01:00
Gavin Wood 67202b7ec3 Add tipping into treasury (#4480)
* First draft

* Initial work on tests

* Add tests.

* Ensure old members can't tip.

* Fix complexity

* Update node runtime

* Build fix.

* build fix

* Fix tests

* Fix tests

* Refactor Contains impl for tests

* Introduce new way to avoid impl Contains conflicts

* Fixes

* Docs.

* Docs.

* Typo

* Whitespace

* Docs

* Typo

* Formatting

* Update frame/treasury/src/lib.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Update frame/treasury/src/lib.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Update frame/treasury/src/lib.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Apply suggestions from code review

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Add provisional weights.

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2020-01-09 14:39:12 +01:00
Marcio Diaz 586685fca0 Add missing weights to Identity module. (#4577) 2020-01-09 14:15:47 +01:00
Marcio Diaz 6100fb14e6 Introduce rebond (#4374)
* Implement rebond: allowing to re-bond stake unbonded.
2020-01-09 11:33:27 +01:00
Shawn Tabrizi 7f8f97ef91 Use single map and remove_all for EventTopics (#4566) 2020-01-08 09:50:35 +01:00
Robert Habermeier 6a0e60c3a4 do not chill indirectly-slashed nominators (#4553)
* do not chill indirectly-slashed nominators

* test nomination non-kick and vote ignoring behavior
2020-01-07 13:17:17 +01:00
Bastian Köcher 82661cd2ce decl_event support trailing comma in args (#4554) 2020-01-07 12:48:05 +01:00
Shawn Tabrizi 7efa62725e Update copyright year (#4532) 2020-01-05 14:05:44 +01:00
Bastian Köcher f02e6d680a Make sure docs given to decl_module! are passed to the module struct (#4526) 2020-01-03 20:39:30 +00:00
Bastian Köcher 4a9697db94 Check for invalid modules when registering a pallet in construct_runtime (#4520) 2020-01-02 20:10:20 +01:00
Bastian Köcher 2e5c327483 Increase metadata version to 10 (#4512)
Changes in https://github.com/paritytech/substrate/pull/4462 required a
metadata version increment that was forgotten.
2019-12-30 14:59:37 +00:00
Bastian Köcher 56355879be Fix cli for structopt 0.3.7 and pin to that version (#4509)
* Fix cli for structopt 0.3.7 and pin to that version

This is just some hotfix to make everything compile. In the future it
will require another pr to not depend on internals of StructOpt, but
that will probably also require some additions to StructOpt itself. To
not break the code again with another StructOpt, this also pins the
StructOpt version.

* Fix benches

* Fix for fix
2019-12-28 22:52:18 +01:00
Stanislav Tkach 2403cf320c Migrate election-phragmen, election contracts and authorship to decl_error (#4479)
* Migrate election-phragmen

* Migrate elections

* Migrate contracts module

* Update authorship module

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2019-12-24 11:11:57 +01:00
Gavin Wood 205ddec344 Twitter field for IdentityInfo (in a back-compat way) (#4476) 2019-12-22 23:11:34 +01:00
Gavin Wood 3c70800eab Extend Utility pallet with multisig and pseudonyms (#4462)
* Add subaccounts functionality

* More work

* Multisig prototyped with tests

* Add timepoints to prevent replay

* Remove TODO

* Check for the right owner in cancel.

* Test the timepoint stuff

* Batch works with any origin

* Refactor tuples into structs.

* Finalise function docs/complexity and also add proper weights.

* Fix wasm

* Module-level docs

* Fix typo

* Runtime fix

* Better deposit system; more tests.

* Fix typo

* Switch +1 for -1

* Add Blake2_128Concat; fix insecurity; change return policy.

* Fix typo

* Update frame/utility/src/lib.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Update frame/utility/src/lib.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Update bin/node/runtime/src/lib.rs

Co-Authored-By: Sergei Pepyakin <sergei@parity.io>

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Sergei Pepyakin <s.pepyakin@gmail.com>
2019-12-22 20:41:55 +01:00
Stanislav Tkach 2c2e0d772d Migrate generic-asset, identity and im-online to decl_error (#4473)
* Migrate generic-asset, identity and im-online to decl_error

* Update democracy tests

* Update nicks test
2019-12-21 15:10:29 +01:00
Gavin Wood e6b8a69656 Add ProposalRejected event to Treasury (#4468)
Closes #4467

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2019-12-20 21:35:51 +01:00
Tomasz Drwięga 14a08d430c Add Clone bound to the Origin. (#4472) 2019-12-20 18:43:04 +01:00
Stanislav Tkach 328563f8d4 Migrate membership, nicks, scored-pool and session to decl_error (#4463)
* Migrate membership, nicks, scored-pool and session to decl_error

* Fix tests

* Update frame/scored-pool/src/tests.rs

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Remove InsufficientBalance error from scored-pool

* Replace Error::<Test, DefaultInstance> with Error::<Test, _>

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2019-12-20 17:12:21 +01:00
Bastian Köcher bfad5f3ffc Fix warnings and make CI working again (#4469)
* Fix warnings and make CI working again

* Fix test
2019-12-20 14:47:19 +01:00
Shawn Tabrizi 4fffe19c28 Update Balances Pallet for decl_error! (#4405)
* Update balances for `decl_error!`

* Update for new `decl_error`

* Fix staking tests

* Use `ok_or` over `match`
2019-12-20 00:23:20 +01:00
Gavin Wood bbda30c7dd Add new event for registering deposits. (#4459) 2019-12-19 17:57:20 +01:00
Shawn Tabrizi 1d04d5a05e Fix Fees in Substrate (#4421)
* Fix fees

* Add comment to explain saturated multiply accumulate

* Fix final fee calculation

* Fix doc

* improve doc

* grumble

* Update tests

* Fix executor tests
2019-12-19 14:03:00 +01:00
Bastian Köcher 8e393aa5a8 Make decl_error! errors usable (#4449)
* Make `decl_error!` errors usable

This pr implements support for returning errors of different pallets in
a pallet. These errors need to be declared with `decl_error!`.

The pr changes the following:

- Each dispatchable function now returns a `DispatchResult` which is an
alias for `Result<(), DispatchError>`.
- `DispatchError` is an enum that has 4 variants:
  - `Other`: For storing string error messages
  - `CannotLookup`: Variant that is returned when something returns a
  `sp_runtime::LookupError`
  - `BadOrigin`: Variant that is returned for any kind of bad origin
  - `Module`: The error of a specific module. Contains the `index`,
  `error` and the `message`. The index is the index of the module in
  `construct_runtime!`. `error` is the index of the error in the error
  enum declared by `decl_error!`. `message` is the message to the error
  variant (this will not be encoded).
- `construct_runtime!` now creates a new struct `ModuleToIndex`. This
struct implements the trait `ModuleToIndex`.
- `frame_system::Trait` has a new associated type: `ModuleToIndex` that
expects the `ModuleToIndex` generated by `construct_runtime!`.
- All error strings returned in any module are being converted now to `DispatchError`.
- `BadOrigin` is the default error returned by any type that implements `EnsureOrigin`.

* Fix frame system benchmarks
2019-12-19 14:01:52 +01:00
Leo Arias 06e382b0d4 Fix typo in comment (#4433) 2019-12-18 21:17:22 +01:00
Wei Tang 7af81c29c4 pallet-evm: default implementation for FeeCalculator and ConvertAccountId and separate gas price (#4424)
* Default implementation for FeeCalculator and ConvertAccountId and separate gas price

* Styling fixes and some docs addition

* TruncateConvertAccountId -> HashTruncateConvertAccountId

* Fix compile
2019-12-18 13:13:47 +01:00
Shawn Tabrizi 57c19bcf4e More decl_error! migrations (#4427)
* Update assets to `decl_error`

* Update aura to `decl_error`

* Update authority discovery to `decl_error`

* Update collective to `decl_error`

* Update evm to `decl_error!`

* Fix error with replace

* Revert "Update authority discovery to `decl_error`"

This reverts commit 26e8f3c56656963d847e984c6f2c8e1f88014899.

* Revert "Update aura to `decl_error`"

This reverts commit 8f17c44ca8375a4a755710aaab7ad4d9522c4376.

* Update democracy to `decl_error`

* Update finality-tracker to `decl_error`

* Update grandpa to `decl_error`

* `assert` to `ensure` in dispatchable function
2019-12-18 12:50:21 +03:00
Gavin Wood 608d633455 Remove incorrect assumption that runners-up were sorted by account (#4429)
* Remove incorrect assumption that runners-up were sorted by account

* Fix

* Update lib.rs
2019-12-18 12:48:15 +03:00
joe petrowski e6e9faaed6 minor typos in traits docs (#4425) 2019-12-17 21:33:11 +01:00
Shawn Tabrizi 337cae1dde Update Balances Pallet events to help block explorers (#4389)
* Dust moves from reserved <-> free if below ED

* Add dust information to `ReapedAccount` event

* Introduce `BalanceSet` event

* More cleanly written `set_balance` logic
2019-12-17 23:49:00 +08:00
Benjamin Kampmann 9200bfa997 Setting versions locally towards 2.0 release (#4404)
* clean up cargo.toml syntax

* bumping versions to 2.0

* bump networking to 0.8

* move consensus down to 0.8

* bump consensus pallets to 0.8.0, too

* Upping babe and aura pallets

* add remaining, missing version definitions

* missed some
2019-12-17 22:05:50 +08:00
Niklas Adolfsson 7c6ad9dd1c [client cli] generic blocknumber (#4376)
* rewrite me

* [cli]: make `BlockNumber` generic

* cleanup
2019-12-17 11:45:20 +01:00
Bastian Köcher e19f5adfb7 Fix frame_system renaming in contruct_runtime (#4412)
* Fix contruct_runtime

* Update lib.rs

* Update event.rs

* Update event.rs

* Update event.rs

* Update event.rs

* Update event.rs

* Update event.rs

* Update event.rs

Back to where we started

* Update chain_spec.rs

* Update genesis.rs

* Fix it properly
2019-12-17 10:54:50 +01:00
Gavin Wood 48860a768b Fix naming of utility crate (it's a legit pallet) (#4408)
* Fix naming of utility crate (it's a legit pallet)

* Additional bits
2019-12-17 14:25:52 +08:00
Stanislav Tkach f20bb8b196 Use decl_error in stacking module (#4387) 2019-12-17 14:03:24 +08:00
Stanislav Tkach 7e9253d35d Use decl_error in the treasure module (#4370) 2019-12-17 14:03:08 +08:00
thiolliere 583b0e3c69 impl iter_prefix on doublemap (#4388) 2019-12-17 13:41:25 +08:00