diff --git a/src/main/java/com/algorand/algosdk/abi/ABIType.java b/src/main/java/com/algorand/algosdk/abi/ABIType.java index 62d0eabb8..34bfcf40a 100644 --- a/src/main/java/com/algorand/algosdk/abi/ABIType.java +++ b/src/main/java/com/algorand/algosdk/abi/ABIType.java @@ -9,7 +9,7 @@ public abstract class ABIType { public static final int ABI_DYNAMIC_HEAD_BYTE_LEN = 2; - private static final Pattern staticArrayPattern = Pattern.compile("^(?[a-z\\d\\[\\](),]+)\\[(?[1-9][\\d]*)]$"); + private static final Pattern staticArrayPattern = Pattern.compile("^(?[a-z\\d\\[\\](),]+)\\[(?0|[1-9][\\d]*)]$"); private static final Pattern ufixedPattern = Pattern.compile("^ufixed(?[1-9][\\d]*)x(?[1-9][\\d]*)$"); /** diff --git a/src/main/java/com/algorand/algosdk/abi/TypeArrayStatic.java b/src/main/java/com/algorand/algosdk/abi/TypeArrayStatic.java index 3b539dcd2..a56651479 100644 --- a/src/main/java/com/algorand/algosdk/abi/TypeArrayStatic.java +++ b/src/main/java/com/algorand/algosdk/abi/TypeArrayStatic.java @@ -7,8 +7,8 @@ public class TypeArrayStatic extends ABIType { public final int length; public TypeArrayStatic(ABIType elemType, int length) { - if (length < 1) - throw new IllegalArgumentException("static-array initialize failure: array length should be at least 1"); + if (length < 0) + throw new IllegalArgumentException("static-array initialize failure: array length should be non-negative"); this.elemType = elemType; this.length = length; } diff --git a/src/test/java/com/algorand/algosdk/abi/TestTypes.java b/src/test/java/com/algorand/algosdk/abi/TestTypes.java index f3737cbe3..25fc45570 100644 --- a/src/test/java/com/algorand/algosdk/abi/TestTypes.java +++ b/src/test/java/com/algorand/algosdk/abi/TestTypes.java @@ -314,7 +314,7 @@ public void TestTypeFromStringInvalid() { "[][][]", "stuff[]", // static array - "ufixed32x10[0]", + "bool[01]", "byte[10 ]", "uint64[0x21]", // tuple