aionnetwork / AVM

Enabling Java code to run in a blockchain environment
https://theoan.com/
MIT License
49 stars 25 forks source link

Add an ABI Generator to AVM tooling #360

Closed arajasek closed 5 years ago

arajasek commented 5 years ago

We have a tool that reads AVM contracts, generates an ABI file for them, and modifies classes based on certain annotations. This item tracks the integration of that tool into the new tooling module created as part of issue #354.

The proposed workflow is as follows:

  1. Move the ABI Generator into the existing tooling module, and update all AVM-related dependencies. This might require modification / reimplementation of some functionality. Move its tests into a new test folder.

  2. Incorporate the tool into the AvmRule pipeline. Duplicate some of the existing test contracts, and take out their main() and add the new annotations.

  3. Move the ABI related functionality out of the API and into userlib.

  4. Create new example contracts, unit tests, and documentation for this tool. In particular, we need to add tests related to constructors, because there is some concern we may overwrite existing constructors, or supply a new constructor when it isn't appropriate to do so.

zhikezhang commented 5 years ago

Great!