static <T extends Type> String buildMethodSignature(
            String methodName, List<TypeReference<T>> parameters) {

        StringBuilder result = new StringBuilder();
        result.append(methodName);
        result.append("(");
        String params =
                parameters.stream().map(Utils::getTypeName).collect(Collectors.joining(","));
        result.append(params);
        result.append(")");
        return result.toString();
    }
@Test
    void testBuildMethodSignatureWithDynamicStructs() {
        assertEquals(
                "nazzEvent((((string,string)[])[],uint256),(string,string))",
                EventEncoder.buildMethodSignature(
                        AbiV2TestFixture.nazzEvent.getName(),
                        AbiV2TestFixture.nazzEvent.getParameters()));
    }