Latest Tooling Jars
·
70 commits
to master
since this release
This release contains the latest version of the AVM jars required to setup a development environment in which one can write and test Java contracts.
Breaking Changes
AvmTransactionResult
was replaced withTransactionResult
.ResultCode
was replaced withTransactionStatus
.IExecutionLog
was replaced withLog
.- The tooling module was split into two modules: embed and tooling. This allows a distinction between components which require embedding the AVM (such as
AvmRule
andAvmCLI
in embed) and those that exist purely outside of it (such asABICompiler
andJarOptimizer
in tooling). - Removed the dependency on
vm_api
and added a dependency onaion-types
.
New Features
- Added ABI support for
BigInteger
andBigInteger[]
. This feature is enabled from ABI version 1. Hence, in order to useBigInteger
as an ABI type, version number should be passed as an argument to theABICompiler
orAvmRule
. - Added two new optimization steps to reduce energy consumption:
Renamer
: renames class, method, and field names to shorter Strings.ConstantRemover
: removesABIException
messages from userlib classes.
- Added
OptimizedJarBuilder
to select which optimization steps to perform on an input jar. Note thatAvmRule
uses all the optimization steps. - Updated
AvmRule
to automatically generate a new block after each transaction. This feature can be disabled.
Bug Fixes
- Fixed
MethodReachabilityDetector
to considerINVOKESTATIC
method inheritance. - Fixed an issue which would cause deployment of a user defined interface to fail in debug mode.
Improvements
- Changed
AionMap
implementation from a B+ Tree data structure to a hash table that uses Separate Chaining for collision resolution. - Added a utility method for padding log topics shorter than 32 bytes on the left (found in
AionUtilities
). - Added an additional unused class removal optimization step after unreachable methods have been removed.