Package com.klaytn.caver.utils
Class Utils
- java.lang.Object
-
- com.klaytn.caver.utils.Utils
-
public class Utils extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Utils.KlayUnit
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DEFAULT_ZERO_ADDRESS
static int
LENGTH_ADDRESS_STRING
static int
LENGTH_PRIVATE_KEY_STRING
static int
LENGTH_PUBLIC_KEY_STRING_DECOMPRESSED
-
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 bytesstatic 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 signaturestatic 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").
-
-
-
Field Detail
-
LENGTH_ADDRESS_STRING
public static final int LENGTH_ADDRESS_STRING
- See Also:
- Constant Field Values
-
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
-
-
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 amountunit
- 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 amountunit
- 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 amountunit
- 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 amountunit
- 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
- TheSignatureData
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
- TheSignatureData
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 KlaySignatureDataisHashed
- 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)
-
-