-
Notifications
You must be signed in to change notification settings - Fork 2.6k
[Enhancement] Throw an error when there are too many pallets #13763
Conversation
if definition.pallets.len() > max_pallet_num { | ||
return Err(syn::Error::new( | ||
input.span(), | ||
"The number of pallets exceeds the maximum number of tuple elements.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should include some information on how to fix this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah like an additional sentence like format!("To increase this limit, enable the
tuples-{} feature of [crate]", next_highest_max).as_str()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just add a more detailed comment upon compile failure and then good to go 👍🏻
if definition.pallets.len() > max_pallet_num { | ||
return Err(syn::Error::new( | ||
input.span(), | ||
"The number of pallets exceeds the maximum number of tuple elements.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah like an additional sentence like format!("To increase this limit, enable the
tuples-{} feature of [crate]", next_highest_max).as_str()
@bkchr done, it's also accounting for the case when we don't have a feature to bump to the next tuple limit. |
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Bastian Köcher <git@kchr.de>
bot merge |
Waiting for commit status. |
Merge cancelled due to error. Error: Statuses failed for e6563eb |
bot fmt |
@ruseinov https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2617575 was started for your command Comment |
@ruseinov Command |
bot merge |
Waiting for commit status. |
* [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 <>
* [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 <>
* [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 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 9b8e6e7. * [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>
* 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 9b8e6e7. * [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>
…ech#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 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 (paritytech#12990) (there's generic transaction deadline functionality already) * fix kitchen sink (paritytech#12991) * fix kitchen sink * Only the dex can mint lp_tokens * add BenchmarkHelper for second instance (paritytech#12998) * update mock to latest master * less indirections (paritytech#13012) * remove dex PR's custom RPC (paritytech#13050) * As we have state_call we don't need a custom RPC * fix docs * no longer a need to upgrade rpc version (paritytech#13053) * add CallbackHadle * quote bugfix (paritytech#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 (paritytech#13763)" This reverts commit 9b8e6e7. * [Enhancement] Throw an error when there are too many pallets (paritytech#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>
Throw an error when there are too many pallets for the tuple trait implementation.
A continuation of this: #13760