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:
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.
Incorporate the tool into the AvmRule pipeline. Duplicate some of the existing test contracts, and take out their main() and add the new annotations.
Move the ABI related functionality out of the API and into userlib.
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.
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:
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.Incorporate the tool into the
AvmRule
pipeline. Duplicate some of the existing test contracts, and take out theirmain()
and add the new annotations.Move the ABI related functionality out of the API and into
userlib
.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.