caver.utils
caver.utils
는 유틸리티 함수를 제공합니다.
randomHex
caver.utils.randomHex(size)
randomHex 라이브러리는 주어진 바이트 크기에서 암호학적으로 강력한 의사 랜덤 HEX 문자열을 생성합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
size | Number | HEX 문자열의 바이트 크기(예: 32 )는 "0x"로 접두사가 붙은 64자의 32바이트 HEX 문자열을 생성합니다. |
리턴 값
유형 | 설명 |
---|---|
String | 생성된 임의의 HEX 문자열입니다. |
예시
> caver.utils.randomHex(32);"0xa5b9d60f32436310afebcfda832817a68921beb782fabf7915cc0460b443116a"> caver.utils.randomHex(4);"0x6892ffc6"> caver.utils.randomHex(2);"0x99d6"> caver.utils.randomHex(1);"0x9a"> 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){ ... });...
BN
caver.utils.BN(mixed)
JavaScript에서 큰 숫자로 계산하기 위한 BN.js 라이브러리입니다. 자세한 내용은 BN.js 문서를 참조하세요.
매개변수
이름 | 유형 | 설명 |
---|---|---|
mixed | String | Number | 숫자, 숫자 문자열 또는 HEX 문자열을 BN 개체로 변환합니다. |
리턴 값
유형 | 설명 |
---|---|
Object | BN.js 인스턴스입니다. |
예시
> var BN = caver.utils.BN;> new BN(1234).toString();"1234"> new BN('1234').add(new BN('1')).toString();"1235"> new BN('0xea').toString();"234"
isBN
caver.utils.isBN(bn)
주어진 값이 BN.js 인스턴스인지 확인합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
bn | Object | BN.js 인스턴스입니다. |
리턴 값
유형 | 설명 |
---|---|
Boolean | 주어진 값이 BN.js 인스턴스인 경우 true . |
예시
> var number = new 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 BigNumber(10);> caver.utils.isBigNumber(number);true
sha3
caver.utils.sha3(string)caver.utils.keccak256(string) // ALIAS
입력의 sha3를 계산합니다.
참고: Solidity의 sha3 동작을 모방하려면 caver.utils.soliditySha3를 사용하세요.
매개변수
이름 | 유 형 | 설명 |
---|---|---|
string | String | 해시할 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
String | 결과 해시입니다. |
예시
> caver.utils.sha3('234'); // taken as string"0xc1912fee45d61c87cc5ea59dae311904cd86b84fee17cc96966216f811ce6a79"> caver.utils.sha3(new 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 | 모든 유형 또는 {유형: 'uint', 값: '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 BN('234')); // same as above"0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2"> caver.utils.soliditySha3({type: 'uint256', value: '234'})); // same as above"0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2"> caver.utils.soliditySha3({t: 'uint', v: new 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 | 주어진 HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
Boolean | 주어 진 문자열이 HEX 문자열인 경우 true . |
예시
> caver.utils.isHex('0xc1912');true> caver.utils.isHex(0xc1912);true> caver.utils.isHex('c1912');true> caver.utils.isHex(345);true // this is tricky, as 345 can be a HEX representation or a number, be careful when not having a 0x in front!> caver.utils.isHex('0xZ1912');false> caver.utils.isHex('Hello');false
isHexStrict
caver.utils.isHexStrict(hex)
주어진 문자열이 HEX 문자열인지 확인합니다. caver.utils.isHex와의 차이점은 HEX 앞에 0x
가 붙을 것으로 예상한다는 점입니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
hex | string | HEX | 주어진 HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
Boolean | 주어진 문자열이 HEX 문자열인 경우 true . |
예시
> caver.utils.isHexStrict('0xc1912');true> caver.utils.isHexStrict(0xc1912);false> caver.utils.isHexStrict('c1912');false> caver.utils.isHexStrict(345);false // this is tricky, as 345 can be a HEX representation or a number, be careful when not having a 0x in front!> 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 | 체크섬 주소입니다. |
예시
> caver.utils.toChecksumAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d');"0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d"> caver.utils.toChecksumAddress('0XC1912FEE45D61C87CC5EA59DAE31190FFFFF232D');"0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d" // same as above
checkAddressChecksum
caver.utils.checkAddressChecksum(address)
주어진 주소의 체크섬을 확인합니다. 체크섬이 아닌 주소에 대해서는 false
를 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
address | String | 주소 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
Boolean | 주소의 체크섬이 유효하면 true , 체크섬 주소가 아니거나 체크섬이 유효하지 않으면 false 를 반환합니다. |
예시
> caver.utils.checkAddressChecksum('0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d');true
toHex
caver.utils.toHex(mixed)
주어진 값을 HEX로 변환합니다. 숫자 문자열은 숫자로 해석됩니다. 텍스트 문자열은 UTF-8 문자열로 해석됩니다.
파라미터
이름 | 유형 | 설명 |
---|---|---|
mixed | String | Number | BN | BigNumber | HEX로 변환할 입력입니다. |
리턴 값
유형 | 설명 |
---|---|
String | HEX 문자열에 패딩을 추가할 때 유용합니다. |
예제
> caver.utils.toHex('234');"0xea"> caver.utils.toHex(234);"0xea"> caver.utils.toHex(new BN('234'));"0xea"> caver.utils.toHex(new BigNumber('234'));"0xea"> caver.utils.toHex('I have 100€');"0x49206861766520313030e282ac"
toBN
caver.utils.toBN(number)
JavaScript에서 큰 숫자를 처리하기 위해 주어진 값(BigNumber.js 인스턴스 포함)을 BN.js 인스턴스로 안전하게 변환합니다.
참고: BN.js 클래스만 사용하려면 caver.utils.BN을 사용하세요.
매개변수
object | 유형 | 설명 |
---|---|---|
number | String | Number | HEX | 큰 숫자로 변환할 숫자입니다. |
리턴 값
유형 | 설명 |
---|---|
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"
hexToNumberString
caver.utils.hexToNumberString(hex)
주어진 HEX 값의 숫자 표현을 문자열로 반환합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
hexString | HEX String | 변환할 HEX 문자열입니다. |
리턴 값
유형 | 설명 |
---|---|
String | string 형태의 숫자입니다. |
예시
> caver.utils.hexToNumberString('0xea');"234"
hexToNumber
caver.utils.hexToNumber(hex)
주어진 HEX 값의 숫자 표현을 반환합니다.
참고: 이 방법은 큰 숫자에는 유용하지 않으므로 caver.utils.toBN을 사용하세요.
매개변수
이름 | 유형 | 설명 |
---|---|---|
hexString | HEX String | 변환할 HEX 문자열입니다. |