Skip to content

Latest commit

 

History

History
84 lines (61 loc) · 5 KB

hs-web3.md

File metadata and controls

84 lines (61 loc) · 5 KB

Open Grant Proposal

This document is referenced in the terms and conditions and therefore needs to contain all the required information. Don't remove any of the mandatory parts presented in bold letters or as headlines! See the Open Grants Program Process on how to submit a proposal.

  • Project: Haskell Web3 library
  • Proposer: akru
  • Payment Address: 18QrEJq9f1EL4f3DVsbxYnkJXgbhSF9XJ4

Project Description 📄

It's my personal project. It was started as Ethereum client library but recently I guess it could evolve into multi-platform client library including Polkadot / Substrate chains. Haskell is a powerful hight order functional programming language that provide industrial grade code safety because of very strict control of function side effects. For Polkadot ecosystem Haskell developers is couple of high skilled professionals that could make effective services and applications. This project reduce entry threshold and could be a good quick start for haskellers.

Team 👥

Development Roadmap 🔩

  • Total Estimated Duration: 16 weeks
  • Full-time equivalent (FTE): 0.4
  • Total Costs: 2 BTC

Milestone 1

  • Estimated Duration: 3 weeks
  • FTE: 0.4
  • Costs: 0.4 BTC
Number Deliverable Specification
1. Substrate WebSocket RPC Implement Substrate JSON-RPC methods described here: author, chain, state, system.
2. Substrate RPC documentations Extend Haskell Web3 documentation by implemented functions adding Substrate RPC section.
3. Substrate RPC examples Write simple examples into repository.
4. Docker image Pack milestone results into docker image to make it's evaluation easy.

Milestone 2

  • Estimated Duration: 6 weeks
  • FTE: 0.4
  • Costs: 0.8 BTC
Number Deliverable Specification
1. Haskell SCALE codec Implement SCALE codecs for Haskell that required for correct Polkadot / Substrate client implementation. Codec should reference to official documentation and Rust implementation. Codec should pass Rust test cases.
2. SCALE codec documentation Document implemented functionality and extend hs-web3 documentation by adding SCALE codec section.
3. Codec examples Add examples of using codec into hs-web3 repository.
4. Docker image Pack milestone results (unit tests) into docker image to make it's evaluation easy.

Milestone 3

  • Estimated Duration: 3 weeks
  • FTE: 0.4
  • Costs: 0.4 BTC
Number Deliverable Specification
1. Runtime Metadata parsers Implement structures and abstractions that helps to parse runtime metadata and make API decoration easy.
2. Runtime query requests Implement read type requests for the runtime. This methods should help developer to read data from Substrate-based blockchains.
3. Runtime query documentation Document implemented functionality and extend hs-web3 documentation by adding Substrate query section.
4. Runtime interaction examples Add examples of using API queries into hs-web3 repository.
5. Docker image Pack milestone results (unit tests) into docker image to make it's evaluation easy.

Milestone 4

  • Estimated Duration: 3 weeks
  • FTE: 0.4
  • Costs: 0.4 BTC
Number Deliverable Specification
1. Extrinsic abstractions Implement structures and abstractions that makes extrinsics operations (serialize/deserialize, sign, send).
2. Extrinsic signers Use ECDSA and Ed25519 cryptography libraries for signing extrinsics. (Unfortunately Sr25519 unavaliable for Haskell, it could be an idea for another grant.)
3. Transactions Using Metadata and Extrinsics to make transactions into Substrate-based blockchains.
4. API tx documentation Document implemented functionality and extend hs-web3 documentation by adding Transactions section.
5. Runtime transaction examples Add examples of using tx module into hs-web3 repository.
6. Docker image Pack milestone results (unit tests) into docker image to make it's evaluation easy.