v1.4.0
Routes ABI.TypeDecoder.tuple_value/3 and ABI.TypeEncoder.fetch_by_name/2 through String.to_existing_atom/1, closing the contract-supplied atom-table DoS surface on the decode_structs: true path. Decoder requires snake_case field atoms to be pre-interned; encoder change is a silent safety upgrade.