Skip to main content

Haskell Web3 library

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.

  • 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
NumberDeliverableSpecification
1.Substrate WebSocket RPCImplement Substrate JSON-RPC methods described here: author, chain, state, system.
2.Substrate RPC documentationsExtend Haskell Web3 documentation by implemented functions adding Substrate RPC section.
3.Substrate RPC examplesWrite simple examples into repository.
4.Docker imagePack milestone results into docker image to make it's evaluation easy.

Milestone 2

  • Estimated Duration: 6 weeks
  • FTE: 0.4
  • Costs: 0.8 BTC
NumberDeliverableSpecification
1.Haskell SCALE codecImplement 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 documentationDocument implemented functionality and extend hs-web3 documentation by adding SCALE codec section.
3.Codec examplesAdd examples of using codec into hs-web3 repository.
4.Docker imagePack 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
NumberDeliverableSpecification
1.Runtime Metadata parsersImplement structures and abstractions that helps to parse runtime metadata and make API decoration easy.
2.Runtime query requestsImplement read type requests for the runtime. This methods should help developer to read data from Substrate-based blockchains.
3.Runtime query documentationDocument implemented functionality and extend hs-web3 documentation by adding Substrate query section.
4.Runtime interaction examplesAdd examples of using API queries into hs-web3 repository.
5.Docker imagePack 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
NumberDeliverableSpecification
1.Extrinsic abstractionsImplement structures and abstractions that makes extrinsics operations (serialize/deserialize, sign, send).
2.Extrinsic signersUse ECDSA and Ed25519 cryptography libraries for signing extrinsics. (Unfortunately Sr25519 unavaliable for Haskell, it could be an idea for another grant.)
3.TransactionsUsing Metadata and Extrinsics to make transactions into Substrate-based blockchains.
4.API tx documentationDocument implemented functionality and extend hs-web3 documentation by adding Transactions section.
5.Runtime transaction examplesAdd examples of using tx module into hs-web3 repository.
6.Docker imagePack milestone results (unit tests) into docker image to make it's evaluation easy.