caver.utils
caver.utils
는 유틸리티 함수를 제공합니다.
randomHex
caver.utils.randomHex(size)
randomHex 라이브러리는 주어진 바이트 크기에서 암호학적으로 강력한 의사 랜덤 HEX 문자열을 생성합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
size | bool | HEX 문자열의 바이트 크기, _예: 32 는 "0x"가 접두사로 붙은 64개의 문자가 포함된 32바이트 HEX 문자열을 생성합니다. |
리턴 값
유형 | 설명 |
---|---|
string | 짝수로 만들 16진수 문자열입니다. |
예시
> 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._()
underscore 라이브러리에는 여러 가지 편리한 JavaScript 함수가 있습니다.
자세한 내용은 underscore API 레퍼런스를 참조하세요.
예시
> var _ = caver.utils._> _.union([1,2],[3])[1,2,3]> _.each({my: 'object'}, function(value, key){ ... })...
toBN
caver.utils.toBN(number)
JavaScript에서 큰 숫자를 처리하기 위해 주어진 값(BigNumber.js 인스턴스 포함)을 BN.js 인스턴스로 안전하게 변환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bool | string | number | 숫자를 큰 숫자로 변환합니다. |
리턴 값
유형 | 설명 |
---|---|
Object | BN.js 인스턴스. |
예시
> 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 인스턴스인지 확인합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bool | object | BN.js 인스턴스입니다. |
리턴 값
유형 | 설명 |
---|---|
boolean | 주어진 값이 BN.js 인스턴스이면 true . |
예시
> var number = new caver.utils.BN(10)> caver.utils.isBN(number)true
isBigNumber
caver.utils.isBigNumber(bignumber)
주어진 값이 BigNumber.js 인스턴스인지 확인합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bignumber | object | BigNumber.js 인스턴스. |
리턴 값
유형 | 설명 |
---|---|
boolean | 주어진 값이 BigNumber.js 인스턴스인 경우 true . |
예시
> var number = new caver.utils.BigNumber(10)> caver.utils.isBigNumber(number)true
sha3
caver.utils.sha3(str)caver.utils.keccak256(str) // ALIAS
입력의 sha3를 계산합니다.
참고: Solidity의 sha3 동작을 모방하려면 caver.utils.soliditySha3를 사용하세요.
매개변수
이름 | 유형 | 설명 |
---|---|---|
String | string | String |
리턴 값
유형 | 설명 |
---|---|
string | 결과 해시입니다. |
예시
> 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, ...])
Solidity와 동일한 방식으로 주어진 입력 매개변수의 sha3를 계산합니다. 즉, 인수가 해시되기 전에 ABI로 변환되고 단단히 패킹됩니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
paramX | Mixed | 모든 타입, 또는 {type: 'uint', value: '123456'} 또는 {t: '바이트', v: '0xfff456'} 를 가진 객체. 기본 유형은 다음과 같이 자동 감지됩니다. - string 숫자가 아닌 UTF-8 문자열은 string 으로 해석됩니다.- string |
리턴 값
유형 | 설명 |
---|---|
string | 결과 해시입니다. |
예시
> 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 문자열인지 확인합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
HEX | string | HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
boolean | 주어진 매개변수가 HEX 문자열인 경우 true . |
예시
> 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)
주어진 문자열이 HEX 문자열인지 확인합니다. caver.utils.isHex와의 차이점은 HEX 앞에 0x
가 붙을 것으로 예상한다는 점입니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bool | string | HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
boolean | 주어진 문자열이 HEX 문자열인 경우 true . |
예시
> 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)
주어진 문자열이 유효한 클레이튼 주소인지 확인합니다. 또한 주소에 대문자와 소문자가 있는지 체크섬을 확인합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
address | string | 해시할 메시지입니다. |
리턴 값
유형 | 설명 |
---|---|
boolean | 주어진 문자열이 유효한 클레이튼 주소이면 true 를 반환합니다. |
예시
> 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)
대문자 또는 소문자 클레이튼 주소를 체크섬 주소로 변환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
address | string | String |
리턴 값
유형 | 설명 |
---|---|
string | 체크섬 주소 |
예시
> caver.utils.toChecksumAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d')'0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d'> caver.utils.toChecksumAddress('0XC1912FEE45D61C87CC5EA59DAE31190FFFFF232D')'0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d' // same as above
checkAddressChecksum
caver.utils.checkAddressChecksum(address)
주어진 주소의 체크섬을 확인합니다. 체크섬이 아닌 주소에 대해서도 false
를 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
address | string | String |
리턴 값
유형 | 설명 |
---|---|
boolean | 주소의 체크섬이 유효하면 true , 체크섬 주소가 아니거나 체크섬이 유효하지 않으면 false 를 반환합니다. |
예시
> caver.utils.checkAddressChecksum('0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d')true
toHex
caver.utils.toHex(mixed)
주어진 값을 HEX로 변환합니다. d제공된 단위에는 다음 승수 중 하나가 곱해집니다. 텍스트 문자열은 UTF-8 문자열로 해석됩니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
mixed | string | number | BN | BigNumber | HEX로 변환할 입력입니다. |
리턴 값
유형 | 설명 |
---|---|
string | 결과 HEX 문자열입니다. |
예시
> 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 값의 숫자 표현을 문자열로 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
String | string | 변환할 HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
string | 다듬을 16진수 문자열입니다. |
예시
> caver.utils.hexToNumberString('0xea')"234"
hexToNumber
caver.utils.hexToNumber(hex)
주어진 HEX 값의 숫자 표현을 반환합니다.
참고: 이 방법은 큰 숫자에는 유용하지 않으므로 caver.utils.toBN을 사용하세요.
파라미터
이름 | 유형 | 설명 |
---|---|---|
String | string | 변환할 HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
bool | 주어진 HEX 값의 숫자 표현입니다. |
예시
> caver.utils.hexToNumber('0xea')234
numberToHex
caver.utils.numberToHex(number)
주어진 숫자 값의 HEX 표현을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bool | string | number | BN | BigNumber | string 또는 숫자로 된 숫자입니다. |
리턴 값
유형 | 설명 |
---|---|
string | 주어진 숫자의 HEX 값입니다. |
예시
> caver.utils.numberToHex('234')'0xea'
hexToUtf8
caver.utils.hexToUtf8(hex)caver.utils.hexToString(hex) // ALIAS
주어진 HEX 값의 UTF-8 문자열 표현을 반환합니다.
파라미터
이름 | 유형 | 설명 |
---|---|---|
hex | string | HEX 문자열로 변환할 UTF-8 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
string | String |
예시
> caver.utils.hexToUtf8('0x49206861766520313030e282ac')'I have 100€'
hexToAscii
caver.utils.hexToAscii(hex)
주어진 HEX 값의 ASCII 문자열 표현을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
hex | string | HEX 문자열로 변환할 ASCII 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
string | String |
예시
> caver.utils.hexToAscii('0x4920686176652031303021')'I have 100!'
utf8ToHex
caver.utils.utf8ToHex(str)caver.utils.stringToHex(str) // ALIAS
주어진 UTF-8 문자열의 HEX 표현을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
String | string | UTF-8 문자열로 변환할 HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
string | String |
예시
> caver.utils.utf8ToHex('I have 100€')'0x49206861766520313030e282ac'
asciiToHex
caver.utils.asciiToHex(str)
주어진 ASCII 문자열의 HEX 표현을 반환합니다.
파라미터
이름 | 유형 | 설명 |
---|---|---|
String | string | ASCII 문자열로 변환할 HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
string | String |
예시
> caver.utils.asciiToHex('I have 100!')'0x4920686176652031303021'
hexToBytes
caver.utils.hexToBytes(hex)
주어진 HEX 문자열에서 바이트 배열을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bool | string | 변환할 HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
Array | 바이트 배열입니다. |
예시
> caver.utils.hexToBytes('0x000000ea')[ 0, 0, 0, 234 ]
bytesToHex
caver.utils.bytesToHex(byteArray)
바이트 배열에서 HEX 문자열을 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
byteArray | Array | 변환할 바이트 배열입니다. |
리턴 값
유형 | 설명 |
---|---|
string | String |
예시
> caver.utils.bytesToHex([ 72, 101, 108, 108, 111, 33, 36 ])'0x48656c6c6f2124'
convertToPeb
caver.utils.convertToPeb(number [, unit])
모든 KLAY 값을 peb으로 변환합니다.
참고: "peb"는 가장 작은 KLAY 단위이며, 항상 "peb"를 KLAY의 단위로 사용해야 합니다. 표시상의 이유로만 "KLAY"로 변환하세요.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bool | string | number | BN | 값입니다. |
unit | string | (선택 사항, 기본값은 |
리턴 값
유형 | 설명 |
---|---|
String | 숫자 매개변수가 BN의 인스턴스인 경우 BN 인스턴스를 반환하고, 그렇지 않은 경우 문자열을 반환합니다. |
예시
> caver.utils.convertToPeb('1', `klay`)'1000000000000000000'> caver.utils.convertToPeb(caver.utils.toBN(1), `klay`)<BN: de0b6b3a7640000>
convertFromPeb
caver.utils.convertFromPeb(number [, unit])
참고: "peb"는 가장 작은 KLAY 단위이며, 항상 "peb"를 KLAY의 단위로 사용해야 합니다. 표시상의 이유로만 "KLAY"로 변환하세요.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bool | string | number | BN | BigNumber | 단위가 peb인 값 |
unit | string | (선택 사항, 기본값은 |
리턴 값
유형 | 설명 |
---|---|
string | String |
예시
> caver.utils.convertFromPeb('1', `klay`)'0.000000000000000001'
unitMap
caver.utils.unitMap
가능한 모든 KLAY 값과 그 양을 peb 단위로 표시합니다.
리턴 값
유형 | 설명 |
---|---|
Object | 다음 속성 포함 :- |
예시
> 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 단위를 표시합니다.
리턴 값
유형 | 설명 |
---|---|
Object | 클레이튼에서 사용되는 KLAY의 단위가 정의된 객체입니다. 각 단위에는 이름과 pebFactor가 있으며, 현재 각 단위로 변환된 KLAY를 'peb'로 변환할 때 pebFactor가 사용됩니다. |
예시
> 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
문자열 왼쪽에 패딩을 추가합니다. HEX 문자열에 패딩을 추가할 때 유용합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
string | string | string 왼쪽에 패딩을 추가할 문자열입니다. |
characterAmount | bool | 전체 문자열에 포함되어야 하는 문자 수입니다. |
sign | string | (선택 사항) 사용할 문자 기호, 기본값은 0 입니다. |
리턴 값
유형 | 설명 |
---|---|
string | String |
예시
> 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
문자열 오른쪽에 패딩을 추가하며, HEX 문자열에 패딩을 추가할 때 유용합니다.
매개변수