From bc1afbc6c3ed03c9bfed9a1446a005f855f0c634 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Sat, 3 Mar 2018 09:40:29 +0100 Subject: [PATCH] Bech32: Encoding should not throw AddressFormatException. --- core/src/main/java/org/bitcoinj/core/Bech32.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/Bech32.java b/core/src/main/java/org/bitcoinj/core/Bech32.java index ae059acf..118f1ae6 100644 --- a/core/src/main/java/org/bitcoinj/core/Bech32.java +++ b/core/src/main/java/org/bitcoinj/core/Bech32.java @@ -16,6 +16,8 @@ package org.bitcoinj.core; +import static com.google.common.base.Preconditions.checkArgument; + import java.util.Arrays; import java.util.Locale; @@ -97,14 +99,14 @@ public class Bech32 { } /** Encode a Bech32 string. */ - public static String encode(final Bech32Data bech32) throws AddressFormatException { + public static String encode(final Bech32Data bech32) { return encode(bech32.hrp, bech32.data); } /** Encode a Bech32 string. */ - public static String encode(String hrp, final byte[] values) throws AddressFormatException { - if (hrp.length() < 1) throw new AddressFormatException("Human-readable part is too short"); - if (hrp.length() > 83) throw new AddressFormatException("Human-readable part is too long"); + public static String encode(String hrp, final byte[] values) { + checkArgument(hrp.length() >= 1, "Human-readable part is too short"); + checkArgument(hrp.length() <= 83, "Human-readable part is too long"); hrp = hrp.toLowerCase(Locale.ROOT); byte[] checksum = createChecksum(hrp, values); byte[] combined = new byte[values.length + checksum.length];