* grandpa: avoid importing unnecessary justifications
* grandpa: make justification_import_period configurable
* grandpa: keep the first justification
* grandpa: add test for justification import period
* grandpa: fix test
* replace Index by Nonce
* replace Index by Nonce
* replace Index by Nonce
* replace Index by Nonce
* replace Index by Nonce
* wip
* remove index in lieu of nonce
* wip
* remove accountnonce in lieu of nonce
* add minor improvement
* rebase and merge conflicts
* Start
* More work!
* Moar
* More changes
* More fixes
* More worrk
* More fixes
* More fixes to make it compile
* Adds `NoOffchainStorage`
* Pass the extensions
* Small basti making small progress
* Fix merge errors and remove `ExecutionContext`
* Move registration of `ReadRuntimeVersionExt` to `ExecutionExtension`
Instead of registering `ReadRuntimeVersionExt` in `sp-state-machine` it is moved to
`ExecutionExtension` which provides the default extensions.
* Fix compilation
* Register the global extensions inside runtime api instance
* Fixes
* Fix `generate_initial_session_keys` by passing the keystore extension
* Fix the grandpa tests
* Fix more tests
* Fix more tests
* Don't set any heap pages if there isn't an override
* Fix small fallout
* FMT
* Fix tests
* More tests
* Offchain worker custom extensions
* More fixes
* Make offchain tx pool creation reusable
Introduces an `OffchainTransactionPoolFactory` for creating offchain transactions pools that can be
registered in the runtime externalities context. This factory will be required for a later pr to
make the creation of offchain transaction pools easier.
* Fixes
* Fixes
* Set offchain transaction pool in BABE before using it in the runtime
* Add the `offchain_tx_pool` to Grandpa as well
* Fix the nodes
* Print some error when using the old warnings
* Fix merge issues
* Fix compilation
* Rename `babe_link`
* Rename to `offchain_tx_pool_factory`
* Cleanup
* FMT
* Fix benchmark name
* Fix `try-runtime`
* Remove `--execution` CLI args
* Make clippy happy
* Forward bls functions
* Fix docs
* Update UI tests
* Update client/api/src/execution_extensions.rs
Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Koute <koute@users.noreply.github.com>
* Update client/cli/src/params/import_params.rs
Co-authored-by: Koute <koute@users.noreply.github.com>
* Update client/api/src/execution_extensions.rs
Co-authored-by: Koute <koute@users.noreply.github.com>
* Pass the offchain storage to the MMR RPC
* Update client/api/src/execution_extensions.rs
Co-authored-by: Sebastian Kunert <skunert49@gmail.com>
* Review comments
* Fixes
---------
Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
Co-authored-by: Koute <koute@users.noreply.github.com>
Co-authored-by: Sebastian Kunert <skunert49@gmail.com>
The native runtime will be removed in the near future and thus this function will not be required
anymore.
\# Code changes
Downstream users just need to remove `native_runtime_version` from their implementation of the
`SubstrateCli` trait.
* frame-benchmarking-cli: Remove native dispatch requirement
No need for this, we can just use the `WasmExecutor` directly.
* Fixes
* Pass benchmarking host functions
* Ensure we can pass custom host functions
* frame-metadata: Point to unreleased branch
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Generalize outer enum generation for events and errors
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Remove individual generation of outer enum events
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* primitives/traits: Add marker trait for outer runtime enums
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Derive Clone, PartialEq, Eq for RuntimeEvents only
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/pallet: Include `#[pallet::error]` enum into pallet parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata-ir: Include call, event, error types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/metadata: Include outer enum types in V15 metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/tests: Ensure `RuntimeError` includes `#[pallet::error]` parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Document the reserved name for `RuntimeError`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Use self-generated `RuntimeEvent` for `GetRuntimeOuterEnumTypes`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/ui: Fix UI tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Remove unused system path
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/ui: Unexpected field and reintroduce frame_system::Config for RuntimeCall
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Remove `GetRuntimeOuterEnumTypes` marker trait
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Remove `;` from macro
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update frame-metadata to point to unreleased branch
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Rename error_enum_ty to module_error_enum_ty
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update module_error_ty documentation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Implement from_dispatch_error
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Adjust test to ModuleErrorType
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Improve documentation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/tests: Check `from_dispatch_error` impl
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update frame-metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Remove the module_error_ty
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Apply fmt
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert unneeded parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "Revert unneeded parts"
This reverts commit b94bbd16078a025775a48da1095edec1705e6a4d.
Revert "Apply fmt"
This reverts commit 9b1c3e7b4ef27d32e10b35054a99916067e0397b.
Revert "Remove the module_error_ty"
This reverts commit 98de5b24653f9f9ec6ee842b749401b18a01758a.
* Update frame-metadata to origin/master
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Add outerEnums to the metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Add tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Keep backwards compatibility for explicit pallet parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Rename tt_error_part to be more generic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Increase recursion_limit to 1k
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Rename `fully_expanded` to `expanded`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Improve documentation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust UI tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update UI tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update undefined_validate_unsigned_part.stderr UI test
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust yet again
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Optimise macro expansions
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Use latest frame-metadata and rename `moduleErrorType` to `RuntimeError`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix comment
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Apply fmt
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update frame/support/procedural/src/construct_runtime/parse.rs
Co-authored-by: Bastian Köcher <git@kchr.de>
* Update frame/support/procedural/src/construct_runtime/parse.rs
Co-authored-by: Bastian Köcher <git@kchr.de>
* Update frame-metadata PR
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Remove `expanded` from error messages and fix typo
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Move docs to the function
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* ui: Use the intermed syntax for pallet parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update frame-metadata with latest release
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Address feedback for `from_dispatch_error`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
* New Society
* More logic drafting
* More work
* Building
* Some tests
* Fixes
* Improvements to the voting process
* More tests
* Test number 20
* Tests
* 30 tests
* Another test]
* All tests enabled
* Minor stuff
* generate_storage_alias: Rewrite as proc macro attribute
This rewrites the `generate_storage_alias!` declarative macro as proc-macro attribute. While doing
this the name is changed to `storage_alias`. The prefix can now also be the name of a pallet. This
makes storage aliases work in migrations for all kind of chains and not just for the ones that use
predefined prefixes.
* Maintenance operations don't pay fee
* Fix compilation and FMT
* Moare fixes
* Migrations
* Fix tests and add migration testing
* Introduce lazy-cleanup and avoid unbounded prefix removal
* Fixes
* Fixes
* [WIP][Society] Adding benchmarking to the v2. (#11776)
* [Society] Adding benchmarking to the v2.
* [Society] Code review.
* [Society] Better code.
* Using clear() + clear_prefix() and adding more tests.
* Benchmarking again...
* Fix Cargo
* Fixes
* Fixes
* Spelling
* Fix benchmarks
* Another fix
* Remove println
---------
Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Artur Gontijo <arturgontijo@users.noreply.github.com>
* [frame/im-online] remove `external_addresses` from heartbeats
Users should use DHT for discovering new nodes. The reason for adding external addresses was
unstable work of authority discovery (see https://github.com/paritytech/substrate/issues/2719),
which is now stable. Hence we can safely remove `external_addresses`.
Refs https://github.com/paritytech/polkadot/issues/7181
* remove unused import
* run benchmark
* remove external_addresses from offchain NetworkState
* add missing fn to TestNetwork
* Revert "run benchmark"
This reverts commit a282042c2d6bf8bae2c383f6e2699c3fe2970a3d.
* update weights
* address @bkchr comments
* remove duplicate fn
* cleanup benchmarking.rs
* fix executor tests
* remove peer_id from hearbeat as well
https://github.com/paritytech/substrate/pull/14251#discussion_r1210887220
* remove MaxPeerDataEncodingSize
* change storage value type to `()`
https://github.com/paritytech/substrate/pull/14251#discussion_r1214268931
* scaffold storage migration
* no need to check the type actually
* remove unnecessary types from v0 mod
* add a test for migration
* expose Config types
+ pre_upgrade and post_upgrade working fn
* fix test
* replace dummy type with ConstU32
* add some comments to migration test
* fix comment
* respond to @bkchr comments
* use BoundedOpaqueNetworkState::default
intead of using default for each field
* Add pallet dex
* Fmt
* Add RPC endpoint
* Fix RPC
* Fix the build
* Some more fixes
* Add a method to topup pallet's account
* Add support for multi-currency into Uniques
* Fix the build
* Add [transactional] + setup() + fix balances
* Improve tests
* Fix price quotation
* Code clean up
* Validate swaps
* Fmt
* Update README
* add test
* mint LP assets in a different instance
* remove transactional as now the default
AssetsLocal renamed to Assets
* merge master
* Revert "Merge master"
* fix tests post merge.
* attempt to set create origin
* Internally allocate lp asset id.
* Simplify
* Bump to be in line
* additional bumps to make compile
* fix compile
* less bounds
* use fungible crates
* multiasset enum
* only allow native currency pairs
* added slippage tests
* transfer into separate method
(Also fee not set in 2 places now.)
Added test where lp and user are different users.
* Add benchmarks + weights
* Typos
* Clean up
* More tests,
split error into two because it wasn't clear which parameter.
renamed liquidity to lp_tokens_minted or lp_tokens_burned in events.
* tighten up naming
* Default, zero, square root traits not needed
Also let's not force people to be compact
* add keep-alive param
* add insufficient liquidity test
* Fix quote() to support u64
* Avoid recording balances twice
* cargo fmt
* Didn't mean to change error type
* temp
* Less
* Rework get_amount_in/get_amount_out
* Convert other places
* Rework the last piece
* Typo
* Fix benchmarks
* use hash trait
* Extract a native asset check into the runtime setting
* Don't set the metadata
* Remove spec file
* Enable multi-assets swaps by default
* Refactor conversion into u128
* Add path param to swap_token_for_exact_tokens
* Fix typo + a bit of refactoring
* Implement path param for swap_exact_tokens_for_tokens()
* Deref
* Minor fixes
* Add test with sensible scale values
* Use .windows()
* Fix benchmarks
* update docs
* Fix everything :)
* Chore
* Revert
* Chore
* prev way of creating sub accounts lead to collisions
* Update frame/dex/src/lib.rs
Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>
* Update frame/dex/src/lib.rs
Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>
* Chore
* Fmt fix on Uniques
* add call_index
bring code up to date with latest master
* revert readme changes
* add cr
* revert uniques changes
* reducing noise
* no need for deadline (#12990)
(there's generic transaction deadline functionality already)
* fix kitchen sink (#12991)
* fix kitchen sink
* Only the dex can mint lp_tokens
* add BenchmarkHelper for second instance (#12998)
* update mock to latest master
* less indirections (#13012)
* remove dex PR's custom RPC (#13050)
* As we have state_call we don't need a custom RPC
* fix docs
* no longer a need to upgrade rpc version (#13053)
* add CallbackHadle
* quote bugfix (#13191)
quote was giving same price in both directions as we were inverting needlessly.
* merging in dex specific changes due to pay by dex
* update lock file
* merging in kitchen sink changes
* Add get_reserves() api method
* Partial updating of the benchmarks
* Fix tests
* clippy
* Temp fix weights
* Fix benchmarks
* Add pool setup fee
* Money upfront
* Address some comments
* Use u128 in mock
* Fix benchmarks
* Change error message
* Update comments
* Change error names
* Implement PartialOrd for NativeOrAssetId
* add note
* Update errors
* More tests for assets sorting
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_dex
* Change the way we generate pool accounts
* Improve the liquidity removal method
* Extract MintMinLiquidity to config, rework all tests
* Add comments
* Validate provided amount
* Rename to asset-conversion
* Validate ED
* Improve handling the ED related errors
* typos
* Try to fix benchmarks
* Another try
* Another day, another try
* Fix benchmarks
* Expose fee related params
* Validate token's minimal amount the same way as ED
* fix typo
* Use longer path for swaps in benchmarks
* need to ref sp_std's vec.
* Remove From<u32> requirement when benchmarking
* impl BenchmarkHelper for ()
* only for runtime benchmarks
* MultiLocation: !MaybeDisplay
Looks like we might not need this bound from initial testing.
* Update frame/asset-conversion/src/lib.rs
Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>
* Update frame/asset-conversion/src/lib.rs
Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>
* Add documentation links
* add collision test
* Revert "[Enhancement] Throw an error when there are too many pallets (#13763)"
This reverts commit cc3152bc2f.
* [Enhancement] Throw an error when there are too many pallets (#13763)
* [Enhancement] Throw an error when there are too many pallets
* fix ui test
* fix PR comments
* Update frame/support/procedural/src/construct_runtime/mod.rs
Co-authored-by: Bastian Köcher <git@kchr.de>
* Update frame/support/procedural/src/construct_runtime/mod.rs
Co-authored-by: Bastian Köcher <git@kchr.de>
* ".git/.scripts/commands/fmt/fmt.sh"
---------
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: command-bot <>
* add benchmark helper
+ doc fix
* cargo fmt
* Fix adding liquidity to non-empty pool
* Fix compilation error
* Fix params ordering issue
* additional docs
* The swap path elements should be unique
* Fix account collision
* Validate all the pool in a swap path are unique
* Change the way we add liquidity to empty pools
* Improve docs
* remove unnessisary Display impl
* cargo fmt
* remove unused imports
* Make api consistent
* Chore
* Touch the pool account so it could hold the pair tokens
* Check the balance before touching the pool's account
* Introduce liquidity provision fee
* Touch the pool acc one more time
* Apply suggestions from code review
Co-authored-by: Sam Johnson <sam@durosoft.com>
* Update frame/asset-conversion/README.md
Co-authored-by: Sam Johnson <sam@durosoft.com>
* Use ContainsPair instead of the balance checker
* Remove old Currency trait
* Add liquidity withdrawal fee
* Update docs
* Use 0 withdrawal fee in mock
* Rename vars
* asset id not clone
* fix: shadow var was being used
* correct tests
* fix benches
* merge master
* neater
---------
Co-authored-by: Jegor Sidorenko <jegor@parity.io>
Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>
Co-authored-by: parity-processbot <>
Co-authored-by: Roman Useinov <roman.useinov@gmail.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Sam Johnson <sam@durosoft.com>
* HoldReason: Improve usage
`HoldReason` was switched recently to use the `composite_enum` attribute that will merge the enums
from all pallets in the runtime to `RuntimeHoldReason`. `pallet-nis` was still requiring that the
variant was passed as constant to call `hold`. The proper implementation is to use the `HoldReason`
from inside the pallet directly when calling `hold`. This is done by adding a `RuntimeHoldReason` as
type to the `Config` trait and requiring that `Currency` is using the same reason. Besides that the
pr changes the name `HoldIdentifier` in `pallet_balances::Config` to `RuntimeHoldReason`.
* Update frame/nis/src/lib.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* Review comment
* Fixes
---------
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* Prepare `sc-network` for `ProtocolController`/`NotificationService`
The upcoming notification protocol refactoring requires that protocols
are able to communicate with `sc-network` over unique and direct links.
This means that `sc-network` side of the link has to be created before
`sc-network` is initialized and that it is allowed to consume the object
as the receiver half of the link may not implement `Clone`.
Remove request-response and notification protocols from `NetworkConfiguration`
and create a new object that contains the configurations of these protocols
and which is consumable by `sc-network`. This is needed needed because, e.g.,
the receiver half of `NotificationService` is not clonable so `sc-network`
must consume it when it's initializing the protocols in `Notifications`.
Similar principe applies to `PeerStore`/`ProtocolController`: as per current
design, protocols are created before the network so `Protocol` cannot be
the one creating the `PeerStore` object. `FullNetworkConfiguration` will be
used to store the objects that `sc-network` will use to communicate with
protocols and it will also allow protocols to allocate handles so they
can directly communicate with `sc-network`.
* Fixes
* Update client/service/src/builder.rs
Co-authored-by: Dmitry Markin <dmitry@markin.tech>
* Updates
* Doc updates + cargo-fmt
---------
Co-authored-by: Dmitry Markin <dmitry@markin.tech>
* contracts: add events to ContractResult
* contracts: add encoded events to ContractResult
* contracts: add generic Event to ContractResult
* contracts: test bare_call events
* contracts: update bare_call test name
* contracts: add better comments to dry run events
* contracts: fix pallet contracts primitives implementation
* contracts: add EventRecord generic to ContractInstantiateResult
* contracts: make event collection optional
* contracts: impreved notes on `collect_events`
* contracts: update benchmarking calls
* contracts: change bare_call and bare_instantiate to accept enums instead of bools
* contracts: add partial eq to new enums
* contracts: improve comments
* contracts: improve comments
* contracts: fix bare_call benchmarking
* contracts: fix bare call and instantiate in impl_runtime_apis
* contracts: add api versioning to new ContractsApi functions
* contracts: modify api versioning to new ContractsApi functions
* contracts: create new contracts api trait
* contracts: clean up code
* contracts: remove the contract results with events
* contracts: undo contracts api v3
* contracts: remove commented out code
* contracts: add new test bare call result does not return events
* contracts: add code review improvements
* contracts: remove type imports
* contracts: minor code review improvements
* added [unstable][seal2] call()
* updated test to cover new seal_call proof_limit
* docs updated
* add [seal2][unstable] instantiate() and test
* add [seal2][unstable] weight_to_fee() + docs and test
* add [seal2][unstable] gas_left() + docs and test
* update benchmarks
* add DefaultDepositLimit to pallet Config
* specify deposit limit for nested call
add test for nested call deposit limit
save: separate deposit limit for nested calls
* specify deposit limit for nested instantiate
save: works with test
cleaned up debugging outputs
* update benchmarks
* added missing fixtures
* fix benches
* pass explicit deposit limit to storage bench
* explicit deposit limit for another set_storage bench
* add more deposit limit for storage benches
* moving to simplified benchmarks
* moved to simplified benchmarks
* fix seal_weight_to_fee bench
* fix seal_instantiate benchmark
* doc typo fix
* default dl for benchmarking
more dl for tests
dl for tests to max
deposit_limit fix in instantiate bench
fix instantiate bench
fix instantiate benchmark
fix instantiate bench again
remove dbg
fix seal bench again
fixing it still
seal_instantiate zero deposit
less runs to check if deposit enough
try
try 2
try 3
try 4
* max_runtime_mem to Schedule limits
* add default deposit limit fallback check to test
* weight params renaming
* fmt
* Update frame/contracts/src/benchmarking/mod.rs
Co-authored-by: PG Herveou <pgherveou@gmail.com>
* prettify inputs in tests
* typestate param refactored
---------
Co-authored-by: PG Herveou <pgherveou@gmail.com>