Skip to content

Commit b1ad81b

Browse files
committed
modify encodePacked Utf8String
Signed-off-by: hamburger <[email protected]>
1 parent 7f999b6 commit b1ad81b

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

abi/src/main/java/org/web3j/abi/TypeEncoder.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,10 @@ public static String encode(Type parameter) {
101101
*/
102102
public static String encodePacked(Type parameter) {
103103
if (parameter instanceof Utf8String) {
104-
return removePadding(encode(parameter), parameter);
104+
//removePadding can also be used, but is not necessary
105+
return Numeric.toHexStringNoPrefix(((Utf8String) parameter).getValue().getBytes(StandardCharsets.UTF_8));
105106
} else if (parameter instanceof DynamicBytes) {
107+
//removePadding can also be used, but is not necessary
106108
return Numeric.toHexStringNoPrefix(((DynamicBytes) parameter).getValue());
107109
} else if (parameter instanceof DynamicArray) {
108110
return arrayEncodePacked((DynamicArray) parameter);
@@ -140,6 +142,9 @@ static String removePadding(String encodedValue, Type parameter) {
140142
int length =
141143
((Utf8String) parameter).getValue().getBytes(StandardCharsets.UTF_8).length;
142144
return encodedValue.substring(64, 64 + length * 2);
145+
}
146+
if (parameter instanceof DynamicBytes) {
147+
return encodedValue.substring(64, 64 + ((DynamicBytes) parameter).getValue().length * 2);
143148
} else {
144149
throw new UnsupportedOperationException(
145150
"Type cannot be encoded: " + parameter.getClass());

0 commit comments

Comments
 (0)