The contraect-maven-plugin simplifies interacting with smart contracts on the aeternity blockchain. It generates Java classes out of the sophia contract sourcecode which provide a convenient to deploy a contract on the chain or call a function.
It also wraps the input and output objects of those function calls - no parsing is necessary.
The plugin takes a contract written in sophia language
generates a Java class representing the contract and its methods
initialization of instance can be done using an existing contractId thus the methods of an already deployed contract are then alled
creates a method to deploy the contract
create method for every entrypoint
method will be executed using dryRun - which means it will not be committed and thus included in a block
if method is stateful - transaction will be committed and thus included in a block, it will be wait for confirmation
if method is payable - an additional parameter is available to set the amount to deposit
all input parameters are parsed to typed java classes (if possible)
also the result is parsed to java type (if possible)
in case of errors during dryRun call or committing the tx errors are raised with details from the node
Tuples of size > 10 are not supported and currently not planned. If there's an indiciation, that more is needed, we will get back to this.