caver.utils
caver.utils
provides utility functions.
randomHex
caver.utils.randomHex(size)
The randomHex library to generate cryptographically strong pseudo-random HEX strings from a given byte size.
Parameters
Name | Type | Description |
---|---|---|
size | number | The byte size for the HEX string, e.g., 32 will result in a 32-byte HEX string with 64 characters prefixed with "0x". |
Return Value
Type | Description |
---|---|
string | The generated random HEX string. |
Example
> caver.utils.randomHex(32)'0x861b56754dba7769f9740c3ad70b4694aa24d604c1dba3bac7ec45978927b8de'> caver.utils.randomHex(4)'0x5641d6ce'> caver.utils.randomHex(2)'0xf058'> caver.utils.randomHex(1)'0x7c'> caver.utils.randomHex(0)'0x'
_ (underscore)
caver.utils._()
The underscore library for many convenient JavaScript functions.
See the underscore API reference for details.
Example
> var _ = caver.utils._> _.union([1,2],[3])[1,2,3]> _.each({my: 'object'}, function(value, key){ ... })...
toBN
caver.utils.toBN(number)
Safely converts any given value (including BigNumber.js instances) into a BN.js instance, for handling big numbers in JavaScript.
Parameters
Name | Type | Description |
---|---|---|
number | number \ | number to convert to a big number. |
Return Value
Type | Description |
---|---|
Object | The BN.js instance. |
Examples
> caver.utils.toBN(1234).toString()'1234'> caver.utils.toBN('1234').add(caver.utils.toBN('1')).toString()'1235'> caver.utils.toBN('0xea').toString()'234'
isBN
caver.utils.isBN(bn)
Checks if a given value is a BN.js instance.
Parameters
Name | Type | Description |
---|---|---|
bn | object | A BN.js instance. |
Return Value
Type | Description |
---|---|
boolean | true if a given value is a BN.js instance. |
Example
> var number = new caver.utils.BN(10)> caver.utils.isBN(number)true
isBigNumber
caver.utils.isBigNumber(bignumber)
Checks if a given value is a BigNumber.js instance.
Parameters
Name | Type | Description |
---|---|---|
bignumber | object | A BigNumber.js instance. |
Return Value
Type | Description |
---|---|
boolean | true if a given value is a BigNumber.js instance. |
Example
> var number = new caver.utils.BigNumber(10)> caver.utils.isBigNumber(number)true
sha3
caver.utils.sha3(str)caver.utils.keccak256(str) // ALIAS
Calculates the sha3 of the input.
NOTE: To mimic the sha3 behavior of Solidity use caver.utils.soliditySha3.
Parameters
Name | Type | Description |
---|---|---|
str | string | A string to hash. |
Return Value
Type | Description |
---|---|
string | The result hash. |
Example
> caver.utils.sha3('234') // taken as string'0xc1912fee45d61c87cc5ea59dae311904cd86b84fee17cc96966216f811ce6a79'> caver.utils.sha3(new caver.utils.BN('234')) // utils.sha3 stringify bignumber instance.'0xc1912fee45d61c87cc5ea59dae311904cd86b84fee17cc96966216f811ce6a79'> caver.utils.sha3(234)null // can't calculate the has of a number> caver.utils.sha3(0xea) // same as above, just the HEX representation of the numbernull> caver.utils.sha3('0xea') // will be converted to a byte array first, and then hashed'0x2f20677459120677484f7104c76deb6846a2c071f9b3152c103bb12cd54d1a4a'
soliditySha3
caver.utils.soliditySha3(param1 [, param2, ...])
Calculates the sha3 of given input parameters in the same way solidity would. This means arguments will be ABI converted and tightly packed before being hashed.
Parameters
Name | Type | Description |
---|---|---|
paramX | Mixed | Any type, or an object with {type: 'uint', value: '123456'} or {t: 'bytes', v: '0xfff456'} . Basic types are autodetected as follows: - string non numerical UTF-8 string is interpreted as string .- string |
Return Value
Type | Description |
---|---|
string | The result hash. |
Example
> caver.utils.soliditySha3('234564535', '0xfff23243', true, -10)// auto detects: uint256, bytes, bool, int256'0x3e27a893dc40ef8a7f0841d96639de2f58a132be5ae466d40087a2cfa83b7179'> caver.utils.soliditySha3('Hello!%') // auto detects: string'0x661136a4267dba9ccdf6bfddb7c00e714de936674c4bdb065a531cf1cb15c7fc'> caver.utils.soliditySha3('234') // auto detects: uint256'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3(0xea) // same as above'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3(new caver.utils.BN('234')) // same as above'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3({type: 'uint256', value: '234'})) // same as above'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3({t: 'uint', v: new caver.utils.BN('234')})) // same as above'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3('0x407D73d8a49eeb85D32Cf465507dd71d507100c1')'0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b'> caver.utils.soliditySha3({t: 'bytes', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'})'0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b' // same result as above> caver.utils.soliditySha3({t: 'address', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'})'0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b' // same as above, but will do a checksum check, if its multi case> caver.utils.soliditySha3({t: 'bytes32', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'})'0x3c69a194aaf415ba5d6afca734660d0a3d45acdc05d54cd1ca89a8988e7625b4' // different result as above> caver.utils.soliditySha3({t: 'string', v: 'Hello!%'}, {t: 'int8', v:-23}, {t: 'address', v: '0x85F43D8a49eeB85d32Cf465507DD71d507100C1d'})'0xa13b31627c1ed7aaded5aecec71baf02fe123797fffd45e662eac8e06fbe4955'
isHex
caver.utils.isHex(hex)
Checks if a given string is a HEX string.
Parameters
Name | Type | Description |
---|---|---|
hex | string | The given HEX string. |
Return Value
Type | Description |
---|---|
boolean | true if a given parameter is a HEX string. |
Example
> caver.utils.isHex('0xc1912')true> caver.utils.isHex('c1912')true> caver.utils.isHex('0xZ1912')false> caver.utils.isHex('Hello')false
isHexStrict
caver.utils.isHexStrict(hex)
Checks if a given string is a HEX string. Difference to caver.utils.isHex is that it expects HEX to be prefixed with 0x
.
Parameters
Name | Type | Description |
---|---|---|
hex | string | The given HEX string. |
Return Value
Type | Description |
---|---|
boolean | true if a given string is a HEX string. |
Example
> caver.utils.isHexStrict('0xc1912')true> caver.utils.isHexStrict('c1912')false> caver.utils.isHexStrict('0xZ1912')false> caver.utils.isHex('Hello')false
isAddress
caver.utils.isAddress(address)
Checks if a given string is a valid kaia address. It will also check the checksum if the address has upper and lowercase letters.
Parameters
Name | Type | Description |
---|---|---|
address | string | An address string. |
Return Value
Type | Description |
---|---|
boolean | true if a given string is a valid kaia address. |
Examples
> caver.utils.isAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d')true> caver.utils.isAddress('c1912fee45d61c87cc5ea59dae31190fffff232d')true> caver.utils.isAddress('0XC1912FEE45D61C87CC5EA59DAE31190FFFFF232D')true // as all is uppercase, no checksum will be checked> caver.utils.isAddress('0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d')true> caver.utils.isAddress('0xC1912fEE45d61C87Cc5EA59DaE31190FFFFf232d')false // wrong checksum
toChecksumAddress
caver.utils.toChecksumAddress(address)
Converts an upper or lowercase kaia address to a checksum address.
Parameters
Name | Type | Description |
---|---|---|
address | string | An address string. |
Return Value
Type | Description |
---|---|
string | The checksum address. |
Examples
> caver.utils.toChecksumAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d')'0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d'> caver.utils.toChecksumAddress('0XC1912FEE45D61C87CC5EA59DAE31190FFFFF232D')'0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d' // same as above
checkAddressChecksum
caver.utils.checkAddressChecksum(address)
Checks the checksum of a given address. Will also return false
on non-checksum addresses.
Parameters
Name | Type | Description |
---|---|---|
address | string | An address string. |
Return Value
Type | Description |
---|---|
boolean | true when the checksum of the address is valid, false if it is not a checksum address, or the checksum is invalid. |
Examples
> caver.utils.checkAddressChecksum('0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d')true
toHex
caver.utils.toHex(mixed)
Converts any given value to HEX. The numeric strings will be interpreted as numbers. Text strings will be interpreted as UTF-8 strings.
Parameters
Name | Type | Description |
---|---|---|
mixed | string \ | The input to convert to HEX. |
Return Value
Type | Description |
---|---|
string | The resulting HEX string. |
Examples
> caver.utils.toHex('234')'0xea'> caver.utils.toHex(234)'0xea'> caver.utils.toHex(new caver.utils.BN('234'))'0xea'> caver.utils.toHex(new caver.utils.BigNumber('234'))'0xea'> caver.utils.toHex('I have 100€')'0x49206861766520313030e282ac'
hexToNumberString
caver.utils.hexToNumberString(hex)
Returns the number representation of a given HEX value as a string.
Parameters
Name | Type | Description |
---|---|---|
hexstring | string | A HEX string to be converted. |
Return Value
Type | Description |
---|---|
string | The number as a string. |
Examples
> caver.utils.hexToNumberString('0xea')"234"
hexToNumber
caver.utils.hexToNumber(hex)
Returns the number representation of a given HEX value.
NOTE: This is not useful for big numbers, rather use caver.utils.toBN.
Parameters
Name | Type | Description |
---|---|---|
hexstring | string | A HEX string to be converted. |
Return Value
Type | Description |
---|---|
number | The number representation of a given HEX value. |
Examples
> caver.utils.hexToNumber('0xea')234
numberToHex
caver.utils.numberToHex(number)
Returns the HEX representation of a given number value.
Parameters
Name | Type | Description |
---|---|---|
number | string \ | A number as string or number. |
Return Value
Type | Description |
---|---|
string | The HEX value of the given number. |
Examples
> caver.utils.numberToHex('234')'0xea'
hexToUtf8
caver.utils.hexToUtf8(hex)caver.utils.hexToString(hex) // ALIAS
Returns the UTF-8 string representation of a given HEX value.
Parameters
Name | Type | Description |
---|---|---|
hex | string | A HEX string to convert to a UTF-8 string. |
Return Value
Type | Description |
---|---|
string | The UTF-8 string. |
Examples
> caver.utils.hexToUtf8('0x49206861766520313030e282ac')'I have 100€'
hexToAscii
caver.utils.hexToAscii(hex)
Returns the ASCII string representation of a given HEX value.
Parameters
Name | Type | Description |
---|---|---|
hex | string | A HEX string to convert to an ASCII string. |
Return Value
Type | Description |
---|---|
string | The ASCII string. |
Examples
> caver.utils.hexToAscii('0x4920686176652031303021')'I have 100!'
utf8ToHex
caver.utils.utf8ToHex(str)caver.utils.stringToHex(str) // ALIAS
Returns the HEX representation of a given UTF-8 string.
Parameters
Name | Type | Description |
---|---|---|
str | string | A UTF-8 string to convert to a HEX string. |
Return Value
Type | Description |
---|---|
string | The HEX string. |
Examples
> caver.utils.utf8ToHex('I have 100€')'0x49206861766520313030e282ac'
asciiToHex
caver.utils.asciiToHex(str)
Returns the HEX representation of a given ASCII string.
Parameters
Name | Type | Description |
---|---|---|
str | string | An ASCII string to convert to a HEX string. |
Return Value
Type | Description |
---|---|
string | The HEX string. |
Examples
> caver.utils.asciiToHex('I have 100!')'0x4920686176652031303021'
hexToBytes
caver.utils.hexToBytes(hex)
Returns a byte array from the given HEX string.
Parameters
Name | Type | Description |
---|---|---|
hex | string | A HEX string to be converted. |
Return Value
Type | Description |
---|---|
Array | The byte array. |
Examples
> caver.utils.hexToBytes('0x000000ea')[ 0, 0, 0, 234 ]
bytesToHex
caver.utils.bytesToHex(byteArray)
Returns a HEX string from a byte array.
Parameters
Name | Type | Description |
---|---|---|
byteArray | Array | A byte array to convert. |
Return Value
Type | Description |
---|---|
string | The HEX string. |
Examples
> caver.utils.bytesToHex([ 72, 101, 108, 108, 111, 33, 36 ])'0x48656c6c6f2124'
convertToPeb
caver.utils.convertToPeb(number [, unit])
Converts any KAIA value into peb.
NOTE: "peb" is the smallest KAIA unit, and you should always use "peb" as the unit of KAIA. Convert to "KAIA" only for display reasons.
Parameters
Name | Type | Description |
---|---|---|
number | string \ | The value. |
unit | string | (optional, defaults to |
Return Value
Type | Description |
---|---|
string \ | If the number parameter is an instance of BN, it returns a BN instance, otherwise a string. |
Examples
> caver.utils.convertToPeb('1', 'KAIA')'1000000000000000000'> caver.utils.convertToPeb(caver.utils.toBN(1), 'KAIA')<BN: de0b6b3a7640000>
convertFromPeb
caver.utils.convertFromPeb(number [, unit])
NOTE: "peb" is the smallest KAIA unit, and you should always use "peb" as the unit of KAIA. Convert to "KAIA" only for display reasons.
Parameters
Name | Type | Description |
---|---|---|
number | string \ | The value in peb. |
unit | string | (optional, defaults to |
Return Value
Type | Description |
---|---|
string | The string number. |
Examples
> caver.utils.convertFromPeb('1', 'KAIA')'0.000000000000000001'
convertToKei
caver.utils.convertToKei(number [, unit])
Converts any KAIA value into kei.
NOTE: "kei" is the smallest KAIA unit, and you should always use "kei" as the unit of KAIA. Convert to "KAIA" only for display reasons.
Parameters
Name | Type | Description |
---|---|---|
number | string \ | The value. |
unit | string | (optional, defaults to |
Return Value
Type | Description |
---|---|
string \ | If the number parameter is an instance of BN, it returns a BN instance, otherwise a string. |
Examples
> caver.utils.convertToKei('1', 'KAIA')'1000000000000000000'> caver.utils.convertToKei(caver.utils.toBN(1), 'KAIA')<BN: de0b6b3a7640000>
convertFromKei
caver.utils.convertFromKei(number [, unit])
NOTE: "kei" is the smallest KAIA unit, and you should always use "kei" as the unit of KAIA. Convert to "KAIA" only for display reasons.
Parameters
Name | Type | Description |
---|---|---|
number | string \ | The value in kei. |
unit | string | (optional, defaults to |
Return Value
Type | Description |
---|---|
string | The string number. |
Examples
> caver.utils.convertFromKei('1', 'KAIA')'0.000000000000000001'
unitMap
caver.utils.unitMap
Shows all possible KAIA (or KAIA) values and their amount in peb (or kei).
Return Value
Type | Description |
---|---|
Object | With the following properties:- |
Examples
> caver.utils.unitMap{ peb: '1', kpeb: '1000', Mpeb: '1000000', Gpeb: '1000000000', Ston: '1000000000', uKLAY: '1000000000000', mKLAY: '1000000000000000', KAIA: '1000000000000000000', kKLAY: '1000000000000000000000', MKLAY: '1000000000000000000000000', GKLAY: '1000000000000000000000000000', TKLAY: '1000000000000000000000000000000', kei: '1', Gkei: '1000000000', KAIA: '1000000000000000000',}
klayUnit
caver.utils.klayUnit
Shows all KAIA (or KAIA) units.
Return Value
Type | Description |
---|---|
Object | An object in which the units of KAIA used in kaia (or the units of KAIA used in KAIA) are defined. Each unit has its name and pebFactor. pebFactor is used when converting KAIA (or KAIA) currently translated in each unit to 'peb' (or 'kei'). |
Examples
> caver.utils.klayUnit{ peb: { unit: 'peb', pebFactor: 0 }, kpeb: { unit: 'kpeb', pebFactor: 3 }, Mpeb: { unit: 'Mpeb', pebFactor: 6 }, Gpeb: { unit: 'Gpeb', pebFactor: 9 }, ston: { unit: 'ston', pebFactor: 9 }, uKLAY: { unit: 'uKLAY', pebFactor: 12 }, mKLAY: { unit: 'mKLAY', pebFactor: 15 }, KAIA: { unit: 'KAIA', pebFactor: 18 }, kKLAY: { unit: 'kKLAY', pebFactor: 21 }, MKLAY: { unit: 'MKLAY', pebFactor: 24 }, GKLAY: { unit: 'GKLAY', pebFactor: 27 }, TKLAY: { unit: 'TKLAY', pebFactor: 30 }, kei: { unit: 'kei', pebFactor: 0 }, Gkei: { unit: 'Gkei', pebFactor: 9 }, KAIA: { unit: 'KAIA', pebFactor: 18 }}
kaiaUnit
caver.utils.kaiaUnit
BN \
Return Value
Type | Description |
---|---|
Object | object \ Each unit has its name and keiFactor. string \ |
Examples
number \\
padLeft
caver.utils.padLeft(string, characterAmount [, sign])caver.utils.leftPad(string, characterAmount [, sign]) // ALIAS
Adds padding on the left of a string. Useful for adding paddings to HEX strings.
Parameters
Name | Type | Description |
---|---|---|
string | string | The string to add padding on the left. |
characterAmount | number | The number of characters the total string should have. |
sign | string | (optional) The character sign to use, defaults to 0 . |
Return Value
Type | Description |
---|---|
string | The padded string. |
Examples
> caver.utils.padLeft('0x3456ff', 20)'0x000000000000003456ff'> caver.utils.padLeft(0x3456ff, 20)'0x000000000000003456ff'> caver.utils.padLeft('Hello', 20, 'x')'xxxxxxxxxxxxxxxHello'
padRight
caver.utils.padRight(str, characterAmount [, sign])caver.utils.rightPad(str, characterAmount [, sign]) // ALIAS
Adds padding on the right of a string, Useful for adding paddings to HEX strings.
Parameters
Name | Type | Description |
---|---|---|
str | string | The string to add padding on the right. |
characterAmount | number | The number of characters the total string should have. |
sign | string | (optional) The character sign to use, defaults to 0 . |
Return Value
Type | Description |
---|---|
string | The padded string. |
Examples
> caver.utils.padRight('0x3456ff', 20)'0x3456ff00000000000000'> caver.utils.padRight(0x3456ff, 20)'0x3456ff00000000000000'> caver.utils.padRight('Hello', 20, 'x')'Helloxxxxxxxxxxxxxxx'
trimLeadingZero
caver.utils.trimLeadingZero(hexString)
Removes leading zero from 0x-prefixed hex string.
Parameters
Name | Type | Description |
---|---|---|
hexString | string | A hex string to trim. |
Return Value
Type | Description |
---|---|
string | A hex string without leading zero. |
Examples
> caver.utils.trimLeadingZero('0x000011')0x11
makeEven
caver.utils.makeEven(hexString)
Returns a string to an even length.
Parameters
Name | Type | Description |
---|---|---|
hexString | string | A hex string to make even. |
Return Value
Type | Description |
---|---|
string | A string with even length. |
Examples
> caver.utils.makeEven('0x011')0x0011
toTwosComplement
caver.utils.toTwosComplement(num)
Converts a negative number into a two's complement.
Parameters
Name | Type | Description |
---|---|---|
num | BigNumber \ | The number to convert. |
Return Value
Type | Description |
---|---|
string | The converted hex string. |
Examples
> caver.utils.toTwosComplement('-1')'0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'> caver.utils.toTwosComplement(-1)'0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'> caver.utils.toTwosComplement('0x1')'0x0000000000000000000000000000000000000000000000000000000000000001'> caver.utils.toTwosComplement(-15)'0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1'> caver.utils.toTwosComplement('-0x1')'0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
isContractDeployment
caver.utils.isContractDeployment(transactionObject)
Returns true
if the given transaction is a smart contract deploy transaction. It returns false
if the transaction is not a smart contract deploy transaction. The result is determined by the values of the parameters in the transactionObject
. Make sure all the mandatory parameters are set correctly.
Parameters
Name | Type | Description |
---|---|---|
transactionObject | object | An instance of Transaction to check contract deploy transaction or not. |
Return Value
Type | Description |
---|---|
boolean | true means the transaction object is for smart contract deploy. |
Examples
> caver.utils.isContractDeployment(caver.transaction.legacyTransaction.create({ to: '0x9957dfd92e4b70f91131c573293343bc5f21f215', value: caver.utils.toPeb(1, 'KAIA'), gas: 25000,}))false> caver.utils.isContractDeployment(caver.transaction.legacyTransaction.create({ input: '0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029', gas: 200000,}))true> caver.utils.isContractDeployment(caver.transaction.smartContractDeploy.create({ from: '0x88e245dec96830f012f8fc1806bc623b3774560d', input: '0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029', gas: 100000,}))true> caver.utils.isContractDeployment(caver.transaction.feeDelegatedSmartContractDeploy.create({ from: '0x88e245dec96830f012f8fc1806bc623b3774560d', input: '0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029', gas: 100000,}))true> caver.utils.isContractDeployment(caver.transaction.feeDelegatedSmartContractDeployWithRatio.create({ from: '0x88e245dec96830f012f8fc1806bc623b3774560d', input: '0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029', gas: 100000, feeRatio: 30,}))true
xyPointFromPublicKey
caver.utils.xyPointFromPublicKey(publicKey)
Returns the x and y coordinates of the given publicKey. For more information on key cryptography, see Elliptic-curve cryptography.
NOTE This function does not contain any logic to check whether the public key is valid. The function only split the input publicKey into x and y points by length. To validate public key, please use isValidPublicKey.
Parameters
Name | Type | Description |
---|---|---|
publicKey | string | The publicKey to get x and y points. |
Return Value
Type | Description |
---|---|
Array | An array storing x and y points. Index 0 has x point, and index 1 has y point. |
Examples
> caver.utils.xyPointFromPublicKey('0xa5862ded55cd9c7e9ff246dbc264ca5d5c605308f59b74e581b4f089d4c8c88cb9f00df6a56493f6029af215d266c907660ea0f7a4111ea025ea9d9be418fa55')[ '0xa5862ded55cd9c7e9ff246dbc264ca5d5c605308f59b74e581b4f089d4c8c88c', '0xb9f00df6a56493f6029af215d266c907660ea0f7a4111ea025ea9d9be418fa55']
isHexPrefixed
caver.utils.isHexPrefixed(input)
Returns true
if the input is a 0x-prefixed hex string, otherwise it returns false
.
Parameters
Name | Type | Description |
---|---|---|
input | string | The value to be determined if the parameter is 0x-prefixed hex string or not. |
Return Value
Type | Description |
---|---|
boolean | true means the input is 0x-prefixed hex string. |
Examples
> caver.utils.isHexPrefixed('0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9')true> caver.utils.isHexPrefixed('0x1')true> caver.utils.isHexPrefixed('0xqwer')false> caver.utils.isHexPrefixed('1')false
addHexPrefix
caver.utils.addHexPrefix(input)
Returns a 0x-prefixed hex string. If the input is already 0x-prefixed or a non-hex string, the input value is returned as-is.
Parameters
Name | Type | Description |
---|---|---|
input | string | string value to be prefixed with 0x. |
Return Value
Type | Description |
---|---|
string | 0x-prefixed hex string is returned. |
Examples
> caver.utils.addHexPrefix('a5b0cd8c87e77879d64cc064ee239ed6f71cacf9')'0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9'> caver.utils.addHexPrefix('0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9')'0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9'
stripHexPrefix
caver.utils.stripHexPrefix(input)
Returns the result with 0x prefix stripped from input.
NOTE caver.klay.stripHexPrefix is supported from v1.0.1. To use this feature, please install v1.0.1 or higher.
Parameters
Name | Type | Description |
---|---|---|
input | string | string to remove 0x prefix. |
Return Value
Type | Description |
---|---|
string | A string stripped of 0x is returned. |
Examples
> caver.utils.stripHexPrefix('a5b0cd8c87e77879d64cc064ee239ed6f71cacf9')'a5b0cd8c87e77879d64cc064ee239ed6f71cacf9'> caver.utils.stripHexPrefix('0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9')'a5b0cd8c87e77879d64cc064ee239ed6f71cacf9'
toBuffer
caver.utils.toBuffer(input)
This function converts the input to a Buffer. To convert an object into a Buffer using toBuffer
, the object must implement toArray function. For string type input, this function only works with a 0x-prefixed hex string.
Parameters
Name | Type | Description |
---|---|---|
input | BigNumber Buffer \ number \ BN \ | The value to be converted to a Buffer. |
NOTE BigNumber
type is supported since caver-js v1.6.4.
Return Value
Type | Description |
---|---|
Buffer | The value converted to Buffer type is returned. |
Examples
// Buffer> caver.utils.toBuffer(Buffer.alloc(0))<Buffer >// 0x-prefixed hex string> caver.utils.toBuffer('0x1234')<Buffer 12 34>// number> caver.utils.toBuffer(1)<Buffer 01>// Array> caver.utils.toBuffer([1,2,3])<Buffer 01 02 03>// BN> caver.utils.toBuffer(new caver.utils.BN(255))<Buffer ff>// Object that implements toArray function> caver.utils.toBuffer({toArray: function() {return [1,2,3,4]}})<Buffer 01 02 03 04>// null or undefined> caver.utils.toBuffer(null)<Buffer >> caver.utils.toBuffer(undefined)<Buffer >// non 0x-prefixed hex string> caver.utils.toBuffer('0xqwer')Error: Failed to convert string to Buffer. 'toBuffer' function only supports 0x-prefixed hex string// Object that does not implement toArray function> caver.utils.toBuffer({})Error: To convert an object to a buffer, the toArray function must be implemented inside the object
numberToBuffer
caver.utils.numberToBuffer(input)
This function converts a number to a Buffer. The caver.utils.toBuffer has the same behavior as this function when the input is a number.
Parameters
Name | Type | Description |
---|---|---|
input | string \ | A number to be converted to a Buffer. |
Return Value
Type | Description |
---|---|
Buffer | The value converted to Buffer type is returned. |
Examples
> caver.utils.numberToBuffer(1)<Buffer 01>> caver.utils.numberToBuffer('2')<Buffer 02>> caver.utils.numberToBuffer('0x3')<Buffer 03>> caver.utils.numberToBuffer(new caver.utils.BN(4))<Buffer 04>