>caver.utils.sha3('234'); // taken as string"0xc1912fee45d61c87cc5ea59dae311904cd86b84fee17cc96966216f811ce6a79">caver.utils.sha3(newBN('234')); // utils.sha3 stringify bignumber instance."0xc1912fee45d61c87cc5ea59dae311904cd86b84fee17cc96966216f811ce6a79">caver.utils.sha3(234);null// không tính được số có của một số>caver.utils.sha3(0xea); // giống như trên, chỉ là biểu diễn HEX của sốnull>caver.utils.sha3('0xea'); // sẽ được chuyển đổi thành một mảng byte trước, sau đó được hàm băm"0x2f20677459120677484f7104c76deb6846a2c071f9b3152c103bb12cd54d1a4a"
soliditySha3
caver.utils.soliditySha3(param1 [, param2,...])
Tính toán sha3 của các tham số đầu vào đã cho theo cách tương tự như solidity. Điều này có nghĩa các đối số sẽ được chuyển đổi thành ABI và đóng gói chặt chẽ trước khi đưa vào hàm băm.
Tham số
Tên
Loại
Mô tả
paramX
Hỗn hợp
Bất kỳ loại hoặc đối tượng nào có {type: 'uint', value: '123456'} hoặc {t: 'bytes', v: '0xfff456'}. Các loại cơ bản được tự động nhận diện như sau:
- String chuỗi UTF-8 không phải là số được hiểu là string.
- `String
Giá trị trả về
Loại
Mô tả
Chuỗi
Hàm băm kết quả.
Ví dụ
>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(newBN('234')); // same as above"0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2">caver.utils.soliditySha3({type:'uint256', value:'234'})); // same as above"0x61c831beab28d67d1bb40b5ae1a11e2757fa842f031a2d0bc94a7867bc5d26c2">caver.utils.soliditySha3({t:'uint', v:newBN('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)
Kiểm tra xem một chuỗi đã cho có phải là chuỗi số HEX hay không.
Tham số
Tên
Loại
Mô tả
hex
Chuỗi | HEX
Chuỗi số HEX đã cho.
Giá trị trả về
Loại
Mô tả
Boolean
true nếu một chuỗi đã cho là một chuỗi số HEX.
Ví dụ
>caver.utils.isHex('0xc1912');true>caver.utils.isHex(0xc1912);true>caver.utils.isHex('c1912');true>caver.utils.isHex(345);true// điều này rất khó, vì 345 có thể là biểu diễn HEX hoặc một số, hãy cẩn thận khi không có 0x ở phía trước!>caver.utils.isHex('0xZ1912');false>caver.utils.isHex('Hello');false
isHexStrict
caver.utils.isHexStrict(hex)
Kiểm tra xem một chuỗi đã cho có phải là chuỗi số HEX hay không. Sự khác biệt đối với caver.utils.isHex là nó cần có HEX tiền tố 0x.
Tham số
Tên
Loại
Mô tả
hex
Chuỗi | HEX
Chuỗi số HEX đã cho.
Giá trị trả về
Loại
Mô tả
Boolean
true nếu một chuỗi đã cho là một chuỗi số HEX.
Ví dụ
>caver.utils.isHexStrict('0xc1912');true>caver.utils.isHexStrict(0xc1912);false>caver.utils.isHexStrict('c1912');false>caver.utils.isHexStrict(345);false// điều này rất khó, vì 345 có thể là biểu diễn HEX hoặc một số, hãy cẩn thận khi không có 0x ở phía trước!>caver.utils.isHexStrict('0xZ1912');false>caver.utils.isHex('Hello');false
isAddress
caver.utils.isAddress(address)
Kiểm tra xem chuỗi đã cho có phải là địa chỉ Klaytn hợp lệ hay không. Nó cũng sẽ kiểm tra giá trị tổng kiểm nếu địa chỉ có chữ hoa và chữ thường.
Tham số
Tên
type
Mô tả
address
Chuỗi
Một chuỗi địa chỉ.
Giá trị trả về
Loại
Mô tả
Boolean
true nếu chuỗi đã cho là địa chỉ Klaytn hợp lệ.
Ví dụ
>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// tổng kiểm tra sai
toChecksumAddress
caver.utils.toChecksumAddress(address)
Chuyển đổi địa chỉ Klaytn viết hoa hoặc viết thường thành địa chỉ giá trị tổng kiểm.
Tham số
Tên
Loại
Mô tả
address
Chuỗi
Một chuỗi địa chỉ.
Giá trị trả về
Loại
Mô tả
Chuỗi
Địa chỉ giá trị tổng kiểm.
Ví dụ
>caver.utils.toChecksumAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d');"0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d">caver.utils.toChecksumAddress('0XC1912FEE45D61C87CC5EA59DAE31190FFFFF232D');"0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d"// giống như trên
checkAddressChecksum
caver.utils.checkAddressChecksum(address)
Kiểm tra giá trị tổng kiểm của một địa chỉ đã cho. Trả về false trên các địa chỉ không phải là giá trị tổng kiểm.
Tham số
Tên
Loại
Mô tả
address
Chuỗi
Một chuỗi địa chỉ.
Giá trị trả về
type
Mô tả
Boolean
true khi giá trị tổng kiểm của địa chỉ hợp lệ, false nếu đó không phải là địa chỉ giá trị tổng kiểm hoặc giá trị tổng kiểm không hợp lệ.
Chuyển đổi giá trị đã cho bất kỳ thành HEX. Chuỗi số sẽ được hiểu là số. Chuỗi văn bản sẽ được hiểu là chuỗi UTF-8.
Tham số
Tên
Loại
Mô tả
hỗn hợp
Chuỗi | Số | BN | BigNumber
Đầu vào để chuyển đổi sang HEX.
Giá trị trả về
Loại
Mô tả
Chuỗi
Chuỗi số HEX kết quả.
Ví dụ
>caver.utils.toHex('234');"0xea">caver.utils.toHex(234);"0xea">caver.utils.toHex(newBN('234'));"0xea">caver.utils.toHex(newBigNumber('234'));"0xea">caver.utils.toHex('I have 100€');"0x49206861766520313030e282ac"
toBN
caver.utils.toBN(number)
Chuyển đổi một cách an toàn mọi giá trị đã cho (bao gồm đối tượng BigNumber.js) thành BN.js để xử lý các số lớn trong JavaScript./a>) thành BN.js để xử lý các số lớn trong JavaScript.
LƯU Ý: "peb" là đơn vị KLAY nhỏ nhất và bạn phải luôn tính toán bằng KLAY và chỉ chuyển đổi vì lý do hiển thị.
Tham số
Tên
Loại
Mô tả
số
Chuỗi | Số | BN
Giá trị tính bằng peb.
đơn vị
Chuỗi
(tùy chọn, mặc định là "KLAY") KLAY để chuyển đổi sang. Các đơn vị có thể là:
- peb: '1'
- kpeb: '1000'
- Mpeb: '1000000'
- Gpeb: '1000000000'
- Ston: '1000000000'
- uKLAY: '1000000000000'
- mKLAY: '1000000000000000'
- KLAY: '1000000000000000000'
- kKLAY: '1000000000000000000000'
- MKLAY: '1000000000000000000000000'
- GKLAY: '1000000000000000000000000000'
Giá trị trả về
Loại
Mô tả
Chuỗi | BN
Nếu một số hoặc một chuỗi được cung cấp, nó sẽ trả về một chuỗi số, nếu không thì sẽ là một phiên bản BN.js.
Trả về true nếu giao dịch đã cho là giao dịch triển khai hợp đồng thông minh. Trả về false nếu giao dịch không phải là giao dịch triển khai hợp đồng thông minh. Kết quả được xác định bởi giá trị của các tham số trong transactionObject. Đảm bảo tất cả các tham số bắt buộc được đặt chính xác.
LƯU Ý caver.klay.isContractDeployment được hỗ trợ từ v1.0.1-rc.8. Để sử dụng tính năng này, hãy cài đặt từ phiên bản v1.0.1-rc.8 trở lên.
Tham số
Tên
Loại
Mô tả
transactionObject
Đối tượng
Đối tượng giao dịch mà bạn muốn xác định xem giao dịch có dành cho triển khai hợp đồng thông minh hay không.
Giá trị trả về
Loại
Mô tả
Boolean
true nghĩa là đối tượng giao dịch dùng cho việc triển khai hợp đồng thông minh.
Trả về tọa độ x và y của publicKey đã cho. Để biết thêm thông tin về mật mã khóa, xem Mật mã đường cong Elliptic.cong Elliptic.
LƯU Ý Hàm này không chứa bất kỳ logic nào để kiểm tra xem khóa công khai có hợp lệ hay không. Hàm chỉ chia publicKey đầu vào thành các điểm x và y theo độ dài.
Tham số
Tên
Loại
Mô tả
publicKey
Chuỗi
PublicKey để nhận điểm x và y.
Giá trị trả về
Loại
Mô tả
Mảng
Một mảng lưu trữ các điểm x và y. Chỉ mục 0 có điểm x và chỉ mục 1 có điểm y.
Hàm này chuyển đổi đầu vào thành Bộ đệm. Để chuyển đổi một đối tượng thành Bộ đệm bằng toBuffer, đối tượng đó phải triển khai hàm toArray. Đối với đầu vào loại chuỗi, hàm này chỉ hoạt động với chuỗi hex có tiền tố 0x.
LƯU Ý caver.klay.toBuffer được hỗ trợ từ v1.1.0. Để sử dụng tính năng này, hãy cài đặt v1.1.0 trở lên.
Tham số
Tên
Loại
Mô tả
nhập
Bộ đệm | Chuỗi | Số | Mảng | BN | Đối tượng
Giá trị sẽ được chuyển đổi thành Bộ đệm.
Giá trị trả về
Loại
Mô tả
Bộ đệm
Giá trị được chuyển đổi thành loại Bộ đệm được trả về.
Ví dụ
// Bộ đệm
> caver.utils.toBuffer(Buffer.alloc(0))
<Buffer >
// Chuỗi hex có tiền tố 0x
> caver.utils.toBuffer('0x1234')
<Buffer 12 34>
// Số
> caver.utils.toBuffer(1)
<Buffer 01>
// Mảng
> caver.utils.toBuffer([1,2,3])
<Buffer 01 02 03>
// BN
> caver.utils.toBuffer(new caver.utils.BN(255))
<Buffer ff>
// Đối tượng thực hiện hàm toArray
> caver.utils.toBuffer({toArray: function() {return [1,2,3,4]}})
<Buffer 01 02 03 04>
// vô giá trị hoặc không xác định
> caver.utils.toBuffer(null)
<Buffer >
> caver.utils.toBuffer(undefined)
<Buffer >
// chuỗi số hex không có tiền tố 0x
> caver.utils.toBuffer('0xqwer')
Error: Failed to convert string to Buffer. Hàm 'toBuffer' chỉ hỗ trợ chuỗi số hex có tiền tố 0x
// Đối tượng không triển khai hàm toArray
> caver.utils.toBuffer({})
Lỗi: Để chuyển đổi một đối tượng thành bộ đệm, hàm toArray phải được triển khai bên trong đối tượng
numberToBuffer
caver.utils.numberToBuffer(input)
Hàm này chuyển đổi một số thành Bộ đệm. caver.utils.toBuffer có hoạt động tương tự như hàm này khi đầu vào là một số.
LƯU Ý caver.klay.numberToBuffer được hỗ trợ từ v1.1.0. Để sử dụng tính năng này, hãy cài đặt v1.1.0 trở lên.
Tham số
Tên
Loại
Mô tả
nhập
Chuỗi | Số | BN
Một số được chuyển đổi thành Bộ đệm.
Giá trị trả về
Loại
Mô tả
Bộ đệm
Giá trị được chuyển đổi thành loại Bộ đệm được trả về.
Trả về true nếu đầu vào ở định dạng hàm băm giao dịch, nếu không sẽ trả về false. Hàm này chỉ xem xét đầu vào và xác định xem nó có ở định dạng hàm băm giao dịch hay không. LƯU Ý caver.klay.isTxHash được hỗ trợ kể từ phiên bản v1.2.0-rc.1. Để sử dụng tính năng này, hãy cài đặt từ phiên bản v1.2.0-rc.1 trở lên. Tham số
Tên
Loại
Mô tả
nhập
Chuỗi
Giá trị được xác định xem tham số có ở định dạng hàm băm giao dịch hay không.
Giá trị trả về
Loại
Mô tả
Boolean
true nghĩa là đầu vào ở định dạng hàm băm giao dịch.
Ví dụ
// with '0x' hex prefix
> caver.utils.isTxHash('0xe9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
true
// không có tiền tố hex
> caver.utils.isTxHash('e9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
true
> caver.utils.isTxHash('0x1')
false
isTxHashStrict
caver.utils.isTxHashStrict(input)
Trả về true nếu đầu vào ở định dạng hàm băm giao dịch, nếu không sẽ trả về false. Hàm này chỉ xem xét đầu vào và xác định xem nó có ở định dạng hàm băm giao dịch hay không. Sự khác biệt đối với caver.utils.isTxHash là nó cho là HEX có tiền tố là 0x. LƯU Ý caver.klay.isTxHashStrict được hỗ trợ kể từ phiên bản v1.2.0-rc.1. Để sử dụng tính năng này, hãy cài đặt từ phiên bản v1.2.0-rc.1 trở lên. Tham số
Tên
Loại
Mô tả
nhập
Chuỗi
Giá trị được xác định xem tham số có ở định dạng hàm băm giao dịch hay không.
Giá trị trả về
Loại
Mô tả
Boolean
true nghĩa là đầu vào ở định dạng hàm băm giao dịch.
Ví dụ
// with '0x' hex prefix
> caver.utils.isTxHashStrict('0xe9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
true
// không có tiền tố hex
> caver.utils.isTxHashStrict('e9a11d9ef95fb437f75d07ce768d43e74f158dd54b106e7d3746ce29d545b550')
false
> caver.utils.isTxHashStrict('0x1')
false
isValidPrivateKey
caver.utils.isValidPrivateKey(privateKey)
Trả về true nếu privateKey hợp lệ, nếu không thì trả về false.
Trả về true nếu publicKey hợp lệ, nếu không sẽ trả về false.
LƯU Ýcaver.utils.isValidPublicKey được hỗ trợ kể từ caver-js v1.2.0.
Tham số
Tên
Loại
Mô tả
publicKey
Chuỗi
Chuỗi khóa công khai để xác thực.
Giá trị trả về
Loại
Mô tả
Boolean
true nghĩa là publicKey hợp lệ.
Ví dụ
// xác thực bằng khóa công khai không nén
> caver.utils.isValidPublicKey('0xbd6405a7f14f57ecea4a6ffe774ee26d051f7eed13257c9a574055b20e42bab0e8beba92e2e675101eb2a55ba4693080d0bf14548beae7bc93b18b72d10dd350')
true
// xác thực bằng khóa công khai nén
> caver.utils.isValidPublicKey('0x02bd6405a7f14f57ecea4a6ffe774ee26d051f7eed13257c9a574055b20e42bab0')
true
> caver.utils.isValidPublicKey('{private key}')
false
> caver.utils.isValidPublicKey('0x{private key}')
false
> caver.utils.isValidPublicKey('a5b0cd8c87e77879d64cc064ee239ed6f71cacf9')
false
isValidRole
caver.utils.isValidRole(role)
Trả về true nếu vai trò hợp lệ, nếu không sẽ trả về false. Các vai trò hiện được xác định cho AccountKeyRoleBased là transactionKey, updateKey và feePayerKey.
LƯU Ýcaver.utils.isValidRole được hỗ trợ kể từ caver-js v1.2.0.
Trả về true nếu sig ở định dạng chữ ký trống ([['0x01', '0x', '0x']] hoặc ['0x01', '0x', '0x']), nếu không sẽ trả về false.
Khi mã hóa RLP một giao dịch trong caver-js, nếu chữ ký hoặc phíPayerSignatures trống, thì giá trị đại diện cho chữ ký trống, [['0x01', '0x', '0x']], được trả về cho thuộc tính. Hàm này dùng để kiểm tra xem chữ ký đã cho có phải là [['0x01', '0x', '0x']] (hay ['0x01', '0x', '0x'] trong giao dịch 'LEGACY').
LƯU Ýcaver.utils.isEmptySig được hỗ trợ kể từ caver-js v1.2.0.
Tham số
Tên
Loại
Mô tả
sig
Mảng
Một mảng các chữ ký để kiểm tra xem có trống hay không.
Giá trị trả về
Loại
Mô tả
Boolean
true nghĩa là sig là [['0x01', '0x', '0x']] hoặc ['0x01', '0x', '0x'].
Trả về true nếu khóa thuộc định dạng [KlaytnWalletKey](../../../../../klaytn/design/tài khoảns.md#klaytn-wallet-key-format), nếu không sẽ trả về false.
LƯU Ýcaver.utils.isKlaytnWalletKey đã được cập nhật với logic bổ sung để có kết quả chính xác hơn vì caver-js v1.3.2-rc.3.
Tham số
Tên
Loại
Mô tả
khóa
Chuỗi
Một chuỗi khóa để kiểm tra có định dạng KlaytnWalletKey hay không.
Giá trị trả về
Loại
Mô tả
Boolean
true có nghĩa là khóa là 0x{private key}0x{type}0x{address in hex} hoặc {private key}0x{type}0x{address in hex}.
Ví dụ
> caver.utils.isKlaytnWalletKey('0x{private key}0x{type}0x{address in hex}')
true
> caver.utils.isKlaytnWalletKey('{private key}0x{type}0x{address in hex}')
true
> caver.utils.isKlaytnWalletKey('0x{private key}')
false
bufferToHex
caver.utils.bufferToHex(buffer)
Chuyển đổi bộ đệm thành chuỗi số hex có tiền tố 0x.
LƯU Ýcaver.utils.bufferToHex được hỗ trợ kể từ caver-js v1.3.2-rc.1.