Skip to content
  1. Jun 02, 2020
  2. May 28, 2020
    • Bernhard Schuster's avatar
      offchain storage lock (#6010) · 95d73994
      Bernhard Schuster authored
      
      
      * 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: default avatarTomasz Drwięga <[email protected]>
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      
      * 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: default avatarNikolay Volf <[email protected]>
      
      * doc/comment: better description
      
      * fix/review: Apply suggestions from code review
      
      Co-authored-by: default avatarNikolay Volf <[email protected]>
      
      * 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: default avatarTomasz Drwięga <[email protected]>
      
      * 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: default avatarBernhard Schuster <[email protected]>
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      Co-authored-by: default avatarNikolay Volf <[email protected]>
      95d73994
  3. May 27, 2020
  4. May 21, 2020
  5. May 20, 2020
    • Tomasz Drwięga's avatar
      Maximum extrinsic weight limit (#6067) · f74a7171
      Tomasz Drwięga authored
      * 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
      f74a7171
  6. May 18, 2020
  7. May 15, 2020
  8. May 14, 2020
  9. May 12, 2020
  10. May 09, 2020
  11. May 07, 2020
    • Shawn Tabrizi's avatar
      Update System Weights (#5888) · b0d17b02
      Shawn Tabrizi authored
      
      
      * Update system weights
      
      * Use maximum block weight for scheduler
      
      * Update offences to use full block
      
      * Move weight inside if statement
      
      * Add one read to offences `on_initialize`
      
      * Delete factory test
      
      * Revert "Delete factory test"
      
      This reverts commit 8f95aacd63a028ef1b415185b45367b4140d86fd.
      
      * Revert "Add one read to offences `on_initialize`"
      
      This reverts commit 7df7ebc73625ed79b14086f13c247d4058ee87d6.
      
      * Revert "Move weight inside if statement"
      
      This reverts commit 87277d07913a7d1868eeee85ef4673f51ee4013b.
      
      * Revert "Update offences to use full block"
      
      This reverts commit 0bbe0ce18e9419b032157f7d37dea6481078cdc0.
      
      * Use scheduler in Sudo
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarAlexander Popiak <[email protected]>
      
      * Revert "Use scheduler in Sudo"
      
      This reverts commit 95bd2768dfea100bdf682cf4fe6c0f46e8e1f66e.
      
      * remove max extrinsic weight (it does nothing useful)
      
      * fix tests
      
      * introduce `sudo_unchecked_weight`
      
      * bump spec version
      
      * scheduler 80 percent of maximum
      
      * Update `set_changes_trie_config` weight
      
      * Update bin/node/runtime/src/lib.rs
      
      * Update frame/democracy/src/tests.rs
      
      * Update tests.rs
      
      * update based on feedback
      
      Co-authored-by: default avatarAlexander Popiak <[email protected]>
      b0d17b02
  12. May 06, 2020
  13. May 05, 2020
  14. Apr 30, 2020
  15. Apr 27, 2020
  16. Apr 25, 2020
    • Shawn Tabrizi's avatar
      Introduce `BlockExecutionWeight` and `ExtrinsicBaseWeight` (#5722) · 8a33c297
      Shawn Tabrizi authored
      
      
      * Introduce `BlockExectionWeight` and `ExtrinsicBaseWeight`
      
      * Add new traits everywhere
      
      * Missed one update
      
      * fix tests
      
      * Update `check_weight` logic
      
      * introduce `max_extrinsic_weight` function
      
      * fix + add tests
      
      * format nits
      
      * remove println
      
      * make test a bit more clear
      
      * Remove minimum weight
      
      * newlines left over from find/replace
      
      * Fix test, improve clarity
      
      * Fix executor tests
      
      * Extrinsic base weight same as old `MINIMUM_WEIGHT`
      
      * fix example test
      
      * Expose constants
      
      * Add test for full block with operational and normal
      
      * Initiate test environment with `BlockExecutionWeight` weight
      
      * format nit
      
      * Update frame/system/src/lib.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Replace `TransactionBaseFee` with `ExtrinsicBaseWeight` (#5761)
      
      * Replace `TransactionBaseFee` with `ExtrinsicBaseFee`
      
      * Fix stuff
      
      * Fix and make tests better
      
      * Forgot to update this test
      
      * Fix priority number in test
      
      * Remove minimum weight from merge
      
      * Fix weight in contracts
      
      * remove `TransactionBaseFee` from contract tests
      
      * Let `register_extra_weight_unchecked` go past `MaximumBlockWeight`
      
      * address feedback
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      8a33c297
  17. Apr 24, 2020
  18. Apr 23, 2020
  19. Apr 22, 2020
  20. Apr 21, 2020
    • Rakan Alhneiti's avatar
      Offchain signing (#5182) · 25751c05
      Rakan Alhneiti authored
      
      
      * New approach to offchain signing.
      
      * Use in im-online
      
      * Rewrite to use Account<T>
      
      * DRY signing.
      
      * Implement send_raw_unsigned_transaction
      
      * WiP
      
      * Expunge LocalCall
      
      * Expunge LocalCall
      
      * Fix compilation.
      
      * Solve call.
      
      * Make it compile again.
      
      * Finalize implementation.
      
      * Change CreateTransaction
      
      * Clear CreateTransaction.
      
      * Add price payload
      
      * Send raw transaction
      
      * Submit signed payload / unsigned transaction (WIP)
      
      * Supertrait requirements on T::Signature
      
      * Validate signature of payload on an unsigned transaction
      
      * Fix encoding - part 1
      
      * Make it compile.
      
      * Fix compilation of unsigned validator.
      
      * Pass price payload to the transaction
      
      * Make block number part of the signed payload
      
      * Send signed transaction
      
      * Implement all_accounts, any_account
      
      * Fix formatting
      
      * Implement submit_transaction
      
      * Submit signed transaction (ForAll, ForAny)
      
      * Fix formatting
      
      * Implement CreateSignedTransaction
      
      * Move sign and verify to AppCrypto
      
      * Sign transaction
      
      * Call `use_encoded`
      
      * Remove SubmitAndSignTransaction
      
      * Implement runtime using new SigningTypes
      
      * Adapt offchain example to changes
      
      * Fix im-online pallet
      
      * Quick fix: rename AuthorityId2
      
      * Fix offchain example tests
      
      * Add a comment on why keystore is required in unsigned transaction test
      
      * Use UintAuthorityId instead of u64
      
      * WIP
      
      * Remove IdentifyAccount from UintAuthorityId
      
      * Implement PublicWrapper type
      
      * Fix im-online tests
      
      * Fix runtime test
      
      * Bump spec version
      
      * Fix executor tests
      
      * Rename ImOnlineAuthId -> ImOnlineAuthorityId and formatting
      
      * Fix merge
      
      * Documentation
      
      * Revert u64 -> UintAuthorityId conversion
      
      * Fix string errors
      
      * Document public members in offchain module
      
      * Introduce SubmitTransaction
      
      * Update pallets to use SubmitTransaction
      
      * WIP
      
      * Use SubmitTransaction in offchain
      
      * Use `submit_unsigned_transaction`
      
      * Fix tests
      
      * Update docs
      
      * Remove SigningTypes requirement from `SendTransactionTypes`
      
      * Fix tests
      
      * Update frame/system/src/offchain.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Update frame/system/src/offchain.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Update frame/example-offchain-worker/src/tests.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Update frame/system/src/offchain.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Update frame/system/src/offchain.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Remove leftover from previous iterations
      
      * Change enum to struct
      
      * Remove public
      
      * Move mock to node/executor/tests
      
      * Cleanup test-helpers
      
      * Make `application-crypto` `std` feature internal
      
      The macros should not generate code that requires that the calling crate
      has a feature with the name `std` defined.
      
      * Revert cargo lock update
      
      * Use TestAuthorityId from common
      
      * Restore members of account to public
      
      * Tidy up imports
      
      * Fix benchmarking pallet
      
      * Add tests demonstrating ForAll, ForAny on signer
      
      * Move definition of AppCrypto
      
      in example-offchain-worker
      from tests to mod::crypto
      
      * Cleanup stray comment
      
      * Fix ValidTransaction
      
      * Re-fix CreateSignedTransaction
      
      * Address PR feedback
      
      * Add can_sign method to signer
      
      * Propagate error
      
      * Improve documentation
      
      * Fix vec! macro not available
      
      * Document SendTransactiontypes
      
      * Add some docs.
      
      * Split signing examples
      
      * Add tests for signing examples
      
      * WIP can_sign - PR feedback
      
      * WIP
      
      * Split for_any / for_all into different calls
      
      * Verify payload and signature in test
      
      * Fix can_sign implementation
      
      * Fix impl_version
      
      * Import Box from sp_std
      
      * Create issues for TODOs
      
      * Ignore doctest.
      
      * Add test directly to system. Adjust UintTypes.
      
      * Add some tests to account filtering.
      
      * Remove code samples and point to example offchain worker
      
      * Fix doc links
      
      * Fix im-online tests using signatures.
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      25751c05
  21. Apr 20, 2020
  22. Apr 17, 2020
  23. Apr 16, 2020
  24. Apr 14, 2020
  25. Apr 11, 2020
  26. Apr 08, 2020
  27. Apr 07, 2020
    • Shawn Tabrizi's avatar
      Generate Unit Tests for Benchmarks (#5527) · d3cc0514
      Shawn Tabrizi authored
      * Update to latest staking
      
      * generate tests for benchmarking
      
      * add tests, fix warnings
      
      * starting on democracy
      
      * impl_benchmark_tests
      
      * Way more readable
      
      * add test feature flag (does this work?)
      
      * Fix `successful_origin` impl
      
      * democracry benchmark tests
      
      * Fix example benchmarks, add tests
      
      * identity benchmark tests
      
      * Update im-online benchmark tests
      
      * try to add session benchmarking tests (problem with mock)
      
      * staking and timestamp
      
      * add test for treasury, issue with dynamic contains
      
      * utility
      
      * Vesting
      
      * test instead of check
      
      * hide until we figure out what is wrong
      
      * add docs
      
      * close code
      
      * Create custom mock for session-pallet-benchmarking
      
      * Use refcell pattern
      
      * make un-pub
      
      * test-linux-stable includes `runtime-benchmarks` feature
      
      * Revert "test-linux-stable includes `runtime-benchmarks` feature"
      
      This reverts commit a2dab38abd18ac3eb8a6220e4a00e687740bd38c.
      
      * run tests in `--release`
      
      * undo balance change
      
      * build wasm
      d3cc0514
  28. Apr 05, 2020
  29. Apr 04, 2020
  30. Mar 31, 2020
  31. Mar 26, 2020
    • Marcio Diaz's avatar
      Benchmark Democracy Pallet (#5257) · 5a48cade
      Marcio Diaz authored
      
      
      * Add origin bounds to benchmark macro.
      
      * Add democracy benchmark.
      
      * Fix tests
      
      * Remove collective from frame/benchmarking, partially use EnsureOrigin.
      
      * Remove collective stuff.
      
      * Make previous benches compile again.
      
      * Remove comments.
      
      * Make prev bench to work again.
      
      * Add remove votes.
      
      * Add new proxy calls.
      
      * Add runtime-benchmarks guard to EnsureOrigin and implementations.
      
      * Refactor.
      
      * Add missing import.
      
      * Remove duplicated import
      
      * Fix features.
      
      * Add some missing features.
      
      * Update frame/collective/Cargo.toml
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Update frame/democracy/src/benchmarking.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Update frame/democracy/src/benchmarking.rs
      
      Co-Authored-By: default avatarKian Paimani <[email protected]>
      
      * Add referendums to state.
      
      * populate vecs before call
      
      * Update weight docs
      
      * More fixes and weight docs
      
      * More updates
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      5a48cade
    • Kian Paimani's avatar
      Mandate weight annotation (#5357) · a0772117
      Kian Paimani authored
      * Disallow default weight
      
      * Fix build and test
      
      * Fix tests
      
      * Fix another beloved ui test.
      
      * fix beloved trybuild tests
      
      * fix treasury?
      
      * Final test fix
      
      * Fix build
      
      * Fix another one
      
      * Fix
      
      * More doctest fix
      a0772117
  32. Mar 20, 2020
    • Bastian Köcher's avatar
      Adds new event phase `Initialization` (#5302) · 7693bd5e
      Bastian Köcher authored
      * Adds new event phase `Initialization`
      
      Every event that was deposited inside of `on_initialize` was assigned to
      the `ApplyExtrinsic(0)` phase which wasn't correct. This pr introduces a
      new phase `Initialization`. This is the new phase while initializing
      a block. After initialization we switch to `ApplyExtrinsic(N)` and at
      the end to `Finalization` as before.
      
      * Set `ExecutionPhase` in `initialize`
      
      * Increment `spec_version`
      7693bd5e
    • Peter Goodspeed-Niklaus's avatar
      Factor out can_set_code (#5317) · a9b9ca5f
      Peter Goodspeed-Niklaus authored
      * Factor out can_set_code
      
      The motivation for this feature is parachain runtime upgrades, which
      happen in two different moments: the initial call, when the checks
      should be performed, and at the actual upgrade block. It's much
      better and more maintainable to just call `can_set_code` in the
      function than to manually copy those checks.
      
      I'm not entirely thrilled with the interface, which requires
      cloning the entire code vector in `set_code`. However, it looks
      like something in `decl_module!` does not play nicely with
      references in its function arguments. If `code` has a lifetime,
      it _must_ be named, which gives us this signature.
      
      ```rust
      pub fn can_set_code<'a>(origin, code: &'a [u8]) {
      ```
      
      Unfortunately, attempting to compile with that signature generates
      a very large and baffling collection of build errors, so I decided
      to abandon that path for now.
      
      * make can_set_code non-dispatchable per PR revew
      
      Not only can we now borrow the `code` slice, but we also no longer
      need to worry about people sending a `can_set_code` transaction because
      of some misunderstanding.
      
      * move into existing impl block
      a9b9ca5f
  33. Mar 19, 2020
  34. Mar 16, 2020
    • Gavin Wood's avatar
      Refactor away from opaque hashes (#5226) · af9083f5
      Gavin Wood authored
      
      
      * System.BlockHash
      
      * Fix hash
      
      * Introduce K/V iteration in all _concat maps
      
      Also move across:
      - System.Account (blake2_128_concat)
      - Balances.Locks (twox_64_concat)
      - ElectionsPhragmen.VotesOf (twox_64_concat)
      - ElectionsPhragmen.StakeOf (twox_64_concat)
      - Identity.IdentityOf (twox_64_concat)
      - Identity.SubsOf (twox_64_concat)
      - Society.Payouts (twox_64_concat)
      - Session.NextKeys (twox_64_concat)
      - Identity.SuperOf (blake2_128_concat)
      - Session.KeyOwner (blake2_128_concat)
      - Society.SuspendedCandidates (twox_64_concat)
      - Society.SuspendedMembers (twox_64_concat)
      - Society.Vouching (twox_64_concat)
      - Society.Strikes (twox_64_concat)
      - System.EventTopics
      - Balances.Account
      
      * Build fixes
      
      * Ensure migration happens in correct order
      
      * Staking.*
      
      * Vesting.* Offences.*
      
      * Democracy.*
      
      * Babe.* Collective.*
      
      * Grandpa.*
      
      * Assets.* Benchmark.* Contracts.* Elections.* Asset.* Nicks.*
      
      Also introduce real account list
      
      * ImOnline.*
      
      * Treasury.*
      
      * Recovery.*
      
      * Final bits.
      
      * Docs
      
      * Fix one test
      
      * Fix test
      
      * All passing except the UI tests
      
      * Remove linked_map part 1
      
      * Remove linked_map
      
      * Some iterator utils for double maps.
      
      * Remove old migrations
      
      * Introduce tombstone for LinkedMap type
      
      * Migration for genesis hash
      
      * Fix build
      
      * Fix hash
      
      * Rename Map is_linked -> unused, keeping backwards compat (#5256)
      
      * Update frame/balances/src/lib.rs
      
      Co-Authored-By: default avatarShawn Tabrizi <[email protected]>
      
      * Update frame/elections/src/lib.rs
      
      Co-Authored-By: default avatarShawn Tabrizi <[email protected]>
      
      * Remove old migration code.
      
      * Update frame/system/src/lib.rs
      
      Co-Authored-By: default avatarShawn Tabrizi <[email protected]>
      
      * Update bin/node/runtime/src/lib.rs
      
      Co-Authored-By: default avatarShawn Tabrizi <[email protected]>
      
      * Fix hash
      
      * fix session migration
      
      * Fix watning
      
      Co-authored-by: default avatarJaco Greeff <[email protected]>
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      Co-authored-by: default avatarRobert Habermeier <[email protected]>
      af9083f5
  35. Mar 15, 2020
    • Bastian Köcher's avatar
      Move runtime upgrade to `frame-executive` (#5197) · 26fa6e3c
      Bastian Köcher authored
      * Move runtime upgrade to `frame-executive`
      
      Instead of storing the runtime upgraded in the space of `frame-system`,
      this moves it to `frame-executive`. We also start storing the
      `spec_version` and `impl_version` the last runtime upgrade was applied.
      
      This scheme has multiple advantages:
      - We don't need to make sure that runtime upgrade was set.
      - This will work in the future when we want to test a runtime upgrade,
      because the `on_runtime_upgrade` will be executed automatically when the
      runtime changes.
      
      * Move `LAST_RUNTIME_UPGRADE` key to `frame-executive`
      
      * Add some more documentation
      
      * Make sure `spec_version` always increases between runtime upgrades
      
      * Fix test
      
      * Upgrade `parity-multiaddr` to fix compilation
      
      * Also check if the `spec_name` changed
      
      * Remove `RuntimeUpgraded` storage entry
      
      * Don't run on genesis
      26fa6e3c
  36. Mar 10, 2020
  37. Mar 09, 2020