-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Conversation
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
This seems added a lot more context that are required to know in order to code securely. I hope they are documented throughly. |
Let me know if there's something specific that needs explaining. |
When do we need to call This seems like a way to prevent reentrancy attack, but it is not easy to wrap my head around with all the indirections (proxy, multisign, sub account call, batch call, governance call?, and calls from contracts). |
There's no clear-cut way of knowing when to call them as it depends entirely on the semantics of your dispatcher. Basically, the The reason for this is:
|
…ch#1212) * Fix for new Substrate * Fix * Remove Utility constraint in NonTransfer * Bump * Fixes * Allow limited utilities in proxy filters. * Fix * Add SudoBalances proxy restrictions
* Disconnect node after sync request cancelled (#5945) * Make sure `config_mut` returns a mutable reference (#5942) * Remove "simple declaration of the `Module` type" comments (#5944) * Remove "simple declaration of the `Module` type" comments * Bump runtime impl version * Update bin/node/runtime/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Fix light clients in manual seal nodes (#5955) * WIP * WIP * Updates lock file * Bump wasmtime again (#5950) * Update wasmtime (#5822) * update wasmtime * update tests * Update client/executor/wasmtime/src/host.rs Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com> * wip * use master-candidate * update with patches * update versions Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Bump version * Added parallel execution test Co-authored-by: Nikolay Volf <nikvolf@gmail.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Expose BlockHashCount on system metadata constants (#5960) * Add database type for import benchmarks (#5959) * add database type for impot benchmarks * add backend to name * weight adjustments for identity and timestamp pallets (#5946) * Refactor network transactions handling (#5939) * change propagation * add bound * Fix very wrong staking test (#5952) * fix this damn wrong staking test. * Update frame/staking/src/tests.rs * assert on balnce as well * Make it a bit better. * Don't repeatedly lookup keys in `babe_epochAuthorship` rpc function (#5962) * babe: don't repeatedly lookup keys in authorship rpc function Expose a new function `claim_slot_using_keypars` in Babe so that the `babe_epochAuthorship` can lookup authorship for all slots in the epoch without repeatedly looking up keys in the keystore. Time to run the `babe_epochAuthorship` RPC call goes from 7s to 25ms on a local dev chain on my machine. * babe: pass reference to slice instead of ref to Vec * babe: fix bunch of clippy warnings * hotfix Docker release (#5968) * Properly log when we discard a sync response (#5969) * Add crypto identifier to RuntimeAppPublic (#5965) * Add crypto identifier to RuntimeAppPublic * Update primitives/application-crypto/src/traits.rs Co-authored-by: Gavin Wood <github@gavwood.com> Co-authored-by: Gavin Wood <github@gavwood.com> * Small fix to block response completion reporting (#5967) * Small fix to block response completion reporting * while -> if * Minor update on example-offchain-worker code and comment (#5970) * Minor update on example-offchain-worker code and comment Signed-off-by: Jimmy Chu <jimmychu0807@gmail.com> * Update frame/system/src/offchain.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update initialize tests for latest rust stable (#5971) * Update initialize tests for latest rust stable * Update more tests * AHHH * Fix `runtime-interface` test * ------------------------______________---------------------- * ... * Allow passing multiple --log CLI options (#5982) * Allow passing multiple --log CLI options * Comment typo * Optimize `decode_len` (#5975) * Optimize `decode_len` Instead of reading the full storage value into the runtime, we only read at maximum `5bytes` from the storage into the runtime. Furthermore this drops any handling with regards to set default values in `decl_storage!`. If the value does not exists or the decoding of the length fails, it will return `None`. To prevent people from messing stuff up, this feature relies on the `StorageDecodeLength` trait that is sealed by `frame-support` (aka only implementable inside this crate). * Some clean ups * Update frame/support/src/storage/mod.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Split Operational and Normal weight (#5954) * Split operational and normal weight * Update other parts of the code * relatively minor changes to add/fix behavior * Limit reported block weight for fee adjustment * fix test * explicit match * Move common logic out * Update frame/system/src/lib.rs Co-authored-by: Gavin Wood <gavin@parity.io> * API improvement @bkchr Co-authored-by: Gavin Wood <gavin@parity.io> * client/finality-granpda/until_imported: Rework pinning (#5983) An `UntilImported` stream wraps a `Stream` of incoming messages and waits for blocks those messages are based on before passing the messages on. The above `Stream` of incoming messages implements `Unpin`, thus there is no need to use `pin_project` on the `UntilImported` struct. Instead one only has to add the `Unpin` trait bound on the `I` trait parameter. * grandpa: update to finality-grandpa v0.12.3 (#5972) * grandpa: missing equivocation reporting nits (#5953) * primitives: move reporting key type to common key types * session: remove useless methods on MembershipProof * grandpa: remove std special-casing when checking signatures * grandpa: add some more docs * grandpa: use proper error types rather than strings * Update and pin node-browser-testing wasm-bindgen version (#5987) * babe: minor rpc nits (#5974) * babe: fix formatting * babe: re-use same epoch data in epoch_authorship rpc method * get tx_hashes from watcher (#5981) * Restore the reputation penalty for timeouts (#5984) * Spawn the network worker with spawn_blocking (#5909) * Spawn the network worker with spawn_blocking * Some comment adjustments * Fix shutdown not working * client/network: Remove default Kademlia DHT in favor of per protocol DHT (#5993) Substrate was previously running both a chain specific Kademlia DHT as well as the `/ipfs/kad/1.0.0` Kademlia DHT for backwards compatibility. (See 710722f for details.) With the end of the transition period this commit removes the former only leaving the latter and thus preventing the discovery of incompatible nodes via Kademlia. * Turn an error! into a debug! (#6000) * Fix minor typos in im-online documentation (#5997) * Fix minor typos on im-online documentation * Update frame/im-online/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Only send last finalized block to telemetry (#6003) Instead of informing the telemetry about each block that is finalized, we only need to send the last finalized block. This removes log spam on initial sync. * Change BlockHashCount Parameter in Node/Node Template (#5990) * change BlockHashCount param * fix test and lock * Fix gitlab line-width CI check (#5994) * Run script in strict mode * Add proper seperator between revision and file * Fix copy paste error * Do not repeat limit number in error text * Fix bad revision error * Do not mask pipe errors * Fix typo * Remove unnecessary ... syntax * Do not fetch all commits of master * Fetching one commit is enough * Monitor transactions rejected from the pool as invalid (#5992) * Give more meaningful error on missing feature when opening a db (#5999) * Add CRYPTO_ID to AppKey (#6011) * Add mitigation for the state inconsistency issue (#5996) * Add mitigation for the state inconsistency issue * Add logging * Fix minor clippy lints in grandpa (#5988) * grandpa: fix clippy lints about identity conversions * grandpa: fix clippy lints about unwrap_or_default * grandpa: fix clippy lints about explicit return * grandpa: fix clippy lints about unnecessary intermediary * grandpa: fix clippy lints about to_string * grandpa: fix clippy lints about unused imports * grandpa: fix clippy lints about increments * grandpa: fix clippy lints about unnecessary matches * grandpa: fix clippy lints about struct arguments * Fix clippy::redundant_clone * Fix clippy::clone_on_copy * Fix clippy::or_fun_call * Fix clippy::identity_conversion * Handle clap errors manually and don't reset `SIGPIPE` (#6012) Instead of resetting `SIGPIPE` to the system default handler, we now handle a clap error manually and ignore any error when writing to `stdout`/`stderr`. In this way, the node does not silently stops when it encounters a `SIGPIPE` in normal mode and we still support piping of the cli output. * Convert `Public` to `CryptoTypePublicPair` (#6014) * Tabify code * Implement CryptoTypePublicPair in app_crypto * Cleanup redundancy * Introduce to_public_crypto_pair to Public trait * Implement method for test * Fix potential state mismatch in behaviour.rs (#6013) * Fix state mismatch in behaviour.rs * Add TODO * properly handle different block content (#6007) * Add tests to Sudo Pallet (#5963) * transition treasury to configurable moduleids * make election module id configurable * convert runtime and pallet to accept module id config elections-phragmen * add ModuleId to evm pallet * change society pallet to configurable module id * delete commented out module_id * fix merge residual compile errors * setup initial mock structure * establish privelleged function test * save progress * first pass new_test_ext * test sudo to make sure it error when non-root * add set keys tests * fix unused result from set_key call * remove unused imports warnings * pre master merge * Expose BlockHashCount on system metadata constants (#5960) * squash * fix whitespace * spelling and whitespace * a single pesky space * add logger module to mock * add logger dispatch to privlleged function * sub logger in for dummy functions * create first of several event tests * first pass at test coverage for events * comment house keeping * spell check * Expose BlockHashCount on system metadata constants (#5960) * establish privelleged function test * save progress * first pass new_test_ext * test sudo to make sure it error when non-root * add set keys tests * fix unused result from set_key call * remove unused imports warnings * pre master merge * squash * fix whitespace * spelling and whitespace * a single pesky space * add logger module to mock * add logger dispatch to privlleged function * sub logger in for dummy functions * create first of several event tests * first pass at test coverage for events * comment house keeping * implement last_seen_account storage item, event, and, logger function * create vec account log and use in tests * allow weight to be passed into account log * refactor all log dispatchables * save progress * complete initial transition to refactored logger * cleaning * fix merge residual compile errors setup initial mock structure establish privelleged function test save progress first pass new_test_ext test sudo to make sure it error when non-root add set keys tests fix unused result from set_key call parent 5151bd784545ededa6153052a93fcc309f7b3885 author zeke <emostov@middlebury.edu> 1589076740 -0700 committer zeke <emostov@middlebury.edu> 1589350443 -0700 parent 5151bd784545ededa6153052a93fcc309f7b3885 author zeke <emostov@middlebury.edu> 1589076740 -0700 committer zeke <emostov@middlebury.edu> 1589350442 -0700 remove unused imports warnings fix unused result from set_key call remove unused imports warnings pre master merge Expose BlockHashCount on system metadata constants (#5960) squash fix whitespace spelling and whitespace a single pesky space add logger module to mock add logger dispatch to privlleged function sub logger in for dummy functions create first of several event tests first pass at test coverage for events comment house keeping pre master merge Expose BlockHashCount on system metadata constants (#5960) Expose BlockHashCount on system metadata constants (#5960) fix whitespace spell check implement last_seen_account storage item, event, and, logger function create vec account log and use in tests allow weight to be passed into account log refactor all log dispatchables save progress complete initial transition to refactored logger cleaning * clean up * cleaning * condense non_privileged logs into 1 fn * Apply suggestions from code review Co-authored-by: Jaco Greeff <jacogr@gmail.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Improve `BadProof` docs (#6019) * Improve `BadProof` docs * Update primitives/runtime/src/transaction_validity.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Fix escaping of the wasm file path (#6018) * Fix escaping of the wasm file path * Add separate methods for escaped paths * ci: fix merge on polkadot companion job (#6020) * [CI] Fix a few issues with .gitlab-ci.yml (#6016) * Fix RPC tests for machines with a high number of cores (#6021) * Collective weights (#5802) * Don't log the yamux errors by default (#6034) * Add ‘transaction_version’ to the signed transaction (#5979) * Add ‘transaction_version’ to the signed transaction This allows hardware wallets to know which transactions they can safely sign. To reduce transaction size, I reduced it to a ‘u8’ from a ‘u32’. Fixes #5951. * Restore transaction_version to a u32 * Fix comments `transaction_version` is not part of a tx, but is still signed. Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Fix the test suite I had forgotten to change the production of transactions in the test code. * Fix benchmarks * Improve docs for `CheckTxVersion` in `frame_system` Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> * Remove spurious cast Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> * ci: github api use token for pull requests (#6037) * Update Staking Weights (#5964) * bump kvdb-* versions (#6017) * Relax substrate licensing scheme (#5947) * Democracy weight (#5828) * Fix lots of small nits in sc-network (#6028) * Fix lots of small nits in sc-network * Update client/network/src/protocol/sync/blocks.rs Co-authored-by: Arkadiy Paronyan <arkady.paronyan@gmail.com> * Fix warning * Yes. The line width. Co-authored-by: Arkadiy Paronyan <arkady.paronyan@gmail.com> * Put some graphics in the README? (#5930) * Update README.md I didn't do a good job at making the gif, but this is just a proposal. If accepted, I can make a better one or ask Max to help with it. * better gif file * New file * Benchmarks for elections-phragmen pallet (#5845) * Fist benchmark barely working * Debug checkpoint * add rest of benchmarks * Add to runtime * Fix build * Update frame/elections-phragmen/src/benchmarking.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Update frame/elections-phragmen/src/benchmarking.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * major imp * Make them run on release * Help finish phragmen benchmarks (#5886) * update caller, account, and member/runner-up creation * remove stuff * ocd * make it work with real run * relax the numbers a bit * New and improved version * Make elections-phragmen weighable and secure. (#5949) * Make elections-phragmen weighable. * Update frame/elections-phragmen/src/lib.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Update frame/elections-phragmen/src/lib.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Fix all tests * Fix everything * Add note Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Doc update * Fix some complexity params * Once more ready to benchmark * ready for bench * final tunes * Update frame/elections-phragmen/src/lib.rs * Fix fix * Update frame/elections-phragmen/src/lib.rs * Update frame/elections-phragmen/src/benchmarking.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Update frame/elections-phragmen/src/benchmarking.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Update to latest weights * Some fixes * Fix dual voter read from @thiolliere * Remove todos * review from @shawntabrizi * Fix bench tests. Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Use `sign_with` in consensus (#6008) * Add derive_more to sp_core * Convert Vec to Signature * Use sign_with in AURA and BABE * Signing errors * Update slots to return consensus result * Fix use * Clone public key * Match block_params * WIP * Use to_public_crypto_pair * Pass public key only to block import params * Address PR review * Fix consensus RPC * Fix babe tests * adjust uses * Fix line widths * Added RuntimePublic for ecdsa public key. (#6029) * add generate ecdsa, etc to keystore * impl ecdsa needed traits * add ecdsa to sr_io * add ecdsa to application-crypto * add ecdsa to test-utils * add ecdsa debug derive * fix ecdsa public * Meter block import results via prometheus (#6025) * Releasing Alpha.8 (#6048) * Remove on_block_imported (#6039) * remove on_block_imported * Update client/network/src/service.rs Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com> Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com> * Aura fix: make sure the key exists locally (#6054) * Fix AURA * Add test to make sure claim slot works as expected * resetting to -dev (#6050) * Remove file accounts.scale (#6053) * Fail test on warnings (#6043) * fix (ci): hotfix Docker release * change (ci): fail test on warnings * change (config): stderr msgs * Fix the warnings properly Co-authored-by: Bastian Köcher <git@kchr.de> * fix whitespace (#6062) * grandpa: minor cleanup for gossip round start instant (#5976) * grandpa: move gossip round start instant to LocalView * grandpa: round duration is 2 gossip periods * Add block construction prometheus metrics (#6030) * Add basic authorship metrics * fixes * no arc * move to crate * Update client/proposer-metrics/Cargo.toml Co-authored-by: Max Inden <mail@max-inden.de> * remove prefix * use HistogramTimer * Update client/proposer-metrics/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/basic-authorship/src/basic_authorship.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/basic-authorship/src/basic_authorship.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/basic-authorship/src/basic_authorship.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/basic-authorship/src/basic_authorship.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/basic-authorship/src/basic_authorship.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/proposer-metrics/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/proposer-metrics/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Max Inden <mail@max-inden.de> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * chore: updates the license badge (#6058) * Fix parallel code execution in wasmtime (#6055) * Bump wasmtime version * Proper test * Print an error if we discover our own network identity (#6047) * Add an error if we discover our own network identity * Fix tests * Refactor EVM operations to module functions (#6056) * Refactor EVM operations to module functions * Bump impl version * Make decl_storage generated code respect clippy (#6065) * fix clippy for code generated by decl_storage * use as_ref * Fix benchmarks and add check so that they won't break again (#6061) * fix benchmarks and add check * address review * fix line width * Include post dispatch corrected weight in extrinsic events (#6024) * Include post dispatch corrected weight in extrinsic events * Drop the 'Post' from ApplyExtrinsicResultWithPostInfo to make it less verbose * Apply suggestions from code review Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Use proper Event type in pallet_system tests * Add test that the actual weight is returned by events * Make fn extract_actual_weight cap at pre dispatch weight * Bump spec version Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Gavin Wood <gavin@parity.io> * Upgrade to libp2p v0.19 - Changes the default PeerId representation (#6064) * Upgrade to libp2p v0.19 * Listen on IPv6 by default * Increase channels sizes * Use spec-compliant noise protocol * Show legacy PeerId * Switch order of Noise protocols * Switch to crates.io version * Fix subkey's version * Fix line width and Wasm build * I think Wasm is fixed for real this time * Make GrandpaBlockImport public (#6068) * service: fix RPC unsafe exposed address detection (#6070) * Clean a number of sp_io imports (#6072) * Detect obsolete block responses (#6077) * Refactor OverlayedChanges (#5989) * Hide internal structure of OverlayChanges * Fix tests for OverlayChanges refactor * Do not clone pending changes Discarding prospective changes should be equivalent as a state machine is not to be called with peding changes. This will be replaced by a storage transaction that is rolled back before executing the call the second time removing this constraint. * Doc fixes * Remove overlong line * Revert "Do not clone pending changes" This reverts commit 4799491f4ac16f8517287a0fcf4a3f84ad56f46e. * Deduplicate chield tries returned from child_infos() * Remove redundant type annotation * Avoid changing the storage root in tests * Preserve extrinsic indices in trie build test * Swap order of comitted and prospective in fn child_infos This is only for consistency and does not impact the result. * Rename set_pending to replace_pending for clearity * Bump wasmtime version (#6081) * Refactor resource and error handling in wasm (#6074) * Refactor resource and error handling in wasm * Fixes based on review * Maximum extrinsic weight limit (#6067) * Only check single extrinsics weight limit in validate_transaction. * Add missing parameter to all pallets. * Add tests, fix default configuration. * Bump spec version. * Use AvailableBlockRation to calculate MaxExtrinsicWeight * Restore the empty line after the license (#6088) * Turn a SmallVec into VecDeque for performances (#6091) * Turn a SmallVec into VecDeque for performances * Fix the other SmallVecs * evm: allow setting pre-defined accounts in genesis (#6086) * evm: allow setting pre-defined accounts in genesis * Only build GenesisAccount in std * Make planning epoch config change in BABE easier (#5776) * Make planning epoch config change in BABE easier * Bump node runtime version * Update frame/babe/src/lib.rs Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> * BabeEpochConfiguration -> NextConfigDescriptor * Add tests for babe config changes Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> Co-authored-by: André Silva <andre.beat@gmail.com> * Allow fee calculation to happen off-chain (#6076) * Emit a PaymentParameters event once per block This contains per-block paramaters need to calculate fees off-chain. * Add WeightToFee trait * Add documentation to polynomial types * Ignore pseudo code snippet for doc tests * Use `Mul` implementation of Perbill * Add tests for WeightToFeePolynomial * Revert "Emit a PaymentParameters event once per block" This reverts commit 6c4763baff3d8179676a3c1660fe7063fd56a8ca. Co-authored-by: Gavin Wood <gavin@parity.io> * Handle piping error for commands that output to stdout (#6098) * Handle piping error for commands that output to stdout * Apply suggestions from code review Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Allow operational recovery path if on_initialize use fullblock. (#6089) * note_preimage using operational * Update frame/democracy/src/lib.rs Co-authored-by: Gavin Wood <gavin@parity.io> * Optimize network poll (#6099) * Increase precision of benchmarking results summary (#6092) Co-authored-by: Matt Rutherford <mattrutherford@users.noreply.github.com> * Add notes about safe uses of twox (#6082) * Add notes about safe uses of twox * Update frame/grandpa/src/lib.rs Co-authored-by: Nikolay Volf <nikvolf@gmail.com> * Update frame/elections/src/lib.rs * Apply suggestions from code review Co-authored-by: Gavin Wood <gavin@parity.io> Co-authored-by: Nikolay Volf <nikvolf@gmail.com> * babe: treat epoch_authorship RPC method as unsafe (#6069) * service: pass DenyUnsafe to rpc extensions * node: add DenyUnsafe to rpc full node dependencies * client: fix whitespace in rpc policy file * babe: treat epochAuthorship rpc method as unsafe * babe: add test for unsafe rpc method * babe: rename babe rpc handler * service: traitify rpc extension builder * service: make the rpc extensions builder api non-breaking * service: revert changes from light node rpc extensions builder * node: remove unnecessary type in service creation * service: cleanup with_rpc_extensions implementation * service: add missing docs to RpcExtensionBuilder * Offences Weight for OnInitialize (#5961) * Weight accounting for on_offence. * Try to compute weight. * Guesstimate upper bounds on db read/writes for slashing * greater than or equal to * add new trait * Update mock.rs * Add basic weight test * one more test * Update frame/staking/src/lib.rs Co-authored-by: thiolliere <gui.thiolliere@gmail.com> * Update frame/staking/src/lib.rs Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Add test for offences queue Co-authored-by: Tomasz Drwięga <tomasz@parity.io> Co-authored-by: thiolliere <gui.thiolliere@gmail.com> Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Keep `BlockWeight` in Storage (#6046) * keep block weight in storage * Update lib.rs * rename to `BlockWeight`, update tests * remove println * make test better * keep extrinsics length clean * clarify docs on query_info and partial_fee (#6090) * .maintain/monitoring: Add an initial set of Prometheus alerting rules (#6095) Create a place to collaborate on Prometheus alerting rules for Substrate starting with a basic set of rules covering: - Resource usage - Block production - Block finalization - Transaction queue - Networking - ... Others * Add Keccak hasher (#6101) * fix keccak hasher * Update hasher.rs Co-authored-by: Gavin Wood <i@gavwood.com> * Implement FixedPoint trait. (#5877) * Implement Fixed trait. * Fix tests * Fix tests * Fix tests 2 * Address review comment regarding from_i129. * Remove precision by using log10() as suggested in review. * Add small comments. * Use checked versions + panic for ops::*. * Remove repeated test. * Uncomment test. * Remove casts. * Add more comments. * Add tests. * Panic on saturating_div_int * More tests. * More docs. * Saturating renames. * Fix to_bound doc. * Move some impl to trait. * Add range * Add macro pre. * More round() tests. * Delete confusion. * More impl to trait * Add doc for fixedpoint op. * Remove trailing spaces. * Suggested docs changes. * More tests and comments for roundings. * Some quickcheck tests. * Add missing panic, more test/comments. * Nits. * Rename. * Remove primitives-types import. * Apply review suggestions * Fix long lines and add some fuzz. * fix long line * Update fuzzer * Bump impl * fix warnings Co-authored-by: Gavin Wood <gavin@parity.io> Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * chore(client): remove the unnecessary clap dep (#6107) * make calls public (#6109) * Add a note about the deprecation of register_notifications_protocol (#6111) * Fix some flaky offchain HTTP tests (#6038) * http: Use assert_eq in tests for better debuggability * http: Use matches! macro instead of if let ... * http: Simplify some bits and pieces * http: Don't answer immediately in HTTP test server Sometimes it can happen that we receive the response immediately when testing the HTTP api due to kernel scheduling. Because of it, we add a marginal 10ms async-friendly delay to minimize the risk. * http: Use the same async runtime when testing HTTP API/worker * http: Return a future Delay only for non-zero Duration This allows to short-circuit in the response_wait logic and only send/not wait for response. * Add JSON format to import blocks and set it as default (#5816) * Add BlockStream Enum and utility fn * WIP: Modify import closure to work with BlockStream * Fix trait bounds * Working prototype * Revamp block importing * Add export_import_flow tests * Add comments and clean code * Add more comments in the import fn * Add link code to import function * Add condition when returning Ready(Ok(()) to make sure we've imported every block * Add check for imported blocks in JSON case * Use rest pattern * Fix compilation error for undeclared variable * Add polling and waker before pending * Print read_block_count instead of count * Simplify binary cli option with structopt * Update test to reflect changes in CLI api * Change Stream to take SignedBlock<B> instead of B * Add comments to BlockStream * Move out logic to smaller functions for clearer code * Remove result over import_blocks return type * Check for error in command output rather than simply checking command exit status * Revamp export/import/revert testing * Fix minor typos and formatting errors Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Remove unnecessary if condition in terminating condition Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Explicit error instead of returning it as a string Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Pass BlockStream to log_importing_status_updates and simplify matching arms for block stream * Use .contains() instead of regex match * Line break in match block; return future::ready instead of poll_fn * Update Cargo.lock * Add check so that queue doesn't grow too big * Use Iterator instead of Stream * Remove allow dead_code * Remove outdated comments Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Return Errors instead of logging them * Simplify match arms Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Remove check before terminating block import * Apply suggestions from code review * Check that queue is not full BEFORE calling * Revert "Remove check before terminating block import" This reverts commit 377823c0a648a3eb2e61185a257a61023067893d. * Improve unit tests to make sure we actually import blocks * Remove Unpin implementation for BlockIter * Add prototype of enum for ImportStates * Add working prototype for StateMachine * Add comments for clearer code * Add sleep before calling Waker when waiting for import queue * Add Speedometer * add dbg!(&log) for test debugging * Fix lines with more than 100 cols * Fix regex capture for test * Update regexes to take to capture the whole number * Rename Cmd to Command Co-authored-by: Gavin Wood <gavin@parity.io> * Actually rename Cmd to Command * Apply suggestions from code review Co-authored-by: Gavin Wood <gavin@parity.io> * Fix compilation errors for tests * Fix compilation errors from code review suggestion * Update bin/node/cli/tests/export_import_flow.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Gavin Wood <gavin@parity.io> Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org> * put max votes into metadata (#6114) * Don't clone values when calculating storage root (#6108) * Don't clone values when calculating storage root Instead of cloning all the keys and values of the overlay when calculating the storage root, we pass all the values by reference. This should probably bring some performance improvements when calculating the storage root. * no cow version (#6113) Co-authored-by: cheme <emericchevalier.pro@gmail.com> * First draft of offchain phragmen weights (#6032) * Fist draft of offchain weights * Round of review feedback * Update frame/staking/src/lib.rs * Fix fuzzer * Remove some redundant comment * Weight refund for submit solution -- potentially revert. * First version with custom trimming of the result. * Update frame/staking/src/benchmarking.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Update frame/staking/src/benchmarking.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Apply suggestions from code review Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> Co-authored-by: thiolliere <gui.thiolliere@gmail.com> * Update frame/staking/src/benchmarking.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Update frame/staking/src/benchmarking.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Some improvements * Benchmark submit solution without phragmen (PR for First draft of offchain phragmen weights) (#6073) * implementation of new benchmark * address comments * replace test * Update frame/staking/src/lib.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * update weight * Fix refund * Clean and rady for final bench * Fix line-wdith * Fix gitlab build * Fix line-wdith * Fix test macro * Update frame/staking/src/lib.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Update frame/staking/src/benchmarking.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Better length check * Update frame/staking/src/lib.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Update final weight coefficients * Update frame/staking/src/lib.rs * Apply suggestions from code review * Update frame/staking/src/testing_utils.rs * Try and fix the line-width * Revert "Try and fix the line-width" This reverts commit b4e284727220085b9b3daf7682c4bbf29621da09. * Try and fix the line-width the correct way * Revert "Try and fix the line-width the correct way" This reverts commit 04fce128e851c9584f9f0d708a5a73cae799d8c8. Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> Co-authored-by: thiolliere <gui.thiolliere@gmail.com> Co-authored-by: Gavin Wood <gavin@parity.io> * Fix default base path on windows (#6120) * Use directories instead of app_dirs * Use local data dir * Benchmarks sanity checks (#6119) * add read-only externalities * sanity checks * cleanup * Update primitives/state-machine/src/read_only.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * fix typo * add error exit code if nothing was run Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Events and better log for staking. (#6118) * Events and better log for staking. * Fix build * Update frame/staking/src/lib.rs Co-authored-by: Marcio Diaz <marcio.diaz@gmail.com> Co-authored-by: Marcio Diaz <marcio.diaz@gmail.com> * Tidy tests a bit. (#6122) * Remove sleep in import blocks (#6124) * Add Delay and info logging * Switch from Duration to Delay in enum declaration * Remove sleep from import_blocks fn * Set back constans and remove unnecessary code * Fix hot loop * Reset timer once poll is ready, not when it's pending * Bump to libp2p v0.19.1 (#6125) * Tagging as rc1 * Make sure fixed arithmetic tests don't rely on debug assertions (#6126) * Add Changelog for rc1 (#6128) * Filter calls in utility (#6131) * Filter calls. * Remove old proxy code * Docs and repot * Update frame/utility/src/tests.rs Co-authored-by: Marcio Diaz <marcio.diaz@gmail.com> * fix test * Grumble * Bump runtime version * fix * Attempt general fix Co-authored-by: Marcio Diaz <marcio.diaz@gmail.com> Co-authored-by: NikVolf <nikvolf@gmail.com> * Releasing rc2 (#6136) * Fix mul_acc. (#6145) * Don't iterate over peers in generic_proto::behaviour::poll (#6142) * Don't iterate over peers in generic_proto::behaviour::poll * Improve comment * Rework to use DelayIds * Fixes `wasm-builder` rerun if changed logic (#6144) There was a bug which related in required files not being tracked of being modified. This pr fixes this bug by making sure we ignore version requirements for path dependencies and git dependencies. This also ensures that we only track `.rs` or `.toml` files. Another improvement is that we only include paths which don't contain a `Cargo.toml` if this `Cargo.toml` does not belongs to the package being processed. This prevents that sub-crates are added to the tracked files, while not being part of the dependencies. * CLI: Make `--dev` conflict with `--chain` (#6146) If we are running `--dev` chain, we should forbid the `--chain` argument. The `--dev` chain is always special by only having one authority etc and some other chain spec is probably not setup for this correctly. In the end `--dev` is just a shortcut for `--validator --alice`. * Make `wasm-builder` check before copy/write files if the content is the same (#6149) * Make `wasm-builder` check before copy/write files if the content is the same * Update utils/wasm-builder/src/lib.rs Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> * fix lstrip in biguint (#6151) * add failing test for multiply_by_rational * fix BigUint * fix length * bump version * merge tests * remover ancient code (#6157) * Add subkey inspect-node-key (#6153) * Make Get<T> const friendly + Clean the runtime files a bit. (#6132) * Make Get const friendly * Better doc * Grumble * Better doc * Clean runtime files more * Peerset cleanup (#6078) * Move methods from Peerset to peers structs * Remove priority_only from peersstate * Refactor PSM * Don't test private fields * Update sc_network * Remove wrong comment * Also fix small stupidity when setting reserved_only * Put back priority_group * Restore priority groups as before * Apply suggestions from code review Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> * Do the reserved only change * Update client/peerset/src/lib.rs Co-authored-by: Arkadiy Paronyan <arkady.paronyan@gmail.com> * Use HashSet::difference Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> Co-authored-by: Arkadiy Paronyan <arkady.paronyan@gmail.com> * Improve logging for transaction pool (#6152) * improve logging * Update client/transaction-pool/graph/src/validated_pool.rs Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com> * address review and make uniform Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com> * Add test for Transaction Payment on zero balance account (#6161) * Test zero balance account with pays::no * Update frame/transaction-payment/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Add a warning when the user passes a legacy PeerId (#6158) * Add a warning when the user passes a legacy PeerId * Update client/network/src/config.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Improve the log messages printed when a listener closes (#6162) * Improve the log messages printed when a listener closes * Oops, didn't finish the expired listen addrs thing * Fix Election when ForceNone V1 (#6166) * Clean * Better doc * Better better doc * Again better doc * Fix indemt * Update frame/staking/src/lib.rs * Update frame/staking/src/lib.rs * Better test Co-authored-by: Gavin Wood <gavin@parity.io> * Update locks on upgrade (#6172) * offchain storage lock (#6010) * feat/offchain/storage: add remove interface method * feat/offchain/storeage: add remote to StorageValueRef * feat/offchain/storage: add storage lock * fix/review: Apply suggestions from code review Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com> Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com> * refactor/offchain/storage/lock: introduce `Lockable` trait part 1 of 2 * chore/offchain/rename: _remove -> clean * feat/offchain/storage/lock: add TimeAndBlock based part 2 of 2 * fix/offchain/storage/lock: block and time expiry must be && not || * chore/offchain/storage: minor fmt doc comments * doc/comment: prefer markdown emphasis over CAPS * doc/comment: rewrap multiline module level docs * doc/comment: rephrase * impl sleep_until and use the actual time for the test env * feat/test: add more tests, ignore some sample impl doctests * fix/review: Apply suggestions from code review Co-authored-by: Nikolay Volf <nikvolf@gmail.com> * doc/comment: better description * fix/review: Apply suggestions from code review Co-authored-by: Nikolay Volf <nikvolf@gmail.com> * chore/storage: lifetime cleanup * fix/cleanup: trait bounds, cargo-spellcheck + extra explanations * fix/doc: periods +- * fix/review: Apply suggestions from code review Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com> * cleanup: remove explicit lifetime bound, copy -> clone * fix/review: make trait Lockable contain only static, try_lock should not return Err(Option<L>), * chore/lifetimes: remove a couple of lifetime bounds which the compiler can figure out * refactor: migrate to an instant based * fix/feedback: fix, reduce, rename, docs update pending * docs/reword: adjust to changed code * fix/offchain/testing: timestamp and sleep_until shall not block * chore/lines: lines must < 100 chars * fix/docs: add missing pub field doc comments * refactor/x: try_lock does not need to return an Option<_> * refactor/simplify: a better way of waiting for a lock to resolve * docs: consistency * fix/line: < 100 * fix/doctest/use: avoid crate:: * fix/doctest: * * fix/review: remove unused trait bound * fix/review: pretty by const fn * fix/review: reduce default timeout to 20s * docs: grammar * fix/review: add with_block_deadline * doc: revamp BlockNumberProvider documentation to be less frame centric * chore: fmt * docs: add missing doc comment Co-authored-by: Bernhard Schuster <bernhard@parity.io> Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com> Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com> Co-authored-by: Nikolay Volf <nikvolf@gmail.com> * Make post dispatch fee consistent with a direct calculation (#6165) * Make post dispatch fee consistent with a direct calculation * Remove unnecessary `saturated_into` calls * Add test with negative multipliers * Added regression test * Test improvements * pallet-contracts: State rent fixes (#6147) * Don't store the storage size offset in the contract itself. * Clean the AccountDb code a bit * Use `storage_size: 0` when creating AliveContractInfo * Count empty storage items. * Update frame/contracts/src/account_db.rs Co-authored-by: Nikolay Volf <nikvolf@gmail.com> * Use more clear wording. Co-authored-by: Alexander Theißen <athei@users.noreply.github.com> * Change the order of decrement and increment for storage size Co-authored-by: Nikolay Volf <nikvolf@gmail.com> Co-authored-by: Alexander Theißen <athei@users.noreply.github.com> * Allow over-weight collective proposals to be closed (#6163) * split `finalize_proposal` to approve and disapprove * Add test * Add root `disapprove_proposal` * Update approve logic after voting period passes * Remove the update lock on upgrade iterator (#6179) * Wasm-builder `runtime-wasm` feature (#6177) * Enable the `runtime-wasm` for wasm builds This enables the `runtime-wasm` feature for wasm builds. The feature is not mandatory and will only be activated if it exists in the `Cargo.toml`. * Fix compilation * Update docs * Uprgade version * Apply suggestions from code review * fix/review: remove doc hidden on private item (#6186) Co-authored-by: Bernhard Schuster <bernhard@parity.io> * Make `Proposer` consume its reference on `propose` (#6190) * Make `Proposer` consume its reference on `propose` A proposer must be created per new round, so it makes sense to have the proposer consume its own reference. * Remove `ProposerInner` * Pin async-std to <1.6 (#6193) * Add a Substrate networking Grafana dashboard template (#6171) * Add a substrate-networking grafana dashboard * Capitalize data source * Do changes * Update import metrics and add verification time (#6170) * refactor import reporting and add time * Update primitives/consensus/common/src/metrics.rs Co-authored-by: Max Inden <mail@max-inden.de> * remove (crate) * fix longer lines * swap names to avoid api breaking Co-authored-by: Max Inden <mail@max-inden.de> * report only on successfull block (#6187) * Fix Rustdoc Build (#6207) * impl FindAuthor<T::AuthorityId> for Aura (#6205) * Something compiles * compiles _and_ maintains old version * Comments * try to pass CI * Update frame/aura/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/aura/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Remove ReportHandle (#6213) * pallet-evm ensure gas_price + Storage getter (#6191) * evm: move gas price check to top-level dispatchable * Add AccountCodes get fn and account_exists helper * Remove account_exists, evm handles non-existing accounts * Runtime bump impl_version 251/2 * Fix Runtime impl_version and spec_version Co-authored-by: Wei Tang <hi@that.world> * Allow ExistentialDeposit = 0 (#6185) * Allow ExistentialDeposit = 0 * there are better ways to check is an account exists * fix StorageMapShim * test account events and fix some bugs * Accept new Phragmén solutions if they are epsilon better + Better pre-inclusion checks. (#6173) * part1: Accept inly epsilon better solutions * Fix pre-dispatch check * Fix build * review grumbles * Epsilon -> Threshold * refactor CI (#6176) * fix (ci): hotfix Docker release * test (ci): run full ci [skip ci] * change (ci): check stage; add default variables because they were overriden; test-dep-rules goes k8s * change (ci): move companion job to another stage * change (ci): no good way to avoid artifacts downloads without dependencies * fix (ci): typo * change (ci): all CI images were moved to paritytech registry * fix (ci): return to the prev image, new needs more testing * Generalised proxies (#6156) * Initial work * It should work * Fix node * Fix tests * Initial test * Tests * Expunge proxy functionality from democracy and elections * Allow different proxy types * Repotted * Build * Build * Making a start on weights * Undo breaking change * Line widths. * Fix * fix tests * finish benchmarks? * Storage name! * Utility -> Proxy * proxy weight * add proxy weight * remove weights * Update transfer constraint * Again, fix constraints * Fix negation * Update frame/proxy/Cargo.toml Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Remove unneeded event. * Grumbles * Apply suggestions from code review Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> * block.tx[0] is not invalid if on_initialize is too heavy (#6217) * fix millis display (#6227) * Make dev profile faster by compiling deps with opt-level=3 (#6228) * Make dev profile faster by compiling deps with opt-level=3 * More comment * More comment refinment * Remove soketto as it doesn't fit criterias * Fix style * Fix libp2p features (#6229) * Fix libp2p features * Remove the opt-level of some now-unused crates * Split tx pool and offchain notification handling (#6231) Instead of having the tx pool and offchain worker being feed from the same import notification stream, this pr splits them to use two different streams. The first advantage of this split is that the tx pool will not be spawned anymore in another task and instead will directly process the notification in the same task. This has the advantage of being faster when the system is being under load, as the tx pool will not be waiting for being scheduled to handle the notification. * Add run_full_node, run_light_node and print_node_infos to the API (#6233) * Initial commit Forked at: 2743ed4b26b786efdcb5d1123a277f21da0c29c0 Parent branch: origin/master * Add run_full_node, run_light_node and print_node_infos to the API * Update runner.rs * The link to getting-started was obsolete. (#6238) * The link to getting-started was obsolete. * link to installation and tutorials Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Use Subscription Manager from `jsonrpc-pubsub` (#6208) * Bump jsonrpc pubsub, core, http, and ws Right now these are the packages which _need_ to be updated so I can just the latest `jsonrpc-pubsub` code. Once a release it cut upstream the rest of the dependencies should be updated as well. * Use jsonrpc-pubsub's SubscriptionManager This places sc-rpc-api::Subscriptions * Bump jsonrpc-core outside of sc-rpc-* * Update client/rpc tests Right now one of the `author` tests is failing, I need to think a bit about how best to fix it. * Remove Subscriptions manager There's no need for this implementation since we're using the one from `jsonrpc-pubsub` now * Fix author RPC test This test used to check for a numerial subscription ID, whereas now it uses a string based ID which is the default provided by `jsonrpc-pubsub`'s subscription manager. * Remove unused NumericIdProvider * Add missing bracket Removed one too many with that last one, lol * Bump `jsonrpc` to v14.2 There's an exception though. `jsonrpc-derive` cannot be bumped past v14.0.5 just yet since it has a dependency on `quote` pinned to v1.0.1. This means that at the moment it won't build on Substrate since it's using v1.0.3. * Track `jsonrpc-derive` master branch * Bump `quote` version to v1.0.6 * Bump `jsonrpc-derive` to v14.2.1 This includes support for `quote` v1.0.6 * Fix peerset not filtering incoming connections in reserved-only (#6249) * Fix service tests not calling update_chain (#6232) * Revert "Use Subscription Manager from `jsonrpc-pubsub` (#6208)" (#6252) This reverts commit f028a509789289a34c468f42b4361c49279893f2. * Revert "Remove balances migration. (#5224)" This reverts commit e1fcc9796a576a9fb78e0a5e23830ae87171015b. * impl_opaque_keys should allow doc comments (#6255) * Use number of downloaded blocks for test (#6234) * Sentry nodes and validator nodes also imply reserved (#6251) * Remove pre-simple-payout code from staking (#6253) * Remove some dead code * fix * Kill warnings * Rename all the election operations (#6245) * Rename and move sp-phragmen * More renames for equalise * Update main module doc * Fix line width * Line width * Make transaction pool prune transactions only of canonical blocks (#6123) * Make tx pool aware of retracted fork blocks * Make it compile * Update client/transaction-pool/src/lib.rs Co-authored-by: Nikolay Volf <nikvolf@gmail.com> * Fix doc test * Simplify the implementation * Send tree route as arc to prevent heavy clones * Switch to use `ExtrinsicHash` to make it more clear * Fix benchmark Co-authored-by: Nikolay Volf <nikvolf@gmail.com> * Allow "anonymous" proxied accounts (#6236) * Anonymous proxiers * More testing * More testing * Build fix * Build fix * Benchmarks. * fix benchmarking * add weights * fix line width Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Enable fixed point u128 (#6214) * Add fixed u128. * remove move * Change sat_from_integer impl. * checked_pow is always positive * Revert. * rename fixed file * Rename to FixedI * rename fixed file * Add newline. * Use Multiplier in impls. * Renames negate() to saturating_negate(). * Uncomment test. * Add Signed to macro. * Add some tests for Saturating trait. * Fix the metered unbounded sender/recievers (#6246) * Fix the metered unbounded sender/recievers * Use a counter instead * Update client/rpc/src/system/tests.rs * Add an is_terminated check * Add FusedStream impl Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Fix transaction pruning in tx-pool (#6276) The `tree_route` generated by the import notification is only from the old best block to the new best parent. This means, it does not contain the new best block in `enacted()`. We need to prune the transactions of the new best block "manually" to fix this bug. Besides that, this pr also changed the `id` parameter of the `NewBlock` chain event to `hash`. The hash of a block is unique in contrast to the block number. (Block id can either be number or hash) * Introduce stacked filtering (#6273) * Introduce stacked filtering. * Benchmarks * Remove unneeded crates * Fix proxy type's permissiveness checks. * Repot multisig to make utility stateless. * Repot filter stack impl into macro * Fix wasm build * Tests * Final test. * Tests for the macro * Fix test * Line width * Fix * Update frame/multisig/src/benchmarking.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Update primitives/std/with_std.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Grumble * Update frame/support/src/traits.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/support/src/traits.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/support/src/traits.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/support/src/traits.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/support/src/traits.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/multisig/src/tests.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Update frame/multisig/src/tests.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Grumble * Migration * Grumble * Comments * Migration * Fix * Fix * Line width * Allow unused * Update frame/multisig/src/lib.rs Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Fix up grumble. * Remove Utility constraint in NonTransfer Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * client/api: fix possible deadlock when comparing with itself (#6277) * Make all features explicit (#6267) * make all features explicit * Change to -feature suffix to with- prefix * Add newline at the end of the Cargo.toml file * Remove rhd feature * Remove some features from Cargo.toml * Remove test-helpers feature in tx pool * Return db_open_error("with-".. Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Rename subdb feature to with-subdb Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Remove 'strict' feature and cfg_attr * Check for with-subdb feature instead of subdb Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Use Subscription Manager from `jsonrpc-pubsub`: The Sequel (#6254) * Bump jsonrpc pubsub, core, http, and ws Right now these are the packages which _need_ to be updated so I can just the latest `jsonrpc-pubsub` code. Once a release it cut upstream the rest of the dependencies should be updated as well. * Use jsonrpc-pubsub's SubscriptionManager This places sc-rpc-api::Subscriptions * Bump jsonrpc-core outside of sc-rpc-* * Update client/rpc tests Right now one of the `author` tests is failing, I need to think a bit about how best to fix it. * Remove Subscriptions manager There's no need for this implementation since we're using the one from `jsonrpc-pubsub` now * Fix author RPC test This test used to check for a numerial subscription ID, whereas now it uses a string based ID which is the default provided by `jsonrpc-pubsub`'s subscription manager. * Remove unused NumericIdProvider * Add missing bracket Removed one too many with that last one, lol * Bump `jsonrpc` to v14.2 There's an exception though. `jsonrpc-derive` cannot be bumped past v14.0.5 just yet since it has a dependency on `quote` pinned to v1.0.1. This means that at the moment it won't build on Substrate since it's using v1.0.3. * Track `jsonrpc-derive` master branch * Bump `quote` version to v1.0.6 * Bump `jsonrpc-derive` to v14.2.1 This includes support for `quote` v1.0.6 * Use exact version for jsonrpc crates Doing this to make sure any updates in jsonrpc don't accidently trickle down to Polkadot. Co-authored-by: André Silva <andre.beat@gmail.com> * Temporary and Heavy Weights for Society Pallet (#6283) * temporary weights for society * on_initialize weight * Weights for Indices Pallet (#6282) * fix multisig benchmarking * add indices benchmarks * fix compile * Weights for indices * setting to rc3 * adding Changelog * adjust type imports and remove test * Assign unique storage names to pallets. (#5010) * Assign unique storage names to pallets. * Bump spec * Upgrade logic for finality tracker (untested) * Logic for migrating Identity (untested) * Logic for migrating transaction-payment * Fix tests * Fix `decl_storage` build * Contract -> Contracts * Update Cargo.lock * bump spec * update migration * Fix merge error * Migration for contracts * Remove serde * Remove some illegal spaces and Options * Fix types in identity. * Minor variable rename Co-authored-by: Gavin Wood <gavin@parity.io> * add weights to runtime migrations * use max block weight for balances migration * temporarily remove failing contracts migration * add more logging for migrations * fix transaction-payment migration by converting multiplier type * add more logging to balance migration * more balance migration logging * format balance migration * even more balance migration logging * remove logging in loop and change upgrade flag type to bool * cherry-pick #5226 (dd97b1478b31a4715df7e88a5ebc6664425fb6c6) massage the code and fix anything failing compilation * use test accounts for account migration * move balances and accounts migrations out for custom calling * make migration mods public * fix transaction-payment migration based on https://github.com/paritytech/substrate/pull/5673 * Drew.merge upstream (#9) * Fix typo: eror -> error (#6293) * Fix typo: PRORITY -> PRIORITY (#6291) * Intent to release rc3 (#6290) * Fix transaction pool & network issues (#6288) * fix & tweaks * address review * line width * Use `sign_with` for signing grandpa's outgoing message (#6178) * Use sign_with and stop using `Pair` * PR feedback * Remove clone * Transfer ownership of public to sign_message * Use Option * Simplify code * Fix error message * Pass keystore as ref * Pass keystore properly * Fix tests * Revalidation tweak & logging for transaction pool (#6258) * updates and logging * fix length * Update client/transaction-pool/src/lib.rs * rename * Update client/transaction-pool/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update README.md * Allow adding a prefix to the informant (#6174) * Initial commit Forked at: 49b15615184fad010749d3e34282f70a3845da34 Parent branch: origin/master * Add a Service Configuration's field + adapt informant + provide means to CLI * CLEANUP Forked at: 49b15615184fad010749d3e34282f70a3845da34 Parent branch: origin/master * fix tests * fixed bad path to object * Change OutputFormat enum to struct * Add informant_prefix to builder and service * Revert "Change OutputFormat enum to struct" This reverts commit cd86c583c92668426c35cc174401155bf2880c1f. * Revert "fix tests" This reverts commit a3c306ebe94720f350c5bc74b9c5fcde2565d340. * Revert "Add a Service Configuration's field + adapt informant + provide means to CLI" This reverts commit 9c2e7267423305705916c30d605893524113c8e3. * Implementation using the ServiceBuilder * reduce line length * fix line width again * WIP Forked at: 49b15615184fad010749d3e34282f70a3845da34 Parent branch: origin/master * WIP Forked at: 49b15615184fad010749d3e34282f70a3845da34 Parent branch: origin/master * WIP Forked at: 49b15615184fad010749d3e34282f70a3845da34 Parent branch: origin/master * use struct instead of enum * WIP Forked at: 49b15615184fad010749d3e34282f70a3845da34 Parent branch: origin/master * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * improve doc * Update client/service/src/builder.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/service/src/builder.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * change code * Update client/informant/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * enable_color * reorg log * remove macro * Removed builder for informant prefix * fix doc * Update client/informant/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/informant/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/informant/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/informant/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/service/src/builder.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/service/src/builder.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/service/src/builder.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Transaction pool added missed comment (#6308) * Add a test for lots of nodes connecting at the same time (#6247) * Add a test for lots of nodes connecting at the same time * Do small change * Introduce frozen indices. (#6307) * Introduce frozen indices. * Fix. * Bump runtime * Benchmark for freeze * Fix * fix benchmarks * update freeze weights * remove copy pasta Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * new crate sc-light (#6235) * sc-light * re…
This introduces a mutable
IsCallable
and thus fixes some issues makingutility
andproxy
dangerous to use together.Also introduces
as_limited_sub
which is exactly likeas_sub
except that the sub-calls are restricted by the same filter that applies to the caller (as before). This might find use if you want to create an account with several stash or governance sub-accounts, and a single proxy for it that can only be used for these functions (rather than needing multiple proxies, one for each sub account).This also repots Utility pallet's multisig functionality into its own pallet, Multisig, thereby making Utility stateless.
In summary:
proxy[only_utility](batch(transfer(...)))
now results in error.proxy[only_utility](multisig(transfer(...)))
still succeeds.proxy[only_utility](as_sub(transfer(...)))
still succeeds.proxy[only_utility](as_limited_sub(transfer(...)))
results in error.proxy(batch(add_proxy(<more_permissive>)))
now results in error.TODO:
impl_filter_stack!
IsCallable
& the call stack functionality into something re-usableNOTE: This will be retired once we have in-origin filtering, which should be ready in the NTD future.
Polkadot companion: paritytech/polkadot#1212