Nhảy tới nội dung

Transaction

call


caver.klay.call(callObject [, defaultBlock] [, callback])

Thực thi một giao dịch lệnh gọi thông điệp, được thực thi trực tiếp trên máy ảo Klaytn của nút mạng, nhưng không bao giờ được đào vào chuỗi khối. Virtual Machine of the node, but never mined into the blockchain.

Tham số

TêntypeMô tả
callObjectĐối tượngMột đối tượng giao dịch khác biệt ở chỗ đối với các lệnh gọi, thuộc tính "from" là tùy chọn. Một lệnh gọi hàm mã hóa phải được đặt trong trường dữ liệu của đối tượng giao dịch.
defaultBlockSố | Chuỗi(tùy chọn) Nếu bạn truyền tham số này thì tham số này sẽ không sử dụng khối mặc định được thiết lập bằng hàm caver.klay.defaultBlock.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Promise trả về String: Dữ liệu trả về của lệnh gọi, ví dụ, giá trị trả về của một hàm trong hợp đồng thông minh.

Ví dụ


> caver.klay.call({
to: "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", // contract address
data: "0xc6888fa10000000000000000000000000000000000000000000000000000000000000003"
})
.then(console.log);
"0x000000000000000000000000000000000000000000000000000000000000000a"

estimateGas


caver.klay.estimateGas(callObject [, callback])

Thực thi một lệnh gọi thông điệp hoặc giao dịch và trả về số lượng gas đã sử dụng cho lệnh gọi/giao dịch mô phỏng.

Tham số

TênLoạiMô tả
callObjectĐối tượngMột đối tượng giao dịch khác biệt ở chỗ đối với các lệnh gọi, thuộc tính "from" là tùy chọn. Một lệnh gọi hàm mã hóa phải được đặt trong trường dữ liệu của đối tượng giao dịch.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Promise trả về Number - đơn vị gas đã sử dụng cho lệnh gọi/giao dịch mô phỏng.

Ví dụ


> caver.klay.estimateGas({
to: "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe",
data: "0xc6888fa10000000000000000000000000000000000000000000000000000000000000003"
})
.then(console.log);
40

estimateComputationCost


caver.klay.estimateComputationCost(callObject [, defaultBlock] [, callback])

Tạo và trả về chi phí tính toán ước tính sẽ được sử dụng để thực hiện giao dịch. Klaytn giới hạn chi phí tính toán của một giao dịch ở mức 100000000, hiện không mất quá nhiều thời gian cho một giao dịch.g mất quá nhiều. Giao dịch sẽ không được thêm vào chuỗi khối.

Tham số

TêntypeMô tả
callObjectĐối tượngMột đối tượng giao dịch khác biệt ở chỗ đối với các lệnh gọi, thuộc tính "from" là tùy chọn. Một lệnh gọi hàm mã hóa phải được đặt trong trường dữ liệu của đối tượng giao dịch.
defaultBlockSố | Chuỗi(tùy chọn) Nếu bạn truyền tham số này, khối mặc định được thiết lập bằng hàm caver.klay.defaultBlock sẽ được sử dụng.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Promise trả về Number - Lượng chi phí tính toán được sử dụng.

Ví dụ


> caver.klay.estimateComputationCost({
to: '0xf796b2F18507Ec8F8C19e9F0c03092888093ebAc',
data : '0xd14e62b80000000000000000000000000000000000000000000000000000000000000022'
}).then(console.log);
0x5773
// With 'latest' block tag
> caver.klay.estimateComputationCost({
to: '0xf796b2F18507Ec8F8C19e9F0c03092888093ebAc',
data : '0xd14e62b80000000000000000000000000000000000000000000000000000000000000022'
}, 'latest').then(console.log);
0x5773

decodeTransaction


caver.klay.decodeTransaction(rawTransaction)

Trả về một đối tượng giao dịch chứa tất cả các giá trị giải mã từ giao dịch rawTransaction cho trước, đây là giao dịch mã hóa RLP. Do tất cả các loại giao dịch ngoại trừ giao dịch cũ đều có thể có nhiều chữ ký của người gửi và người trả phí, các trường trả về hiện có bao gồm v, r, s và payerV, payerR, payerS là chữ ký đầu tiên (thứ tự 0) của người gửi và người trả phí.

LƯU Ý caver.klay.decodeTransaction được hỗ trợ kể từ phiên bản 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.

LƯU Ý Để hỗ trợ chế độ đa chữ ký, các thuộc tính signaturesfeePayerSignatures đã được thêm vào kể từ phiên bản caver-js v1.2.0-rc.3.

Tham số

TênLoạiMô tả
rawTransactionChuỗiDữ liệu của giao dịch mã hóa RLP.

Giá trị trả về

LoạiMô tả
Đối tượngĐối tượng giao dịch. Đối tượng giao dịch trả về sẽ có các thuộc tính khác nhau tùy thuộc vào loại giao dịch. Để biết danh sách các thuộc tính có trong mỗi loại giao dịch, tham khảo SendTransaction.

Ví dụ


// Basic Transaction
> caver.klay.decodeTransaction('0xf86b038505d21dba00843b9ac9ff94d03227635c90c7986f0e3a4e551cefbca8c5531685174876e8008026a06fc7412ad1801b4790e7a5a5097fdbef01bc9fe1b970d08232184d110226c221a04665f772edbc4ba4dfbf189d89a9b9cb1e5cdcea0fd5a8b1a497b9c275e5267c')
{
type: 'LEGACY',
nonce: '0x03',
gasPrice: '0x05d21dba00',
gas: '0x3b9ac9ff',
to: '0xd03227635c90c7986f0e3a4e551cefbca8c55316',
value: '0x174876e800',
data: '0x',
v: '0x26',
r: '0x6fc7412ad1801b4790e7a5a5097fdbef01bc9fe1b970d08232184d110226c221',
s: '0x4665f772edbc4ba4dfbf189d89a9b9cb1e5cdcea0fd5a8b1a497b9c275e5267c',
signatures: [
'0x26',
'0x6fc7412ad1801b4790e7a5a5097fdbef01bc9fe1b970d08232184d110226c221',
'0x4665f772edbc4ba4dfbf189d89a9b9cb1e5cdcea0fd5a8b1a497b9c275e5267c'
]
}
// Fee Delegation
> caver.klay.decodeTransaction('0x09f8dd2c8505d21dba00830dbba094a36960d00c9cbf10e80928eead73ff308193bde70194ad8d5b8c7da3746df7de39c41fa572d660aa8e91f847f845824e43a099c0a4c85bb9f2c0be2646b963201680e2f76128e4fd1f54d3f9cf80d1d117e7a069b62aa6640c8aa3606a67869fe062dde1c61a60aea5c5161550ff11ee71c24b946a4b71a6796c2fd376fb0526385e0783da86a039f847f845824e43a0bdfdc50649c8f52930a330b2e44d92f8943b28c7ff7edd8ff7f2f95e617c0d77a06e96bdd983494f6967f1a26d2f0ae991a4e8ebef1ac3c9029251a18c19002ab3')
{
type: 'FEE_DELEGATED_VALUE_TRANSFER',
nonce: '0x2c',
gasPrice: '0x05d21dba00',
gas: '0x0dbba0',
to: '0xa36960d00c9cbf10e80928eead73ff308193bde7',
value: '0x01',
from: '0xad8d5b8c7da3746df7de39c41fa572d660aa8e91',
v: '0x4e43',
r: '0x99c0a4c85bb9f2c0be2646b963201680e2f76128e4fd1f54d3f9cf80d1d117e7',
s: '0x69b62aa6640c8aa3606a67869fe062dde1c61a60aea5c5161550ff11ee71c24b',
signatures: [
[
'0x4e43',
'0x99c0a4c85bb9f2c0be2646b963201680e2f76128e4fd1f54d3f9cf80d1d117e7',
'0x69b62aa6640c8aa3606a67869fe062dde1c61a60aea5c5161550ff11ee71c24b'
]
],
feePayer: '0x6a4b71a6796c2fd376fb0526385e0783da86a039',
payerV: '0x4e43',
payerR: '0xbdfdc50649c8f52930a330b2e44d92f8943b28c7ff7edd8ff7f2f95e617c0d77',
payerS: '0x6e96bdd983494f6967f1a26d2f0ae991a4e8ebef1ac3c9029251a18c19002ab3',
feePayerSignatures: [
[
'0x4e43',
'0xbdfdc50649c8f52930a330b2e44d92f8943b28c7ff7edd8ff7f2f95e617c0d77',
'0x6e96bdd983494f6967f1a26d2f0ae991a4e8ebef1ac3c9029251a18c19002ab3'
]
]
}
// Partial Fee Delegation
> caver.klay.decodeTransaction('0x2af902ca0a8505d21dba00843b9ac9ff80809490b3e9a3770481345a7f17f22f16d020bccfd33eb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029802180f845f84325a0d8cdc1219df8bbca8a00255420a5bec0f602e6266b76ce7dcf5b0b26bd7fe3b9a05557496a3a17f784c3eb40acbb526dfbc20ae6b00c633a0186d804cd9137b13e9433f524631e573329a550296f595c820d6c65213ff845f84325a041a4c4bf0e3039d04472beae4135a14c26ae4c88bad08d5f0acf61f7c0eb60dfa03d1658f38e5c2089d64985fb33cb13db2e41cde6958ba2cfcfaba685a7f565e2')
{
type: 'FEE_DELEGATED_SMART_CONTRACT_DEPLOY_WITH_RATIO',
nonce: '0x0a',
gasPrice: '0x05d21dba00',
gas: '0x3b9ac9ff',
to: '0x',
value: '0x',
from: '0x90b3e9a3770481345a7f17f22f16d020bccfd33e',
data: '0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029',
humanReadable: false,
feeRatio: '0x21',
codeFormat: '0x',
v: '0x25',
r: '0xd8cdc1219df8bbca8a00255420a5bec0f602e6266b76ce7dcf5b0b26bd7fe3b9',
s: '0x5557496a3a17f784c3eb40acbb526dfbc20ae6b00c633a0186d804cd9137b13e',
signatures: [
[
'0x25',
'0xd8cdc1219df8bbca8a00255420a5bec0f602e6266b76ce7dcf5b0b26bd7fe3b9',
'0x5557496a3a17f784c3eb40acbb526dfbc20ae6b00c633a0186d804cd9137b13e'
]
],
feePayer: '0x33f524631e573329a550296f595c820d6c65213f',
payerV: '0x25',
payerR: '0x41a4c4bf0e3039d04472beae4135a14c26ae4c88bad08d5f0acf61f7c0eb60df',
payerS: '0x3d1658f38e5c2089d64985fb33cb13db2e41cde6958ba2cfcfaba685a7f565e2',
feePayerSignatures: [
[
'0x25',
'0x41a4c4bf0e3039d04472beae4135a14c26ae4c88bad08d5f0acf61f7c0eb60df',
'0x3d1658f38e5c2089d64985fb33cb13db2e41cde6958ba2cfcfaba685a7f565e2'
]
]
}

getTransaction


caver.klay.getTransaction(transactionHash [, callback])

Trả về giao dịch khớp với hàm băm giao dịch đã cho.

Tham số

TêntypeMô tả
transactionHashChuỗiHàm băm của giao dịch.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Promise trả về đối tượng - Một đối tượng giao dịch hoặc null khi không tìm thấy giao dịch:

TênLoạiMô tả
blockHashDỮ LIỆU 32 byteHàm băm của khối chứa giao dịch này. null nếu đó là giao dịch đang chờ xử lý.
blockNumberSỐ LƯỢNGSố khối chứa giao dịch này. null nếu đó là giao dịch đang chờ xử lý.
codeFormatChuỗi(tùy chọn) Định dạng mã của mã hợp đồng thông minh.
feePayerDỮ LIỆU 20 byte(tùy chọn) Địa chỉ của người trả phí.
feePayerSignaturesMảng(tùy chọn) Mảng các đối tượng chữ ký của người trả phí. Một đối tượng chữ ký chứa ba trường (V, R và S). V chứa mã khôi phục ECDSA. R chứa chữ ký ECDSA r trong khi S chứa chữ ký ECDSA s.
feeRatioSỐ LƯỢNG(tùy chọn) Tỷ lệ phí của người trả phí. Nếu tỷ lệ là 30 thì người trả phí phải trả 30% phí. 70% còn lại sẽ được trả bởi người gửi.
từDỮ LIỆU 20 byteĐịa chỉ của người gửi.
gasSỐ LƯỢNGGas được người gửi cung cấp.
giá gasSỐ LƯỢNGGiá gas được người gửi cung cấp theo đơn vị peb.
hashDỮ LIỆU 32 byteHàm băm của giao dịch.
humanReadableBoolean(tùy chọn) true nếu địa chỉ con người có thể đọc được, ngược lại sẽ là false.
khóaChuỗi(tùy chọn) Mã khóa của tài khoản mới tạo.
nhậpDATA(tùy chọn) Dữ liệu được gửi cùng với giao dịch.
nonceSỐ LƯỢNGSố lượng giao dịch được người gửi thực hiện trước giao dịch này.
senderTxHashDỮ LIỆU 32 byte(tùy chọn) Hàm băm của tx mà không có địa chỉ và chữ ký của người trả phí. Giá trị này luôn giống với giá trị của hash đối với các giao dịch không ủy thác trả phí.
chữ kýMảngMột mảng các đối tượng chữ ký. Một đối tượng chữ ký chứa ba trường (V, R và S). V chứa mã khôi phục ECDSA. R chứa chữ ký ECDSA r trong khi S chứa chữ ký ECDSA s.
đếnDỮ LIỆU 20 byteĐịa chỉ của người nhận. null nếu đó là giao dịch tạo hợp đồng.
transactionIndexSỐ LƯỢNGGiá trị nguyên biểu thị vị trí chỉ mục của giao dịch trong khối. null nếu đó là giao dịch đang chờ xử lý.
typeChuỗiChuỗi biểu thị loại giao dịch.
typeIntSỐ LƯỢNGGiá trị nguyên biểu thị loại giao dịch.
giá trịSỐ LƯỢNGGiá trị được chuyển tính bằng đơn vị peb.

Ví dụ


> caver.klay.getTransaction('0x2d26f602cfbb4c662931592bf2c4ee18d29f09683be5b9e8d589ff935fca0b97')
.then(console.log);
{
blockHash: '0xd6f3bc2bd7853ed423677766b5332c3e55d900abf4252ede196661cd58e817a6',
blockNumber: 141766,
from: '0x8948Ab8526fDA9a7349Ee8FCa5372e46d0268777',
gas: 20000000,
gasPrice: '25000000000',
hash: '0x2d26f602cfbb4c662931592bf2c4ee18d29f09683be5b9e8d589ff935fca0b97',
input: '0x',
nonce: 8,
signatures:[{
V: '0xfe9',
R: '0x76a0ac07a371fe3849f46a115d62830e611e62fab91714bb66fe18a937557666',
S: '0x1daace52366434ab11287d4f5ebe9c87f314e45d13f05093bbcdd5862fcf462e'
}],
to: '0x2259cFDae62F9853f84298aAf20C999391B1c6a3',
transactionIndex: 0,
type: 'TxTypeLegacyTransaction',
typeInt: 0,
value: '1'
}

getTransactionBySenderTxHash


caver.klay.getTransactionBySenderTxHash(senderTxHash [, callback])

Trả về thông tin về giao dịch được xác định bởi giá trị senderTxHash cho trước. Xin lưu ý rằng API này chỉ trả về kết quả chính xác nếu tính năng lập chỉ mục được bật trong nút mạng bởi --sendertxhashindexing. Sử dụng thuộc tính isSenderTxHashIndexingEnabled để kiểm tra xem tính năng lập chỉ mục đã được bật hay chưa.

Tham số

TênLoạiMô tả
senderTxHashChuỗiHàm băm của một giao dịch chỉ được người gửi ký. Tham khảo SenderTxHash.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Promise trả về đối tượng - Một đối tượng giao dịch hoặc null khi không tìm thấy giao dịch:

TênLoạiMô tả
blockHashDỮ LIỆU 32 byteHàm băm của khối chứa giao dịch này. null nếu đó là giao dịch đang chờ xử lý.
blockNumberSỐ LƯỢNGSố khối chứa giao dịch này. null nếu đó là giao dịch đang chờ xử lý.
codeFormatChuỗi(tùy chọn) Định dạng mã của mã hợp đồng thông minh.
feePayerDỮ LIỆU 20 byteĐịa chỉ của người trả phí.
feePayerSignaturesMảngMảng các đối tượng chữ ký của người trả phí. Một đối tượng chữ ký chứa ba trường (V, R và S). V chứa mã khôi phục ECDSA. R chứa chữ ký ECDSA r trong khi S chứa chữ ký ECDSA s.
feeRatioSỐ LƯỢNG(tùy chọn) Tỷ lệ phí của người trả phí. Nếu tỷ lệ là 30 thì người trả phí phải trả 30% phí. 70% còn lại sẽ được trả bởi người gửi.
từDỮ LIỆU 20 byteĐịa chỉ của người gửi.
gasSỐ LƯỢNGGas được người gửi cung cấp.
giá gasSỐ LƯỢNGGiá gas được người gửi cung cấp theo đơn vị peb.
hashDỮ LIỆU 32 byteHàm băm của giao dịch.
humanReadableBoolean(tùy chọn) true nếu địa chỉ con người có thể đọc được, ngược lại sẽ là false.
khóaChuỗi(tùy chọn) Mã khóa của tài khoản mới tạo.
nhậpDATA(tùy chọn) Dữ liệu được gửi cùng với giao dịch.
nonceSỐ LƯỢNGSố lượng giao dịch được người gửi thực hiện trước giao dịch này.
senderTxHashDỮ LIỆU 32 byteHàm băm của một giao dịch chỉ được người gửi ký. Tham khảo SenderTxHash. Giá trị này luôn giống với hàm băm đối với các giao dịch không phải trả phí.
chữ kýMảngMột mảng các đối tượng chữ ký. Một đối tượng chữ ký chứa ba trường (V, R và S). V chứa mã khôi phục ECDSA. R chứa chữ ký ECDSA r trong khi S chứa chữ ký ECDSA s.
đếnDỮ LIỆU 20 byteĐịa chỉ của người nhận. null nếu đó là giao dịch tạo hợp đồng.
transactionIndexSỐ LƯỢNGGiá trị nguyên biểu thị vị trí chỉ mục của giao dịch trong khối. null nếu đó là giao dịch đang chờ xử lý.
typeChuỗiChuỗi biểu thị loại giao dịch.
typeIntSỐ LƯỢNGGiá trị nguyên biểu thị loại giao dịch.
giá trịSỐ LƯỢNGGiá trị được chuyển tính bằng đơn vị peb.

Ví dụ


> caver.klay.getTransactionBySenderTxHash('0x8c0b092fed92a6619666efd582f7d71fbc3d784781072dd26741715b3731ab22').then(console.log);
{
blockHash: '0x56e950bd9283c11ad2dab7cfcbacd9164aff2f6cbeb99dd2a7b754eb210753af',
blockNumber: 773,
codeFormat: '0x0',
feePayer: '0xabae1fe62aebbfabeff072eb815d54c3359a45f4',
feePayerSignatures: [
{
V: '0x4e43',
R: '0x16293eefe0f13228ae47af67ecfe659448d8f80d9667a67a25d82c72b5ee246a',
S: '0x3c4043324bee41a6cbab905d3b4e740a3a18fde021260fc1196f73d2ab037b91' } ],
feeRatio: '0x14',
from: '0x3F0E31836C7AABb4C9e9B19d5D61359a9139E949',
gas: 900000,
gasPrice: '25000000000',
hash: '0x2ab7665d25f8f64969fa03b8d5e40a70485bb56a4e72ca2fe1e467fff904c173',
humanReadable: false,
input: '0x6080604052600080556040516020806101fa8339810180604052810190808051906020019092919050505080600081905550506101b9806100416000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd1461006757806342cbb15c14610092578063a87d942c146100bd578063d14e62b8146100e8575b600080fd5b34801561007357600080fd5b5061007c610108565b6040518082815260200191505060405180910390f35b34801561009e57600080fd5b506100a761010e565b6040518082815260200191505060405180910390f35b3480156100c957600080fd5b506100d2610116565b6040518082815260200191505060405180910390f35b6101066004803603810190808035906020019092919050505061014c565b005b60005481565b600043905090565b60007f7197668b8690d2324050bc9ad83b2b5ca0b3f5336cb178ffa2aa07006b51b65160405160405180910390a1600054905090565b7fe8451a9161f9159bc887328b634789768bd596360ef07c5a5cbfb927c44051f9816040518082815260200191505060405180910390a180600081905550505600a165627a7a723058203cb41ebe3d7128a72c997645693c64789a9b5fdeae26158fb28b55e567e805c700290000000000000000000000000000000000000000000000000000000000000001',
nonce: 9,
senderTxHash: '0x8c0b092fed92a6619666efd582f7d71fbc3d784781072dd26741715b3731ab22',
signatures: [
{
V: '0x4e43',
R: '0x1b48ee0508d242c9568d7e09212d62137080d68d86c1d067b31b4bb4196c9960',
S: '0x24982f60b37859d7c39d7bd9c00b446196b3a08b27f80dbc9ceca8ee52513b11'
}
],
to: null,
transactionIndex: 0,
type: 'TxTypeFeeDelegatedSmartContractDeployWithRatio',
typeInt: 42,
value: '1'
}

getTransactionFromBlock


caver.klay.getTransactionFromBlock(hashStringOrNumber, indexNumber [, callback])

Trả về một giao dịch dựa trên hàm băm hoặc số khối và vị trí chỉ mục của giao dịch.

Tham số

TêntypeMô tả
hashStringOrNumberChuỗiSố khối hoặc hàm băm. Hoặc chuỗi "genesis" hoặc "latest".
indexNumberSốVị trí chỉ mục của giao dịch.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Object - Đối tượng giao dịch, tham khảo caver.klay.getTransaction

Ví dụ


> caver.klay.getTransactionFromBlock('0x4534534534', 2).then(console.log);
// see caver.klay.getTransaction

getTransactionReceipt


caver.klay.getTransactionReceipt(transactionHash [, callback])

Trả về biên lai của một giao dịch theo hàm băm giao dịch.

Tham số

TênLoạiMô tả
transactionHashChuỗiHàm băm của giao dịch
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Promise trả về đối tượng - Đối tượng biên lai giao dịch hoặc null khi không tìm thấy biên lai:i:

TêntypeMô tả
blockHashChuỗi 32 byteHàm băm của khối chứa giao dịch này.
blockNumberSốSố khối chứa giao dịch này.
codeFormatChuỗi(tùy chọn) Định dạng mã của mã hợp đồng thông minh.
contractAddressDATAĐịa chỉ hợp đồng được tạo nếu giao dịch là giao dịch tạo hợp đồng, nếu không, giá trị sẽ là null.
feePayerDỮ LIỆU 20 byte(tùy chọn) Địa chỉ của người trả phí.
feePayerSignaturesMảng(tùy chọn) Mảng các đối tượng chữ ký của người trả phí. Một đối tượng chữ ký chứa ba trường (V, R và S). V chứa mã khôi phục ECDSA. R chứa chữ ký ECDSA r trong khi S chứa chữ ký ECDSA s.
feeRatioSỐ LƯỢNG(tùy chọn) Tỷ lệ phí của người trả phí. Nếu tỷ lệ là 30 thì người trả phí phải trả 30% phí. 70% còn lại sẽ được trả bởi người gửi.
từDỮ LIỆU 20 byteĐịa chỉ của người gửi.
gasSỐ LƯỢNGGas được người gửi cung cấp.
giá gasSỐ LƯỢNGGiá gas được người gửi cung cấp theo đơn vị peb.
gasUsedSỐ LƯỢNGLượng gas được sử dụng bởi riêng giao dịch cụ thể này.
humanReadableBoolean(tùy chọn) true nếu địa chỉ con người có thể đọc được, ngược lại sẽ là false.
khóaChuỗi(tùy chọn) Mã khóa của tài khoản mới tạo.
nhậpDATA(tùy chọn) Dữ liệu được gửi cùng với giao dịch.
nhật kýMảngMảng đối tượng bản ghi mà giao dịch này tạo ra.
nhật kýBloomDỮ LIỆU 256 byteBộ lọc Bloom dành cho các ứng dụng khách nhẹ giúp truy xuất nhanh các bản ghi liên quan.
nonceSỐ LƯỢNGSố lượng giao dịch được người gửi thực hiện trước giao dịch này.
senderTxHashDỮ LIỆU 32 byte(tùy chọn) Hàm băm của một giao dịch chỉ được người gửi ký. Tham khảo SenderTxHash. Giá trị này luôn giống với transactionHash đối với các giao dịch không ủy thác trả phí.
chữ kýMảngMột mảng các đối tượng chữ ký. Một đối tượng chữ ký chứa ba trường (V, R và S). V chứa mã khôi phục ECDSA. R chứa chữ ký ECDSA r trong khi S chứa chữ ký ECDSA s.
trạng tháiBooleantrue nếu giao dịch thành công, false nếu Máy ảo Klaytn đặt lại giao dịch.
txErrorSỐ LƯỢNG(tùy chọn) mã lỗi chi tiết nếu trạng thái bằng 0.
đếnDỮ LIỆU 20 byteĐịa chỉ của người nhận. null nếu đó là giao dịch tạo hợp đồng.
transactionHashDỮ LIỆU 32 byteHàm băm của giao dịch.
transactionIndexSỐ LƯỢNGGiá trị nguyên biểu thị vị trí chỉ mục của giao dịch trong khối.
typeChuỗiChuỗi biểu thị loại giao dịch.
typeIntSỐ LƯỢNGGiá trị nguyên biểu thị loại giao dịch.
giá trịSỐ LƯỢNGGiá trị được chuyển tính bằng đơn vị peb.

Ví dụ


> caver.klay.getTransactionReceipt('0x9108f22693de7b16ece4db2c8d11c004feae31973acc2ecb9dbd61cd57bb0d7b')
.then(console.log);
{
blockHash: '0x62f0b4e4d2c0fdeda968bf82688a6b4426fb0b75c83ebd39a04633e087060f00',
blockNumber: 140949,
contractAddress: null,
from: '0x8948ab8526fda9a7349ee8fca5372e46d0268777',
gas: '0x1312d00',
gasPrice: '0x5d21dba00',
gasUsed: 21000,
input: '0x',
logs: [],
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
nonce: '0x6',
signatures: [{
V:'0xfe9',
R:'0x95e5fc90a27b4a364f4047072474147fb8885213acbc4ac89902da28ddea3931',
S:'0xeebe7d37c047f6a7b841da5c6ff2849eb6f99b689666da30f48b60a12028e59'
}],
status: true,
to: '0x2259cfdae62f9853f84298aaf20c999391b1c6a3',
transactionHash: '0x9108f22693de7b16ece4db2c8d11c004feae31973acc2ecb9dbd61cd57bb0d7b',
transactionIndex: 0,
type: 'TxTypeLegacyTransaction',
typeInt: 0,
value: '0x1'
}

getTransactionReceiptBySenderTxHash


caver.klay.getTransactionReceiptBySenderTxHash(senderTxHash [, callback])

Trả về biên lai giao dịch được xác định bởi giá trị senderTxHash cho trước.

LƯU Ý: Biên lai không khả dụng với giao dịch đang chờ xử lý. Xin lưu ý rằng API này chỉ trả về kết quả chính xác nếu tính năng lập chỉ mục được bật trong nút mạng bởi --sendertxhashindexing. Có thể kiểm tra điều này bằng lệnh gọi isSenderTxHashIndexingEnabled.

Tham số

TênLoạiMô tả
senderTxHashChuỗiHàm băm của một giao dịch chỉ được người gửi ký. Tham khảo SenderTxHash.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Promise trả về đối tượng - Đối tượng biên lai giao dịch hoặc null khi không tìm thấy biên lai:i:

TênLoạiMô tả
blockHashChuỗi 32 byteHàm băm của khối chứa giao dịch này.
blockNumberSốSố khối chứa giao dịch này.
codeFormatChuỗi(tùy chọn) Định dạng mã của mã hợp đồng thông minh.
contractAddressDATAĐịa chỉ hợp đồng được tạo nếu giao dịch là giao dịch tạo hợp đồng, nếu không, giá trị sẽ là null.
feePayerDỮ LIỆU 20 byteĐịa chỉ của người trả phí.
feePayerSignaturesMảngMảng các đối tượng chữ ký của người trả phí. Một đối tượng chữ ký chứa ba trường (V, R và S). V chứa mã khôi phục ECDSA. R chứa chữ ký ECDSA r trong khi S chứa chữ ký ECDSA s.
feeRatioSỐ LƯỢNG(tùy chọn) Tỷ lệ phí của người trả phí. Nếu tỷ lệ là 30 thì người trả phí phải trả 30% phí. 70% còn lại sẽ được trả bởi người gửi.
từDỮ LIỆU 20 byteĐịa chỉ của người gửi.
gasSỐ LƯỢNGGas được người gửi cung cấp.
giá gasSỐ LƯỢNGGiá gas được người gửi cung cấp theo đơn vị peb.
gasUsedSỐ LƯỢNGLượng gas được sử dụng bởi riêng giao dịch cụ thể này.
humanReadableBoolean(tùy chọn) true nếu địa chỉ con người có thể đọc được, ngược lại sẽ là false.
khóaChuỗi(tùy chọn) Mã khóa của tài khoản mới tạo.
nhậpDATA(tùy chọn) Dữ liệu được gửi cùng với giao dịch.
nhật kýMảngMảng đối tượng bản ghi mà giao dịch này tạo ra.
nhật kýBloomDỮ LIỆU 256 byteBộ lọc Bloom dành cho các ứng dụng khách nhẹ giúp truy xuất nhanh các bản ghi liên quan.
nonceSỐ LƯỢNGSố lượng giao dịch được người gửi thực hiện trước giao dịch này.
senderTxHashDỮ LIỆU 32 byteHàm băm của một giao dịch chỉ được người gửi ký. Tham khảo SenderTxHash. Giá trị này luôn giống với transactionHash đối với các giao dịch không ủy thác trả phí.
chữ kýMảngMột mảng các đối tượng chữ ký. Một đối tượng chữ ký chứa ba trường (V, R và S). V chứa mã khôi phục ECDSA. R chứa chữ ký ECDSA r trong khi S chứa chữ ký ECDSA s.
trạng tháiBooleantrue nếu giao dịch thành công, false nếu Máy ảo Klaytn đặt lại giao dịch.
txErrorSỐ LƯỢNG(tùy chọn) mã lỗi chi tiết nếu trạng thái bằng 0.
đếnDỮ LIỆU 20 byteĐịa chỉ của người nhận. null nếu đó là giao dịch tạo hợp đồng.
transactionHashDỮ LIỆU 32 byteHàm băm của giao dịch.
transactionIndexSỐ LƯỢNGGiá trị nguyên biểu thị vị trí chỉ mục của giao dịch trong khối.
typeChuỗiChuỗi biểu thị loại giao dịch.
typeIntSỐ LƯỢNGGiá trị nguyên biểu thị loại giao dịch.
giá trịSỐ LƯỢNGGiá trị được chuyển tính bằng đơn vị peb.

Ví dụ


> caver.klay.getTransactionReceiptBySenderTxHash('0x8c0b092fed92a6619666efd582f7d71fbc3d784781072dd26741715b3731ab22').then(console.log);
{
blockHash: '0x56e950bd9283c11ad2dab7cfcbacd9164aff2f6cbeb99dd2a7b754eb210753af',
blockNumber: 773,
codeFormat: '0x0',
contractAddress: '0x71163abc3b051bC2Af71e7c68eD0ffeA6182cde1',
feePayer: '0xabae1fe62aebbfabeff072eb815d54c3359a45f4',
feePayerSignatures: [
{
V: '0x4e43',
R: '0x16293eefe0f13228ae47af67ecfe659448d8f80d9667a67a25d82c72b5ee246a',
S: '0x3c4043324bee41a6cbab905d3b4e740a3a18fde021260fc1196f73d2ab037b91'
}
],
feeRatio: '0x14',
from: '0x3f0e31836c7aabb4c9e9b19d5d61359a9139e949',
gas: '0xdbba0',
gasPrice: '0x5d21dba00',
gasUsed: 235217,
humanReadable: false,
input: '0x6080604052600080556040516020806101fa8339810180604052810190808051906020019092919050505080600081905550506101b9806100416000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd1461006757806342cbb15c14610092578063a87d942c146100bd578063d14e62b8146100e8575b600080fd5b34801561007357600080fd5b5061007c610108565b6040518082815260200191505060405180910390f35b34801561009e57600080fd5b506100a761010e565b6040518082815260200191505060405180910390f35b3480156100c957600080fd5b506100d2610116565b6040518082815260200191505060405180910390f35b6101066004803603810190808035906020019092919050505061014c565b005b60005481565b600043905090565b60007f7197668b8690d2324050bc9ad83b2b5ca0b3f5336cb178ffa2aa07006b51b65160405160405180910390a1600054905090565b7fe8451a9161f9159bc887328b634789768bd596360ef07c5a5cbfb927c44051f9816040518082815260200191505060405180910390a180600081905550505600a165627a7a723058203cb41ebe3d7128a72c997645693c64789a9b5fdeae26158fb28b55e567e805c700290000000000000000000000000000000000000000000000000000000000000001',
logs: [],
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
nonce: '0x9',
senderTxHash: '0x8c0b092fed92a6619666efd582f7d71fbc3d784781072dd26741715b3731ab22',
signatures: [
{
V: '0x4e43',
R: '0x1b48ee0508d242c9568d7e09212d62137080d68d86c1d067b31b4bb4196c9960',
S: '0x24982f60b37859d7c39d7bd9c00b446196b3a08b27f80dbc9ceca8ee52513b11'
}
],
status: true,
to: null,
transactionHash: '0x2ab7665d25f8f64969fa03b8d5e40a70485bb56a4e72ca2fe1e467fff904c173',
transactionIndex: 0,
type: 'TxTypeFeeDelegatedSmartContractDeployWithRatio',
typeInt: 42,
value: '0x1'
}

sendSignedTransaction


caver.klay.sendSignedTransaction(signedTransactionData [, callback])

Gửi giao dịch đã ký trước đó, được tạo bằng hàm caver.klay.tài khoảns.signTransaction.

LƯU Ý caver.klay.sendSignedTransaction có thể nhận một đối tượng làm tham số kể từ phiên bản caver-js v1.2.0. Đối tượng nên bao gồm một chuỗi giao dịch được mã hóa RLP hoặc nên là một đối tượng giao dịch chưa được mã hóa có chữ ký / chữ ký của người trả phí. Bạn có thể truyền đối tượng trả về từ caver.klay.tài khoảns.signTransaction, caver.klay.tài khoảns.feePayerSignTransaction, caver.klay.tài khoảns.getRawTransactionWithSignatures hoặc caver.klay.tài khoảns.combineSignatures.

Tham số

TênLoạiMô tả
signedTransactionDataChuỗi | Đối tượngMột chuỗi giao dịch đã ký được mã hóa RLP, một đối tượng có chuỗi giao dịch đã ký được mã hóa RLP nằm trong thuộc tính rawTransaction hoặc một đối tượng giao dịch chưa mã hóa chữ ký/chữ ký của người trả phí đính kèm.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

LoạiMô tả
PromiEventTrình phát sự kiện kết hợp promise. Sẽ được xử lý khi có biên lai giao dịch.

Đối với PromiEvent, sẽ có các sự kiện sau đây:

  • "transactionHash" trả về String: Được kích hoạt ngay sau khi gửi giao dịch và có hàm băm giao dịch.
  • "receipt" trả về Object: Được kích hoạt khi có sẵn biên lai giao dịch.
  • "error" trả về Error: Được kích hoạt nếu có lỗi phát sinh trong quá trình gửi. Khi xảy ra lỗi hết gas, tham số thứ hai sẽ là biên lai.

Ví dụ


// sendSignedTransaction using promise with RLP encoded signed transaction string
caver.klay.sendSignedTransaction('0xf867808505d21dba0083015f9094247f2b7e9a9c51ebcc9449c7d9e7575f9baac36e0180824e43a02e50f5c4d279e17a80c3fe98327de7e48878e9d8141d26759ef64adcf66e6aa0a02ae9e8beac1ba8d5d215d87c33f9e05263b0bad163706c9dd7a563ee1e028f41').then(function(receipt){
...
})
// sendSignedTransaction using promise with returning object from caver.klay.accounts.signTransaction
caver.klay.sendSignedTransaction({
messageHash: '0x2378aeb6439f43597e30df4937f59eb13c98e502bb03babcebb39bf602cd8d73',
v: '0x4e43',
r: '0x9fc6cfd3d7c35794ab373c8d7f15746f1f4fa94c80e31270eea31977f20aaa9a',
s: '0x762343c55f7c1de87e5877887b9d10ed93b16666f4bdbc525aeee1f23fb53457',
rawTransaction: '0xf867018505d21dba0083015f9094cdba9992ffd79b12ce68905db40bf5e873b1a43e0180824e43a09fc6cfd3d7c35794ab373c8d7f15746f1f4fa94c80e31270eea31977f20aaa9aa0762343c55f7c1de87e5877887b9d10ed93b16666f4bdbc525aeee1f23fb53457',
txHash: '0x3d598805e1565ba5c4a1d2b708aff9825562d903bef4301ef22564253c6779bf',
senderTxHash: '0x3d598805e1565ba5c4a1d2b708aff9825562d903bef4301ef22564253c6779bf',
signatures: [
'0x4e43',
'0x9fc6cfd3d7c35794ab373c8d7f15746f1f4fa94c80e31270eea31977f20aaa9a',
'0x762343c55f7c1de87e5877887b9d10ed93b16666f4bdbc525aeee1f23fb53457',
],
}).then(function(receipt){
...
})
// sendSignedTransaction using promise with a transaction object that has signatures
caver.klay.sendSignedTransaction({
type: 'LEGACY',
from: '0x73647c5fd1a66fac0dbf2af2e5cc7f593a015441',
to: '0x82c5b8f3ae5c08eeb64a1af0ce89cb5233b05c6c',
value: '0x1',
gas: '0x15f90',
gasPrice: '0x5d21dba00',
nonce: '0x2',
signatures: [
'0x4e43',
'0x077b0ec1dd5dd66ffbf7d779b08bed6166ec1b0269d85a3901dbfb55331216de',
'0x23b7565fa994ba3f88290de9b7f6b6b975f2ad9c19ce1ffc4752ecbc51b6c274',
],
}).then(function(receipt){
...
})
// sendSignedTransaction using promise with a fee delegated transaction object that has signatures and feePayerSignatures
caver.klay.sendSignedTransaction({
type: 'FEE_DELEGATED_VALUE_TRANSFER',
from: '0x73647c5fd1a66fac0dbf2af2e5cc7f593a015441',
to: '0x73f9b11bd22fde3ec543f3fcbdc39fc40a942bf7',
value: '0x1',
gas: '0x15f90',
gasPrice: '0x5d21dba00',
chainId: '0x2710',
nonce: '0x3',
humanReadable: false,
feePayer: '0xebcd0271c4f8d2a84a33e073a5c9bcdb6bafc556',
signatures: [
[
'0x4e44',
'0x41dfab76e0fdcdb5c4cd4dbe39861029d8c7f156f9dd10e8292625492943e689',
'0x789f1bfc42a96366ea0bdc6727410a661fe8300cdf57889316c25aa873a5b85c',
],
],
feePayerSignatures: [
[
'0x4e44',
'0x833031cb1d709a408f1c3b83cea88671d9d86f7550101e4e7221507a39dcd462',
'0x03f1d8003513b038195c6d798623d5bb132a93e7f2f0a2c302079b92858ea8e7',
],
],
}).then(function(receipt){
...
})
// sendSignedTransaction using event emitter with RLP encoded signed transaction string
> caver.klay.sendSignedTransaction('0xf867068505d21dba0083015f90940fd7697a8b9a46b0f770a3986e8a10b6ad6fffe10180824e44a0e591e4cbf4bdada2e559ce5b9c7b604c50d3b1d7d5a29939091bcc8ad4208aa3a01ef917ec539aa79b32a043b452e81840ea012796895cd5925273fd8df139595f')
.on('transactionHash', function(hash){
...
})
.on('receipt', function(receipt){
...
})
.on('error', console.error)

sendTransaction

signTransaction


caver.klay.signTransaction(transactionObject [, callback])

Ký giao dịch. Tài khoản này cần ở trạng thái mở khóa.

Tham số

TêntypeMô tả
transactionObjectĐối tượngDữ liệu giao dịch cần ký.
callbackHàm(tùy chọn) Hàm callback tùy chọn, trả về một đối tượng lỗi làm tham số thứ nhất và kết quả làm tham số thứ hai.

Giá trị trả về

Promise trả về Object - Giao dịch được mã hóa RLP. Có thể sử dụng thuộc tính raw để gửi giao dịch bằng cách sử dụng hàm caver.klay.sendSignedTransaction.

Ví dụ


> caver.klay.signTransaction({
nonce: 0,
from: "0xEB014f8c8B418Db6b45774c326A0E64C78914dC0",
gasPrice: '25000000000',
gas: "21000",
to: '0x3535353535353535353535353535353535353535',
value: "1000000000000000000",
data: ""
}).then(console.log);
{
raw: '0xf86c808504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a04f4c17305743700648bc4f6cd3038ec6f6af0df73e31757007b7f59df7bee88da07e1941b264348e80c78c4027afc65a87b0a5e43e86742b8ca0823584c6788fd0',
tx: {
nonce: '0x0',
gasPrice: '25000000000',
gas: '0x5208',
to: '0x3535353535353535353535353535353535353535',
value: '0xde0b6b3a7640000',
input: '0x',
v: '0x25',
r: '0x4f4c17305743700648bc4f6cd3038ec6f6af0df73e31757007b7f59df7bee88d',
s: '0x7e1941b264348e80c78c4027afc65a87b0a5e43e86742b8ca0823584c6788fd0',
hash: '0xda3be87732110de6c1354c83770aae630ede9ac308d9f7b399ecfba23d923384'
}
}

Make this page better