Please describe your proposed solution.
The core idea of this proposal is that once helios.js is audited (currently around 50k lines of code), the supply-chain risk is reduced to a minimum, as Helios has no dependencies and doesn't require a compiler.
The work required to get helios.js to a final state so it can be audited:
- discuss missing features with the Helios community
- currently known missing language features (Iterators, multi-valued Options, pattern matching…)
- implement a state-of-the-art coin-selection algorithm that can be used as the default in most situations.
- tx building functionality in the Helios language itself (using different frameworks/languages for on-chain and off-chain logic isn't practical for big dApps).
- modify helios.js to be usable by the VSCode IDE plugin directly, so that the library itself can be used as the "language server".
- implement CIP49 without introducing dependencies
- implement CIP58, CIP85, and CIP381 once they have been incorporated into Plutus-Core (might have to be postponed to v2 of Helios)
Once finalized the library will be audited. The audit report will contain the IPFS content-hash of the audited helios.js file. That way the library can be downloaded without risk of tampering.
So far Helios hasn't done a serious marketing effort. Part of the Catalyst grant will be used for the creation of free video tutorials/courses, and for more engaging and more frequent social media posts.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
Helios, along with other frameworks that have been created over the past year, is already a huge improvement of the Cardano development experience.
The fact that it hasn't yet been audited is preventing some teams building on Cardano from adopting it for their projects.
The off-chain API of the library isn't very dev friendly, as much of the on-chain logic would need to be duplicated in the JS/TS. It is much more dev friendly to allow tx-building in the language itself, as the compiler can be leveraged to provide additional features in the background (eg. accessing the hashes of all the validator scripts via name).
We are confident that a finalized Helios will provide the best possible dev experience for Cardano for those wanting to stick with a purely JS/TS tech stack.
How do you intend to measure the success of your project?
Weekly npm package downloads. Documentation website metrics. Dev feedback via social media platforms.
Please describe your plans to share the outputs and results of your project?
Frequent code merges. Major changes posted on social media platforms. Minor changes posted on Discord. Courses/tutorials on youtube or Udemy.