Commit Graph
100 Commits
Author SHA1 Message Date
Keith YeungandFrancisco Aguirre 3f5edc52b2 Use safe math when pruning statuses (#1835)
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com>
2023-10-10 17:32:11 +02:00
688a4e4126 XCM: Replace council XCM origin with general admin (#7633)
* XCM: Replace council XCM origin with general admin

* Fixes

* Fixes

* Update runtime/polkadot/src/xcm_config.rs

Co-authored-by: ordian <write@reusable.software>

* ".git/.scripts/commands/fmt/fmt.sh"

---------

Co-authored-by: ordian <write@reusable.software>
Co-authored-by: command-bot <>
2023-08-18 05:15:35 +00:00
Keith Yeungandparity-processbot e9c6c72f5a XCM: Rename Instruction instructions to Command instructions (#7593)
Co-authored-by: parity-processbot <>
2023-08-14 21:30:12 +00:00
Keith Yeung 0f90a667bd Document non-uniqueness of SetTopic IDs (#7579)
* Document non-uniqueness of SetTopic IDs

* More comments on WithUniqueTopic
2023-08-07 16:13:36 +00:00
Keith Yeungandparity-processbot 9e31bcdc00 [XCM] Make NetworkId and Junction versioned (#7376)
* [XCM] Make NetworkId and Junction versioned

* Fixes

---------

Co-authored-by: parity-processbot <>
2023-06-15 18:22:35 +00:00
f2fe05a757 Implement AliasOrigin processing in XCVM (#7245)
* Implement AliasOrigin processing in XCVM

* add builder types and first test

* switch to more general builder types

* clone target for RemovePrefixAccountId32

* change builder types

* change AliasForeignAccountId32 and add test for AliasCase

* add Aliasers type to xcm configs

* add benchmark

* benchmark fix

* add benchmark function for runtimes

* fix alias_origin result types

* fix benchmark test

* add runtime-benchmarks feature in pallet-xcm-benchmarks

* fmt

* remove AliasCase, add test and fmt

* address feedback

* ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic

* ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::generic

* ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::generic

* address feedback

* lock

* ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic

* ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::generic

* ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::generic

* change doc

* fmt

---------

Co-authored-by: Just van Stam <just.van.stam@gmail.com>
Co-authored-by: Just van Stam <vstam1@users.noreply.github.com>
Co-authored-by: command-bot <>
2023-06-05 14:39:01 +00:00
Keith Yeung da24214174 Emit events related to asset mutations (#14099)
* Emit events related to asset mutations

* Fixes

* Improve unit tests

* cargo fmt
2023-05-09 12:28:58 +00:00
Keith Yeungandparity-processbot b441d05dac Companion for paritytech/polkadot#7098 (#2469)
* Companion for paritytech/polkadot#7098

* Fixes

* Add missing benchmarked function

* Fix typo

* update lockfile for {"polkadot", "substrate"}

---------

Co-authored-by: parity-processbot <>
2023-04-27 10:48:22 +00:00
Keith Yeungandcommand-bot d20e3c1145 XCM: Implement a blocking barrier (#7098)
* Move XCM matcher to xcm-builder

* Use ProcessMessageError as the error type in MatchXcm and ShouldExecute

* Implement a blocking barrier

* Fixes

* Add benchmarking for force_suspension

* ".git/.scripts/commands/bench/bench.sh" runtime westend pallet_xcm

* ".git/.scripts/commands/bench/bench.sh" runtime rococo pallet_xcm

* ".git/.scripts/commands/bench/bench.sh" runtime kusama pallet_xcm

* ".git/.scripts/commands/bench/bench.sh" runtime polkadot pallet_xcm

* ".git/.scripts/commands/bench/bench.sh" runtime westend pallet_xcm

* ".git/.scripts/commands/bench/bench.sh" runtime rococo pallet_xcm

---------

Co-authored-by: command-bot <>
2023-04-27 10:22:39 +00:00
Keith Yeung a8d80532ce Revert default proof size back to 64 KB (#7115)
* Revert default proof size back to 64 KB

* Fix test expectations

* Enhance unit test

* cargo fmt

* Fix comment
2023-04-24 12:24:44 +00:00
Keith Yeung 8b0b86651f Reduce base proof size weight component to zero (#7081)
* Reduce base proof size weight component to 1KiB

* Create TempFixedXcmWeight and set PoV weight to 0

* Set DEFAULT_PROOF_SIZE to 0

* Fix comment

* Update test expectations

* Fix comment
2023-04-21 14:16:50 +00:00
023d459857 XCM: Properly set the pricing for the DMP router (#6843)
* Properly set the pricing for the DMP router

* Publicize price types

* Use FixedU128 instead of Percent

* Add sp-arithmetic as a dependency for rococo runtime

* Add sp-arithmetic as a dependency to all runtimes

* Remove duplicate import

* Add missing import

* Fix tests

* Create an appropriate QueueDownwardMessageError variant

* Recalculate delivery fee factor based on past queue sizes

* Remove unused error variant

* Fixes

* Fixes

* Remove unused imports

* Rewrite fee factor update mechanism

* Remove unused imports

* Fixes

* Update runtime/parachains/src/dmp.rs

Co-authored-by: Squirrel <gilescope@gmail.com>

* Make DeliveryFeeFactor be a StorageMap keyed on ParaIds

* Fixes

* introduce limit for fee increase on dmp queue

* add message_size based fee factor to increment_fee_factor

* change message_size fee rate to correct value

* fix div by 0 error

* bind limit to variable

* fix message_size_factor and add DeliveryFeeFactor test

* add test for ExponentialPrice implementation

* make test formula based

* make delivery fee factor test formula based

* add max value test for DeliveryFeeFactor and move limit to config

* change threshold back to dynamic value and fix tests

* fmt

* suggested changes and fmt

* small stylistic change

* fmt

* change to tokenlocation

* small fixes

* fmt

* remove sp_arithmetic dependency

* Update runtime/parachains/src/dmp.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

---------

Co-authored-by: Squirrel <gilescope@gmail.com>
Co-authored-by: Just van Stam <just.van.stam@gmail.com>
Co-authored-by: Just van Stam <vstam1@users.noreply.github.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
2023-04-20 11:04:33 +00:00
Keith Yeung 3df25a1fd7 Use RuntimeHoldReason for the NIS pallet HoldReason (#7017)
* Use RuntimeHoldReason for the NIS pallet HoldReason

* Update substrate

* Fixes

* Fixes

* Fixes

* Fixes

* Move encoding test to tests.rs
2023-04-13 10:00:26 +02:00
Keith Yeung 38f3b053d7 Add HoldReason to the NIS pallet (#13823)
* Add HoldReason to the NIS pallet

* Rename composable_enum to composite_enum

* Add encoding test

* Add more doc comments
2023-04-06 06:24:45 +00:00
Keith Yeung 1a55f961c6 Implement #[pallet::composite_enum] (#13722)
* Implement #[pallet::hold_reason]

* Appease clippy

* cargo fmt

* Update test expectations

* Update test expectations

* Support composite_enum attribute instead

* Update test expectations

* Change hold_reason to composite_enum

* Add UI test for unsupported identifier when using composite_enum

* Fix comment

* Add documentation for pallet::composable_enum

* More docs

* cargo fmt
2023-04-04 12:28:46 +00:00
Keith Yeung ce03148b28 XCM: Use matcher API in DenyReserveAssetTransferToRelay (#2290)
* Use matcher API in DenyReserveAssetTransferToRelay

* Fixes

* Fixes

* Fixes

* cargo fmt
2023-03-10 13:44:43 +00:00
Keith Yeung d29951e2f8 Introduce XCM matcher for writing barriers (#6756)
* Introduce XCM matcher for writing barriers

* Fix compilation

* cargo fmt

* Add more doc comments

* Add mod doc comment

* More doc comments

* Add tests and fix logic

* Remove redundant syntax

* Add more doc comments

* Add more doc comments

* Add more doc comments
2023-03-04 05:37:56 +00:00
Keith YeungandGavin Wood 56f6b39da8 XCM: Limit the max number of assets weighable in MultiAssets (#6786)
* Limit the max number of assets weighable in MultiAssets

* Apply suggestions from code review

Co-authored-by: Gavin Wood <gavin@parity.io>

* Add tests

* cargo fmt

* Include proof size weight in tests

* Add comments

---------

Co-authored-by: Gavin Wood <gavin@parity.io>
2023-02-28 10:12:12 +01:00
Keith Yeung 3df2893bae Ensure max_weight is assigned properly in AllowTopPaidExecutionFrom (#6787) 2023-02-25 16:37:56 +01:00
Keith Yeung 7619fea80f Remove BoundedVec half-impls in xcm (#6636)
* Replace sp-core dependency with more primitive crates

* Remove BoundedVec half-impls in xcm

* Fixes

* Bump bounded-collections

* Address review comments

* Bump bounded-collections

* Fix benchmarks

* Fixes

* Fixes

* cargo fmt

* Fix tests

* Update url

* Bump url to 2.3.1

* Bump anyhow

* Use bounded-collections in pallet-xcm

* Update substrate
2023-02-09 02:42:59 +00:00
Keith Yeung c653c34070 Remove in-tree bounded types and use bounded-collections crate (#13243)
* Remove in-tree bounded types and use bounded-collections crate

* Fixes

* Bump bounded-collections version

* cargo fmt

* Bump bounded-collections

* Only export non-bounded types at the top level

* Fixes

* Bump bounded-collections
2023-02-03 15:32:55 +00:00
Keith Yeung 1790d0ae36 Bump parity-scale-codec to 3.3.0 (#6666) 2023-02-03 14:03:38 +00:00
Keith Yeung c26a7532c9 XCM: Add HRMP to SafeCallFilter (#6606)
* XCM: Add HRMP to SafeCallFilter

* Whitelist several paras_registrar calls
2023-01-23 22:19:45 +00:00
Keith Yeungandparity-processbot 6f6bfc312c Companion for paritytech/polkadot#6578 (#2112)
* Add ExpectTransactStatus benchmarking

* cargo fmt

* update lockfile for {"polkadot", "substrate"}

Co-authored-by: parity-processbot <>
2023-01-19 08:43:15 +00:00
Keith Yeung 9c5b161f08 Add runtime-benchmarks feature to test client and test service (#6566) 2023-01-17 17:22:27 +09:00
Keith Yeungandparity-processbot 8979aaa9d0 Companion for paritytech/substrate#12868 (#1970)
* Replace WEIGHT_PER_* with WEIGHT_REF_TIME_PER_*

* Fixes

* Fixes

* update lockfile for {"substrate", "polkadot"}

Co-authored-by: parity-processbot <>
2022-12-08 17:36:30 +00:00
Keith Yeung 6f666a07b4 Companion for paritytech/substrate#12868 (#6406)
* Replace WEIGHT_PER_* with WEIGHT_REF_TIME_PER_*

* cargo fmt

* Update substrate
2022-12-08 16:56:37 +00:00
Keith Yeungandcommand-bot 51db8c77a7 Introduce sensible weight constants (#12868)
* Introduce sensible weight constants

* cargo fmt

* Remove unused import

* Add missing import

* ".git/.scripts/bench-bot.sh" pallet dev pallet_lottery

Co-authored-by: command-bot <>
2022-12-09 01:18:51 +09:00
Keith Yeung 7ad763f9bd Fix a few migration issues with 2D weights (#1755)
* Give a max proof size to DMP individual weight processing during migration

* Fix a few migration issues with 2D weights

* Update substrate

* Fixes

* cargo fmt

* Re-add v1 migration

* Set DEFAULT_POV_SIZE to 64 KB

* Use Weight::from_parts

* Update Polkadot

* Fixes
2022-10-24 15:03:02 +00:00
Keith YeungandOliver Tale-Yazdi 5cbb6b4c43 Migrate Weights properly to v2 (#1722)
* Migrate Weights properly to v2

* Add missing on_runtime_upgrade implementation

* Fix benchmarks

* Apply suggestions from code review

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* cargo fmt

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2022-10-11 16:36:03 +00:00
Keith Yeung fbdfa84cd7 Rename from_components to from_parts (#12473)
* Rename `from_components` to `from_parts`

* Fixes

* Spelling
2022-10-11 16:35:54 +00:00
Keith YeungandOliver Tale-Yazdi 42c043d7f4 Properly migrate weights to v2 (#6091)
* Create migration for config pallet

* Use XcmWeight in XCM pallet extrinsics

* Link to PR in doc comment

* cargo fmt

* Fix tests

* Fix tests

* Remove unused import

* Update runtime/parachains/src/configuration/migration.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add missing on_runtime_upgrade implementation

* Use new migration API

* cargo fmt

* Fix log message

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2022-10-05 09:47:15 +00:00
Keith Yeung f64fccdd6c Remove unnecessary Clone trait bounds on CountedStorageMap (#12402)
* Remove unnecessary Clone trait bounds on CountedStorageMap

* cargo fmt
2022-10-03 15:50:00 +00:00
Keith Yeung af579524ac Carry over where clauses defined in Config to Call and Hook (#12388) 2022-09-30 03:14:13 +00:00
Keith Yeung a4fb1d7096 Properly set the max proof size weight on defaults and tests (#12383)
* Properly set the max proof size weight on defaults and tests

* cargo fmt

* Set proper max proof size for contracts pallet tests

* Properly set max proof size for node

* Properly set max proof size for frame system mock

* Update test expectations

* Update test expectations

* Properly set max proof size for balances mock

* Update test expectations

* Update test expectations

* Properly set max proof size for democracy mock

* Properly set max proof size for scheduler mock

* Properly set max proof size for fast unstake mock

* Properly set max proof size for tx payment mock

* Properly set max proof size for elections phragmen mock

* Properly set max proof size for node template
2022-09-29 15:48:10 +00:00
0327258566 Add storage size component to weights (#12277)
* Add storage size component to weights

* Rename storage_size to proof_size

* Update primitives/weights/src/weight_v2.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fixes

* cargo fmt

* Implement custom Decode and CompactAs

* Add missing import

* Fixes

* Remove CompactAs implementation

* Properly migrate from 1D weight

* Remove #[pallet::compact] from Weight parameters

* More #[pallet::compact] removals

* Add unit tests

* Set appropriate default block proof size

* cargo fmt

* Remove nonsensical weight constant

* Test only for the reference time weight in frame_system::limits

* Only check for reference time weight on idle

* Use destructuring syntax

* Update test expectations

* Fixes

* Fixes

* Fixes

* Correctly migrate from 1D weights

* cargo fmt

* Migrate using extra extrinsics instead of custom Decode

* Fixes

* Silence dispatch call warnings that were previously allowed

* Fix gas_left test

* Use OldWeight instead of u64

* Fixes

* Only check for reference time weight in election provider

* Fix test expectations

* Fix test expectations

* Use only reference time weight in grandpa test

* Use only reference time weight in examples test

* Use only reference time weight in examples test

* Fix test expectations

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
2022-09-28 10:21:53 +00:00
2072bdf777 Companion for paritytech/substrate#12219 (#1610)
* Remove CanAuthorWith trait

CanAuthotWith trait removed. Also all dependencies, parameters, type
paramers were removed. This is related to removal of native runtime.

* Companion for paritytech/substrate#12219

* Fixes

* polkadot-runtime-common updated

cargo update -p polkadot-runtime-common

* warning fixed

* Update cid

* update lockfile for {"polkadot", "substrate"}

* Update substrate

* update lockfile for {"polkadot", "substrate"}

* Update polkadot

* Fix tests

* 🤦

Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
Co-authored-by: parity-processbot <>
Co-authored-by: Bastian Köcher <info@kchr.de>
2022-09-14 07:59:03 +00:00
Keith Yeungandparity-processbot a2c6536f77 Companion for paritytech/substrate#12219 (#5987)
* Companion for paritytech/substrate#12219

* Fixes

* update lockfile for {"substrate"}

* Fixes

* cargo fmt

Co-authored-by: parity-processbot <>
2022-09-13 15:48:17 +00:00
30e7b1e8cd Create sp-weights crate to store weight primitives (#12219)
* Create sp-weights crate to store weight primitives

* Fix templates

* Fix templates

* Fixes

* Fixes

* cargo fmt

* Fixes

* Fixes

* Use deprecated type alias instead of deprecated unit types

* Use deprecated subtraits instead of deprecated hollow new traits

* Fixes

* Allow deprecation in macro expansion

* Add missing where clause during call macro expansion

* cargo fmt

* Fixes

* cargo fmt

* Fixes

* Fixes

* Fixes

* Fixes

* Move FRAME-specific weight files back to frame_support

* Fixes

* Update frame/support/src/dispatch.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/support/src/dispatch.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/support/src/dispatch.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Add missing header

* Rewrite module docs

* Fixes

* Fixes

* Fixes

* Fixes

* cargo fmt

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
2022-09-13 13:23:44 +00:00
Keith Yeungandparity-processbot 11b18e89c6 Companion for paritytech/substrate#12183 (#1601)
* Companion for paritytech/substrate#12183

* Fixes

* Update pallets/xcmp-queue/src/lib.rs

* Update pallets/xcmp-queue/src/lib.rs

* update lockfile for {"substrate", "polkadot"}

Co-authored-by: parity-processbot <>
2022-09-08 05:29:53 +00:00
ef3b001b4e Companion for paritytech/substrate#12183 (#5971)
* Companion for paritytech/substrate#12183

* Fixes

* Fixes

* Fixes

* cargo fmt

* Fixes

* Fixes

* Fixes

* cargo fmt

* Update runtime/parachains/src/paras_inherent/mod.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* update lockfile for {"substrate"}

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: parity-processbot <>
2022-09-08 05:05:03 +00:00
6ce4d45175 Remove Ord impl for Weights V2 and add comparison fns (#12183)
* Remove Ord impl for Weights V2 and add comparison fns

* Remove TODO

* Update frame/multisig/src/lib.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/election-provider-multi-phase/src/unsigned.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Remove unused import

* cargo fmt

* Fix tests

* Fix more tests

* cargo fmt

* Fix more tests

* Update frame/contracts/src/wasm/mod.rs

Co-authored-by: Alexander Theißen <alex.theissen@me.com>

* Update weight benchmarking templates

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
2022-09-08 04:22:41 +00:00
Keith Yeung 99d8111c67 Move Get and bounded types to sp-core (#12203)
* Move Get and bounded types to sp-core

* Fixes

* cargo fmt

* Fixes
2022-09-07 15:41:45 +00:00
Keith Yeungparitytech-ciparity-processbot
36e721bf2a Companion for paritytech/substrate#12157 (#1590)
* Remove RefTimeWeight

* [ci] Apply cargo-fmt

* update lockfile for {"substrate", "polkadot"}

Co-authored-by: paritytech-ci <paritytech-ci@parity.io>
Co-authored-by: parity-processbot <>
2022-09-02 19:36:55 +00:00
Keith Yeungandparity-processbot 41eff346cb Companion of paritytech/substrate#12157 (#5964)
* Remove RefTimeWeight

* Fixes

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-09-02 19:12:06 +00:00
Keith Yeung 948af11977 Allow construct_runtime to take cfg attributes for pallets (#11818)
* Allow construct_runtime to take cfg attributes for pallets

* cargo fmt

* Remove commented out code

* Fixes

* cargo fmt

* Remove inaccurate comments

* Fix typo

* Properly reverse pallets

* Fixes

* cargo fmt

* Add missing newlines
2022-08-25 08:56:18 +00:00
Keith Yeungandparity-processbot edc8f7b409 Implement ResultQuery (#11257)
* Implement ResultQuery

* Fix test expectations

* Add more tests

* Fix test expectations

* Clean up some names

* Silence warnings

* Specify error type when supplying error type to ResultQuery

* cargo fmt

* Add support for type parameters in parameter_types macro

* Reduce deeply indented code

* Fixes

* Update test expectation

* Rewrite and document formula for calculating max storage size

* More docs

* cargo fmt

* formatting

Co-authored-by: parity-processbot <>
2022-08-24 17:47:08 +00:00
Keith Yeung d318a13b31 Add and implement MaxEncodedLen to token traits (#11945)
* Add and implement MaxEncodedLen bounds to token traits

* cargo fmt

* Update UI test expectations
2022-08-01 14:24:22 +00:00
Keith Yeung 939c31bfde Implement Serialize/Deserialize on WeakBoundedVec (#11713)
* Implement Serialize/Deserialize on WeakBoundedVec

* cargo fmt

* Warn when there are too many elements while deserializing WeakBoundedVec
2022-06-21 06:49:43 +00:00
Keith Yeung d577099011 Companion for paritytech/substrate#11631 (#1363) 2022-06-16 17:36:19 +00:00
Keith Yeungparity-processbotShawn Tabrizi
2c85668512 Companion for paritytech/substrate#11631 (#5671)
* Companion for paritytech/substrate#11631

* Fixes

* Update sp-runtime

* Fixes

* update lockfile for {"substrate"}

* remove unused

Co-authored-by: parity-processbot <>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2022-06-16 13:36:01 -04:00
2dfc7cec47 Allow relay chain council to send XCMs (#5597)
* Allow relay chain council to send XCMs

* Update runtime/kusama/src/xcm_config.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* spellcheck

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: joepetrowski <joe@parity.io>
2022-06-16 13:37:49 +00:00
Keith Yeung dd71ee0334 Bounded ping pallet (#1333)
* Bounded ping pallet

* cargo fmt
2022-06-15 20:58:52 +00:00
Keith YeungandSquirrel f4bd86e98e Bounded collator selection pallet (#1337)
* Bounded collator selection pallet

* Update pallets/collator-selection/src/lib.rs

Co-authored-by: Squirrel <gilescope@gmail.com>

Co-authored-by: Squirrel <gilescope@gmail.com>
2022-06-14 12:36:14 +00:00
Keith Yeung dbe1881702 Properly implement Debug on bounded types (#11659) 2022-06-14 02:39:33 +00:00
Keith Yeungparity-processbotShawn Tabrizi
968e2f1638 Bounded aura ext pallet (#1359)
* Bounded aura ext pallet

* bump deps

Co-authored-by: parity-processbot <>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2022-06-14 02:38:50 +00:00
Keith Yeung 809a3e3a32 Derive MaxEncodedLen on cumulus_pallet_xcm::Origin (#1360) 2022-06-14 01:26:31 +00:00
Keith Yeung 19684de7d8 Implement PartialOrd and Ord on BoundedSlice and WeakBoundedVec (#11655)
* Implement PartialOrd and Ord on BoundedSlice and WeakBoundedVec

* More implementations of PartialEq and PartialOrd

* cargo fmt

* Fixes
2022-06-13 20:55:48 +00:00
Keith Yeungandparity-processbot f3c49cb790 Companion for paritytech/substrate#11584 (#5633)
* Companion for paritytech/substrate#11584

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-06-13 18:34:45 +00:00
Keith YeungandAdrian Catangiu 4e2fb0af60 Implement MaxEncodedLen on pallet-beefy (#11584)
* Implement MaxEncodedLen on pallet-beefy

* Return Result in intialize_authorities

* Update docs

* Log error when authorities list gets truncated

* Update frame/beefy/src/lib.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* cargo fmt

Co-authored-by: Adrian Catangiu <adrian@parity.io>
2022-06-13 17:53:07 +00:00
Keith YeungandOliver Tale-Yazdi 2d6b0ecc21 Move bounded type definitions to sp-runtime (#11645)
* Move bounded type definitions to sp-runtime

* cargo fmt

* Fix compile error

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Move TryCollect to sp-runtime

* Write some docs

* Import missing types

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2022-06-13 12:31:42 +00:00
Keith Yeung 09b5def9b1 Use BoundedVec in aura pallet (#11617)
* Use BoundedVec in aura pallet

* cargo fmt
2022-06-10 17:20:03 +00:00
Keith Yeung 0e3918d9fe Implement more IntoIter traits for bounded types (#11616) 2022-06-07 14:32:30 +00:00
Keith Yeung 038e52f5e0 Remove #[pallet::without_storage_info] for pallet-remark (#11590) 2022-06-03 17:30:12 +00:00
Keith Yeungandparity-processbot 8d3f692e0c Introduce #[pallet::call_index] attribute to dispatchables (#11381)
* Introduce #[pallet::call_index] attribute to dispatchables

* cargo fmt

* Add more docs and prevent duplicates of call indices

* Add UI test for conflicting call indices

* cargo fmt

Co-authored-by: parity-processbot <>
2022-05-23 16:47:36 +00:00
Keith YeungandGiles Cope 0e3f36224a Implement transfer_asset on CurrencyAdapter (#4549)
* Implement transfer_asset on CurrencyAdapter

* Use Currency::transfer in transfer_asset

* Add a test to assert that Currency::transfer was indeed used

* Remove superfluous balance conversion to u128

* Rename transfer_asset and beam_asset

Co-authored-by: Giles Cope <gilescope@gmail.com>
2022-03-29 10:23:18 +00:00
Keith YeungShawn Tabriziparity-processbot
7cf8010815 Companion for paritytech/substrate#10242 (#4862)
* Rename to BagError

* update lockfile for {"substrate"}

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
2022-03-24 15:39:24 +01:00
208be86934 Allow pallet error enum variants to contain fields (#10242)
* Allow pallet errors to contain at most one field

* Update docs on pallet::error

* Reword documentation

* cargo fmt

* Introduce CompactPalletError trait and require #[pallet::error] fields to implement them

* cargo fmt

* Do not assume tuple variants

* Add CompactPalletError derive macro

* Check for error type compactness in construct_runtime

* cargo fmt

* Derive CompactPalletError instead of implementing it directly during macro expansion

* Implement CompactPalletError on OptionBool instead of Option<bool>

* Check for type idents instead of variant ident

* Add doc comments for ErrorCompactnessTest

* Add an trait implementation of ErrorCompactnessTest for ()

* Convert the error field of DispatchError to a 4-element byte array

* Add static check for pallet error size

* Rename to MAX_PALLET_ERROR_ENCODED_SIZE

* Remove ErrorCompactnessTest trait

* Remove check_compactness

* Return only the most significant byte when constructing a custom InvalidTransaction

* Rename CompactPalletError to PalletError

* Use counter to generate unique idents for assert macros

* Make declarative pallet macros compile with pallet error size checks

* Remove unused doc comment

* Try and fix build errors

* Fix build errors

* Add macro_use for some test modules

* Test fix

* Fix compilation errors

* Remove unneeded #[macro_use]

* Resolve import ambiguity

* Make path to pallet Error enum more specific

* Fix test expectation

* Disambiguate imports

* Fix test expectations

* Revert appending pallet module name to path

* Rename bags_list::list::Error to BagError

* Fixes

* Fixes

* Fixes

* Fix test expectations

* Fix test expectation

* Add more implementations for PalletError

* Lift the 1-field requirement for nested pallet errors

* Fix UI test expectation

* Remove PalletError impl for OptionBool

* Use saturating operations

* cargo fmt

* Delete obsolete test

* Fix test expectation

* Try and use assert macro in const context

* Pull out the pallet error size check macro

* Fix UI test for const assertion

* cargo fmt

* Apply clippy suggestion

* Fix doc comment

* Docs for create_tt_return_macro

* Ensure TryInto is imported in earlier Rust editions

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* Fix up comments and names

* Implement PalletError for Never

* cargo fmt

* Don't compile example code

* Bump API version for block builder

* Factor in codec attributes while derving PalletError

* Rename module and fix unit test

* Add missing attribute

* Check API version and convert ApplyExtrinsicResult accordingly

* Rename BagError to ListError

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Use codec crate re-exported from frame support

* Add links to types mentioned in doc comments

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* cargo fmt

* cargo fmt

* Re-add attribute for hidden docs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
2022-03-24 08:11:14 +00:00
Keith Yeung 66d0e26d00 Use WeightToFee when calculating cost of each weight unit in XCM trader (#1055)
* Use WeightToFee when calculating cost of each weight unit in XCM trader

* Set the OnUnbalanced type parameter for XCM Traders
2022-03-08 09:10:41 +00:00
Keith YeungandParity Bot 5f3497830a Add missing XCM benchmarks for ReserveAssetDeposited (#4923)
* Add missing XCM benchmarks for ReserveAssetDeposited

* Check whether checking account is zero before minting

* Try and prevent overflow

* Remove minting currencies into the checking account

* cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=pallet_xcm_benchmarks::fungible --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --template=./xcm/pallet-xcm-benchmarks/template.hbs --output=./runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs

* Use a smaller divisor

* Mint a smaller amount still

* cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=pallet_xcm_benchmarks::fungible --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --template=./xcm/pallet-xcm-benchmarks/template.hbs --output=./runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs

* Remove logic for minting assets to the checking account

* Configure a smaller amount of reserve asset used for testing

* Try unwrapping the result of an execution

* Set the origin properly

* Revert "Set the origin properly"

This reverts commit c748a05733173fb7072878c19b10a583675a5f54.

* Update license year

* cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=pallet_xcm_benchmarks::fungible --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --template=./xcm/pallet-xcm-benchmarks/template.hbs --output=./runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs

* Update license year

Co-authored-by: Parity Bot <admin@parity.io>
2022-03-08 05:09:44 +00:00
Keith Yeung e7d354ca14 Update rand to v0.8.5 (#987)
* Update rand to v0.8.5

* Enable std_rng feature on rand

* Enable std_rng only when std is enabled

* Revert "Enable std_rng only when std is enabled"

This reverts commit 8fb3b72dbd6dc18bc19868b999b5b07cea4b7392.
2022-02-14 23:14:05 +00:00
Keith Yeung d166c78b17 Move XCM configurations out into its own module (#981)
* Move XCM configurations out into its own module

* Revert removal of the AccountNonceApi
2022-02-11 15:59:48 -08:00
Keith Yeung 89fa61125e Make some UI test expectations crisper (#10791)
* Make some UI test expectations crisper

* Update frame/support/test/tests/construct_runtime_ui/undefined_genesis_config_part.rs

* Update UI test expectations

* Missing newlines

* More whitespace issues
2022-02-04 15:42:13 +00:00
Keith YeungandAlexander Popiak d793334bbd Add the ability to suspend or resume XCM execution on the XCMP queue (#896)
* Add the ability to suspend or resume XCM execution on the XCMP queue

* Rename QueueActive to QueueSuspended

* Add the ability to suspend the DMP queue

* Rename XCMP to DMP in comments where appropriate

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>

* Add a bypass for XCMP queue suspension

* Revert "Add the ability to suspend the DMP queue"

This reverts commit 363ca09b41e40fce3f2740e7ab78f5c54781ca5c.

* Change controller origin to either root or council-issued origin

* Rename to ControllerOriginConverter

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
2022-01-31 12:12:09 +00:00
Keith Yeungandparity-processbot 8c28d4c669 Companion for paritytech/polkadot#4712 (#901)
* Rename ParentIsDefault to ParentIsAllZeroes

* Fixes

* Create ParentAccounts for respective networks

* Fixes

* Use b"Parent" as the basis for generating parent AccountId

* Fixes

* Use preset parent account ID

* update lockfile for {"polkadot"}

Co-authored-by: parity-processbot <>
2022-01-21 11:40:27 +00:00
Keith YeungandBastian Köcher efe290490a Remove Default bound on AccountId types under the xcm directory (#4712)
* Refactor ParentIsDefault to ParentIsAllZeroes

* Remove Default bound on all AccountId types under the xcm directory

* Change to ParentIs<A: Get<AccountId>, AccountId>

* Provide a better account for ParentIs

* Fixes

* Fixes

* Fixes

* Fixes

* Update xcm/xcm-builder/src/currency_adapter.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* Use preset account ID value for parent MultiLocations

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2022-01-21 11:03:39 +00:00
Keith Yeung 185e301fdd Move XCM runtime configurations into their own files (#4644)
* Move XCM runtime configurations into their own files

* Update copyright year

* Fix compilation errors

* Import XCM types in westend runtime unit tests
2022-01-11 09:09:34 +00:00
Keith YeungandParity Bot 5047ef8eff Set CurrentCodeHash before running some dispatchable benchmarks (#4645)
* Set CurrentCodeHash before running some dispatchable benchmarks

* Use insert instead of put

* Actually hash the ValidationCode

* cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_paras.rs

Co-authored-by: Parity Bot <admin@parity.io>
2022-01-03 02:05:37 +00:00
Keith Yeung cf509bdb51 Use derive macro to generate XcmWeightInfo trait (#4618)
* Use derive macro to generate XcmWeightInfo trait

* Move the Weight type alias out of proc macro
2021-12-29 06:38:11 +00:00
Keith Yeung cd32a971a1 Update proc-macro2 to 1.0.36 (#879) 2021-12-28 21:38:20 +01:00
Keith Yeung d78ea860ec Update serde to 1.0.132 (#871) 2021-12-21 09:15:50 +01:00
Keith Yeung f873384852 Create a README for XCMv2 detailing notable changes (#4059)
* Create a README for XCMv2 detailing notable changes

* Typo

* Appease spellcheck and cargo fmt

* Add XCM pallet item to be aware of

* cargo fmt

* Remove all XCM README.md
2021-12-18 06:05:52 +00:00
Keith Yeung 7aa1727bbd Disable asset transfers on Statemint (against master branch) (#838)
* Disable asset transfers on Statemint

* Fixup
2021-12-16 01:05:16 +00:00
Keith Yeung 8a2a86655f Update XCM MultiLocation prefixes for assets (#831) 2021-12-13 23:52:38 +00:00
Keith Yeung 54423f8b8a Add CheckNonZeroSender to runtime configs (#4493)
* Add CheckNonZeroSender to runtime configs

* cargo fmt

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes
2021-12-12 11:22:08 +01:00
Keith Yeung 308cb3e76b Update serde to 1.0.131 (#853) 2021-12-11 14:10:51 +01:00
Keith Yeung 9e9ff9e5d0 Add CheckNonZeroSender to runtime configs (#847)
* Add CheckNonZeroSender to runtime configs

* cargo update -p polkadot-primitives

* Fixes

* Fixes
2021-12-09 14:53:51 +01:00
Keith Yeung b5135277f4 Support overweight messages in XCMP queue (#799)
* Support overweight messages in XCMP queue

* Add storage migration logic to XCMP queue pallet

* Check whether required weight is larger than max individual weight first

* cargo fmt

* Add some unit tests

* Remove review question comment
2021-12-08 18:07:08 -08:00
Keith Yeung 5491f088a9 Use saturating_add when converting a Vec<MultiAsset> to MultiAssets (#4492) 2021-12-08 20:59:33 +01:00
Keith Yeung 8e9cf43f5e Disable asset transfers on Polkadot (#4475) 2021-12-06 22:30:29 +01:00
Keith YeungandAlexander Popiak ad8fa5fc07 Refactor some types in XCMP queue (#813)
* Rename InboundXcmpStatus and its related types

* Rename OutboundXcmpStatus and its relevant types

* Add documentation to the newly created types

* Ensure storage prefixes are kept the same

* Add code comments

* Revert storage name changes

* typo fix

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
2021-12-02 00:24:04 +00:00
Keith Yeung 1fed3540ba Update W3F URL links (#10374) 2021-11-26 08:58:00 +00:00
Keith Yeung bbde75e8eb Update W3F URL links (#4376) 2021-11-26 08:49:51 +00:00
Keith Yeung 0b85e34aa3 Bump syn to 1.0.81 (#707)
* Bump syn to 1.0.81

* Make formatting check happy
2021-10-27 19:26:49 +02:00
Keith YeungandAlexander Popiak 04a5d8c8b2 Rename Statemint where appropriate (#4087)
* Rename Statemint where appropriate

* Rename to Rockmine

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
2021-10-15 17:03:34 -05:00
769595eea5 Create a README for XCMv1 detailing notable changes (#4058)
* Create a README for XCMv1 detailing notable changes

* Update xcm/src/v1/README.md

Co-authored-by: Gavin Wood <gavin@parity.io>

* Update xcm/src/v1/README.md

Co-authored-by: David <dvdplm@gmail.com>

* Update xcm/src/v1/README.md

Co-authored-by: David <dvdplm@gmail.com>

* Update xcm/src/v1/README.md

Co-authored-by: David <dvdplm@gmail.com>

* Update xcm/src/v1/README.md

Co-authored-by: David <dvdplm@gmail.com>

* Link to relevant PR for a full list of changes

* Typo

* Add notable changes to top-level XCM rustdoc

* Appease spellchecker

Co-authored-by: Gavin Wood <gavin@parity.io>
Co-authored-by: David <dvdplm@gmail.com>
2021-10-13 11:17:30 +00:00
Keith Yeung 819849f097 Make most XCM APIs accept an Into<MultiLocation> where MultiLocation is accepted (#3627)
* Change send_xcm MultiLocation argument to be generic

* Change pallet_xcm::send_xcm MultiLocation and Junctions argument to be generic

* Change convert_origin MultiLocation argument to be generic

* Change OnResponse MultiLocation arguments to be generic

* Change UniversalWeigher MultiLocation argumente to be generic

* Change ExecuteXcm MultiLocation argument to be generic

* Remove usages of into for the MultiLocation argument in execute_xcm

* Make use of generic MultiLocation arguments in rustdocs

* Cargo fmt

* Remove unused import in tests

* Resolve conflicts

* cargo fmt

* Appease spellcheck

* impl Into<MultiLocation> in more places
2021-09-29 23:24:49 +00:00
Keith YeungandGuillaume Thiolliere 7b65b049cb Extend PalletInfoAccess with module_name and crate_version method (#9690)
* Record pallet indices in CallMetadata

* Resurrect PalletVersion infrastructure and rename as CrateVersion

* cargo fmt

* Add missing runtime generics to pallet struct

* Fix path to instance

* Fix test

* Fix UI test expectations

* Fix UI test expectations

* Move crate_version function to PalletInfoAccess

* Update UI test expectations

* Add crate_name method to PalletInfo

* Convert path to module name instead of exposing crate name

* cargo fmt

* Keep the double colons when constructing the module name

* Remove unused import

* Update UI test expectations

* Update frame/support/src/traits/metadata.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* Update UI test expectations

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
2021-09-28 11:35:33 +02:00
Keith YeungandParity Bot 7da1421baa Add benchmarking for parachain runtime initializer pallet (#3913)
* Add benchmarking for parachain runtime initializer pallet

* Fix default impl for initializer pallet WeightInfo

* cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::initializer --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_initializer.rs

* cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::initializer --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_initializer.rs

* Use real weights and use max_block as default weight

* Add variable for digest vec length for initializer benchmark

* Fix compilation errors

* Add WeightInfo to parachains_initializer config in polkadot runtime

* cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::initializer --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_initializer.rs

* cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::initializer --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_initializer.rs

* Appease spellchecker

* Use kusama weights in polkadot runtime for parachain initializer pallet

Co-authored-by: Parity Bot <admin@parity.io>
2021-09-28 04:55:19 +00:00
Keith Yeung bae5ecb896 Ensure all parachain configuration extrinsics are operational (#3912) 2021-09-23 06:21:06 +00:00