FunctionEncoder { static String buildMethodSignature(String methodName, List<Type> parameters) { StringBuilder result = new StringBuilder(); result.append(methodName); result.append("("); String params = parameters.stream() .map(Type::getTypeAsString) .collect(Collectors.joining(",")); result.append(params); result.append(")"); return result.toString(); } private  FunctionEncoder(); static String encode(Function function); static String encodeConstructor(List<Type> parameters);  }
@Test public void testBuildMessageSignature() { assertThat( FunctionEncoder.buildMethodSignature( "baz", Arrays.asList( new Uint32(BigInteger.valueOf(69)), new Bool(true)) ), is("baz(uint32,bool)")); }
@Test public void testBuildEmptyMethodSignature() { assertThat( FunctionEncoder.buildMethodSignature("empty", Collections.emptyList()), is("empty()")); }