ケイバーユーティル
caver.utils
はユーティリティ関数を提供する。
ランダムヘクス
caver.utils.randomHex(サイズ)
randomHex](https://github.com/frozeman/randomHex) は、与えられたバイトサイズから暗号的に強力な擬似ランダムHEX文字列を生成するライブラリです。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
サイズ | 番号 | HEX文字列のバイトサイズは、e.., 32 とすると、"0x "を先頭に持つ64文字の32バイトのHEX文字列になる。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ストリング | 生成されたランダムなHEX文字列。 |
例
> 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._()
アンダースコア](http://underscorejs.org) ライブラリには、便利なJavaScript関数がたくさんあります。
詳しく はunderscore API referenceを参照。
例
> 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 インスタンスに安全に変換します。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
番号 | number \ | を大きな数字に変換する。 |
リターン・バリュー
タイプ | 説明 |
---|---|
対象 | BN.js](https://github.com/indutny/bn.js/)のインスタンス。 |
例
>'1234'> caver.utils.toBN('1234').add(caver.utils.toBN('1')).toString()'1235'> caver.utils.toBN('0xea').toString()'234'
イズビーエヌ
caver.utils.isBN(bn)
与えられた値がBN.jsのインスタンスかどうかをチェックする。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
bn | オブジェクト | BN.js](https://github.com/indutny/bn.js/)のインスタンス。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ブーリアン | 与えられた値が BN.js インスタンスであれば true となる。 |
例
> var number = new caver.utils.BN(10)> caver.utils.isBN(number)true
isBigNumber
caver.utils.isBigNumber(bignumber)
与えられた値が BigNumber.js インスタンスであるかどうかをチェックします。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
ビグナンバー | オブジェクト | BigNumber.js](http://mikemcl.github.io/bignumber.js/) インスタンス。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ブーリアン | 与えられた値が BigNumber.js インスタンスであれば true を返す。 |
例
> var number = new caver.utils.BigNumber(10)> caver.utils.isBigNumber(number)true
シャ3
caver.utils.sha3(str)caver.utils.keccak256(str) // ALIAS
入力の sha3 を計算する。
注:Solidityのsha3動作を模倣するには、caver.utils.soliditySha3 を使用します。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
スト | ストリング | ハッシュする文字列。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ストリング | 結果はハッシュ。 |
例
> caver.utils.sha3('234') // 文字列として取得'0xc1912fee45d61c87cc5ea59dae311904cd86b84fee17cc966216f811ce6a79'> 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) // 上記と同じ、数値の HEX 表現のみnull> caver.utils.sha3('0xea') // まずバイト配列に変換され、ハッシュ化される'0x2f20677459120677484f7104c76deb6846a2c071f9b3152c103bb12cd54d1a4a'
soliditySha3
caver.utils.soliditySha3(param1 [, param2, ...])
solidityと同じように、与えられた入力パラメータのsha3を計算する。 つまり、引数はハッシュされる前にABI変換され、タイトにパックされる。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
パラメエックス | ミックス | 任意の型、または {type: 'uint', value: '123456'} または {t: 'bytes', v: '0xfff456'} を持つオブジェクト。 - string 非数値 UTF-8 文字列は 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') // 自動検出: uint256'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3(0xea) // 上記と同じ'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3(new caver.utils.BN('234')) // 上記と同じ。'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3({type: 'uint256', value: '234'})) // 上記と同じ。// 上記と同じ'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3({t: 'uint', v: new caver.utils.BN('234')})))// 上に同じ'0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'> caver.utils.soliditySha3('0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2'soliditySha3('0x407D73d8a49eeb85D32Cf465507dd71d507100c1')'0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b'> caver.utils.soliditySha3({t: 'bytes', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'})'0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b' // 上記と同じ結果> caver.utils.soliditySha3({t: 'address', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'})'0x4e8ebbefa452077428f93c9520d3edd60594ff452a29ac7d2ccc11d47f3ab95b' // 上記と同じだが、マルチケースの場合はチェックサムチェックを行う> caver.utils.soliditySha3({t: 'bytes32', v: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1'})'0x3c69a194aaf415ba5d6afca734660d0a3d45acdc05d54cd1ca89a89e7625b4' // 上記と異なる結果> caver.utils.soliditySha3({t: 'string', v: 'Hello!%'}, {t: 'int8', v:-23}, {t: 'address', v: '0x85F43D8a49eeB85d32Cf465507DD71d507100C1d'})'0xa13b31627c1ed7aaded5aecec71baf02fe123797fffd45e662eac8e06fbe4955'
isHex
caver.utils.isHex(hex)
与えられた文字列がHEX文字列であるかどうかを調べる。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
ヘックス | ストリング | 指定された HEX 文字列。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ブーリアン | 与えられたパラメータがHEX文字列の場合、true を返す。 |
例
>true> caver.utils.isHex('0xc1912')true> caver.utils.isHex('0xZ1912')false> caver.utils.isHex('Hello')false
isHexStrict
caver.utils.isHexStrict(hex)
与えられた文字列がHEX文字列であるかどうかを調べる。 caver.utils.isHex との違いは、HEX の前に 0x
が付くことを期待する点です。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
ヘックス | ストリング | 指定された HEX 文字列。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ブーリアン | 与えられた文字列が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)
与えられた文字列が有効なkaiaアドレスかどうかをチェックする。 また、アドレスに大文字と小文字がある場合はチェックサムをチェックする。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
住所 | ストリング | アドレス文字列。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ブーリアン | 与えられた文字列が有効なKAIAアドレスであれば true 。 |
例
> caver.utils.isAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d')true> caver.utils.isAddress('c1912fee45d61c87cc5ea59dae31190fffff232d')true> caver.utils.isAddress('0XC1912FEE45D61C87CC5EA59DAE31190FFFFF232D')true // すべて大文字なので、チェックサムはチェックされない> caver.utils.isAddress('0xc1912fEE45d61C87Cc5EA59DaE31190FFFFF232d')true> caver.utils.isAddress('0xC1912fEE45d61C87Cc5EA59DaE31190FFFFF232d')false // チェックサムが正しくない。
toChecksumAddress
caver.utils.toChecksumAddress(アドレス)
大文字または小文字のカイアアドレスをチェックサムアドレスに変換する。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
住所 | ストリング | アドレス文字列。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ストリング | チェックサムアドレス。 |
例
> caver.utils.toChecksumAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d')'0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d'> caver.utils.toChecksumAddress('0XC1912FEE45D61C87CC5EA59DAE31190FFFFF232D')'0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d' // 上記と同じ。
チェックアドレス・チェックサム
caver.utils.checkAddressChecksum(アドレス)
指定されたアドレスのチェックサムをチェックする。 また、チェックサムでないアドレスに対しては false
を返す。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
住所 | ストリング | アドレス文字列。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ブーリアン | アドレスのチェックサムが有効な場合は true 、チェックサムアドレスでないかチェックサムが無効な場合は false となる。 |
例
> caver.utils.checkAddressChecksum('0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d')true
toHex
caver.utils.toHex(mixed)
HEX関数は、指定された値をHEXに変換します。 数値文字列は数値として解釈される。 テキスト文字列はUTF-8文字列として解釈される。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
ミックス | string \ | HEXに変換する入力。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ストリング | 結果の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関数は、指定されたHEX値の数値表現を文字列として返します。
パラメーター
名称 | タイプ | 説明 |
---|---|---|
ヘックスストリング | ストリング | 変換するHEX文字列。 |
リターン・バリュー
タイプ | 説明 |
---|---|
ストリング | 文字列としての数字。 |
例
> caver.utils.hexToNumberString('0xea')"234"