Skip to content
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

Contract Wizard Proposal #1742

Merged
merged 6 commits into from
Jul 10, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
200 changes: 200 additions & 0 deletions applications/Contract_wizard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
# Polkadot Contract Wizard
- **Team Name:** Protofire
- **Payment Address:** 0xD662E05ce522B3861b70FC376F60bF50E200abfA (USDC - Ethereum network)
- **[Level](https://github.com/w3f/Grants-Program/tree/master#level_slider-levels):** 3
## Project Overview :page_facing_up:
The Polkadot Contract Wizard has successfully completed its initial phase, making it easier for users to create and deploy standard smart contracts on the Polkadot ecosystem. In the next phase, we aim to expand the scope of the project by implementing additional features and supporting multiple chains. Our goal is to continue enhancing the user experience and versatility of the Polkadot Contract Wizard, making it a powerful tool for both developers and non-developers.
### Overview
In the next phase, we plan to implement the following features:
1.- Rename from Polkadot Contract Wizard to just Contract Wizard
2.- Interaction with deployed contracts through the wizard's UI.
3.- Interaction with smart contracts deployed by the user.
4.- Shareable Contract Interaction Links
5.- Support for multiple chains
6.- Create and publish videotutorials about how to use the tool
These enhancements will allow users to create, modify, deploy and interact with smart contracts on different parachains, making the Contract Wizard an indispensable tool for the community within the Polkadot and Kusama ecosystem.
### Project Details
#### <a name="step1"></a> 1. Rename from Polkadot Contract Wizard to be just Contract Wizard
We belive the naming is very important and we plan to cover the entire ecosystem, that's why we suggest to rename the tool to be Contract Wizard.
#### <a name="step2"></a> 2. Interact with deployed contracts
We will create a functionality that enables users to directly interact with their deployed contracts via the user interface of the wizard. This functionality will be generated dynamically according to the metadata of the contracts. With this, users will be able to conveniently and effectively manage their contracts and carry out interactions using the same tool.
#### <a name="step3"></a> 3. Interaction with custom smart contracts
Our platform will offer the capability to interact with any contract of their choice. To utilize this feature, they simply need to provide the metadata, network, and address associated with the contract. Once this information is ready, the user interface will automatically generate a customized user-friendly layout for allowing people to easily interact with their custom contracts.
#### <a name="step4"></a> 4. Shareable Contract Interaction Links
To enhance the user experience and encourage collaboration, we plan to implement a feature for shareable contract interaction links.
Once a developer deploys a contract or uploads the metadata for interacting with it on our platform, they can generate a unique, shareable link. This link will contain all necessary information for interacting with the contract, essentially encapsulating the contract's ABI (Application Binary Interface) and its address on the blockchain.
Users receiving this link can interact with the contract directly, without needing to reupload the metadata or know the contract's specifics. This feature not only simplifies the process of contract interaction but also fosters collaboration and sharing within the developer community.
#### <a name="step5"></a> 5. Support for multiple chains
This tool will offer a feature that enables users to connect to parachains implementing the contracts pallet. We will provide a list of some of these parachains in Polkadot, Kusama, and Rococo networks. Additionally, users will have the option to connect to a network that is not listed by specifying the web socket.
#### <a name="step6"></a> 6. Create and publish videoturials about how to use the tool
To further support the community and enhance user adoption, we will create and publish a series of video tutorials that explain how to use the Contract Wizard effectively. These tutorials will cover various aspects of the tool, including creating and deploying standard contracts, interacting with deployed contracts, editing contracts within the interface, and connecting to multiple chains. By providing easy-to-understand, step-by-step video guides, we will make it even more accessible for users with different levels of technical expertise and contribute to the growth and success of the Polkadot and Kusama ecosystem.
Incorporating video tutorials will help to:
- Provide an alternative learning method for users who prefer visual demonstrations over written documentation.
- Enhance the understanding of the Polkadot Contract Wizard and its features by showcasing real-life examples and use cases.
- Reach a broader audience and encourage more people to engage with the Polkadot and Kusama ecosystem.
- Strengthen the community by offering comprehensive resources that help users get started quickly and easily.
- Boost user confidence in using the tool, promoting greater adoption and utilization of the Polkadot Contract Wizard.
By creating and publishing video tutorials, we aim to further support the community and facilitate the adoption of the Polkadot Contract Wizard, making it an even more valuable resource for developers and non-developers alike.
### Ecosystem Fit
The Polkadot Contract Wizard aims to streamline the onboarding process and enhance usability within the Polkadot and Kusama ecosystem.
This project will contribute to the ecosystem in the following ways:
1. **Simplifying smart contract creation**: The Polkadot Contract Wizard will offer a user-friendly interface that allows individuals with varying levels of technical expertise to create smart contracts without the need for extensive programming knowledge. This will empower more people to participate in the ecosystem and explore the possibilities offered by smart contracts.
2. **Enhancing user experience**: By providing video tutorials, detailed documentation, and an intuitive interface, we will create a welcoming environment for new users, making it easier for them to get started with smart contracts on Polkadot and Kusama.
3. **Expanding the ecosystem's reach**: With the inclusion of multiple chains and custom contract creation, the Polkadot Contract Wizard will cater to a broader audience, encouraging more projects and developers to join the Polkadot and Kusama ecosystem.
4. **Encouraging community growth and collaboration**: By offering comprehensive support and resources, we aim to foster a strong, collaborative community around the Polkadot Contract Wizard, encouraging users to share their experiences, contribute to the project, and help one another succeed.
5. **Driving innovation and adoption**: By simplifying the process of working with smart contracts, we hope to inspire more users to experiment with new ideas and solutions, driving innovation and adoption within the Polkadot and Kusama ecosystem.
## Team :busts_in_silhouette:
### Team members
- Diego Torres (Team leader / Product Owner)
- Gabriel Gonzalez (Rust Engineer)
- Luca Auet (Rust Engineer)
- Agustin Longoni (UI/UX Designer)
- Henry Palacios (Front-end engineer)
### Contact
- **Contact Name:** Diego Torres Borda
- **Contact Email:** [email protected]
- **Website:** [protofire.io](https://protofire.io/)
### Legal Structure
- **Registered Address:** 1607 Ponce de Leon Avenue, GM-06, San Juan, PR, 00909
- **Registered Legal Entity:** Altoros LLC (DBA Protofire)
### Team's experience
Protofire has proven expertise in building decentralized infrastructure, protocols, applications, and developer platforms to accelerate growth of network’s ecosystems. By delivering hands-on coding and contributions, Protofire specializes in supercharging developer adoption, bootstrapping, and network usage
We are not only a dev shop company, but we create long term partnerships with the projects we are part of, building and working as ambassadors for the community. We believe in the projects and also participate by running nodes and taking the validator or staker roles.
### Team Code Repos
- https://github.com/protofire/polkadot-contract-wizard/
- https://github.com/protofire/ink-compiler-be
- https://github.com/protofire/moonbeam-web-core
- https://github.com/protofire/blockchain-learning-path
- https://github.com/protofire/omen-exchange
- https://github.com/protofire/kyber-pool-master-proxy-contract
GitHub accounts of team members.
- https://github.com/alongoni <Agustin Langoni>
- https://github.com/henrypalacios <Henry Palacios>
- https://github.com/0xLucca <Luca Auet>
- https://github.com/GabrielCamba <Gabriel Gonzalez>
### Team LinkedIn Profiles
- https://www.linkedin.com/in/diego-torres-borda-94b70912/
- https://www.linkedin.com/in/agustinlongoni/
- https://www.linkedin.com/in/henrydpalacios/
- https://www.linkedin.com/in/lucaauet/
- https://www.linkedin.com/in/gabriel-nicolas-gonzalez/
## Development Status :open_book:
We have successfully completed the previous grant, and we can confidently affirm that our platform, [contractwizard.xyz](https://www.contractwizard.xyz/), is now a user-friendly and highly useful tool. One of the key features of our platform is that it simplifies the deployment of standard smart contracts within the Dotsama ecosystem. With our platform, users no longer have to navigate through complex processes to deploy their contracts. Our streamlined approach means that anyone can deploy a smart contract without requiring advanced technical knowledge, saving time and resources. We are incredibly grateful for the support we have received so far, and we are committed to ensuring that our platform remains a top choice for deploying smart contracts within the Dotsama ecosystem.
## Development Roadmap :nut_and_bolt:
Described in project details.
### Overview
- **Total Estimated Duration:** 5 months
- **Full-Time Equivalent (FTE):** 2.5
- **Total Costs:** 122.500 U$D
## Milestones
### Milestone 1 — Initial Enhancements and Feature Development
- **Estimated duration:** 2 months
- **FTE:** 2.5
- **Costs:** 49000

| Number | Deliverable | Specification |
| -----: | ----------- | ------------- |
| **0a.** | License | Apache 2.0 |
| **0b.** | Documentation | We will provide both inline documentation of the code and a tutorial that explains how a user can use the new features. |
| **0c.** | Testing and Testing Guide | The code will have unit-test coverage to ensure functionality and robustness. In the guide, we will describe how to run these tests. |
| **0d.** | Docker | We will provide a Dockerfile that allows users to easily run the application. |
| 1. | Rename to Contract Wizard | The rebrand will be implemented corresponds to [step 1](#step1) of the Project Details section. |
| 2. | Interaction with deployed contracts | We will create the mockups based on [step 2](#step2) of the Project Details section. |
| 3. | Interaction with custom smart contracts | We will create the mockups based on [step 3](#step3) of the Project Details section. |
| 4. | Support for multiple chains | The functionality to be implemented corresponds to [step 5](#step5) of the Project Details section. |
### Milestone 2 — Functionallity implementation and Educational Content
- **Estimated duration:** 3 months
- **FTE:** 2.5
- **Costs:** 73500

| Number | Deliverable | Specification |
| -----: | ----------- | ------------- |
| **0a.** | License | Apache 2.0 |
| **0b.** | Documentation | We will provide both inline documentation of the code and a basic tutorial that explains how a user can use the new features. |
| **0c.** | Testing and Testing Guide | The code will have unit-test coverage to ensure functionality and robustness. In the guide, we will describe how to run these tests. |
| **0d.** | Docker | We will provide a Dockerfile that allows users to easily run the application. |
| 1. | Interaction with deployed contracts | The functionallity based on the mockups from Milestone 1 [step 2](#step2) of the Project Details section. |
| 2. | Interaction with custom smart contracts | The functionallity based on the mockups from Milestone 1 [step 3](#step3) of the Project Details section. |
| 3. | Shareable Contract Interaction Links | The functionallity corresponds to what's described on [step 4](#step4) of the Project Details section. |
| 4. | Create and publish video tutorials | The functionality to be implemented corresponds to [step 6](#step6) of the Project Details section. |
| 5. | Finalize documentation | We will ensure that all documentation is up to date and clearly explains how to use all features of the Contract Wizard. |
| 6. | Final testing and launch | We will conduct final testing and officially launch the updated Contract Wizard. |
## Future Plans
At contractwizard.xyz team in protofire, our mission is to continue innovating and developing our platform to cater to the ever-changing needs of the smart contract community. We recognize the importance of providing our users with a comprehensive tool that enables them to manage all ink! smart contracts, including those they have created custom.
As we continue to develop our platform, we understand the importance of building a community around it. We believe that by creating a community of users, we can facilitate the sharing of knowledge, contracts, and different approaches to problem-solving. Through our platform, users will have the ability to share their experiences, ask questions, and engage with others within the community. This will create an environment that fosters innovation and encourages collaboration, leading to the development of new and exciting ideas. Our hope is that our platform will serve as a hub for all things smart contract-related, where users can come together to learn, grow, and innovate.
**Custom contracts**
- Add the possibility of creating custom contracts, not only with the modifiers but adding the ability to write code using the interface.
- Compile the generated code and deploy it to different parachains.
- Following the comments made on the [pull request](https://github.com/w3f/Grants-Program/pull/1413#pullrequestreview-1234970716), our approach will be based on the [ink-playground](https://github.com/paritytech/ink-playground) in order to integrate writing custom code and compiling it.
**Social Interaction**
- Create an account to store information.
- Save your created smart contracts.
- Be able to share them with the community and ask for help.
- Provide assistance to other community members.
## Additional Information :heavy_plus_sign:
**How did you hear about the Grants Program?** Web3 Foundation Website