Drogon - a Swiss Army Knife (Hardhat-like) developer tool for ICON

Drogon proposal


Overview

Drogon is a robust, lightweight application development framework used for developing, testing, and deploying smart contracts on the ICON blockchain. The core features of the Drogon makes ICON smart contract developers’ life easy by providing support for multiple contract compilations, tests, and deploying on a public and private network.

Features

Drogon offers:

  • end-to-end build cycle support for development, testing, and deploying smart contracts
  • support for testing Unit and integration tests
  • Scriptable deployment framework
  • Deployment management for deploying to public and private networks
  • Interactive console to directly communicate with public and private networks
  • Clear documentation for developers

Why Drogon?

  • Lack of smart contract testing setup
  • Lack of easy to use ICON smart contract life cycle management
  • Lack of development framework that focuses on ICON smart contract developers

Goals

  • Development framework that focuses on ICON blockchain
  • Support for smart contract life cycle management
  • Support for unit and integration tests for smart contracts
  • Support for REPL interface to interact with public and private networks
  • Documentation

Milestones (Months 5-6)

M01

  • Create Drogon framework that supports compilation and testing
  • Support deploying contracts to a private network using the Drogon framework
  • Support deploying contracts to public networks using the Drogon framework

M02 (Months 7-9)

  • Documentation
  • Testing Drogon 0.1.0
  • Release Drogon 0.1.0

M03 (Months 10-12)

  • Support and Ongoing maintenance of Drogon
  • Includes bug fixes and on-going updates

Team credentials:
The team is based out of amsterdam and consists of experts in the blockchain and security field (team lead Chai - https://twitter.com/ant4g0nist), having already built a truffle/hardhat version for another non-evm chain (GitHub - ant4g0nist/chinstrap: A development environment, testing framework, and origination pipeline focused solely on Tezos), and in recepit of grants from Coinbase and the Tezos Foundation for both tooling and security in blockchain.
Although the work will require at times a third staff member, the planning will be based on two full-time senior software developers who will build the main frame, improve and release based on feedback, provide solid documentation and guidance and provide around the clock support throughout the entire year.

Salary, based upon a 12 months project:
Senior software developer: $10k/month
Senior software developer: $10k/month
Total: $20k/month

Sounds cool! I have a few questions.

What will be the development organization? Will it be through the same ant4g0nist Github account? Are you putting together a company/community group for this? What will be the IP rights to this product?

It would be cool to see it developed through a github organization with a fully open license, like MIT or something. I would always like for projects like this (i.e. public utility) to be structured to encourage community collaboration. Especially if there is no guarantee that the developers will continue after the contract period ends.

2 Likes

Hey @errcsool,

I am really happy you brought this up, I have always championed that work funded by the CPS would be opensource, I totally agree with this method (exception in special circumstances ofcourse). The work will indeed be open license.

Currently, it is unclear whether it will be done through a company or sole proprietorship, this is because the CPS is not a legal entity that provides an invoice. Chai is waiting on a response from his accountant, either way, I have a method of mitigating the issue of no invoice.

2 Likes

Ok. Looks pretty good to me

2 Likes

One additional thing that was mentioned in Discord that I agree with is to include a feature for Templating / Bootstrapping projects with Drogon. I know that there are some existing templates floating around somewhere, so it would be cool to be able to reference these kind of like cookiecutter or something

Edit: I also would recommend to investigate using Docker for the Compilation and/or Test steps

1 Like

Hey,

Template integration is definitely on the cards, besides this, as part of this template command, we can fetch contracts/tests from open source community projects, an example of their work:

Regarding Docker for compilation, this is also in the roadmap, example of the chinstrap work too:

Hey by compilation, do you mean optimizing the jar process? How would this tool be different from the current optimizing jar process if that’s the case? Currently, it’s available as grade tasks so can be run from the command line and IDEs UI.

For testing, what difference will it bring from the current unit testing library?

Hi,

By Compilation, this refers to building and optimizing. The optimization will be to optimize the entire building process off smart contracts on ICON:

Also, it is important to note that the tool aims to be a ‘swiss-army knife’ for the development off dapps on ICON, this implies that it will integrate features found in Java, as well as customizing and optimizing other processes.

1 Like