Class Utils


  • public class Utils
    extends java.lang.Object
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Utils.KlayUnit  
    • Constructor Summary

      Constructors 
      Constructor Description
      Utils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String addHexPrefix​(java.lang.String str)
      Add hex prefix("0x").
      static boolean checkAddressChecksum​(java.lang.String address)
      Check if address has valid checksum.
      static java.lang.String compressPublicKey​(java.lang.String publicKey)
      Convert an uncompressed public key to a compressed public key Given public key has already compressed format, it will return.
      static java.lang.String convertFromPeb​(java.lang.String num, Utils.KlayUnit unit)
      Converts peb amount to specific unit amount.
      static java.lang.String convertFromPeb​(java.lang.String num, java.lang.String unit)
      Converts peb amount to specific unit amount.
      static java.lang.String convertFromPeb​(java.math.BigDecimal num, Utils.KlayUnit unit)
      Converts peb amount to specific unit amount.
      static java.lang.String convertFromPeb​(java.math.BigDecimal num, java.lang.String unit)
      Converts peb amount to specific unit amount.
      static java.lang.String convertToPeb​(java.lang.String num, Utils.KlayUnit unit)
      Converts amount to peb amount.
      static java.lang.String convertToPeb​(java.lang.String num, java.lang.String unit)
      Converts amount to peb amount.
      static java.lang.String convertToPeb​(java.math.BigDecimal num, Utils.KlayUnit unit)
      Converts amount to peb amount.
      static java.lang.String convertToPeb​(java.math.BigDecimal num, java.lang.String unit)
      Converts amount to peb amount.
      static SignatureData decodeSignature​(java.lang.String rawSig)
      Decodes a raw signature data that composed of R(32 byte) + S(32 byte) + V(1byte).
      static java.lang.String decompressPublicKey​(java.lang.String publicKey)
      Convert a compressed public key to an uncompressed format.
      static byte[] generateRandomBytes​(int size)
      Generate random bytes
      static java.lang.String hashMessage​(java.lang.String message)
      Hashing message with added prefix("\x19Klaytn Signed Message:\n").
      static boolean isAddress​(java.lang.String address)
      Check if string has address format.
      static boolean isEmptySig​(SignatureData signatureData)
      Check if SignatureData instance has empty signature.
      static boolean isEmptySig​(java.util.List<SignatureData> signatureDataList)
      Check if elements in SignatureData list has empty signature
      static boolean isHex​(java.lang.String input)
      Check if string has hex format.
      static boolean isHexStrict​(java.lang.String input)
      Check if string has hex format with "0x" prefix.
      static boolean isKlaytnWalletKey​(java.lang.String key)
      Check if string has Klaytn wallet key format.
      static boolean isNumber​(java.lang.String input)
      Check if string has hex number format.
      static boolean isValidPrivateKey​(java.lang.String privateKey)
      Check if string has PrivateKey format.
      static boolean isValidPublicKey​(java.lang.String publicKey)
      Check if the given public key is valid.
      static java.lang.String[] parseKlaytnWalletKey​(java.lang.String key)
      Parse a klaytn wallet key string.
      static java.lang.String printString​(java.lang.Object o)  
      static java.lang.String publicKeyToAddress​(java.lang.String publicKey)
      Returns an address which is derived by a public key(handles both compressed format and decompressed format).
      static java.lang.String recover​(java.lang.String message, SignatureData signatureData)
      Recovers the address that was used to sign the given data.
      static java.lang.String recover​(java.lang.String message, SignatureData signatureData, boolean isHashed)
      Recovers the address that was used to sign the given data.
      static java.lang.String recoverPublicKey​(java.lang.String message, SignatureData signatureData)
      Recovers the public key that was used to sign the given data.
      static java.lang.String recoverPublicKey​(java.lang.String message, SignatureData signatureData, boolean isHashed)
      Recovers the public key that was used to sign the given data.
      static java.lang.String stripHexPrefix​(java.lang.String str)
      Remove hex prefix("0x").
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LENGTH_PRIVATE_KEY_STRING

        public static final int LENGTH_PRIVATE_KEY_STRING
        See Also:
        Constant Field Values
      • LENGTH_PUBLIC_KEY_STRING_DECOMPRESSED

        public static final int LENGTH_PUBLIC_KEY_STRING_DECOMPRESSED
        See Also:
        Constant Field Values
      • DEFAULT_ZERO_ADDRESS

        public static final java.lang.String DEFAULT_ZERO_ADDRESS
        See Also:
        Constant Field Values
    • Constructor Detail

      • Utils

        public Utils()
    • Method Detail

      • isAddress

        public static boolean isAddress​(java.lang.String address)
        Check if string has address format.
        Parameters:
        address - An address string.
        Returns:
        boolean
      • checkAddressChecksum

        public static boolean checkAddressChecksum​(java.lang.String address)
        Check if address has valid checksum.
        Parameters:
        address - An address
        Returns:
        boolean
      • isValidPrivateKey

        public static boolean isValidPrivateKey​(java.lang.String privateKey)
        Check if string has PrivateKey format.
        Parameters:
        privateKey - A key string.
        Returns:
        boolean
      • isKlaytnWalletKey

        public static boolean isKlaytnWalletKey​(java.lang.String key)
        Check if string has Klaytn wallet key format.
        Parameters:
        key - A key string.
        Returns:
        boolean
      • isValidPublicKey

        public static boolean isValidPublicKey​(java.lang.String publicKey)
        Check if the given public key is valid. It also check both compressed and uncompressed key.
        Parameters:
        publicKey - public key
        Returns:
        valid or not
      • decompressPublicKey

        public static java.lang.String decompressPublicKey​(java.lang.String publicKey)
        Convert a compressed public key to an uncompressed format. Given public key has already uncompressed format, it will return
        Parameters:
        publicKey - public key string(uncompressed or compressed)
        Returns:
        uncompressed public key string
      • compressPublicKey

        public static java.lang.String compressPublicKey​(java.lang.String publicKey)
        Convert an uncompressed public key to a compressed public key Given public key has already compressed format, it will return.
        Parameters:
        publicKey - public key string(uncompressed or compressed)
        Returns:
        compressed public key
      • hashMessage

        public static java.lang.String hashMessage​(java.lang.String message)
        Hashing message with added prefix("\x19Klaytn Signed Message:\n").
        Parameters:
        message - A message to hash.
        Returns:
        String
      • parseKlaytnWalletKey

        public static java.lang.String[] parseKlaytnWalletKey​(java.lang.String key)
        Parse a klaytn wallet key string.
        Parameters:
        key - klaytn wallet key string
        Returns:
        String array
      • isHex

        public static boolean isHex​(java.lang.String input)
        Check if string has hex format.
        Parameters:
        input - A hex string
        Returns:
        boolean
      • isHexStrict

        public static boolean isHexStrict​(java.lang.String input)
        Check if string has hex format with "0x" prefix.
        Parameters:
        input - A hex string
        Returns:
        boolean
      • addHexPrefix

        public static java.lang.String addHexPrefix​(java.lang.String str)
        Add hex prefix("0x").
        Parameters:
        str - A hex string
        Returns:
        String
      • stripHexPrefix

        public static java.lang.String stripHexPrefix​(java.lang.String str)
        Remove hex prefix("0x").
        Parameters:
        str - A hex string
        Returns:
        String
      • convertToPeb

        public static java.lang.String convertToPeb​(java.lang.String num,
                                                    java.lang.String unit)
        Converts amount to peb amount.
        Parameters:
        num - The amount to convert.
        unit - Th unit to convert from.
        Returns:
        String
      • convertToPeb

        public static java.lang.String convertToPeb​(java.math.BigDecimal num,
                                                    java.lang.String unit)
        Converts amount to peb amount.
        Parameters:
        num - The amount to convert.
        unit - Th unit to convert from.
        Returns:
        String
      • convertToPeb

        public static java.lang.String convertToPeb​(java.lang.String num,
                                                    Utils.KlayUnit unit)
        Converts amount to peb amount.
        Parameters:
        num - The amount to convert.
        unit - Th unit to convert from.
        Returns:
        String
      • convertToPeb

        public static java.lang.String convertToPeb​(java.math.BigDecimal num,
                                                    Utils.KlayUnit unit)
        Converts amount to peb amount.
        Parameters:
        num - The amount to convert.
        unit - Th unit to convert from.
        Returns:
        String
      • convertFromPeb

        public static java.lang.String convertFromPeb​(java.lang.String num,
                                                      java.lang.String unit)
        Converts peb amount to specific unit amount.
        Parameters:
        num - The peb amount
        unit - The unit to convert to
        Returns:
        String
      • convertFromPeb

        public static java.lang.String convertFromPeb​(java.math.BigDecimal num,
                                                      java.lang.String unit)
        Converts peb amount to specific unit amount.
        Parameters:
        num - The peb amount
        unit - The unit to convert to
        Returns:
        String
      • convertFromPeb

        public static java.lang.String convertFromPeb​(java.lang.String num,
                                                      Utils.KlayUnit unit)
        Converts peb amount to specific unit amount.
        Parameters:
        num - The peb amount
        unit - The unit to convert to
        Returns:
        String
      • convertFromPeb

        public static java.lang.String convertFromPeb​(java.math.BigDecimal num,
                                                      Utils.KlayUnit unit)
        Converts peb amount to specific unit amount.
        Parameters:
        num - The peb amount
        unit - The unit to convert to
        Returns:
        String
      • recoverPublicKey

        public static java.lang.String recoverPublicKey​(java.lang.String message,
                                                        SignatureData signatureData)
                                                 throws java.security.SignatureException
        Recovers the public key that was used to sign the given data.

        This method hashes the message with klaytn prefix automatically.

        Example :
         
         String message = "Some Message";
         SignatureData signatureData = new SignatureData(
             "0x1b",
             "0x8213e560e7bbe1f2e28fd69cbbb41c9108b84c98cd7c2c88d3c8e3549fd6ab10",
             "0x3ca40c9e20c1525348d734a6724db152b9244bff6e0ff0c2b811d61d8f874f00"
         );
        
         String publicKey = caver.utils.recoverPublicKey(message, signatureData);
         
         
        Parameters:
        message - The raw message string.
        signatureData - The SignatureData to recover public key.
        Returns:
        String
        Throws:
        java.security.SignatureException
      • recoverPublicKey

        public static java.lang.String recoverPublicKey​(java.lang.String message,
                                                        SignatureData signatureData,
                                                        boolean isHashed)
                                                 throws java.security.SignatureException
        Recovers the public key that was used to sign the given data.
        Example :
         
         String message = "Some Message";
         SignatureData signatureData = new SignatureData(
             "0x1b",
             "0x8213e560e7bbe1f2e28fd69cbbb41c9108b84c98cd7c2c88d3c8e3549fd6ab10",
             "0x3ca40c9e20c1525348d734a6724db152b9244bff6e0ff0c2b811d61d8f874f00"
         );
        
         String publicKey = caver.utils.recoverPublicKey(message, signatureData, false);
         
         
        Parameters:
        message - The raw message string. If this message is already hashed with Klaytn prefix, the third parameter should be true.
        signatureData - The SignatureData to recover public key.
        isHashed - If true, the message param already hashed by appending a Klaytn sign prefix to the message.
        Returns:
        String
        Throws:
        java.security.SignatureException
      • publicKeyToAddress

        public static java.lang.String publicKeyToAddress​(java.lang.String publicKey)
        Returns an address which is derived by a public key(handles both compressed format and decompressed format).

        This function simply converts the public key string into address from by hashing it.

        It has nothing to do with the actual account in the Klaytn.

        Example :
         
         String address = caver.utils.publicKeyToAddress("0x{public key}");
         
         
        Parameters:
        publicKey - The public key string to get the address.
        Returns:
        String
      • recover

        public static java.lang.String recover​(java.lang.String message,
                                               SignatureData signatureData)
                                        throws java.security.SignatureException
        Recovers the address that was used to sign the given data. This function automatically creates a message hash by appending a Klaytn sign prefix to the message.
        Parameters:
        message - A plain message when using signed.
        signatureData - The signature values in KlaySignatureData
        Returns:
        String
        Throws:
        java.security.SignatureException - It throws when recover operation has failed.
      • recover

        public static java.lang.String recover​(java.lang.String message,
                                               SignatureData signatureData,
                                               boolean isHashed)
                                        throws java.security.SignatureException
        Recovers the address that was used to sign the given data.
        Parameters:
        message - A plain message or hashed message.
        signatureData - The signature values in KlaySignatureData
        isHashed - If true, the message param already hashed by appending a Klaytn sign prefix to the message.
        Returns:
        String
        Throws:
        java.security.SignatureException - It throws when recover operation has failed.
      • decodeSignature

        public static SignatureData decodeSignature​(java.lang.String rawSig)
        Decodes a raw signature data that composed of R(32 byte) + S(32 byte) + V(1byte).
        Parameters:
        rawSig - A signature data to decode. It composed of R(32 byte) + S(32 byte) + V(1byte).
        Returns:
        SignatureData
      • isNumber

        public static boolean isNumber​(java.lang.String input)
        Check if string has hex number format.
        Parameters:
        input - A hex number format string
        Returns:
        boolean
      • isEmptySig

        public static boolean isEmptySig​(SignatureData signatureData)
        Check if SignatureData instance has empty signature.
        Parameters:
        signatureData - A SignatureData instance.
        Returns:
        boolean
      • isEmptySig

        public static boolean isEmptySig​(java.util.List<SignatureData> signatureDataList)
        Check if elements in SignatureData list has empty signature
        Parameters:
        signatureDataList - A List of SignatureData
        Returns:
        boolean
      • generateRandomBytes

        public static byte[] generateRandomBytes​(int size)
        Generate random bytes
        Parameters:
        size - A size to generate random byte
        Returns:
        byte array
      • printString

        public static java.lang.String printString​(java.lang.Object o)