-
Notifications
You must be signed in to change notification settings - Fork 40
feat: logic for parachain registration #410
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
6c5a488 to
ba6e253
Compare
511e547 to
945a8ac
Compare
df55096 to
0a64db8
Compare
b55ddaa to
d360dba
Compare
| spinner.start("Generating chain specification..."); | ||
|
|
||
| // Generate chain spec. | ||
| generate_plain_chain_spec(&binary_path, output_file, default_bootnode, chain)?; |
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.
Refactored the logic for generating the chain spec and raw chain spec into the generate_chain_spec function.
Codecov ReportAttention: Patch coverage is
@@ Coverage Diff @@
## feat/deploy-parachain #410 +/- ##
=========================================================
- Coverage 75.46% 75.32% -0.15%
=========================================================
Files 64 66 +2
Lines 14133 14398 +265
Branches 14133 14398 +265
=========================================================
+ Hits 10666 10845 +179
- Misses 2100 2148 +48
- Partials 1367 1405 +38
|
Daanvdplas
left a comment
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.
Good start, I couldn't find any clear write up that explains how we are going to implement the pdp integration so I'm not sure what the requirements are apart from how it must work high level. Would be nice to write this up and link in the PR description which will make reviewing this PR and the upcoming ones easier.
|
|
||
| /// Reserves a parachain ID by submitting an extrinsic. | ||
| async fn reserve_para_id(chain: &Chain, cli: &mut impl Cli) -> Result<u32> { | ||
| let call_data = prepare_reserve_para_id_extrinsic(chain)?; |
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.
Why are we not reusing prepare_extrinsic btw?
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.
It adds unnecessary lines since prepare_extrinsic is more specific to the Chain code. The logic for constructing the extrinsic already exists in the shared construct_extrinsic function, which can be used instead.
| } | ||
|
|
||
| // Sign and submit an extrinsic using wallet integration. | ||
| async fn submit_extrinsic_with_wallet( |
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.
For context: Moved into common/wallet
chungquantin
left a comment
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.
The PR looks great! I’ve left some comments with suggestions for improvements.
One thing I noticed while testing the command locally: it was a bit challenging to check my wallet balance and the required cost for reserving the parachain. I only discovered the "insufficient funds" error after going through the entire signing process—connecting my wallet, signing the transaction, and then returning to the terminal.
It would improve the user experience if the command could provide a balance check and estimated cost upfront, preventing unnecessary steps if funds are insufficient. Not sure if this is out of scope for the CLI. But at least, we could improve this on the signing portal by displaying the wallet balance after user connect.
Good point, I love it! I think it's a great addition to enhance the DevEx. |
| let prompt_to_repeat_call = self.requires_user_input(); | ||
| // Configure the chain. | ||
| let chain = self.configure_chain(&mut cli).await?; | ||
| let chain = configure_chain( |
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.
Moved configure_chain to a common module (crates/pop-cli/src/common/chain.rs) for better reusability. The logic is now shared in pop up
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.
➜ pop up --path ../base-parachain --relay-url ws://127.0.0.1:53039
┌ Pop CLI : Deploy a chain
│
⚙ Reserving a parachain ID
│
◇ Wallet signing portal started at http://127.0.0.1:9090.
│
◆ Signed payload received.
│
◇ Extrinsic submitted with hash: 0xbabc5903affc0d753f4a00e0c9f27eb29883882c5286f3a4ecb72464ba8b9be0
│
◆ Successfully reserved parachain ID: 2000
│
⚙ Generating the chain spec for your parachain
│
◇ Provide the chain specification to use (e.g. dev, local, custom or a path to an existing file)
│ dev
│
◇ Name or path for the plain chain spec file:
│ ./chain-spec.json
│
◇ Choose the chain type:
│ Development
│
◇ Choose the relay your chain will be connecting to:
│ Paseo Local
│
◇ Choose the build profile of the binary that should be used:
│ Release
│
◇ Enter the protocol ID that will identify your network:
│ my-protocol
│
◇ Genesis artifacts generated successfully.
│
⚙ Registering a parachain ID
│
◇ Wallet signing portal started at http://127.0.0.1:9090.
│
◆ Signed payload received.
│
└ Extrinsic submission error: Rpc(ClientError(Call(ErrorObject { code: ServerError(1010), message: "Invalid Transaction", data: Some(RawValue("Inability to pay some fees (e.g. account balance too low)")) })))
The code looks great. I have one last concern. I tried with base-parachain (which I already generated the chain spec with pop build spec) and when running the command, it popped up the signing portal as expected. However, after I signed and submit, it generates the chain spec again and asking me to sign to register the parachain. But in this case, I don't have sufficient fund so it fails.
- ✅ Sufficient fund to reserve the parachain ID
- ❌ Insufficient fund to register the parachain ID
If I run the command again, it asks me to reserve the parachain ID again even though I already reserved the parachain ID. Wonder if it is possible to consider one of the below approaches:
- Approach 1: Wrap these extrinsics with
pallet-utilitybatch method to make the devex better. - Approach 2: Avoid reserving the ID again if it is already reserved. And if I don't have sufficient fund for the later stage (registering the ID), I have an option to continue register instead of having to go through the whole process again.
And I noticed that new genesis state and code is generated on every up command run. I think the devex will be improved significantly if we can detect if there are existing generated files and list them out to select by the user. If no existing files found, we continue with the current flow.
The option you mentioned already exists, if you specify the If you run Let me know if you have any suggestions on how to make this explanation clearer! Regarding Approach 1, unfortunately, it’s not possible. After reserving the parachain ID, we need to parse the events to retrieve the parachain ID before proceeding with the parachain registration call. This means the process has to be done in two steps. |
chungquantin
left a comment
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.
LGTM!
evilrobot-01
left a comment
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.
General observations/questions:
- When running
pop up --path ../test-chain --relay-url ws://127.0.0.1:49155should it confirm? Or will it only start once the--relay-urlis provided? Consider that someone might just typepop upin the current directory to see the help. A UX improvement might be to show options when usingpop upand a rollup is detected, such as a cliclack menu of options, but that might just be something for the future. - The current CLI UX is a bit 'cold'. Perhaps a description of what it is doing would be more welcoming and give better guidance to the user. Just prompting for a signature seems a bit dodgy, we should be providing some indication of what is happening and what will be need to be signed - e.g. 'you will be prompted to sign a transaction to reserve a rollup id on the specified relay chain via its
Registrar::reservefunction' - Can we output a link to the PJS portal for the specified relay url as a convenience to the user, like we do when launching a network. The idea here is simply to provide a mechansim so they can see there transaction being executed on the specified relay:
"https://polkadot.js.org/apps/?rpc={relay-url}#/explorer"
My general advice would be to always start with naming things more generally and only refactor to something more specific when additional clarity is required. Naming everything very specifically can be unnecessary, requires extra characters and can bring pain when things change. Software evolves, the more precise things are named the more changes are required. Not everything can be foreseen, but starting with more generalised terms can reduce the overhead required in adapting. Also be aware of context and scope.
| @@ -1,3 +1,4 @@ | |||
| // SPDX-License-Identifier: GPL-3.0 | |||
|
|
|||
| pub mod events; | |||
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.
Adding this here as cant leave a comment on onboard.rs below. Can this be removed properly so it doesnt appear in the resulting commit?
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.
| #[cfg(feature = "parachain")] | ||
| mod network; | ||
| #[cfg(feature = "parachain")] | ||
| mod parachain; |
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.
| mod parachain; | |
| mod rollup; |
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.
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.
Not a fan of this change
|
|
||
| #[command(flatten)] | ||
| #[cfg(feature = "parachain")] | ||
| pub(crate) parachain: parachain::UpChainCommand, |
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.
| pub(crate) parachain: parachain::UpChainCommand, | |
| pub(crate) rollup: rollup::UpChainCommand, |
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.
| #[cfg(feature = "parachain")] | ||
| if pop_parachains::is_supported(project_path.as_deref())? { | ||
| cli.warning("Parachain deployment is currently not implemented.")?; | ||
| let mut cmd = args.parachain; |
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.
| let mut cmd = args.parachain; | |
| let mut cmd = args.rollup; |
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.
| use std::path::{Path, PathBuf}; | ||
| use url::Url; | ||
|
|
||
| const DEFAULT_URL: &str = "wss://paseo.rpc.amforc.com/"; |
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.
Could be any array of RPCs. Consider that always using the same one can lead to breakages, either due to the RPC being down or it banning the caller due to excessive calls.
Ideally it should be using smoldot tbh.
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.
Not sure about the best approach here. The goal is to provide a default value when prompting the user for the relay chain node URL, but it may not be worth it. In multiple tests, I used the default value only once.
The user probably knows where they want to deploy the chain. Would it be better to remove the default value?
| /// # Arguments | ||
| /// * `events` - The extrinsic events from a transaction. | ||
| pub fn extract_para_id_from_event(events: &ExtrinsicEvents<SubstrateConfig>) -> Result<u32, Error> { | ||
| let reserved_event = events.find_first::<Reserved>()?; |
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.
| let reserved_event = events.find_first::<Reserved>()?; | |
| events.find_first<T>().ok_or(Error::EventNotFound(T::EVENT.to_string())) |
Based on this simplification, the whole function now seems pretty unnecessary as the caller can just do events.find_first<Reserved>()?.ok_or(Error::EventNotFound(T::EVENT.to_string())) instead of calling this function.
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.
Nice! de2b019
| /// | ||
| /// # Arguments | ||
| /// * `events` - The extrinsic events from a transaction. | ||
| pub fn extract_para_id_from_event(events: &ExtrinsicEvents<SubstrateConfig>) -> Result<u32, Error> { |
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.
| pub fn extract_para_id_from_event(events: &ExtrinsicEvents<SubstrateConfig>) -> Result<u32, Error> { | |
| pub fn extract_from_event<T: Event>(events: &ExtrinsicEvents<SubstrateConfig>) -> Result<T, Error> { |
trait Event : StaticEvent {
const EVENT: &'static str;
}
impl Event for Reserved;
let id = relay::events::extract_from_event<Reserved>(events)?.para_id;
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.
Slight refactoring and you have a reusable function for any event.
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.
outdated based on above comment, solved in de2b019
| Ok("spec") | ||
| } | ||
|
|
||
| /// Generates plain and raw chain specification files, and returns the path to the latter. |
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.
| /// Generates plain and raw chain specification files, and returns the path to the latter. | |
| /// Generates plain and raw chain specification files, returning the path to the latter. |
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.
| pub(crate) fn generate_genesis_artifacts( | ||
| self, | ||
| cli: &mut impl cli::traits::Cli, | ||
| ) -> anyhow::Result<(PathBuf, PathBuf)> { |
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.
| ) -> anyhow::Result<(PathBuf, PathBuf)> { | |
| ) -> anyhow::Result<(CodePathBuf, StatePathBuf)> { |
Type aliases could improve readability. Not essential tho.
type CodePathBuf = PathBuf;
type StatePathBuf = PathBuf;
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.
Nice! Used it to improve readability
| .map_err(anyhow::Error::from) | ||
| } | ||
|
|
||
| /// Generates chain specification files and returns the file paths for the generated genesis |
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.
Comment is wrong order of items in tuple, aliases can improve 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.
Outdated based on Daan's suggested refactor da5f6d2
Daanvdplas
left a comment
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.
Definitely an improvement!
I still think the structure can be simplified and we can and reuse functionality that already exists.
Then we can clearly separate new functionality and write proper unit tests for it.
Haven't tried the flow yet, will do next time.
| } | ||
|
|
||
| #[tokio::test] | ||
| async fn reserve_parachain_id_fails_wrong_chain() -> Result<()> { |
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.
Why are we not testing reserve_para_id directly? This is basically an integration test as it uses execute
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.
It's not a big improvement, but this approach has a bit more coverage.
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.
But are we testing the functionality properly? Perhaps we are testing more in general, but are we testing cli input or the underlying functionality of the tool. The latter is done by testing these functions individually, in stead of increasing the coverage due to (assuming) mostly cli input
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.
Yes, this test specifically ensures that if the chain is incorrect, we handle it properly by displaying an appropriate message to the user. I split the reserve logic into two smaller functions, reserve and prepare_reserve_call_data, to ensure we can test the correctness of the call data. However, we haven't found a way to mock submit_extrinsic in a unit test, making it difficult to test the successful flow of this use case. See the coverage https://app.codecov.io/gh/r0gue-io/pop-cli/blob/feat%2Fpop-up-for-parachain/crates%2Fpop-cli%2Fsrc%2Fcommands%2Fup%2Frollup.rs#L143:
crates/pop-cli/src/common/wallet.rs
Outdated
|
|
||
| // Sign and submit an extrinsic using wallet integration, then returns the resulting events. | ||
| #[cfg(feature = "parachain")] | ||
| pub(crate) async fn submit_extrinsic_with_wallet( |
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.
Possible to add a unit test here?
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.
In this PR, I only moved this function here. This logic was originally introduced in the wallet signing feature, but we found it very difficult to mock and unit test. I'm always happy to improve test coverage if you have any suggestions.
550102a to
7d3028f
Compare
|
With another refactor done I don't think this is an improvement anymore: #410 (comment) |
That’s what I was thinking, but you made a good point, keeping the code in one place and reusing it improves maintainability, if we need to change or extend the logic for a call, we only have to do it in one place. |
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.
Curious if we can remove the cli's output: ⚙ Encoded call data: 0x4605
Left some other comments but I don't want to block you any longer.
One comment I want your opinion about too: #410 (comment)
| // Represents the configuration for rollup registration. | ||
| pub(crate) struct Registration { | ||
| id: u32, | ||
| genesis_state: PathBuf, |
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.
We can use those types you created here maybe
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.
Yes, good point: d7175ff
| match self.id { | ||
| Some(id) => Ok(id), | ||
| None => { | ||
| cli.info(format!("Reserving an ID. You will need to sign a transaction to reserve an ID on {} using the `Registrar::reserve` function.", chain.url))?; |
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.
| cli.info(format!("Reserving an ID. You will need to sign a transaction to reserve an ID on {} using the `Registrar::reserve` function.", chain.url))?; | |
| cli.info(format!("You will need to sign a transaction to reserve an ID on {}, using the `Registrar::reserve` function.", chain.url))?; |
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.
| impl Registration { | ||
| // Registers by submitting an extrinsic. | ||
| async fn register(&self, cli: &mut impl Cli) -> Result<()> { | ||
| cli.info(format!("Registering. You will need to sign a transaction on {} using the `Registrar::register` function.", self.chain.url))?; |
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.
| cli.info(format!("Registering. You will need to sign a transaction on {} using the `Registrar::register` function.", self.chain.url))?; | |
| cli.info(format!("You will need to sign a transaction to register on {}, using the `Registrar::register` function.", self.chain.url))?; |
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.
I like it, improved in d7175ff
| async fn register(&self, cli: &mut impl Cli) -> Result<()> { | ||
| cli.info(format!("Registering. You will need to sign a transaction on {} using the `Registrar::register` function.", self.chain.url))?; | ||
| let call_data = self.prepare_register_call_data(cli)?; | ||
| submit_extrinsic(&self.chain.client, &self.chain.url, call_data, cli).await?; |
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.
Consistency:
| submit_extrinsic(&self.chain.client, &self.chain.url, call_data, cli).await?; | |
| submit_extrinsic(&self.chain.client, &self.chain.url, call_data, cli).await.map_err(|e| anyhow::anyhow!("Registration failed: {}", e))?; | |
| cli.success(format!("Successfully registered))?; |
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.
| }; | ||
| match config.register(cli).await { | ||
| Ok(_) => cli.success(format!( | ||
| "Deployment successfully {}", |
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.
| "Deployment successfully {}", | |
| "Rollup successfully deployed: {}", |
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.
Since there was still some debate about the term to use, I minimized the use of the word 'only,' keeping it only where necessary. It can be skipped here and be more general
|
* feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: improve readability with chain::configure * refactor: improve message and clean code
* feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: improve readability with chain::configure * refactor: improve message and clean code
* feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: improve readability with chain::configure * refactor: improve message and clean code
* test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: logic for parachain registration (#410) * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: improve readability with chain::configure * refactor: improve message and clean code * feat: build deterministic runtime (#425) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * feat: container_engine to detect container to use * feat: generate_deterministic_runtime logic * feat: srtool logic * feat: build deterministic runtime in build spec command * feat: update_runtime_code * test: include tests for updateing code * refactor: clean unnecesary code * test: in container_engine * refactor: docker warning in container_engine * chore: improve screen messaging * refactor: use profile picked by the user * refactor: docs in ContainerEngine and clean prints * fix: generate_deterministic_runtime parameter * refactor: rename, improve messages and clean empty lines * feat: extract package name automatically from runtime dir * docs: change broken link * refactor: update srtool_lib crate and remove unnecesary code * docs: include srtool in Acknowledgements * refactor: remove unnecesary Error * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * chore: always prompt the user to build runtime deterministacally and improve message * docs: improve and add missing comments * refactor: clean code to prompt for the package and runtime dir * docs: improve warning message * refactor: rename variables and structs * fix: throw error message when build deterministic runtime fail * feat: include skip_deterministic_build flag to avoid prompting the user * docs: improve comments * feat: use a proxy for the registration (#427) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * feat: construct_proxy_extrinsic * feat: prompt for proxy address in the UI * docs: improve flag description and display command to be executed * docs: improve prompt to the user message for proxy * feat: replace index.html with costs for calls with proxy in ui * refactor: remove display command information (separate PR) * test: fix resolve_proxy_address_works * refactor: rename and more clear messages for the user to prompt proxied account * chore: update index.html with latest changes * test: fix format * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: clean code to avoid unnecesary clone * feat: wrap Id by default in the proxy address and improve comment * refactor: remove ProxyConfig and use Proxy * refactor: resolve_proxied_address * fix: change visibility for prompt_for_param * refactor: more clarity in code variables and comments * refactor: custom message to prompt for proxy address * refactor: support only Account Id type for proxied_address * test: remove unnecesary async in resolve_proxied_address_works * fix: clippy warnings * chore: improve deterministic runtime flow (#460) * chore: hide srtool logs * chore: include runtime file in the Generated files message * chore: update with latest index.html * refactor: small improvements * refactor: improve the building runtime message
* test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: logic for parachain registration (#410) * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: improve readability with chain::configure * refactor: improve message and clean code * feat: build deterministic runtime (#425) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * feat: container_engine to detect container to use * feat: generate_deterministic_runtime logic * feat: srtool logic * feat: build deterministic runtime in build spec command * feat: update_runtime_code * test: include tests for updateing code * refactor: clean unnecesary code * test: in container_engine * refactor: docker warning in container_engine * chore: improve screen messaging * refactor: use profile picked by the user * refactor: docs in ContainerEngine and clean prints * fix: generate_deterministic_runtime parameter * refactor: rename, improve messages and clean empty lines * feat: extract package name automatically from runtime dir * docs: change broken link * refactor: update srtool_lib crate and remove unnecesary code * docs: include srtool in Acknowledgements * refactor: remove unnecesary Error * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * chore: always prompt the user to build runtime deterministacally and improve message * docs: improve and add missing comments * refactor: clean code to prompt for the package and runtime dir * docs: improve warning message * refactor: rename variables and structs * fix: throw error message when build deterministic runtime fail * feat: include skip_deterministic_build flag to avoid prompting the user * docs: improve comments * feat: use a proxy for the registration (#427) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * feat: construct_proxy_extrinsic * feat: prompt for proxy address in the UI * docs: improve flag description and display command to be executed * docs: improve prompt to the user message for proxy * feat: replace index.html with costs for calls with proxy in ui * refactor: remove display command information (separate PR) * test: fix resolve_proxy_address_works * refactor: rename and more clear messages for the user to prompt proxied account * chore: update index.html with latest changes * test: fix format * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: clean code to avoid unnecesary clone * feat: wrap Id by default in the proxy address and improve comment * refactor: remove ProxyConfig and use Proxy * refactor: resolve_proxied_address * fix: change visibility for prompt_for_param * refactor: more clarity in code variables and comments * refactor: custom message to prompt for proxy address * refactor: support only Account Id type for proxied_address * test: remove unnecesary async in resolve_proxied_address_works * fix: clippy warnings * chore: improve deterministic runtime flow (#460) * chore: hide srtool logs * chore: include runtime file in the Generated files message * chore: update with latest index.html * refactor: small improvements * refactor: improve the building runtime message
* test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: logic for parachain registration (#410) * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: improve readability with chain::configure * refactor: improve message and clean code * feat: build deterministic runtime (#425) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * feat: container_engine to detect container to use * feat: generate_deterministic_runtime logic * feat: srtool logic * feat: build deterministic runtime in build spec command * feat: update_runtime_code * test: include tests for updateing code * refactor: clean unnecesary code * test: in container_engine * refactor: docker warning in container_engine * chore: improve screen messaging * refactor: use profile picked by the user * refactor: docs in ContainerEngine and clean prints * fix: generate_deterministic_runtime parameter * refactor: rename, improve messages and clean empty lines * feat: extract package name automatically from runtime dir * docs: change broken link * refactor: update srtool_lib crate and remove unnecesary code * docs: include srtool in Acknowledgements * refactor: remove unnecesary Error * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * chore: always prompt the user to build runtime deterministacally and improve message * docs: improve and add missing comments * refactor: clean code to prompt for the package and runtime dir * docs: improve warning message * refactor: rename variables and structs * fix: throw error message when build deterministic runtime fail * feat: include skip_deterministic_build flag to avoid prompting the user * docs: improve comments * feat: use a proxy for the registration (#427) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * feat: construct_proxy_extrinsic * feat: prompt for proxy address in the UI * docs: improve flag description and display command to be executed * docs: improve prompt to the user message for proxy * feat: replace index.html with costs for calls with proxy in ui * refactor: remove display command information (separate PR) * test: fix resolve_proxy_address_works * refactor: rename and more clear messages for the user to prompt proxied account * chore: update index.html with latest changes * test: fix format * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: clean code to avoid unnecesary clone * feat: wrap Id by default in the proxy address and improve comment * refactor: remove ProxyConfig and use Proxy * refactor: resolve_proxied_address * fix: change visibility for prompt_for_param * refactor: more clarity in code variables and comments * refactor: custom message to prompt for proxy address * refactor: support only Account Id type for proxied_address * test: remove unnecesary async in resolve_proxied_address_works * fix: clippy warnings * chore: improve deterministic runtime flow (#460) * chore: hide srtool logs * chore: include runtime file in the Generated files message * chore: update with latest index.html * refactor: small improvements * refactor: improve the building runtime message
* refactor: check binary and prompt * feat: add binary generator * feat: update parachain templates (#297) * feat: include new parachain template and remove old one for Parity * fix: tests * fix: order in test * fix: export PATH * chore: bump zombienet-sdk version * fix: remove parity evm * fix: missing changes * fix: parse collator and parachain-template-node without path for spawn * chore: remove set PATH * refactor: functionality and test * refactor: prefix for external templates * fix: deprecate old command for generating parity contracts template * test: update configure_works test to test new functionality * test: fix unit tests templates * fix: show deprecation message and fixes * docs: improve comments * refactor: nitpicks in parachain description * fix: logic for substrate-contracts-node without path in config file * feat: support v3.0.0 of OpenZeppelin templates * docs: improve template docs and comments * test: improve comments for clarity * fix: support different profiles when path is not specified * refactor: code improvements * refactor: improve import * fix: remove onboard.rs empty file (#433) * chore: update cargo-deny-action@v2 (#439) * chore: update cargo-deny-action@v2 * chore: revert cargo.lock and add more ignore * fix: docker missing toolchain * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * fix: hardcoded test failing in the CI (#448) * fix: remove hardcoded node name in test * fix: bump versions in Cargo.lock to fix deny * chore: ignore unmantained vulnerability * fix: cargo deny unmaintained crate --------- Co-authored-by: chungquantin <56880684+chungquantin@users.noreply.github.com> * feat: add the filter mode and password to `Cli` (#435) * feat: add the filter mode to cli * chore: rebase * chore: revert cargo.lock and add more ignore * chore: update cargo-deny-action@v2 * chore: revert relay.rs changes * chore: remove vulnerabilities by upgrade zombienet * chore: rebase * chore: clippy warning * chore: revert not relevant changes * chore: add password to the Cli (#449) * chore: add password input in cli module * chore: format --------- Co-authored-by: Alex Bean <alexfraga10@gmail.com> * chore: resolve unmaintained crate & clippy warnings (#454) * chore: resolve clippy warnings * fix: unmantained crate * chore: hard-coded the version of pop-node binary * chore: fix pop-node CI issue * feat: register parachain (#404) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: logic for parachain registration (#410) * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: improve readability with chain::configure * refactor: improve message and clean code * feat: build deterministic runtime (#425) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * feat: container_engine to detect container to use * feat: generate_deterministic_runtime logic * feat: srtool logic * feat: build deterministic runtime in build spec command * feat: update_runtime_code * test: include tests for updateing code * refactor: clean unnecesary code * test: in container_engine * refactor: docker warning in container_engine * chore: improve screen messaging * refactor: use profile picked by the user * refactor: docs in ContainerEngine and clean prints * fix: generate_deterministic_runtime parameter * refactor: rename, improve messages and clean empty lines * feat: extract package name automatically from runtime dir * docs: change broken link * refactor: update srtool_lib crate and remove unnecesary code * docs: include srtool in Acknowledgements * refactor: remove unnecesary Error * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * chore: always prompt the user to build runtime deterministacally and improve message * docs: improve and add missing comments * refactor: clean code to prompt for the package and runtime dir * docs: improve warning message * refactor: rename variables and structs * fix: throw error message when build deterministic runtime fail * feat: include skip_deterministic_build flag to avoid prompting the user * docs: improve comments * feat: use a proxy for the registration (#427) * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * feat: construct_proxy_extrinsic * feat: prompt for proxy address in the UI * docs: improve flag description and display command to be executed * docs: improve prompt to the user message for proxy * feat: replace index.html with costs for calls with proxy in ui * refactor: remove display command information (separate PR) * test: fix resolve_proxy_address_works * refactor: rename and more clear messages for the user to prompt proxied account * chore: update index.html with latest changes * test: fix format * test: detects_project_type_correctly * feat: parachain deployment in pop up * fix: parachain feature * docs: improve comments * feat: replace index.html with summary costs in ui (#430) * refactor: rename parachain to rollup * docs: improve deprecation message * refactor: rename parachain to rollup in up help * feat: deploy a parachain commands * feat: build specs in pop up * feat: logic to interact with a chain * feat: register parachain * refactor: clean code and improve docs * test: unit tests for pop up methods * refactor: small fixes with visibility and removing logs * feat: return events in submit_signed_extrinsic * feat: get para_id from event * test: fix detects_parachain_correctly * refactor: improve docs and code * test: fix change_working_directory_works * fix: clippy warnings * refactor: move submit_extrinsic_with_wallet in a common file * refactor: remove unnecesary code * refactor: UpChainCommand structure * test: adjust tests to refactored struct * refactor: renaming prepare_register_parachain_call_data and prepare_rerve_parachain_call_data * refactor: move events module * fix: submit_extrinsic_with_wallet under parachain feature * refactor: remove unnecesary code * test: increase coverage with reserve_parachain_id_fails_wrong_chain and resolve_genesis_files_fails_wrong_path * refactor: remove unnecesary clones * refactor: minor improvements * test: refactor tests and include comments * refactor: map errors in submit_extrinsic_with_wallet * test: fix prepare_register_parachain_call_data_works * refactor: move configure_chain into a common folder * refactor: function visibility * fix: error message and include test for it * refactor: build specs removing repetitive code * refactor: use prepare_extrinsic from Call module to prepare a call * docs: improve comments and messages * refactor: rename variables and structs * refactor: relay_chain_url * refactor: rename prepare_reserve_call_data and prepare_register_call_data * test: remove unnecesary test * refactor: remove events module * refactor: rename parachain to rollup * chore: improve succesful message * chore: change intro title to use rollup * docs: comments for Reserved event * refactor: clean code to avoid unnecesary clone * feat: wrap Id by default in the proxy address and improve comment * refactor: remove ProxyConfig and use Proxy * refactor: resolve_proxied_address * fix: change visibility for prompt_for_param * refactor: more clarity in code variables and comments * refactor: custom message to prompt for proxy address * refactor: support only Account Id type for proxied_address * test: remove unnecesary async in resolve_proxied_address_works * fix: clippy warnings * chore: improve deterministic runtime flow (#460) * chore: hide srtool logs * chore: include runtime file in the Generated files message * chore: update with latest index.html * refactor: small improvements * refactor: improve the building runtime message * fix: display events when wallet-signing (#463) * feat: enable `pop test` without project type specification (#466) * refactor: test_project to support testing any rust project * test: unit tests in test mod * docs: fix pop_contracts test docs * docs: fix comment in TestCommand error * refactor: improve docs and visibility * chore: add doc for macro and test for contracts * fix: executable permission --------- Co-authored-by: Alex Bean <alexfraga10@gmail.com>

This is the first step in a larger PR: PR #404. It consolidates the existing logic for deploying a parachain into a relay chain when a user executes
pop upin a parachain project.Changes included:
generate_genesis_artifactsfunction in specs to build and return paths for the genesis and WASM files.submit_extrinsic_with_walletto return events.Reservedevent in theRegistrarpallet to retrieve the parachain ID after reservation.pop upcommand.How to test it
Start the Paseo parachain locally by running:
Run pop up in your parachain folder or specify the folder with the
pathflagNote: The account used for signing must have sufficient funds to cover both the reservation and signing process.
Notes:
cargo-contracts: Reference. If we need to parse more events in the future, we can manually add them.--use-wallet). If useful, I can add options for--suriand specifying a private key via the command line, but not sure if makes sense.[sc-2756]