scrtlabs / Grants

Repository for grant proposal submissions
38 stars 28 forks source link

Rust Software Development Toolkit for Secret Network #76

Open SissonJ opened 1 year ago

SissonJ commented 1 year ago

Project Description

A Rust version of SecretJS and SecretPy - a Rust interface to interact with the Secret Network API server. This project involves contributing to an open-source library and providing continuing maintenance, tests, publishing to Cargo and writing documentation. The project will start from scratch using SecretJS and SecretPy as a reference.

Detailed Project Description

Re-implement the SecretJS/SecretPy functions in Rust for the REST and Cosmwasm clients and provide documentation and ongoing maintenance for the first year of the library. Additionally we plan on supporting Cosmwasm v1 upgrade if it drops within the 1 year timeframe. Documentation will be created and maintained which will involve bug fixes and potential high value integrations like IBC. The the project will contain most of the basic REST end points (bank, staking …) along with the types that correspond and include smart contract logic including encrypt/decrypt steps | curve25519 equivalent in Rust, and signingcosmwasmclient. This library will be structured like SecretPy, enabling easy adoption/consistency across the ecosystem.

Problem / Solution

Problem: Developers only have two resources (and languages) to choose from when creating applications for secret network Solution: Add another library further rounding out the developer toolkit ecosystem

Value capture for Secret Network Ecosystem

With the rise of wasm web development, a Rust toolkit for Secret Network will put the network ahead of the curve with an already existing library as Rust web development matures and grows a developer base. This will enable teams and projects to create cutting edge, efficient UI projects that will assist in fast, smooth user experience on Secret Network apps. This library would aid in security for the ecosystem since developers would have a choice to conceal front end source code with wasm, furthering user experience. This library will also attract a wider range of developers especially since Rust has been growing very fast. Finally, this library will be the first rust sdk in the cosmos ecosystem and other networks will be able to fork and use it for their chain. This allows Secret Network to innovate and contribute to cosmos ecosytem development even more.

Team Members

The project will be open source and we welcome any contributors to the repo. The initial team members are @SissonJ and @xiugaze. This is an independently pursued project, but we have contributed to the ecosystem in the past through Shade Protocol. Specifically, through Shade's front end, protocol arbitrage contracts, and the Shade treasury.

Development Roadmap

We plan on having a working product in 2 months, both of us will be contributing to it part time.

Milestones

  1. General structure of the open source repo and REST api interface for the wasm module - Smart contract query functionality & message encryption (encrypt/decrypt steps | curve25519 equivalent in Rust)
  2. Cosmwasmclient and Signingcosmwasmclient support
  3. Finalizing REST api interface for other modules allong with types (bank, auth, etc...)
  4. Testing and Documentation

    Documentation

    Maintenance and streamline further development for a year

    Grant request

    The funding we are requesting is $22K (~20k SCRT on SCRT 1 week average - $1.11)

Disbursements will take place at the completion of these milestones and will be calculated with the 1 week average price of SCRT summing up to $22K.

The estimation of dev hours is 20hrs per week for 8 weeks for 2 devs or 320hrs with an hourly rate of $68.75.