Skip to content
Snippets Groups Projects
  1. Jan 29, 2025
  2. Aug 28, 2024
    • Tarek Mohamed Abdalla's avatar
      Fix benchmark failures when using `insecure_zero_ed` flag (#5354) · 1c4141ab
      Tarek Mohamed Abdalla authored
      Currently, when the pallet is compiled with the `insecure_zero_ed flag`,
      benchmarks fail because the minimum balance is set to zero.
      
      The PR aims to resolve this issue by implementing a placeholder value
      for the minimum balance when the `insecure_zero_ed` flag is active. it
      ensures that benchmarks run successfully regardless of whether this flag
      is used or not
  3. Jul 30, 2024
  4. May 08, 2024
    • Dino Pačandi's avatar
      [pallet-balances] `burn_allow_death` extrinsic (#3964) · c3e57c1b
      Dino Pačandi authored
      
      Adds an additional extrinsic call to the `pallet-balances` to _burn_
      tokens.
      Depending on the `keep_alive` flag, the call might or might not reap the
      account.
      
      Required modification of the _fungible's_ `Mutate` trait, `burn_from`
      function to allow the `Preservation` argument.
      
      **TODO**
      - [x] run benchmarks & update weights
      - [x] make sure prdoc is required & properly formatted
      
      Related issue: https://github.com/paritytech/polkadot-sdk/issues/3943
      
      ---------
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: command-bot <>
  5. May 02, 2024
    • Kris Bitney's avatar
      Allow for 0 existential deposit in benchmarks for `pallet_staking`,... · a9aeabe9
      Kris Bitney authored
      Allow for 0 existential deposit in benchmarks for `pallet_staking`, `pallet_session`, and `pallet_balances` (#4346)
      
      This PR ensures non-zero values are available in benchmarks for
      `pallet_staking`, `pallet_session`, and `pallet_balances` where required
      for them to run.
      
      This small change makes it possible to run the benchmarks for
      `pallet_staking`, `pallet_session`, and `pallet_balances` in a runtime
      for which existential deposit is set to 0.
      
      The benchmarks for `pallet_staking` and `pallet_session` will still fail
      in runtimes that use `U128CurrencyToVote`, but that is easy to work
      around by creating a new `CurrencyToVote` implementation for
      benchmarking.
      
      The changes are implemented by checking if existential deposit equals 0
      and using 1 if so.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  6. Jan 30, 2024
  7. Mar 18, 2023
  8. Feb 22, 2023
    • Sam Johnson's avatar
      generation of real benchmark functions for benchmarking v2 (#13224) · 55ff791d
      Sam Johnson authored
      
      * function generation with _name working, need to modify signature
      
      * WIP
      
      * support custom BenchmarkResult<T> type
      
      * full support for BenchmarkResult<T> on benchmark function defs
      
      * support () return type for benchmark function defs that don't use ?
      
      * uncomment
      
      * fix where clause handling
      
      * fix benchmark function call bodies
      
      * proper parsing of return type
      
      * add UI tests for bad return type
      
      * fix detection of missing last_stmt with defined return type
      
      * UI tests covering missing last_stmt
      
      * properly detect and complain about empty benchmark function defs
      
      * fix missing Comma in Result<T, BenchmarkError> parsing + test
      
      * add additional UI test
      
      * allow complex path for BenchmarkResult and BenchmarkError in fn defs
      
      * add UI tests covering complex path for BenchmarkResult, BenchmarkError
      
      * retain doc comments and attributes
      
      * also add attributes to struct
      
      * add docs for benchmark function definition support
      
      * fix imports on benchmark example
      
      * fix issue with unused variables in extrinsic call fn def
      
      * fix up docs
      
      * remove support for v2::BenchmarkResult because it was confusing
      
      * fix typo
      
      * remove ability to use custom T for Result<T, BenchmarkError> in v2
      
      * use missing call error instead of empty_fn()
      
      * remove unneeded match statement
      
      * Add a proper QED
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * fix other QED
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * cargo fmt
      
      * add an explicit error for non TypePath as return type
      
      * tweak error warning and add a UI test for non TypePath return
      
      * remove comment
      
      * add docs about T and I generic params
      
      * improve docs referring to section "below"
      
      * pull out return type checking logic into its own function
      
      * pull out params parsing into its own function
      
      * pull out call_def parsing into its own function
      
      * add doc comment for missing_call()
      
      * replace spaces with tabs
      
      * add a result-based example to the benchmarking examples
      
      ---------
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      55ff791d
  9. Feb 21, 2023
    • Vivek Pandya's avatar
      Remove years from copyright notes. (#13415) · bc53b9a0
      Vivek Pandya authored
      * Change copyright year to 2023 from 2022
      
      * Fix incorrect update of copyright year
      
      * Remove years from copy right header
      
      * Fix remaining files
      
      * Fix typo in a header and remove update-copyright.sh
      bc53b9a0
  10. Jan 27, 2023
  11. Jan 23, 2023
    • Sam Johnson's avatar
      new proc-macro-based benchmarking syntax (#12924) · 42e5c27c
      Sam Johnson authored
      * add stub for new benchmark macro
      
      * benchmark syntax
      
      * add #[extrinsic call] separator
      
      * parse #[benchmark] item as a function
      
      * proper emission of error when #[extrinsic_call] annotation is missing
      
      * clean up
      
      * enclosing module via benchmarks! { } working
      
      * use an attribute macro on the module instead of benchmarks! { }
      
      * cargo fmt
      
      * working component implementation
      
      * WIP
      
      * working
      
      * add syntax for Linear<A, B>
      
      * parsing of param ranges (still need to build tuple though)
      
      * params parsing WIP
      
      * clean up (don't need extrinsic call name)
      
      * use proper Result syntax for BenchmarkDef parsing
      
      * proper parsing of Linear<0, 1> style args
      
      * successfully parse and make use of linear component ranges :boom:
      
      * rename support variable => home because eventually will be moved
      
      * compile-time check that param range types implement ParamRange
      
      * switch to using balances as example, failing on instance pallet
      
      * successfully set up __origin and __call with balances :boom:
      
      * clean up
      
      * use a module
      
      * don't need a variable for transfer
      
      * rename benchmark_transfer -> transfer because no longer conflicts
      
      * clean up
      
      * working with transfer_increasing_users as well :boom:
      
      * re-add BareBlock
      
      * add comments for undocumented structs+functions+traits
      
      * refactor in preparation for removing module requirements
      
      * switch to a block instead of a module
      
      * use the outer macro pattern to to enable #[benchmarks] aggregation
      
      * successfully generate SelectedBenchmark :boom:
      
      * implement components for SelectedBenchmark
      
      * implement instance for SelectedBenchmark
      
      * properly track #[extra]
      
      * working impl for fn benchmarks()
      
      * run_benchmarks WIP
      
      * finish run_benchmark! impl :boom:
      
      * import balances transfer_best_case benchmark
      
      * import transfer_keep_alive balances pallet benchmark
      
      * import set_balance_creating balances pallet benchmark
      
      * import set_balance_killing balances pallet benchmark
      
      * import force_transfer balances pallet benchmark
      
      * add #[extra] annotation and docs to transfer_increasing_users
      
      * import transfer_all balances pallet benchmark
      
      * import force_unreserve balances pallet benchmark
      
      * prepare to implement impl_benchmark_test_suite!
      
      * ensure tests cover #[extra] before and after #[benchmark] tag
      
      * refactor
      
      * clean up
      
      * fix
      
      * move to outer
      
      * switch to benchmarks/instance_benchmarks
      
      * test impl almost done, strange compiler error
      
      * benchmark test suites working :boom:
      
      * clean up
      
      * add stub and basic parsing for where_clause
      
      * working except where clause and extrinsic calls containing method chains
      
      * assume option (2) for now wrt https://github.com/paritytech/substrate/pull/12924#issuecomment-1372938718
      
      * clean up
      
      * switch to attribute-style
      
      * properly handle where clauses
      
      * fix subtle missing where clause, now just MessageQueue issues
      
      * fix block formatting in message-queue pallet
      
      * switch to block vs non-block parsing of extrinsic call
      
      * working now but some benchmark tests failing
      
      * message-queue tests working (run order issue fixed) :tada:
      
      
      
      * add comments and internal docs for fame_support_procedural::benchmark
      
      * fix license years
      
      * docs for lib.rs
      
      * add docs to new support procedural macros
      
      * don't allow #[benchmark] outside of benchmarking module
      
      * add docs
      
      * use benchmark(extra, skip_meta) style args
      
      * update docs accordingly
      
      * appease clippy
      
      * bump ci
      
      * add notes about `extra` and `skip_meta`
      
      * fix doc tests
      
      * re-run CI
      
      * use `ignore` instead of `no_run` on doc examples
      
      * bump CI
      
      * replace some if-lets with if-elses
      
      * more refactoring of if-let statements
      
      * fix remaining if-lets in BenchmarkDef::from()
      
      * fix if-lets in benchmarks()
      
      * fix remaining if-lets, use nested find_map for extrinsic call
      
      * switch to use #[extrinsic_call] or #[block] situationally
      
      * refactor ExtrinsicCallDef => BenchmarkCallDef
      
      * update docs with info about #[block]
      
      * add macro stub for #[extrinsic_call]
      
      * fix docs and add stub for #[block] as well
      
      * remove unused extern crate line
      
      * fix clippy nits
      
      * Use V2 bench syntax in pallet-example-basic
      
      Just testing the dev-ex...
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      
      * carry over comment
      
      * use curly-brace style for impl_benchmark_test_suite!
      
      * remove unneeded parenthesis
      
      * proper handling of _() extrinsic call style
      
      * add docs for _() syntax
      
      * fix crate access
      
      * simplify keyword access
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * simplify module content destructuring
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * fix crate access "frame_benchmarking" => "frame-benchmarking", compiles
      
      * use _() extrinsic call syntax where possible in balances
      
      * simplify attr.path.segments.last()
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * fix compile error being suppressed
      
      * simplify extrinsic call keyword parsing
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * use ? operator instead of return None
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * rename generics => type_use_generics
      rename full_generics => type_impl_generics
      
      * simplify extrinsic call extraction with transpose
      
      * bump CI
      
      * nit
      
      * proper handling of too many + too few block/extrinsic call annotations
      
      * change to B >= A
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      
      * remove unneeded ignore
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      
      * remove another ignore
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      
      * add ui tests
      
      * use _() style extrinsic call on accumulate_dummy
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      
      * add range check to ParamRange
      
      * ui test for bad param ranges
      
      * fix failing example
      
      * add ignore back to other failing example
      
      * tweak expr_call span
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * fix typo
      
      * eliminate a match
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * change pub fn benchmarks to return Result<TokenStream>
      
      * fix origin error span
      
      * more informative error for invalid benchmark parameter name
      
      * fix spans on a few benchmark errors
      
      * remove unneeded clone
      
      * refactor inner loop of benchmark function parsing
      
      * preserve mod attributes
      
      * refactor outer loop of benchmark def parsing code, greatly simplified
      
      * simplify to use a ? operator when parsing benchmark attr path
      
      * fix another ? operator
      
      * further simplify benchmark function attr parsing with more ? ops
      
      * refactor extrinsic call handling to use if let rather than match
      
      * replace is_ok => is_err
      
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      
      * re-use name during expansion of benchmark def
      
      * remove unneeded clone
      
      * fix span for origin missing error
      
      * fix missing semi
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarKeith Yeung <kungfukeith11@gmail.com>
      Co-authored-by: parity-processbot <>
      42e5c27c
  12. Aug 18, 2022
  13. Jan 03, 2022
  14. Oct 01, 2021
    • ucover's avatar
      Test each benchmark case in own #[test] (#9860) · f8ce1864
      ucover authored
      
      * Generate one #[test] fn per bench case.
      
      * Update benchmark macro syntax in frame pallets.
      
      * Explain new benchmark macro syntax in example pallet.
      
      * support with and without a semicolon
      
      * update pallets to use individual tests
      
      * migrate staking too
      
      * migrate more pallets
      
      * fix up democracy and use individual tests
      
      * Fix comment
      
      * Put println message in panic
      
      * Remove `another_set_dummy` from doc
      
      `another_set_dummy` is not present in the benchmarking.rs (anymore).
      
      * Update doc for benchmarks macro
      
      * Update doc for impl_benchmark_test_suite macro
      
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      f8ce1864
  15. Sep 16, 2021
    • Shawn Tabrizi's avatar
      Add Force Unreserve to Balances (#9764) · 68c93ec4
      Shawn Tabrizi authored
      
      * force unreserve
      
      * add benchmark
      
      * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      Co-authored-by: default avatarParity Bot <admin@parity.io>
      68c93ec4
  16. Jul 21, 2021
  17. Jun 11, 2021
  18. Apr 10, 2021
  19. Apr 07, 2021
  20. Mar 18, 2021
    • Shaun Wang's avatar
      Replace 'Module' with 'Pallet' in construct_runtime macro (#8372) · 2e552244
      Shaun Wang authored
      * Use 'Pallet' struct in construct_runtime.
      
      * Fix genesis and metadata macro.
      
      * Fix 'Pallet' type alias.
      
      * Replace 'Module' with 'Pallet' for all construct_runtime use cases.
      
      * Replace more deprecated 'Module' struct.
      
      * Bring back AllModules and AllPalletsWithSystem type, but deprecate them.
      
      * Replace deprecated 'Module' struct from merge master.
      
      * Minor fix.
      
      * Fix UI tests.
      
      * Revert UI override in derive_no_bound.
      
      * Fix more deprecated 'Module' use from master branch.
      
      * Fix more deprecated 'Module' use from master branch.
      2e552244
  21. Feb 25, 2021
  22. Feb 16, 2021
    • Peter Goodspeed-Niklaus's avatar
      Create a macro which automates creation of benchmark test suites. (#8104) · 44d5aba8
      Peter Goodspeed-Niklaus authored
      
      * Create a macro which automates creation of benchmark test suites.
      
      * bump impl_version
      
      * allow unused on test_bench_by_name
      
      * use proper doctest ignore attribute
      
      * Explicitly hand the Module to the test suite
      
      Much better practice than depending on it showing up implicitly in
      the namespace.
      
      * explicitly import what we need into `mod tests`
      
      * bench_module is `ident` not `tt`
      
      Co-authored-by: default avatarGuillaume Thiolliere <gui.thiolliere@gmail.com>
      
      * allow end users to specify arguments for new_test_ext
      
      This turned out to be surprisingly easy. On reflection, it turns out
      that of course the compiler can't eagerly evaluate the function call,
      but needs to paste it in everywhere desired.
      
      * enable explicitly specifying the path to the benchmarks invocation
      
      also enable optional trailing commas
      
      * Revert "bump impl_version"
      
      This reverts commit 0209e4de33fd43873f8cfc6875815d0fd6151e63.
      
      * list failing benchmark tests and the errors which caused the failure
      
      * harden benchmark tests against internal panics
      
      * suppress warning about ignored profiles
      
      unfortunately, setting the profile here doesn't do anything; we'd
      need to set it in every leaf package anyway. However, as this was
      just making the default explicit anyway, I think it's safe enough
      to remove entirely.
      
      * impl_benchmark_test_suite for assets
      
      * impl_benchmark_test_suite for balances
      
      * impl_benchmark_test_suite for bounties
      
      * impl_benchmark_test_suite for Collective
      
      * impl_benchmark_test_suite for Contracts
      
      * impl_benchmark_test_suite for Democracy
      
      * don't impl_benchmark_test_suite for Elections-Phragmen
      
      * impl_benchmark_test_suite for Identity
      
      Note that Identity tests currently fail. They failed in an identical
      way before this change, so as far as I'm concerned, the status quo is
      good enough for now.
      
      * impl_benchmark_test_suite for ImOnline
      
      * impl_benchmark_test_suite for indices
      
      For this crate also, the test suite fails identically with and without
      this change, so we can say that this change is not the cause of the
      tests' failure to compile.
      
      * impl_benchmark_test_suite for lottery
      
      * impl_benchmark_test_suite for merkle-mountain-range
      
      * impl_benchmark_test_suite for Multisig
      
      These tests fail identically with and without the change, so the change
      seems unlikely to be the origin of the failures.
      
      * impl_benchmark_test_suite for offences
      
      * impl_benchmark_test_suite for Proxy
      
      Fails identically with and without this change.
      
      * impl_benchmark_test_suite for scheduler
      
      * impl_benchmark_test_suite for session
      
      It turns out to be important to be able to exclude items marked
      `#[extra]` sometimes. Who knew?
      
      * impl_benchmark_test_suite for staking
      
      * impl_benchmark_test_suite for system
      
      * impl_benchmark_test_suite for timestamp
      
      * impl_benchmark_test_suite for tips
      
      * impl_benchmark_test_suite for treasury
      
      * impl_benchmark_test_suite for utility
      
      Note that benchmark tests fail identically before and after this change.
      
      * impl_benchmark_test_suite for vesting
      
      * fix wrong module name in impl_benchmark_test_suite in Offences
      
      * address line length nits
      
      * enable optional keyword argument: exec_name
      
      Took a _lot_ of macro-wrangling to get the functionality that I want,
      but now you have the option to pass in
      
      ```rust
      impl_benchmark_test_suite!(
      	Elections,
      	crate::tests::ExtBuilder::default().desired_members(13).desired_runners_up(7),
      	crate::tests::Test,
      	exec_name = build_and_execute,
      );
      ```
      
      and have it expand out properly. A selected fragment of the expansion:
      
      ```rust
              fn test_benchmarks() {
                  crate::tests::ExtBuilder::default()
                      .desired_members(13)
                      .desired_runners_up(7)
                      .build_and_execute(|| {
      ```
      
      * get rid of dead code
      
      Co-authored-by: default avatarGuillaume Thiolliere <gui.thiolliere@gmail.com>
      44d5aba8
  23. Jan 06, 2021
  24. Jan 04, 2021
    • Bastian Köcher's avatar
      Happy new year (#7814) · e3e651f7
      Bastian Köcher authored
      * Happy new year
      
      Updates the copyright years and fixes wrong license headers.
      
      * Fix the template
      
      * Split HEADER into HEADER-APACHE & HEADER-GPL
      e3e651f7
  25. Oct 26, 2020
  26. Aug 19, 2020
  27. Jul 30, 2020
  28. May 15, 2020
  29. Apr 08, 2020
    • Marcio Diaz's avatar
      Add verify block to benchmark tests (#5551) · 7cc095ec
      Marcio Diaz authored
      
      * Add verify block to benchmarks macro.
      
      * Update all benchmarks.
      
      * Add tests, add params.
      
      * Should panic.
      
      * ups, add closures
      
      * Update tests.rs
      
      * update macro syntax
      
      * Revert benchmark syntax change
      
      * verify only in tests
      
      * Update tests.rs
      
      * Uncomment staking
      
      * Fix tests for benchmark instance
      
      * Add docs
      
      * Update frame/benchmarking/src/lib.rs
      
      * add trace logs to benchmarks
      
      * Verify returns closure
      
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      7cc095ec
  30. 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
  31. Mar 31, 2020
  32. Mar 17, 2020
    • Shawn Tabrizi's avatar
      Benchmark Staking and Session Pallet (#5183) · 9c06d8c6
      Shawn Tabrizi authored
      
      * starting bench
      
      * More
      
      * more
      
      * Payout Validator
      
      * Give each validator exactly n nominators
      
      * Update with test
      
      * Try to add accounts to chain spec
      
      * Undo changes to chainspec
      
      * Payout nominator
      
      * Rebond and Reap Stash
      
      * Set history depth
      
      * fix smelly code
      
      * cancel deferred slash
      
      * new_era bench
      
      * do_slash benchmark
      
      * Add features
      
      * undo extrinsic move
      
      * lower
      
      * Update new era
      
      * Update benchmarking.rs
      
      * whitespace
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
      
      * fixes
      
      * nit
      
      * Refactor tests, initial code
      
      * Move session benchmarks to avoid cyclic deps
      
      * Update lib.rs
      
      * Fix warnings
      
      * Move impl
      
      * Update to do random nominator allocation
      
      * add feature to benchmark pallet
      
      * Remove extra stuff
      
      * Update based on feedback
      
      * Less intrusive
      
      * Remove `transfer_idle_users`
      
      * remove again
      
      * unused dep
      
      * test feature flag
      
      * Update to latest substrate
      
      Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
      9c06d8c6
  33. Mar 04, 2020
    • Shawn Tabrizi's avatar
      A Pallet for Benchmarking Common Runtime Operations (#4902) · 3d6329a2
      Shawn Tabrizi authored
      * Benchmark pallet
      
      * Add a bunch more benchmarks
      
      * do nothing test
      
      * new benchmarks
      
      * Clean up extra tests
      
      * Encode and Decode Vec<T::AccountId>
      
      * Starting to migrate benchmarks to macro
      
      * Use macro
      
      * Remove call and storage
      
      * Update Cargo.toml
      
      * Add storage recalc benchmark
      
      * Add support for custom functions in benchmark! macro
      
      * Reset DB for storage recalc
      
      * Feedback from review
      
      * Add more comments
      
      * Remove benchmark pallet from node
      
      * Fix cargo files
      
      * Fix comments
      
      * Change `crate` to `super`
      
      * missed one
      
      * Use results of benchmark encode/decode
      
      * Pass generic to extra functions
      
      * reset macro to master
      
      * Update lib.rs
      
      * Update to use standard syntax
      3d6329a2
  34. Feb 20, 2020
    • Gavin Wood's avatar
      Benchmark macro (#4962) · f5176ba3
      Gavin Wood authored
      
      * MAcro benchamrks
      
      * Iterative macro
      
      * Tidying it up.
      
      * Macro improvements
      
      * Bits..
      
      * Last benchmaks.
      
      * Repo benchmark macro
      
      * Add the possibility of evaluating arbitrary expressions in a
      benchmaark
      
      * Better syntax and docs
      
      * Update `BenchmarkParameter`
      
      * Add `ignore` to sudo-code in docs
      
      * First try of timestamp implementation.
      
      * Fix macro docs, remove warnings.
      
      * Use macro in balances pallet.
      
      * Make some space in frame benchmarking.
      
      * Remove _benchmarks_seed variable.
      
      * Bump impl_version.
      
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      Co-authored-by: default avatarMarcio Diaz <marcio@parity.io>
      f5176ba3
  35. Feb 19, 2020
    • Bastian Köcher's avatar
      Consolidate frame benchmarking into a frame crate (#4977) · b4ebd41c
      Bastian Köcher authored
      This prs cleans up some of the frame benchmarking stuff:
      - Move CLI into `frame-benchmarking-cli`. No frame related CLI should
      exists in the default Substrate CLI.
      - Move all traits and types related to frame benchmarking into the
      `frame-benchmarking` trait. Frame types should be isolated in Frame.
      b4ebd41c
  36. Feb 14, 2020
    • Gavin Wood's avatar
      Composite accounts (#4820) · 5b7512e2
      Gavin Wood authored
      
      * Basic account composition.
      
      * Add try_mutate_exists
      
      * De-duplicate
      
      * Refactor away the UpdateBalanceOutcome
      
      * Expunge final UpdateBalanceOutcome refs
      
      * Refactor transfer
      
      * Refactor reservable currency stuff.
      
      * Test with the alternative setup.
      
      * Fixes
      
      * Test with both setups.
      
      * Fixes
      
      * Fix
      
      * Fix macros
      
      * Make indices opt-in
      
      * Remove CreationFee, and make indices opt-in.
      
      * Fix construct_runtime
      
      * Fix last few bits
      
      * Fix tests
      
      * Update trait impls
      
      * Don't hardcode the system event
      
      * Make tests build and fix some stuff.
      
      * Pointlessly bump runtime version
      
      * Fix benchmark
      
      * Another fix
      
      * Whitespace
      
      * Make indices module economically safe
      
      * Migrations for indices.
      
      * Fix
      
      * Whilespace
      
      * Trim defunct migrations
      
      * Remove unused storage item
      
      * More contains_key fixes
      
      * Docs.
      
      * Bump runtime
      
      * Remove unneeded code
      
      * Fix test
      
      * Fix test
      
      * Update frame/balances/src/lib.rs
      
      Co-Authored-By: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      
      * Fix ED logic
      
      * Repatriate reserved logic
      
      * Typo
      
      * Fix typo
      
      * Update frame/system/src/lib.rs
      
      Co-Authored-By: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      
      * Update frame/system/src/lib.rs
      
      Co-Authored-By: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      
      * Last few fixes
      
      * Another fix
      
      * Build fix
      
      Co-authored-by: default avatarBastian Köcher <bkchr@users.noreply.github.com>
      Co-authored-by: default avatarJaco Greeff <jacogr@gmail.com>
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      5b7512e2
  37. Feb 12, 2020