NOTE: this constructor's args have changed from:
public MachineState(byte[] creationBytes)
to:
public MachineState(API api, byte[] creationBytes)
The bug was miscalculating 'expectedLength'.
Added unit test to cover above.
Also added unit test to cover branching backwards.
Bumped version to 1.3.1 and also fixed pom.xml so it's possible
to call 'mvn clean package' from command line without errors.
API:
Added sample AT-emitted transaction types (payment/message).
Maximum number of steps per execution round no longer hard-coded.
API.putTransactionAfterTimestampInA() sets A to zero if no more transactions.
API.putMessageFromTransactionInAIntoB sets B to zero if not a message transaction.
Added some convenience methods.
MachineState:
Added support for minimum activation amount.
Added static method for packing AT into "creation bytes".
No need to store unchanging code in per-height AT state data.
Added support for multiple blockchains to "Timestamp".
General improvements based on Sonarlint suggestions.
General improvements to comments.
Replaced deprecated Byte/Short/Integer/Long constructor call with corresponding .valueOf() call.
Replaced some string concatenations with StringBuilder.
Moved Java-related .gitignore from root to /Java/
Removed .classpath and .project, and added same to .gitignore
Added info on how to add CIYAM AT JAR to other projects.
Updated pom.xml:
Bumped version to 1.2
Bumped Java version from 1.8 to 11
Bumped BouncyCastle from 1.60 to 1.64
Added more tests.