Releases: esaulpaugh/headlong
v8.1.0 (deprecate Tuple constructor access)
deprecate usage of Tuple
constructor—use Tuple.of
and Tuple.singleton
instead of new Tuple
;
disallow null arguments to Tuple.of
and Tuple.singleton
;
add method Tuple#elementIsPresent(int);
change behavior of Tuple#toString;
add method Tuple#deepCopy;
remove Tuple#subtuple;
remove ABIType#parseArgument(String);
improve ABI decode error messages;
remove SuperSerial.deserializeArray;
SHA-256 (headlong-8.1.0.jar): 20b8e6a1cb9d1fa45afce87764a9527b55c0691742a530db632d44bd02db2dab
Full Changelog: v8.0.0...v8.1.0
v8.0.0 (API refresh)
redesign RLPEncoder API;
ByteType no longer extends UnitType;
reject Records with out-of-order keys on decode;
reject unexpected RLP lists found in Record items;
improve Record encoding performance;
make RLPItem Comparable;
make Strings.URL_SAFE_FLAGS private;
limit Function names to 2048 chars;
limit ABI types to 2000 chars;
abort array ABI decode early if input obviously too short;
raise max decodeable array length to 2^19 - 1;
rename JsonUtils.parse to parseElement;
remove JsonUtils.getArray(JsonObject,String,JsonArray);
remove JsonUtils.toPrettyPrint;
for better security, do cryptographic hash comparisons in constant time;
fix misleading error message;
SHA-256 (headlong-8.0.0.jar): ce55ec4b3a9c9087f9f9cfad304e79688e7421e75b1b056853ecf5a79611f754
Full Changelog: v7.0.0...v8.0.0
v7.0.0 (API Refresh)
remove ABIType#getName;
add TupleType#getElementName(int);
remove TypeFactory.create(String,String);
add TypeFactory.createTupleTypeWithNames(String,String...);
move SuperSerial to abi package from util;
replace "empty parameter" error message with "unrecognized type" message;
improve TypeFactory performance;
reduce allocation rate when creating types;
replace RLPDecoder#wrap(byte) with wrapBits(long);
SHA-256 (headlong-7.0.0.jar): c8be5e58f7a1ec1ec85e3b6385a7a4d1ce10f2e75cb65ee85fe31fa6ca59ee00
What's Changed
- store param names in TupleType; by @esaulpaugh in #42
Full Changelog: v6.6.2...v7.0.0
v6.6.2 (bug fix)
fix json-parsed inputs & outputs had name field set;
optimize static byte array type initialization (bytes<M> and function);
add SuperSerial methods: toRLP and fromRLP;
SHA-256 (headlong-6.6.2.jar): 3ea4efb6132bd22396f72dd13af350bcfa7f0ba36bc749b5cc11f01738775634
v6.6.1 (bug fix)
fix IntType
and LongType
encode
and validate
would accept any subclass of Number
if its longValue()
was in range -- could occur when compile-time type-checking was bypassed (by casting to ABIType<Object>
or using TypeFactory.createNonCapturing
or TupleType#getNonCapturing
);
consistent exceptions among UnitType
s for class mismatch -- always IllegalArgumentException
and not ClassCastException
;
improve illegal boolean error message in SuperSerial
;
SHA-256 (headlong-6.6.1.jar): 44e5cc5636d3a1eb00dc6cfe2ad4333879b01c5eca327c7c7309cf89d9e80ff3
v6.6.0 (update)
SuperSerial no longer allows integers with leading zero;
strict parsing of booleans in SuperSerial;
fix SuperSerial will admit RLPList for address;
add type inference to ArrayType.baseType;
allow empty array of indices;
add method decodeCall(ByteBuffer,int...);
remove FastHex.decode(String,int,int,byte[],int);
SHA-256 (headlong-6.6.0.jar): 710e849af65a653fcd6a400a497343fd50dfd32fc40eb2d50b4e711ce408a481
v6.5.0 (update)
remove ABIJSON.parseABIObject methods -- use fromJson & fromJsonObject in Function, Event, ContractError, & ABIObject;
remove TupleType#encodeElements -- use TupleType#encode;
remove ABIType#_validate(Object) -- use ABIType#validate(J);
add method Function#decodeSingletonReturn(ByteBuffer);
add method Event#isElementIndexed(int);
make Function#encodeCall(Tuple,ByteBuffer) return void;
optimization for repeated dynamic tuple encodes when using the same Function object;
SHA-256 (headlong-6.5.0.jar): f732d1b4120020603e8a8adb2fc80e18dd66f619c757ef19115eadf08052e14f
v6.4.0 (minor API changes)
replace ABIJSON::parseFunction, parseEvent, and parseError with ABIJSON::parseABIObject;
add type inference to ABIJSON::parseABIObject;
add type inference to ABIObject::fromJson and fromJsonObject;
add type inference to SuperSerial::deserializeArray;
add method Function::fromJsonObject(JsonObject,MessageDigest);
rename RLPItem export methods;
add RLPItem methods copy(ByteBuffer) and copyData(ByteBuffer);
add RLPItem method copy(OutputStream);
remove Tuple::toList;
throw NoSuchElementException when Tuple.get would return null;
minor performance optimizations;
SHA-256 (headlong-6.4.0.jar): dbb6cdcc1594a4cf000e147e1ca904bc51b8a9e887001c6899ba18abade07caf
v6.3.2 (update)
remove inner class RLPOutputStream.Baos;
make RLPOutputStream final;
remove redundant "integer data cannot exceed 32 bytes" exception in SuperSerial;
SHA-256 (headlong-6.3.2.jar): 2b0baa86cf9f0cf7a530f4f1e8032f2afadf35503cb4299b89167d9ab59f193a
v6.3.1 (update)
no longer include deprecated field "constant" in generated Function JSON (see stateMutability);
SHA-256 (headlong-6.3.1.jar): e8404e89d0ac10af7543b05045247ab25921ae5b5b7403eaa9c8c847a13eedbd