The grammar encoded in ethereum_abi_parser.yrl is a complete representation of the ABI standard type grammar; all standard ABI type signatures are recognized and correctly parsed. As such, attempts to encode/decode by these types may appear to succeed but produce undefined behavior, as the type-parsing stage was previously the location where the "not implemented" error was returned for types whose encoding/decoding was not yet complete. This error-checking may have to be moved to the TypeEncoder and TypeDecoder themselves.
@hayesgm I added the version-bump to this PR, but I'm happy to recreate the three PRs as one PR if that makes things easier (they seem to have a merge-conflict as-is.)
The grammar encoded in
ethereum_abi_parser.yrl
is a complete representation of the ABI standard type grammar; all standard ABI type signatures are recognized and correctly parsed. As such, attempts to encode/decode by these types may appear to succeed but produce undefined behavior, as the type-parsing stage was previously the location where the "not implemented" error was returned for types whose encoding/decoding was not yet complete. This error-checking may have to be moved to theTypeEncoder
andTypeDecoder
themselves.