From 2cfb2ad63dacab81cacffa92d8b46032bedc0a57 Mon Sep 17 00:00:00 2001 From: Evan Saulpaugh Date: Wed, 18 Sep 2024 23:33:20 -0500 Subject: [PATCH] make validate generic --- src/main/java/com/esaulpaugh/headlong/abi/Function.java | 5 +++-- src/main/java/com/esaulpaugh/headlong/abi/TupleType.java | 2 +- src/test/java/com/esaulpaugh/headlong/abi/TupleTest.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/esaulpaugh/headlong/abi/Function.java b/src/main/java/com/esaulpaugh/headlong/abi/Function.java index f96b36a1..e121a5b0 100644 --- a/src/main/java/com/esaulpaugh/headlong/abi/Function.java +++ b/src/main/java/com/esaulpaugh/headlong/abi/Function.java @@ -49,7 +49,7 @@ public final class Function implements ABIObject { private final TypeEnum type; private final String name; - private final TupleType inputTypes; + private final TupleType inputTypes; private final TupleType outputTypes; private final String stateMutability; @@ -88,10 +88,11 @@ private Function(final String signature, final int nameLength, final TupleType inputs, TupleType outputs, String stateMutability, MessageDigest messageDigest) { this.type = Objects.requireNonNull(type); this.name = name != null ? validateName(name) : null; - this.inputTypes = Objects.requireNonNull(inputs); + this.inputTypes = (TupleType) Objects.requireNonNull(inputs); this.outputTypes = Objects.requireNonNull(outputs); this.stateMutability = stateMutability; this.hashAlgorithm = Objects.requireNonNull(messageDigest.getAlgorithm()); diff --git a/src/main/java/com/esaulpaugh/headlong/abi/TupleType.java b/src/main/java/com/esaulpaugh/headlong/abi/TupleType.java index 3e5af9e1..e2ec07bc 100644 --- a/src/main/java/com/esaulpaugh/headlong/abi/TupleType.java +++ b/src/main/java/com/esaulpaugh/headlong/abi/TupleType.java @@ -154,7 +154,7 @@ static int countBytes(boolean tuple, int len, IntUnaryOperator counter) { } @Override - public int validate(final Tuple value) { + public int validate(final J value) { if (value.size() == this.size()) { return countBytes(i -> validateObject(get(i), value.elements[i])); } diff --git a/src/test/java/com/esaulpaugh/headlong/abi/TupleTest.java b/src/test/java/com/esaulpaugh/headlong/abi/TupleTest.java index d451628f..a43510ee 100644 --- a/src/test/java/com/esaulpaugh/headlong/abi/TupleTest.java +++ b/src/test/java/com/esaulpaugh/headlong/abi/TupleTest.java @@ -549,7 +549,7 @@ public void testGetElement() { @Test public void testTupleLengthMismatch() throws Throwable { - TupleType tt = TupleType.parse("(bool)"); + TupleType tt = TupleType.parse("(bool)"); assertThrown(IllegalArgumentException.class, "tuple length mismatch: expected length 1 but found 0", () -> tt.validate(Tuple.EMPTY)); assertThrown(IllegalArgumentException.class, "tuple length mismatch: expected length 1 but found 2", () -> tt.validate(Tuple.of("", ""))); }