caver.utils

caver-js 유틸리티 API.

caver.utils는 유틸리티 함수를 제공합니다.

randomHex

caver.utils.randomHex(size)

주어진 바이트 크기로부터 암호학적으로 강력한 의사 난수 HEX 문자열을 생성하기 위한 randomHex 라이브러리.

Parameters

NameTypeDescription

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

TypeDescription

string

생성된 임의의 HEX 문자열.

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'

_

caver.utils._()

많은 편리한 자바스크립트 함수를 위한 underscore 라이브러리입니다.

자세한 내용은 underscore API reference를 참조하세요.

Example

> var _ = caver.utils._

> _.union([1,2],[3])
[1,2,3]

> _.each({my: 'object'}, function(value, key){ ... })
...

toBN

caver.utils.toBN(number)

자바스크립트에서 큰 숫자를 처리하기 위해(BigNumber.js를 포함해) 주어진 값을 BN.js 인스턴스로 안전하게 변환합니다.

Parameters

NameTypeDescription

number

string \

number

Return Value

TypeDescription

Object

BN.js 인스턴스.

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)

주어진 값이 BN.js 인스턴스인지 확인합니다.

Parameters

NameTypeDescription

bn

object

BN.js 인스턴스.

Return Value

TypeDescription

boolean

주어진 값이 BN.js 인스턴스인 경우 true.

Example

> var number = new caver.utils.BN(10)
> caver.utils.isBN(number)
true

isBigNumber

caver.utils.isBigNumber(bignumber)

주어진 값이 BigNumber.js 인스턴스인지 확인합니다.

Parameters

NameTypeDescription

bignumber

object

BigNumber.js 인스턴스.

Return Value

TypeDescription

boolean

주어진 값이 BigNumber.js 인스턴스인 경우 true.

Example

> var number = new caver.utils.BigNumber(10)
> caver.utils.isBigNumber(number)
true

sha3

caver.utils.sha3(str)
caver.utils.keccak256(str) // ALIAS

입력의 sha3을 계산합니다.

참고: 솔리디티의 sha3를 모방하려면 caver.utils.soliditySha3를 사용합니다.

Parameters

NameTypeDescription

str

string

해시할 문자열.

Return Value

TypeDescription

string

결과 해시.

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 number
null

> caver.utils.sha3('0xea') // will be converted to a byte array first, and then hashed
'0x2f20677459120677484f7104c76deb6846a2c071f9b3152c103bb12cd54d1a4a'

soliditySha3

caver.utils.soliditySha3(param1 [, param2, ...])

솔리디티와 같은 방식으로 주어진 입력 매개변수의 sha3를 계산합니다. 이는 인자가 해시되기 전에 ABI 변환되고 빽빽히 채워질 것을 의미합니다.

Parameters

NameTypeDescription

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

TypeDescription

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)

주어진 문자열이 HEX 문자열인지 확인합니다.

Parameters

NameTypeDescription

hex

string

주어진 HEX 문자열.

Return Value

TypeDescription

boolean

주어진 문자열이 HEX 문자열이면 true를 반환합니다.

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. caver.utils.isHex와의 차이점은 HEX 앞에 0x이 붙는다는 것입니다.

Parameters

NameTypeDescription

hex

string

The given HEX string.

Return Value

TypeDescription

boolean

주어진 문자열이 HEX 문자열이면 true.

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)

주어진 문자열이 유효한 Klaytn 주소인지 확인합니다. 주소에 대문자와 소문자가 있으면 체크섬(checksum) 도 검사합니다.

Parameters

NameTypeDescription

address

string

주소 문자열.

Return Value

TypeDescription

boolean

주어진 문자열이 유효한 Klaytn 주소라면 true.

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)

대문자 또는 소문자 Klaytn 주소를 체크섬(Checksum) 주소로 변환합니다.

Parameters

NameTypeDescription

address

string

An address string.

Return Value

TypeDescription

string

체크섬(Checksum) 주소.

Examples

> caver.utils.toChecksumAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d')
'0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d'

> caver.utils.toChecksumAddress('0XC1912FEE45D61C87CC5EA59DAE31190FFFFF232D')
'0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d' // same as above

checkAddressChecksum

caver.utils.checkAddressChecksum(address)

주어진 주소의 체크섬(Checksum)을 확인합니다. 또한 체크섬이 아닌 주소에서 false를 반환합니다.

Parameters

NameTypeDescription

address

string

An address string.

Return Value

TypeDescription

boolean

주소의 체크섬이 유효하면 true, 체크섬 주소가 아니거나 체크섬이 유효하지 않으면 false.

Examples

> caver.utils.checkAddressChecksum('0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d')
true

toHex

caver.utils.toHex(mixed)

주어진 값을 HEX로 변환합니다. 숫자 문자열은 숫자로 해석됩니다. 텍스트 문자열은 UTF-8 문자열로 해석됩니다.

Parameters

NameTypeDescription

mixed

string \

number | BN | BigNumber

Return Value

TypeDescription

string

결과 HEX 문자열.

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)

주어진 HEX 값의 숫자 표현을 문자열로 반환합니다.

Parameters

NameTypeDescription

hexstring

string

변환할 HEX 문자열.

Return Value

TypeDescription

string

문자열로 된 숫자.

Examples

> caver.utils.hexToNumberString('0xea')
"234"

hexToNumber

caver.utils.hexToNumber(hex)

주어진 HEX 값을 숫자로 반환합니다.

참고: 큰 숫자에는 유용하지 않으며, caver.utils.toBN를 대신 사용합니다.

Parameters

NameTypeDescription

hexstring

string

A HEX string to be converted.

Return Value

TypeDescription

number

주어진 HEX 값의 숫자 표현.

Examples

> caver.utils.hexToNumber('0xea')
234

numberToHex

caver.utils.numberToHex(number)

주어진 숫자 값을 HEX 표현으로 반환합니다.

Parameters

NameTypeDescription

number

string \

number | BN | BigNumber

Return Value

TypeDescription

string

주어진 숫자의 HEX 값.

Examples

> caver.utils.numberToHex('234')
'0xea'

hexToUtf8

caver.utils.hexToUtf8(hex)
caver.utils.hexToString(hex) // ALIAS

주어진 HEX 값을 UTF-8 문자열 표현으로 반환합니다.

Parameters

NameTypeDescription

hex

string

UTF-8 문자열로 변환할 HEX 문자열.

Return Value

TypeDescription

string

UTF-8 문자열.

Examples

> caver.utils.hexToUtf8('0x49206861766520313030e282ac')
'I have 100€'

hexToAscii

caver.utils.hexToAscii(hex)

주어진 HEX 값을 ASCII 문자열 표현으로 반환합니다.

Parameters

NameTypeDescription

hex

string

ASCII 문자열로 변환할 HEX 문자열입니다.

Return Value

TypeDescription

string

ASCII 문자열.

Examples

> caver.utils.hexToAscii('0x4920686176652031303021')
'I have 100!'

utf8ToHex

caver.utils.utf8ToHex(str)
caver.utils.stringToHex(str) // ALIAS

주어진 UTF-8 문자열을 HEX 표현으로 반환합니다.

Parameters

NameTypeDescription

str

string

HEX 문자열로 변환할 UTF-8 문자열.

Return Value

TypeDescription

string

HEX 문자열.

Examples

> caver.utils.utf8ToHex('I have 100€')
'0x49206861766520313030e282ac'

asciiToHex

caver.utils.asciiToHex(str)

주어진 ASCII 문자열을 HEX 표현으로 반환합니다.

Parameters

NameTypeDescription

str

string

HEX 문자열로 변환할 ASCII 문자열.

Return Value

TypeDescription

string

The HEX string.

Examples

> caver.utils.asciiToHex('I have 100!')
'0x4920686176652031303021'

hexToBytes

caver.utils.hexToBytes(hex)

주어진 HEX 문자열을 바이트 배열으로 반환합니다.

Parameters

NameTypeDescription

hex

string

A HEX string to be converted.

Return Value

TypeDescription

Array

바이트 배열.

Examples

> caver.utils.hexToBytes('0x000000ea')
[ 0, 0, 0, 234 ]

bytesToHex

caver.utils.bytesToHex(byteArray)

바이트 배열을 HEX 문자열으로 반환합니다.

Parameters

NameTypeDescription

byteArray

Array

변환할 바이트 배열.

Return Value

TypeDescription

string

The HEX string.

Examples

> caver.utils.bytesToHex([ 72, 101, 108, 108, 111, 33, 36 ])
'0x48656c6c6f2124'

convertToPeb

caver.utils.convertToPeb(number [, unit])

모든 KLAY 값을 peb로 변환합니다.

참고: "peb"은 가장 작은 KLAY 단위입니다. KLAY 단위로 항상 "peb"을 써야 됩니다. 외부로 보여야 할 경우에만 "KLAY"로 변환하세요.

Parameters

NameTypeDescription

number

string \

number | BN

unit

string

(선택 사항, 기본값은 "KLAY") 변환하려고 하는 KLAY입니다. number에는 주어진 단위에 대해 다음 승수 중 하나가 곱해집니다: - peb: '1' - kpeb: '1000' - Mpeb: '1000000' - Gpeb: '1000000000' - Ston: '1000000000' - uKLAY: '1000000000000' - mKLAY: '1000000000000000' - KLAY: '1000000000000000000' - kKLAY: '1000000000000000000000' - MKLAY: '1000000000000000000000000' - GKLAY: '1000000000000000000000000000'

Return Value

TypeDescription

string \

BN

Examples

> caver.utils.convertToPeb('1', 'KLAY')
'1000000000000000000'

> caver.utils.convertToPeb(caver.utils.toBN(1), 'KLAY')
<BN: de0b6b3a7640000>

convertFromPeb

caver.utils.convertFromPeb(number [, unit])

NOTE: "peb" is the smallest KLAY unit, and you should always use "peb" as the unit of KLAY. Convert to "KLAY" only for display reasons.

Parameters

NameTypeDescription

number

string \

number | BN | BigNumber

unit

string

(선택 사항, 기본값은 "KLAY") KLAY로 변환하려고 하는 "peb"입니다. number에는 주어진 단위에 대해 다음 승수 중 하나로 나누어 집니다: - peb: '1' - kpeb: '1000' - Mpeb: '1000000' - Gpeb: '1000000000' - Ston: '1000000000' - uKLAY: '1000000000000' - mKLAY: '1000000000000000' - KLAY: '1000000000000000000' - kKLAY: '1000000000000000000000' - MKLAY: '1000000000000000000000000' - GKLAY: '1000000000000000000000000000'

Return Value

TypeDescription

string

문자열 숫자입니다.

Examples

> caver.utils.convertFromPeb('1', 'KLAY')
'0.000000000000000001'

unitMap

caver.utils.unitMap

가능한 모든 KLAY 값과 그 양을 peb로 표시합니다.

Return Value

TypeDescription

Object

With the following properties: - peb: '1' - kpeb: '1000' - Mpeb: '1000000' - Gpeb: '1000000000' - Ston: '1000000000' - uKLAY: '1000000000000' - mKLAY: '1000000000000000' - KLAY: '1000000000000000000' - kKLAY: '1000000000000000000000' - MKLAY: '1000000000000000000000000' - GKLAY: '1000000000000000000000000000' - TKLAY: '1000000000000000000000000000000'

Examples

> caver.utils.unitMap
{
  peb: '1',
  kpeb: '1000',
  Mpeb: '1000000',
  Gpeb: '1000000000',
  Ston: '1000000000',
  uKLAY: '1000000000000',
  mKLAY: '1000000000000000',
  KLAY: '1000000000000000000',
  kKLAY: '1000000000000000000000',
  MKLAY: '1000000000000000000000000',
  GKLAY: '1000000000000000000000000000',
  TKLAY: '1000000000000000000000000000000'
}

klayUnit

caver.utils.klayUnit

모든 KLAY 단위를 보여줍니다.

Return Value

TypeDescription

Object

Klaytn에 사용되는 KLAY 단위가 정의된 객체입니다. 각 단위는 이름과 pebFactor를 포함합니다. pebFactor는 현재 단위로 나타난 KLAY를 'peb'으로 전환할 때 사용됩니다.

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 },
    KLAY: { unit: 'KLAY', pebFactor: 18 },
    kKLAY: { unit: 'kKLAY', pebFactor: 21 },
    MKLAY: { unit: 'MKLAY', pebFactor: 24 },
    GKLAY: { unit: 'GKLAY', pebFactor: 27 },
    TKLAY: { unit: 'TKLAY', pebFactor: 30 }
}

padLeft

caver.utils.padLeft(string, characterAmount [, sign])
caver.utils.leftPad(string, characterAmount [, sign]) // ALIAS

문자열 왼쪽에 패딩(padding)을 추가합니다. HEX 문자열에 패딩을 추가하는 데 유용합니다.

Parameters

NameTypeDescription

string

string

왼쪽에 패딩을 추가할 문자열.

characterAmount

number

총 문자열이 가질 문자 개수.

sign

string

(선택 사항) 사용할 문자 부호, 기본값은 "0"입니다.

Return Value

TypeDescription

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

NameTypeDescription

str

string

오른쪽에 패딩을 추가할 문자열.

characterAmount

number

The number of characters the total string should have.

sign

string

(optional) The character sign to use, defaults to 0.

Return Value

TypeDescription

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

NameTypeDescription

hexString

string

A hex string to trim.

Return Value

TypeDescription

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

NameTypeDescription

hexString

string

A hex string to make even.

Return Value

TypeDescription

string

A string with even length.

Examples

> caver.utils.makeEven('0x011')
0x0011

toTwosComplement

caver.utils.toTwosComplement(num)

음수를 2의 보수로 변환합니다.

Parameters

NameTypeDescription

num

number \

string | BigNumber

Return Value

TypeDescription

string

변환된 HEX 문자열.

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)

주어진 트랜잭션이 스마트 컨트랙트 배포 트랜잭션인 경우 true를 반환합니다. 주어진 트랜잭션이 스마트 컨트랙트 배포 트랜잭션이 아닌 경우 false를 반환합니다. 결과는 transactionObject의 매개변수 값에 의해 결정됩니다. 모든 필수 매개변수가 올바르게 설정되었는지 확인하세요.

Parameters

NameTypeDescription

transactionObject

object

An instance of Transaction to check contract deploy transaction or not.

Return Value

TypeDescription

boolean

true는 트랜잭션 객체가 스마트 컨트랙트 배포용임을 의미합니다.

Examples

> caver.utils.isContractDeployment(caver.transaction.legacyTransaction.create({
    to: '0x9957dfd92e4b70f91131c573293343bc5f21f215',
    value: caver.utils.toPeb(1, 'KLAY'),
    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)

주어진 공개키의 x와 y 좌표를 반환합니다. For more information on key cryptography, see Elliptic-curve cryptography.

참고 이 함수에는 공개키가 유효한지 확인하는 로직이 없습니다. 이 함수는 단지 입력한 공개키를 길이에 따라 x와 y 좌표로만 나눕니다. To validate public key, please use isValidPublicKey.

Parameters

NameTypeDescription

publicKey

string

x와 y 좌표를 얻고자 하는 공개키.

Return Value

TypeDescription

Array

x 및 y 좌표를 저장하는 배열. 인덱스 0에는 x 점을, 인덱스 1에는 y 점을 가집니다.

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

NameTypeDescription

input

string

0x 접두사가 있는 16진수 문자열인지 여부를 판별할 값.

Return Value

TypeDescription

boolean

true은 입력이 0x 접두사가 있는 16진수 문자열임을 의미합니다.

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)

0x 접두사가 있는 16진수 문자열을 반환합니다. 입력이 이미 0x 접두사 꼴이거나 또는 16진수 문자열이 아닌 경우, 입력 값은 그대로 반환됩니다.

Parameters

NameTypeDescription

input

string

string value to be prefixed with 0x.

Return Value

TypeDescription

string

0x 접두사가 있는 16진수 문자열이 반환됩니다.

Examples

> caver.utils.addHexPrefix('a5b0cd8c87e77879d64cc064ee239ed6f71cacf9')
'0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9'

> caver.utils.addHexPrefix('0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9')
'0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9'

stripHexPrefix

caver.utils.stripHexPrefix(input)

입력에서 0x 접두사가 제거된 결과를 반환합니다.

참고 caver.klay.stripHexPrefix는 v1.0.1에서 지원됩니다. 이 기능을 사용하려면 v1.0.1 또는 그 이상을 설치하세요.

Parameters

NameTypeDescription

input

string

string to remove 0x prefix.

Return Value

TypeDescription

string

0x가 제거된 문자열이 반환됩니다.

Examples

> caver.utils.stripHexPrefix('a5b0cd8c87e77879d64cc064ee239ed6f71cacf9')
'a5b0cd8c87e77879d64cc064ee239ed6f71cacf9'

> caver.utils.stripHexPrefix('0xa5b0cd8c87e77879d64cc064ee239ed6f71cacf9')
'a5b0cd8c87e77879d64cc064ee239ed6f71cacf9'

toBuffer

caver.utils.toBuffer(input)

이 함수는 입력을 버퍼로 변환합니다. 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

NameTypeDescription

input

Buffer \

string | number | Array | BN | BigNumber | object

NOTE BigNumber type is supported since caver-js v1.6.4.

Return Value

TypeDescription

Buffer

버퍼 유형으로 변환된 값이 반환됩니다.

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)

이 함수는 숫자를 버퍼로 변환합니다. The caver.utils.toBuffer has the same behavior as this function when the input is a number.

Parameters

NameTypeDescription

input

string \

number | BN | BigNumber

Return Value

TypeDescription

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>

isValidHash

caver.utils.isValidHash(input)

Returns true if the input is in 32-bytes hash format, otherwise it returns false.

Parameters

NameTypeDescription

input

string

The value to be examined that if it is in 32-bytes hash format or not.

Return Value

TypeDescription

boolean

true means the input is in the format of 32-bytes hash.

Examples

// with '0x' hex prefix
> caver.utils.isValidHash('0xe9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
true

// without '0x' hex prefix
> caver.utils.isValidHash('e9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
true

> caver.utils.isValidHash('0x1')
false

isValidHashStrict

caver.utils.isValidHashStrict(input)

Returns true if the input is in 0x-prefixed 32-bytes hash format, otherwise it returns false. This function only looks at the input and determines if it is in the format of 0x-prefixed 32-bytes hash. Difference to caver.utils.isValidHash is that it expects HEX to be prefixed with 0x.

Parameters

NameTypeDescription

input

string

The value to be examined that if it is in the format of 0x-prefixed 32-bytes hash or not.

Return Value

TypeDescription

boolean

true means the input is in the format of 0x-prefixed 32-bytes hash.

Examples

// with '0x' hex prefix
> caver.utils.isValidHashStrict('0xe9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
true

// without '0x' hex prefix
> caver.utils.isValidHashStrict('e9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
false

> caver.utils.isValidHashStrict('0x1')
false

isTxHash

caver.utils.isTxHash(input)

Returns true if the input is in transaction hash format, otherwise it returns false. 이 함수는 입력값만 보고 트랜잭션 해시 형식인지를 판별합니다.

NOTE This function has been deprecated. Use isValidHash to determine if a valid hash is 32 bytes long.

Parameters

NameTypeDescription

input

string

매개변수가 트랜잭션 해시 형식인지 여부를 판별하고자 하는 값.

Return Value

TypeDescription

boolean

true는 입력값이 트랜잭션 해시 형식임을 의미합니다.

Examples

// with '0x' hex prefix
> caver.utils.isTxHash('0xe9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
true

// without '0x' hex prefix
> caver.utils.isTxHash('e9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
true

> caver.utils.isTxHash('0x1')
false

isTxHashStrict

caver.utils.isTxHashStrict(input)

Returns