[Enhancement] Throw an error when there are too many pallets#13763
[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.
Should include some information on how to fix this.
There was a problem hiding this comment.
yeah like an additional sentence like format!("To increase this limit, enable the tuples-{} feature of [crate]", next_highest_max).as_str()
sam0x17
left a comment
There was a problem hiding this comment.
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.
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