scrtlabs / Grants

Repository for grant proposal submissions
38 stars 28 forks source link

Tooling: Sandox IDE module for SCRT contracts proposal #136

Open snd0x opened 5 months ago

snd0x commented 5 months ago

Sandox

Project Description

Sandox is an integrated development environment, that is designed to give web3 ecosystem developers new convenient tools for multi chain dApps development that leverage existing capabilities by combining development, deployment and debugging tools for multiple chains in one place - a convenient sandbox ensuring a low barrier to entry for dApps developers. To run the code, developers won't need to set up a project, download and compile libraries locally. The code written in the Sandox web editor is compiled and executed directly in a browser.

In this entire proposal we offer to add support for CosmWasm and develop a Sandox SCRT module with Rust syntax support and a one-click-run-and-deploy service for smart contracts. A "SCRT network" panel will also be developed, that will allow to choose between chains and provide an API for other modules/plug-ins to connect to the chosen network. Additionally, under this grant we propose to integrate the SCRT JS library ‘SecretJS’ so that developers will be able to write JavaScript code that interacts with the Secret Network. The deliverables are described in the ‘development roadmap’ section of this application.

Problem / Solution

Most ecosystems nowadays feel the effects of the bear market and decrease in user interest along with the increase in the number of ecosystems that was driven by the previous stage of market growth. The additional complexity (which means “costs”) for developer teams arising from building projects in less adopted or multiple networks is the amount of efforts they need to spend to build and interconnect a number of tools and concepts that they should be aware of. For some teams these are the arguments to turn their attention towards the most mature networks to gain exposure to their capital and users to the detriment of any advantages that the project could gain deployed in less adopted, but unique in tech, networks.

Developers always strive to put less effort into the environment and set the core focus on the dApp experience. While the logical solution should lie in reducing the number of “things that exist” in the developers’ environment, this won’t work as each ecosystem do have its tools and libraries to provide access to its unique features.

Sandox is thought to solve this complexity and drive the adoption of multiple networks not by adding more tools, but by “encapsulating” this wide range of tools and libraries and providing the appropriate APIs.

Detailed product description

Currently our team is working on a plug-in architecture to tailor Sandox IDE specifically for working with multiple blockchains and hence isolate plug-in code execution with an ability to use each other through a plug-in API. The chosen concept for plug-in operation will be WASM, which ensures isolation of a plug-in's executable code, data protection between different plug-ins, and the required performance. Plug-ins will have an ability to be written in any WASM compiled language, therefore we have started from TypeScript SDK (plans for Rust, Go, Zic or other languages will be implemented depending on an interest from the web3 community).

So, summarizing, here’s our target list of the Sandox benefits on the current web3 IDE market:

Along the described features and deliverables we have future plans on offering powerful features like:

Go-to-Market plan

Our primary goal is to provide dApp developers with blockchain agnostic tools, enabling them to build truly decentralized applications while ensuring an excellent developer experience. Through the Sandox platform, developers will have access to valuable resources, documentation and code examples, including primitives, features, and APIs for all Sandox-adopted blockchain ecosystems. This will allow developers to deploy a test case within minutes and receive immediate results.

The existence of such a sandbox is expected to leave a positive impression on developers’ community and establish a robust foundation for organic growth. We anticipate a multitude of experiments inspiring one another and the influx of innovative minds.

Value capture for Secret Network ecosystem

As a convenient sandbox for quick development and testing, Sandox will help to attract new developers and projects to the Secret Network ensuring a low entry barrier: no need for an hours-long set up of a developer’s environment and available tools research – just open Sandox and start coding.

Team members

Dmitrii Putilov (CTO & team lead), has over 17 years of experience leading teams that create and maintain highly loaded and high availability web2 & web3 services. The ETHWaterloo 2019 hackathon winner, ex-team lead of the Roobee.io investment platform included in the top500 on Coinmarketcap. Recently as a CTO led the world's first project for implementing electronic health records with a blockchain based on the OpenEHR standard.

Alexey Vexin (CPO & Head of Delivery), is a product owner and a project manager with 15+ years of experience in managing complicated telecoms and IT projects in Telco, Utilities, Social insurance and Governmental sectors with deep focus on business process management. Recently as a project director leads the world's first project for implementing electronic health records with a blockchain to push the final step of the Health industry towards a true client-centric approach.

Nikita Orlov (lead developer), ETH Waterloo 2019 hackathon prize-winner, is a TechLead engineer with over 8 years of experience in development and integration of fault-tolerant high-loaded SaaS IT solutions including relevant experience in blockchain solutions.

Alena Balakina (QA lead) is a QA test engineer and tech writer with over 7 years of experience. As a QA lead Alena implemented testing processes and documentation to one of the world’s first AI-powered blockchain investment service.

Project Website

https://sandox.io

Team's experience

Sandox team is a trusted blockchain community contributor, we have developed applications and PoCs that facilitate our day-to-day life: from a decentralized files storage service to a decentralized messenger PoC. First steps in developing Sandox IDE were made within the TRADELINK TECHNOLOGIES OÜ (Estonia) team, that is focused on developing a crypto trading platform https://tradelink.pro/. Meanwhile, as we see great opportunities and work volumes for the Sandox IDE we have separated the development team under a separate legal entity.

Team Code Repos

https://github.com/sandoxio, https://github.com/StringNick, https://github.com/dsputilov

Team LinkedIn Profiles

Dmitrii’s LinkedIn page.
Alexey’s LinkedIn page.
Nikita’s LinkedIn page.
Alena’s LinkedIn page.

Development Roadmap

Milestone 1 “SCRT Network” panel

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 execute tests that will show how the functionality works.
0c. Testing and Testing Guide Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
1. SCRT network panel This will allow to connect to a SCRT Network and keep the connection providing an API for other modules/plug-ins to connect to the chosen network. This deliverable will include: a panel UI with settings; a list of available chains (test/main); ability to add a custom chain; local settings storage; authorization with a wallet, accounts info; local storage of private keys that will be used to sign transactions; an API for interacting with a blockchain.

Milestone 2 CosmWasm support

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 execute tests that will show how the functionality works.
0c. Testing and Testing Guide Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
1. CosmWasm support This deliverable will include the following: CosmWasm project type; Rust syntax support; smart contracts compilation and errors indication; “SCRT project” panel UI for smart contracts deployment; smart contract deployment to a chosen network.
2. Smart contracts compilation service We will deliver a back end server where smart contracts will be compiled. Compilation process and results will be shown in the “SCRT project” panel.

Milestone 3 SecretJS implementation

| 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 execute tests that will show how the functionality works. | | 0c. | Testing and Testing Guide | Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. | | 1. | SecretJS implementation | SecretJS library implementation for interaction with the SCRT Network. | | 2. | Project compiling feature | We will extend the user’s projects code builder that it would allow to use es6 imports of the SecretJS library and develop a code that uses this library’s methods. A user won’t have to deploy a project locally, compile dependencies and the library to use or test it’s capabilities. The code will be compiled and executed straight in Sandox in a browser. |

We’d like to receive payments upon milestones completion and approval. Ideally will be to receive a 50% prepayment for the first milestone.

Additional Information

Here are some short demo videos of Sandox: The SanDOx IDE app skeleton with some basic features; “Project” panel and compiling feature; Themes, settings and project local storage;

ertemann commented 4 months ago

hey @snd0x sorry for the delayed response, our grant program q2 cohort is opening shortly and we would be happy to discuss your application.

can you send me a dm on Telegram (@ Ertemann) or an (email gijs@scrt.network) to connect?

snd0x commented 4 months ago

@ertemann , sent both ways!