Returns abi.encodePacked hex value for the supported types. First the value is encoded and after the padding or length, in arrays cases, is removed resulting the packed encode hex value @param parameter Value to be encoded @return
(Type parameter)
| 113 | * @return |
| 114 | */ |
| 115 | public static String encodePacked(Type parameter) { |
| 116 | if (parameter instanceof Utf8String) { |
| 117 | // removePadding can also be used, but is not necessary |
| 118 | return Numeric.toHexStringNoPrefix( |
| 119 | ((Utf8String) parameter).getValue().getBytes(StandardCharsets.UTF_8)); |
| 120 | } else if (parameter instanceof DynamicBytes) { |
| 121 | // removePadding can also be used, but is not necessary |
| 122 | return Numeric.toHexStringNoPrefix(((DynamicBytes) parameter).getValue()); |
| 123 | } else if (parameter instanceof DynamicArray) { |
| 124 | return arrayEncodePacked((DynamicArray) parameter); |
| 125 | } else if (parameter instanceof StaticArray) { |
| 126 | return arrayEncodePacked((StaticArray) parameter); |
| 127 | } else if (parameter instanceof PrimitiveType) { |
| 128 | return encodePacked(((PrimitiveType) parameter).toSolidityType()); |
| 129 | } else { |
| 130 | return removePadding(encode(parameter), parameter); |
| 131 | } |
| 132 | } |
| 133 | |
| 134 | /** |
| 135 | * Remove padding from the static types and {@link Utf8String} after the encode was applied |