Skip to content
  1. Feb 28, 2023
  2. Feb 27, 2023
    • Bastian Köcher's avatar
      `pallet-treasury`: Ensure we respect `max_amount` for spend across batch calls (#13468) · 6aa4127a
      Bastian Köcher authored
      * `pallet-treasury`: Ensure we respect `max_amount` for spend across batch calls
      
      When calling `spend` the origin defines the `max_amount` of tokens it is allowed to spend. The
      problem is that someone can send a `batch(spend, spend)` to circumvent this restriction as we don't
      check across different calls that the `max_amount` is respected. This pull request fixes this
      behavior by introducing a so-called dispatch context. This dispatch context is created once per
      outer most `dispatch` call. For more information see the docs in this pr. The treasury then uses
      this dispatch context to attach information about already spent funds per `max_amount` (we assume
      that each origin has a different `max_amount` configured). So, a `batch(spend, spend)` is now
      checked to stay inside the allowed spending bounds.
      
      Fixes: https://github.com/paritytech/substrate/issues/13167
      
      * Import `Box` for wasm
      
      * FMT
      6aa4127a
    • Muharem Ismailov's avatar
      constructor for MemberRecord (#13473) · 85a5a5db
      Muharem Ismailov authored
      85a5a5db
    • Davide Galassi's avatar
      Move grandpa crates to consensus folder (#13458) · 40c36c0c
      Davide Galassi authored
      * Move grandpa under consensus dir
      * Rename grandpa folder
      * Finish grandpa renaming
      * Minor tweaks
      * Cargo fmt
      * Adjust path to chain spec
      40c36c0c
  3. Feb 25, 2023
  4. Feb 23, 2023
  5. 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 <[email protected]>
      
      * fix other QED
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      
      * 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 <[email protected]>
      55ff791d
    • Jegor Sidorenko's avatar
      [NFTs] Update attributes with offchain signature (#13390) · af25310e
      Jegor Sidorenko authored
      
      
      * Allow to mint with the pre-signed signatures
      
      * Another try
      
      * WIP: test encoder
      
      * Fix the deposits
      
      * Refactoring + tests + benchmarks
      
      * Add sp-core/runtime-benchmarks
      
      * Remove sp-core from dev deps
      
      * Enable full_crypto for benchmarks
      
      * Typo
      
      * Fix
      
      * Update frame/nfts/src/mock.rs
      
      Co-authored-by: default avatarSquirrel <[email protected]>
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nfts
      
      * Add docs
      
      * Add attributes into the pre-signed object & track the deposit owner for attributes
      
      * Update docs
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nfts
      
      * Add the number of attributes provided to weights
      
      * Support pre-signed attributes
      
      * Update docs
      
      * Fix merge artifacts
      
      * Update docs
      
      * Add more tests
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nfts
      
      * Update frame/nfts/src/types.rs
      
      Co-authored-by: default avatarjoe petrowski <[email protected]>
      
      * Update types.rs
      
      ---------
      
      Co-authored-by: default avatarSquirrel <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarjoe petrowski <[email protected]>
      af25310e
    • Doordashcon's avatar
      permissionless `bond_extra` in nomination pools (#12608) · 35a89957
      Doordashcon authored
      
      
      * create enum
      
      * logic check
      
      * add benchmarks
      
      * -enum
      
      * update
      
      * bond extra other
      
      * update
      
      * update
      
      * update
      
      * cargo fmt
      
      * Permissioned
      
      * update
      
      * cargo fmt
      
      * update
      
      * update index
      
      * doc update
      
      Co-authored-by: default avatarAnkan <[email protected]>
      
      * doc update
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * cargo fmt
      
      * bond_extra auto compound
      
      * bond_extra_other
      
      * Apply suggestions from code review
      
      * Fixes from kian
      
      * updates docs & test
      
      * Update frame/nomination-pools/src/lib.rs
      
      * Update frame/nomination-pools/src/lib.rs
      
      * Update frame/nomination-pools/src/lib.rs
      
      * Update frame/nomination-pools/src/lib.rs
      
      * Update frame/nomination-pools/src/lib.rs
      
      * Update frame/nomination-pools/src/tests.rs
      
      * Update frame/nomination-pools/src/lib.rs
      
      * Update frame/nomination-pools/src/tests.rs
      
      * Update frame/nomination-pools/src/tests.rs
      
      * Update frame/nomination-pools/src/tests.rs
      
      * Update frame/nomination-pools/src/tests.rs
      
      * Update frame/nomination-pools/src/tests.rs
      
      * Update frame/nomination-pools/src/lib.rs
      
      * Update frame/nomination-pools/src/tests.rs
      
      * fixes + fmt
      
      * expand ClaimPermissions + add benchmarks
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nomination_pools
      
      * tidy up claim payout benches
      
      * fix
      
      * + test: claim_payout_other_works
      
      * comments, rename to set_claim_permission
      
      * fix comment
      
      * remove ClaimPermission on leave pool
      
      * fix test
      
      * ".git/.scripts/commands/fmt/fmt.sh"
      
      * + test for ClaimPermissions::remove()
      
      * impl can_bond_extra & can_claim_payout
      
      ---------
      
      Co-authored-by: default avatarAnkan <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarkianenigma <[email protected]>
      Co-authored-by: parity-processbot <>
      Co-authored-by: default avatarRoss Bulat <[email protected]>
      35a89957
  6. Feb 21, 2023
  7. Feb 20, 2023
    • Michal Kucharczyk's avatar
      `BlockId` removal: `runtime-api` refactor (#13255) · 7a101541
      Michal Kucharczyk authored
      
      
      * BlockId removal: refactor of runtime API
      
      It changes the arguments of:
      - `ApiExt` methods:  `has_api`, `has_api_with`, `api_version`
      - `CallApiAt` method: `runtime_version_at`
      from: `BlockId<Block>` to: `Block::Hash`
      
      It also changes the first argument of all generated runtime API calls from: `BlockId<Block>` to: `Block::Hash`
      
      This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)
      
      * BlockId removal: refactor of runtime API - tests
      
      - tests adjusted to new runtime API,
      - some tests migrated from block number to block hash
      
      * benchmarking-cli: BlockId(0) migrated to info().genesis_hash
      
      `runtime_api.call()` now requires the block hash instead of BlockId::Number.
      To access the genesis hash widely used in benchmarking engine the Client
      was constrained to satisfy `sp_blockchain::HeaderBackend<Block>` trait
      which provides `info().genesis_hash`.
      
      * trivial: api.call(BlockId) -> api.call(Hash)
      
      - Migrated all `runtime_api.calls` to use Hash
      - Noteworthy (?):
      -- `validate_transaction_blocking` in transaction pool,
      
      * CallApiAtParams::at changed to Block::Hash
      
      * missed doc updated
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * ".git/.scripts/commands/fmt/fmt.sh"
      
      * BlockId removal: Benchmark::consumed_weight
      
      Little refactor around `Benchmark::consumed_weight`: `BlockId` removed.
      
      * at_hash renamed
      
      * wrong merge fixed
      
      * beefy worker: merged with master
      
      * beefy: tests: missing block problem fixed
      
      * Apply review suggestion
      
      * fix
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: command-bot <>
      7a101541
    • Sasha Gryaznov's avatar
      ac13aaeb
  8. Feb 17, 2023
    • André Silva's avatar
      babe: account for skipped epochs when handling equivocations (#13335) · 64bff452
      André Silva authored
      * babe: account for skipped epochs when handling equivocations
      
      * typos
      
      * babe: enforce epoch index >= session index
      64bff452
    • Adrian Catangiu's avatar
      BEEFY: implement equivocations detection, reporting and slashing (#13121) · c21f292a
      Adrian Catangiu authored
      
      
      * client/beefy: simplify self_vote logic
      
      * client/beefy: migrate to new state version
      
      * client/beefy: detect equivocated votes
      
      * fix typos
      
      * sp-beefy: add equivocation primitives
      
      * client/beefy: refactor vote processing
      
      * fix version migration for new rounds struct
      
      * client/beefy: track equivocations and create proofs
      
      * client/beefy: adjust tests for new voting logic
      
      * sp-beefy: fix commitment ordering and equality
      
      * client/beefy: simplify handle_vote() a bit
      
      * client/beefy: add simple equivocation test
      
      * client/beefy: submit equivocation proof - WIP
      
      * frame/beefy: add equivocation report runtime api - part 1
      
      * frame/beefy: report equivocation logic - part 2
      
      * frame/beefy: add pluggable Equivocation handler - part 3
      
      * frame/beefy: impl ValidateUnsigned for equivocations reporting
      
      * client/beefy: submit report equivocation unsigned extrinsic
      
      * primitives/beefy: fix tests
      
      * frame/beefy: add default weights
      
      * frame/beefy: fix tests
      
      * client/beefy: fix tests
      
      * frame/beefy-mmr: fix tests
      
      * frame/beefy: cross-check session index with equivocation report
      
      * sp-beefy: make test Keyring useable in pallet
      
      * frame/beefy: add basic equivocation test
      
      * frame/beefy: test verify equivocation results in slashing
      
      * frame/beefy: test report_equivocation_old_set
      
      * frame/beefy: add more equivocation tests
      
      * sp-beefy: fix docs
      
      * beefy: simplify equivocations and fix tests
      
      * client/beefy: address review comments
      
      * frame/beefy: add ValidateUnsigned to test/mock runtime
      
      * client/beefy: fixes after merge master
      
      * fix missed merge damage
      
      * client/beefy: add test for reporting equivocations
      
      Also validated there's no unexpected equivocations reported in the
      other tests.
      
      Signed-off-by: default avataracatangiu <[email protected]>
      
      * sp-beefy: move test utils to their own file
      
      * client/beefy: add negative test for equivocation reports
      
      * sp-beefy: move back MmrRootProvider - used in polkadot-service
      
      * impl review suggestions
      
      * client/beefy: add equivocation metrics
      
      ---------
      
      Signed-off-by: default avataracatangiu <[email protected]>
      Co-authored-by: parity-processbot <>
      c21f292a
  9. Feb 16, 2023
  10. Feb 15, 2023
    • Alexander Theißen's avatar
      contracts: Use `proof_size` from benchmarks (#13268) · 1c04ab0f
      Alexander Theißen authored
      
      
      * Avoid reading contract code when it is supplied in the extrinsic
      
      * Remove custom proof size injection from schedule
      
      * Set benchmarks pov_mode to Measure
      
      * Reduce overestimation of code size on re-instrument
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
      
      * Do not override proof size from benchmark
      
      * Do not charge proof size for basic block
      
      * Incrase gas limit for tests
      
      * Fix deletion queue to also use `proof_size`
      
      * Fix tests
      
      * Update frame/contracts/src/schedule.rs
      
      Co-authored-by: default avatarCyrill Leutwiler <[email protected]>
      
      * Fix wrong schedule macro invocations
      
      * Remove stale docs
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
      
      * Handle zero components
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
      
      * Fix instruction weight
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarCyrill Leutwiler <[email protected]>
      1c04ab0f
  11. Feb 14, 2023
    • Sasha Gryaznov's avatar
      [contracts] make `debug_message` execution outcome invariant to node debug logging setting (#13197) · 53b77785
      Sasha Gryaznov authored
      
      
      * update benchmark for seal_debug_message
      
      * add seal_debug_message_per_kb benchmark
      
      * un-fallable debug buffer: silently drops excessive and wrong utf-8 encoded messages
      
      * charge debug_message per byte of the message
      
      * improved benchmark
      
      * cap debug_message
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      
      * fix applied buggy suggestion
      
      * make sure i*1024 < MaxDebugBufferLen
      
      * fix schedule for our non-batched benchmark
      
      * Switch to a `wasmtime` fork with LTO linking failure workaround
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      Co-authored-by: default avatarJan Bujak <[email protected]>
      53b77785
    • Bastian Köcher's avatar
      pallet-timestamp: Remove `ValidAtTimestamp` error variant (#13346) · 4af64eb0
      Bastian Köcher authored
      
      
      * pallet-timestamp: Remove `ValidAtTimestamp` error variant
      
      The error variant wasn't that useful and it was also used wrongly in the code. In the code we
      returned this variant when the `timestamp < minimum`. The problem of this is that we waited on the
      node side some time, but then `set` function rejects the timestamp because of the same check (the
      timestamp in the block stays the same). We ensure that the timestamp isn't drifting too much in the
      future, but waiting for the timestamp to be "valid" would open some attack vector. The consensus
      protocols also compare the slots in the blocks to ensure that there isn't a block from the future
      and in the runtime we then ensure that `slot = timestamp / slot_duration`. So, we can just remove
      this variant and replace it with a new variant `TimeBetweenBlocksTooShort` to not even try importing
      a block which uses a too short delay since the last block.
      
      * Update primitives/timestamp/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Rename to `TooEarly`
      
      * FMT
      
      ---------
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      4af64eb0
    • Vivek Pandya's avatar
      cleanup `<weight></weight>` from docs comments (#13350) · 35e8e137
      Vivek Pandya authored
      * cleanup <weight></weight> from docs comments
      
      * Changes to address review commnets
      
      * Fix CI cargo test --docs
      
      ---------
      
      Co-authored-by: parity-processbot <>
      35e8e137
    • Jegor Sidorenko's avatar
      [NFTs] Offchain mint (#13158) · 3b767e12
      Jegor Sidorenko authored
      
      
      * Allow to mint with the pre-signed signatures
      
      * Another try
      
      * WIP: test encoder
      
      * Fix the deposits
      
      * Refactoring + tests + benchmarks
      
      * Add sp-core/runtime-benchmarks
      
      * Remove sp-core from dev deps
      
      * Enable full_crypto for benchmarks
      
      * Typo
      
      * Fix
      
      * Update frame/nfts/src/mock.rs
      
      Co-authored-by: default avatarSquirrel <[email protected]>
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nfts
      
      * Add docs
      
      * Add attributes into the pre-signed object & track the deposit owner for attributes
      
      * Update docs
      
      * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_nfts
      
      * Add the number of attributes provided to weights
      
      * Apply suggestions
      
      * Remove dead code
      
      * Remove Copy
      
      * Fix docs
      
      * Update frame/nfts/src/lib.rs
      
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      
      * Update frame/nfts/src/lib.rs
      
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      
      ---------
      
      Co-authored-by: default avatarSquirrel <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      3b767e12
  12. Feb 13, 2023
  13. Feb 12, 2023
  14. Feb 09, 2023
    • Roman Useinov's avatar
      [Fix] Try-state feature-gated for BagsList (#13296) · 03e9f43f
      Roman Useinov authored
      
      
      * [Fix] Try-state feature-gated for BagsList
      
      * fix comment
      
      * fix try_state remote-tests
      
      * feature-gate try-state remote test for bags-list
      
      * remove try-state from a migration
      
      * more SortedListProvider fixes
      
      * more fixes
      
      * more fixes to allow do_try_state usage in other crates
      
      * do-try-state for fuzz
      
      * more fixes
      
      * more fixes
      
      * remove feature-flag
      
      * do-try-state
      
      * fix review comments
      
      * Update frame/bags-list/src/mock.rs
      
      Co-authored-by: default avatarAnton <[email protected]>
      
      ---------
      
      Co-authored-by: parity-processbot <>
      Co-authored-by: default avatarAnton <[email protected]>
      03e9f43f
    • Bastian Köcher's avatar
      pallet-scheduler: Ensure we request a preimage (#13340) · 214d1c0c
      Bastian Köcher authored
      * pallet-scheduler: Ensure we request a preimage
      
      The scheduler was not requesting a preimage. When a preimage is requested, a user can deposit it
      without paying any fees.
      
      * Review changes
      214d1c0c
  15. Feb 08, 2023
  16. Feb 06, 2023
  17. Feb 05, 2023
  18. Feb 03, 2023