Skip to content

Commit abf0f6b

Browse files
committed
Remove generation of list of custom errors which would create a dependency on client implementations
Signed-off-by: Mustafa Morca <[email protected]>
1 parent 3423c59 commit abf0f6b

File tree

2 files changed

+0
-130
lines changed

2 files changed

+0
-130
lines changed

Diff for: codegen/src/main/java/org/web3j/codegen/SolidityFunctionWrapper.java

-63
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,6 @@ public void generateJavaFiles(
270270
}
271271

272272
addAddressesSupport(classBuilder, addresses);
273-
createCustomErrorList(classBuilder, abi);
274273

275274
write(basePackageName, classBuilder.build(), destinationDir);
276275
}
@@ -442,68 +441,6 @@ private FieldSpec createEventDefinition(
442441
.build();
443442
}
444443

445-
/**
446-
* Creates a list of CustomError variables defined previously.
447-
*
448-
* <pre>{@code
449-
* Given error abi definitions;
450-
* [
451-
* {"name": "aa", "type": "error", "inputs": []},
452-
* {"name": "aA", "type": "error", "inputs": []},
453-
* {"name": "bbb", "type": "error", "inputs": []},
454-
* {"name": "bBB", "type": "error", "inputs": [{"type": "string"}]},
455-
* {"name": "bbB", "type": "error", "inputs": []}
456-
* ]
457-
*
458-
* Then the list will be;
459-
* public static final List CUSTOM_ERRORS = Arrays.<org.web3j.abi.datatypes.CustomError>asList(
460-
* AA1_ERROR,
461-
* AA_ERROR,
462-
* BBB2_ERROR,
463-
* BBB1_ERROR,
464-
* BBB_ERROR);
465-
* }</pre>
466-
*/
467-
void createCustomErrorList(TypeSpec.Builder classBuilder, List<AbiDefinition> abiDefinitions) {
468-
Map<String, Integer> customErrorsOccurrences = getDuplicateCustomErrorNames(abiDefinitions);
469-
470-
// This will create a code string for list items
471-
// which includes all the custom error definition names.
472-
String listItems =
473-
abiDefinitions.stream()
474-
// filter error types from abi
475-
.filter(
476-
abi ->
477-
TYPE_ERROR.equals(abi.getType())
478-
&& abi.getName() != null
479-
&& !abi.getName().isEmpty())
480-
// get error names
481-
.map(
482-
abi ->
483-
buildCustomErrorDefinitionName(
484-
abi.getName(), customErrorsOccurrences))
485-
// reduce to a code string for list definition
486-
.collect(Collectors.joining(",\n"));
487-
488-
if (listItems.isEmpty()) {
489-
return;
490-
}
491-
492-
CodeBlock codeBlock =
493-
CodeBlock.builder()
494-
.addStatement(
495-
"$T.<$T>asList(\n" + listItems + ")",
496-
Arrays.class,
497-
CustomError.class)
498-
.build();
499-
500-
classBuilder.addField(
501-
FieldSpec.builder(List.class, "CUSTOM_ERRORS")
502-
.addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL)
503-
.initializer(codeBlock)
504-
.build());
505-
}
506-
507444
void buildCustomErrorDefinitions(
508445
@NotNull AbiDefinition abiDefinition,
509446
TypeSpec.Builder classBuilder,

Diff for: codegen/src/test/java/org/web3j/codegen/SolidityFunctionWrapperTest.java

-67
Original file line numberDiff line numberDiff line change
@@ -1260,71 +1260,4 @@ public void testBuildCustomErrorDefinitionsWithDuplicateNames() throws Exception
12601260

12611261
assertEquals(expectedJavaCode, builder.build().toString());
12621262
}
1263-
1264-
@Test
1265-
public void testCreateCustomErrorList() {
1266-
List<AbiDefinition> abiDefinitions =
1267-
List.of(
1268-
new AbiDefinition(
1269-
false,
1270-
List.of(new NamedType("reason", "string")),
1271-
"Error",
1272-
Collections.emptyList(),
1273-
"error",
1274-
false),
1275-
new AbiDefinition(
1276-
false,
1277-
Collections.emptyList(),
1278-
"",
1279-
Collections.emptyList(),
1280-
"error",
1281-
false),
1282-
new AbiDefinition(
1283-
false,
1284-
Collections.emptyList(),
1285-
"Empty",
1286-
Collections.emptyList(),
1287-
"error",
1288-
false),
1289-
new AbiDefinition(
1290-
false,
1291-
List.of(new NamedType("account", "address")),
1292-
"invalidAccess",
1293-
Collections.emptyList(),
1294-
"error",
1295-
false),
1296-
new AbiDefinition(
1297-
false,
1298-
Arrays.asList(
1299-
new NamedType("account", "address"),
1300-
new NamedType("reason", "string")),
1301-
"InvalidAccess",
1302-
Collections.emptyList(),
1303-
"error",
1304-
false));
1305-
String expectedJavaCode =
1306-
"class MyContract {\n"
1307-
+ " public static final java.util.List CUSTOM_ERRORS = java.util.Arrays.<org.web3j.abi.datatypes.CustomError>asList(\n"
1308-
+ " ERROR_ERROR,\n"
1309-
+ " EMPTY_ERROR,\n"
1310-
+ " INVALIDACCESS1_ERROR,\n"
1311-
+ " INVALIDACCESS_ERROR);\n"
1312-
+ " ;\n}\n";
1313-
1314-
TypeSpec.Builder builder = TypeSpec.classBuilder("MyContract");
1315-
solidityFunctionWrapper.createCustomErrorList(builder, abiDefinitions);
1316-
1317-
assertEquals(expectedJavaCode, builder.build().toString());
1318-
}
1319-
1320-
@Test
1321-
public void testCreateCustomErrorListWithoutCustomErrors() {
1322-
List<AbiDefinition> abiDefinitions = List.of();
1323-
String expectedJavaCode = "class MyContract {\n}\n";
1324-
1325-
TypeSpec.Builder builder = TypeSpec.classBuilder("MyContract");
1326-
solidityFunctionWrapper.createCustomErrorList(builder, abiDefinitions);
1327-
1328-
assertEquals(expectedJavaCode, builder.build().toString());
1329-
}
13301263
}

0 commit comments

Comments
 (0)