Nhảy tới nội dung

Lớp giao dịch cơ bản

LegacyTransaction


caver.transaction.legacyTransaction.create(transactionObject)

LegacyTransaction biểu thị một giao dịch cũ. Tài khoản Klaytn có thể thực thi LegacyTransaction chỉ bằng [AccountKeyLegacy (Khóa tài khoản cũ)]. transactionObject có thể có các thuộc tính dưới đây để tạo LegacyTransaction.

LegacyTransaction có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo LegacyTransaction.

ghi chú

LƯU Ý: Bạn có thể tạo một phiên bản LegacyTransaction từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.legacyTransaction.create được hỗ trợ kể từ phiên bản caver-js v1.6.1.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.legacyTransaction({...}), vui lòng đổi thành caver.transaction.legacyTransaction.create({...}).

thuộc tính

TêntypeMô tả
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
giá trịchuỗi(tùy chọn, mặc định: '0x0') Số lượng KLAY tính bằng peb sẽ được chuyển. Bạn có thể sử dụng hàm caver.utils.toPeb.
từchuỗi(tùy chọn) Địa chỉ của người gửi. Nếu bỏ qua tham số này, địa chỉ của keyring được sử dụng để ký sẽ được thiết lập.
đếnchuỗi(tùy chọn, mặc định: '0x') Địa chỉ tài khoản sẽ nhận giá trị được chuyển hoặc địa chỉ hợp đồng thông minh nếu giao dịch cũ thực thi hợp đồng thông minh. Nếu một giao dịch cũ triển khai hợp đồng thông minh thì không cần xác định to.
nhậpchuỗi(tùy chọn) Dữ liệu gắn kèm giao dịch, dùng để triển khai/thực thi hợp đồng thông minh.
chữ kýMảng(tùy chọn) Mảng các chữ ký. Một giao dịch cũ có thể chỉ có một chữ ký.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.

Ví dụ


// Create a legacyTransaction for sending KLAY
> caver.transaction.legacyTransaction.create({
to: '0x9957dfd92e4b70f91131c573293343bc5f21f215',
value: caver.utils.toPeb(1, 'KLAY'),
gas: 25000,
})
// Create a legacyTransaction to deploy smart contract
> caver.transaction.legacyTransaction.create({
input: '0x60806...',
gas: 200000,
})
// Create a legacyTransaction to execute smart contract
> caver.transaction.legacyTransaction.create({
to: '0xfe6c9118e56a42cbc77aa3b7ee586455e3dc5b6d', // Smart contact address
input: '0xa9059...',
gas: 200000,
})
// Create a legacyTransaction from RLP-encoded string
> caver.transaction.legacyTransaction.create('0xf8668204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a843132333425a0b2a5a15550ec298dc7dddde3774429ed75f864c82caeb5ee24399649ad731be9a029da1014d16f2011b3307f7bbe1035b6e699a4204fc416c763def6cefd976567')
LegacyTransaction {
_type: 'TxTypeLegacyTransaction',
_from: '0x',
_gas: '0xf4240',
_nonce: '0x4d2',
_gasPrice: '0x19',
_signatures: SignatureData { _v: '0x25', _r: '0xb2a5a...', _s: '0x29da1...' },
_to: '0x7b65b75d204abed71587c9e519a89277766ee1d0',
_input: '0x31323334',
_value: '0xa'
}

ValueTransfer


caver.transaction.valueTransfer.create(transactionObject)

ValueTransfer biểu thị một giao dịch chuyển giá trị. transactionObject có thể có các thuộc tính dưới đây để tạo giao dịch ValueTransfer.

ValueTransfer có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo giao dịch ValueTransfer.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng ValueTransfer từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.valueTransfer.create được hỗ trợ kể từ phiên bản caver-js v1.6.1.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.valueTransfer({...}), vui lòng đổi thành caver.transaction.valueTransfer.create({...}).

thuộc tính

TênLoạiMô tả
giá trịchuỗiSố lượng KLAY tính bằng peb sẽ được chuyển. Bạn có thể sử dụng hàm caver.utils.toPeb.
từchuỗiĐịa chỉ của người gửi.
đếnchuỗiĐịa chỉ tài khoản sẽ nhận giá trị được chuyển.
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
chữ kýMảng(tùy chọn) Mảng các chữ ký.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.

Ví dụ


// Create a valueTransfer
> caver.transaction.valueTransfer.create({
from: '0x{address in hex}',
to: '0x9957dfd92e4b70f91131c573293343bc5f21f215',
value: caver.utils.toPeb(1, 'KLAY'),
gas: 25000,
})
// Create a valueTransfer from RLP-encoded string
> caver.transaction.valueTransfer.create('0x08f87f3a8505d21dba0083015f90948723590d5d60e35f7ce0db5c09d3938b26ff80ae01947d0104ac150f749d36bb34999bcade9f2c0bd2e6f847f845820feaa03d820b27d0997baf16f98df01c7b2b2e9734ad05b2228c4d403c2facff8397f3a01f4a44eeb8b7f0b0019162d1d6b90c401078e56fcd7495e74f7cfcd37e25f017')
ValueTransfer {
_type: 'TxTypeValueTransfer',
_from: '0x7d0104ac150f749d36bb34999bcade9f2c0bd2e6',
_gas: '0x15f90',
_nonce: '0x3a',
_gasPrice: '0x5d21dba00',
_signatures: [ SignatureData { _v: '0x0fea', _r: '0x3d820...', _s: '0x1f4a4...' } ],
_to: '0x8723590d5d60e35f7ce0db5c09d3938b26ff80ae',
_value: '0x1'
}

ValueTransferMemo


caver.transaction.valueTransferMemo.create(transactionObject)

ValueTransferMemo biểu thị một giao dịch chuyển giá trị kèm ghi chú. transactionObject có thể có các thuộc tính dưới đây để tạo giao dịch ValueTransferMemo.

ValueTransferMemo có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo giao dịch ValueTransferMemo.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng ValueTransferMemo từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.valueTransferMemo.create được hỗ trợ kể từ phiên bản caver-js v1.6.1.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.valueTransferMemo({...}), vui lòng đổi thành caver.transaction.valueTransferMemo.create({...}).

thuộc tính

TêntypeMô tả
giá trịchuỗiSố lượng KLAY tính bằng peb sẽ được chuyển. Bạn có thể sử dụng hàm caver.utils.toPeb.
từchuỗiĐịa chỉ của người gửi.
đếnchuỗiĐịa chỉ tài khoản sẽ nhận giá trị được chuyển.
nhậpchuỗiDữ liệu gắn kèm theo giao dịch. Thông điệp cần được truyền vào thuộc tính này.
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
chữ kýMảng(tùy chọn) Mảng các chữ ký.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.

Ví dụ


// Create a valueTransferMemo
> caver.transaction.valueTransferMemo.create({
from: '0x{address in hex}',
to: '0x9957dfd92e4b70f91131c573293343bc5f21f215',
value: caver.utils.toPeb(1, 'KLAY'),
gas: 25000,
input: '0x68656c6c6f',
})
// Create a valueTransferMemo from RLP-encoded string
> caver.transaction.valueTransferMemo.create('0x10f8808204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6ff845f84325a07d2b0c89ee8afa502b3186413983bfe9a31c5776f4f820210cffe44a7d568d1ca02b1cbd587c73b0f54969f6b76ef2fd95cea0c1bb79256a75df9da696278509f3')
ValueTransferMemo {
_type: 'TxTypeValueTransferMemo',
_from: '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b',
_gas: '0xf4240',
_nonce: '0x4d2',
_gasPrice: '0x19',
_signatures: [ SignatureData { _v: '0x25', _r: '0x7d2b0...', _s: '0x2b1cb...' } ],
_to: '0x7b65b75d204abed71587c9e519a89277766ee1d0',
_value: '0xa',
_input: '0x68656c6c6f'
}

AccountUpdate


caver.transaction.accountUpdate.create(transactionObject)

AccountUpdate biểu thị một giao dịch cập nhật tài khoản. transactionObject có thể có các thuộc tính dưới đây để tạo giao dịch AccountUpdate.

AccountUpdate có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo giao dịch AccountUpdate.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng AccountUpdate từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.tài khoảnUpdate.create được hỗ trợ kể từ phiên bản caver-js v1.6.1.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.tài khoảnUpdate({...}), vui lòng đổi thành caver.transaction.tài khoảnUpdate.create({...}).

thuộc tính

TênLoạiMô tả
từchuỗiĐịa chỉ của người gửi.
tài khoản[Tài khoản][]Một đối tượng [Tài khoản][] chứa các thông tin cần thiết để cập nhật tài khoản của bạn.
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
chữ kýMảng(tùy chọn) Mảng các chữ ký.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.

Để biết cách tạo một đối tượng [Tài khoản][] cho mỗi AccountKey, hãy tham khảo Bắt đầu - Cập nhật tài khoản hoặc caver.tài khoản.create.

Ví dụ


// Create a accountUpdate
> caver.transaction.accountUpdate.create({
from: '0x{address in hex}',
gas: 50000,
account: caver.account.createWithAccountKeyLegacy('0x{address in hex}'),
})
// Create a accountUpdate from RLP-encoded string
> caver.transaction.accountUpdate.create('0x20f88d808505d21dba0083030d4094ffb52bc54635f840013e142ebe7c06c9c91c1625a302a102c93fcbdb2b9dbef8ee5c4748ffdce11f1f5b06d7ba71cc2b7699e38be7698d1ef847f845820fe9a09c2ca281e94567846acbeef724b1a7a5f882d581aff9984755abd92272592b8ea0344fd23d7774ae9c227809bb579387dfcd69e74ae2fe3a788617f54a4001e5ab')
AccountUpdate {
_type: 'TxTypeAccountUpdate',
_from: '0xffb52bc54635f840013e142ebe7c06c9c91c1625',
_gas: '0x30d40',
_nonce: '0x0',
_gasPrice: '0x5d21dba00',
_signatures: [ SignatureData { _v: '0x0fe9', _r: '0x9c2ca...', _s: '0x344fd...' } ],
_account: Account {
_address: '0xffb52bc54635f840013e142ebe7c06c9c91c1625',
_accountKey: AccountKeyPublic { _publicKey: '0x02c93...' }
}
}

SmartContractDeploy


caver.transaction.smartContractDeploy.create(transactionObject)

SmartContractDeploy biểu thị một giao dịch triển khai hợp đồng thông minh. transactionObject có thể có các thuộc tính dưới đây để tạo giao dịch SmartContractDeploy.

SmartContractDeploy có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo giao dịch SmartContractDeploy.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng SmartContractDeploy từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.smartContractDeploy.create được hỗ trợ kể từ phiên bản caver-js v1.6.1.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.smartContractDeploy({...}), vui lòng đổi thành caver.transaction.smartContractDeploy.create({...}).

thuộc tính

TênLoạiMô tả
từchuỗiĐịa chỉ của người gửi.
nhậpchuỗiDữ liệu gắn kèm theo giao dịch. Chỉ thị biên dịch của hợp đồng thông minh sẽ được triển khai và các đối số của nó. Bạn có thể lấy dữ liệu này bằng hàm caver.abi.encodeContractDeploy.
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
giá trịchuỗi(tùy chọn, mặc định: '0x0') Số lượng KLAY tính theo đơn vị peb sẽ được chuyển và lưu vào số dư của địa chỉ hợp đồng thông minh khi hợp đồng được khởi tạo. Bạn có thể sử dụng hàm caver.utils.toPeb.
đếnchuỗi(tùy chọn, mặc định: '0x') Địa chỉ mà hợp đồng thông minh được triển khai. Hiện tại không thể xác định giá trị này. Tính năng xác định địa chỉ sẽ được hỗ trợ trong tương lai.
humanReadablekiểu dữ liệu Boolean(tùy chọn, mặc định: false) Phải là giá trị false vì địa chỉ con người có thể đọc được chưa được hỗ trợ.
codeFormatchuỗi(tùy chọn, mặc định: 'EVM') Định dạng mã của mã hợp đồng thông minh. Hiện tại, giá trị được hỗ trợ chỉ có EVM. Giá trị này được chuyển đổi thành chuỗi số hex sau khi được gán (ví dụ:> EVM được chuyển đổi thành 0x0) bên trong.
chữ kýMảng(tùy chọn) Mảng các chữ ký.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.

Ví dụ


// Create a smartContractDeploy
> caver.transaction.smartContractDeploy.create({
from: '0x{address in hex}',
input: '0x60806...',
gas: 100000,
})
// Create a smartContractDeploy from RLP-encoded string
> caver.transaction.smartContractDeploy.create('0x28f9027e1f8505d21dba00830dbba0808094d91aec35bea25d379e49cfe2dff5f5775cdac1a3b9020e60806040526000805534801561001457600080fd5b506101ea806100246000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd1461007257806342cbb15c1461009d578063767800de146100c8578063b22636271461011f578063d14e62b814610150575b600080fd5b34801561007e57600080fd5b5061008761017d565b6040518082815260200191505060405180910390f35b3480156100a957600080fd5b506100b2610183565b6040518082815260200191505060405180910390f35b3480156100d457600080fd5b506100dd61018b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012b57600080fd5b5061014e60048036038101908080356000191690602001909291905050506101b1565b005b34801561015c57600080fd5b5061017b600480360381019080803590602001909291905050506101b4565b005b60005481565b600043905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b50565b80600081905550505600a165627a7a7230582053c65686a3571c517e2cf4f741d842e5ee6aa665c96ce70f46f9a594794f11eb00298080f847f845820fe9a0018a9f680a74e275f1f83a5c2c45e1313c52432df4595e944240b1511a4f4ba7a02d762c3417f91b81db4907db832cb28cc64df7dca3ea9be64899ab3f4812f016')
SmartContractDeploy {
_type: 'TxTypeSmartContractDeploy',
_from: '0xd91aec35bea25d379e49cfe2dff5f5775cdac1a3',
_gas: '0xdbba0',
_nonce: '0x1f',
_gasPrice: '0x5d21dba00',
_signatures: [ SignatureData { _v: '0x0fe9', _r: '0x018a9...', _s: '0x2d762...' } ],
_to: '0x',
_value: '0x0',
_input: '0x60806...',
_humanReadable: false,
_codeFormat: '0x0'
}

SmartContractExecution


caver.transaction.smartContractExecution.create(transactionObject)

SmartContractExecution biểu thị một giao dịch thực thi hợp đồng thông minh. transactionObject có thể có các thuộc tính dưới đây để tạo giao dịch SmartContractExecution.

SmartContractExecution có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo giao dịch SmartContractExecution.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng SmartContractExecution từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.smartContractExecution.create được hỗ trợ kể từ phiên bản caver-js v1.6.1.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.smartContractExecution({...}), vui lòng đổi thành caver.transaction.smartContractExecution.create({...}).

thuộc tính

TênLoạiMô tả
từchuỗiĐịa chỉ của người gửi.
đếnchuỗiĐịa chỉ thực thi tài khoản hợp đồng thông minh.
nhậpchuỗiDữ liệu được gắn kèm giao dịch, dùng để thực thi giao dịch. Đầu vào là một chuỗi mã hóa cho biết một hàm cần gọi và các tham số được truyền vào hàm này. Bạn có thể lấy dữ liệu này bằng hàm caver.abi.encodeFunctionCall.
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
giá trịchuỗi(tùy chọn, mặc định: '0x0') Số lượng KLAY tính bằng peb sẽ được chuyển. Bạn có thể sử dụng hàm caver.utils.toPeb.
chữ kýMảng(tùy chọn) Mảng các chữ ký.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.

Ví dụ


// Create a smartContractExecution
> caver.transaction.smartContractExecution.create({
from: '0x{address in hex}',
to: '0x{address in hex}',
input: '0xa9059...',
gas: 90000,
})
// Create a smartContractExecution from RLP-encoded string
> caver.transaction.smartContractExecution.create('0x30f8c5038505d21dba00830dbba094e3cd4e1cd287235cc0ea48c9fd02978533f5ec2b80946b604e77c0fbebb5b2941bcde3ab5eb09d99ad24b844a9059cbb0000000000000000000000008a4c9c443bb0645df646a2d5bb55def0ed1e885a0000000000000000000000000000000000000000000000000000000000003039f847f845820feaa066e1650b5779f152489633f343581c07938f8b2fc92c919d4dd7c7295d0beacea067b0b79383dbcd42a3aa8ebb1aa4bcb1fc0623ef9e97bc1e9b82d96fe37b5881')
SmartContractExecution {
_type: 'TxTypeSmartContractExecution',
_from: '0x6b604e77c0fbebb5b2941bcde3ab5eb09d99ad24',
_gas: '0xdbba0',
_nonce: '0x3',
_gasPrice: '0x5d21dba00',
_signatures: [ SignatureData { _v: '0x0fea', _r: '0x66e16...', _s: '0x67b0b...' } ],
_to: '0xe3cd4e1cd287235cc0ea48c9fd02978533f5ec2b',
_value: '0x0',
_input: '0xa9059...'
}

Cancel


caver.transaction.cancel.create(transactionObject)

Cancel biểu thị một giao dịch hủy. transactionObject có thể có các thuộc tính dưới đây để tạo giao dịch Cancel.

Giao dịch Cancel hủy bỏ việc thực thi giao dịch có cùng số dùng một lần trong nhóm giao dịch chờ.

Cancel có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo giao dịch Cancel.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng Cancel từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.cancel.create được hỗ trợ kể từ phiên bản caver-js v1.6.1.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.xcancelxx({...}), vui lòng đổi thành caver.transaction.cancel.create({...}).

thuộc tính

TênLoạiMô tả
từchuỗiĐịa chỉ của người gửi.
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
chữ kýMảng(tùy chọn) Mảng các chữ ký.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.

Ví dụ


// Create a cancel
> caver.transaction.cancel.create({
from: '0x{address in hex}',
nonce: 1,
gas: 25000,
})
// Create a cancel from RLP-encoded string
> caver.transaction.cancel.create('0x38f869068505d21dba00830dbba0946b604e77c0fbebb5b2941bcde3ab5eb09d99ad24f847f845820feaa0d9994ef507951a59380309f656ee8ed685becdc89b1d1a0eb1d2f72683ae14d3a07ad5d37a89781f294fab72b254ea9266e4d039ae163db4a4c4752f1fabff023b')
Cancel {
_type: 'TxTypeCancel',
_from: '0x6b604e77c0fbebb5b2941bcde3ab5eb09d99ad24',
_gas: '0xdbba0',
_nonce: '0x6',
_gasPrice: '0x5d21dba00',
_signatures: [ SignatureData { _v: '0x0fea', _r: '0xd9994...', _s: '0x7ad5d...' } ]
}

ChainDataAnchoring


caver.transaction.chainDataAnchoring.create(transactionObject)

ChainDataAnchoring biểu thị một giao dịch neo dữ liệu chuỗi. transactionObject có thể có các thuộc tính dưới đây để tạo giao dịch ChainDataAnchoring.

ChainDataAnchoring có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo giao dịch ChainDataAnchoring.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng ChainDataAnchoring từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.chainDataAnchoring.create được hỗ trợ kể từ phiên bản caver-js v1.6.1.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.chainDataAnchoring({...}), vui lòng đổi thành caver.transaction.chainDataAnchoring.create({...}).

thuộc tính

TênLoạiMô tả
từchuỗiĐịa chỉ của người gửi.
nhậpchuỗiDữ liệu của chuỗi dịch vụ.
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
chữ kýMảng(tùy chọn) Mảng các chữ ký.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.

Ví dụ


// Create a chainDataAnchoring
> caver.transaction.chainDataAnchoring.create({
from: '0x{address in hex}',
gas: 50000,
input: '0xf8a6a...',
})
// Create a chainDataAnchoring from RLP-encoded string
> caver.transaction.chainDataAnchoring.create('0x48f9010e8204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0bb8a8f8a6a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000405f845f84325a0e58b9abf9f33a066b998fccaca711553fb4df425c9234bbb3577f9d9775bb124a02c409a6c5d92277c0a812dd0cc553d7fe1d652a807274c3786df3292cd473e09')
ChainDataAnchoring {
_type: 'TxTypeChainDataAnchoring',
_from: '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b',
_gas: '0xf4240',
_nonce: '0x4d2',
_gasPrice: '0x19',
_signatures: [ SignatureData { _v: '0x25', _r: '0xe58b9...', _s: '0x2c409...' } ],
_input: '0xf8a6a...'
}

EthereumAccessList


caver.transaction.ethereumAccessList.create(transactionObject)

EthereumAccessList biểu thị một giao dịch danh sách tiếp cận Ethereum. Tài khoản Klaytn có thể thực thi giao dịch EthereumAccessList chỉ bằng [AccountKeyLegacy (Khóa tài khoản cũ)]. transactionObject có thể có các thuộc tính dưới đây để tạo EthereumAccessList.

EthereumAccessList có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo EthereumAccessList.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng EthereumAccessList từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.ethereumAccessList được hỗ trợ kể từ phiên bản caver-js v1.8.0.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.ethereumAccessList({...}), vui lòng đổi thành caver.transaction.ethereumAccessList.create({...}).

thuộc tính

TêntypeMô tả
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
giá trịchuỗi(tùy chọn, mặc định: '0x0') Số lượng KLAY tính bằng peb sẽ được chuyển. Bạn có thể sử dụng hàm caver.utils.toPeb.
từchuỗi(tùy chọn) Địa chỉ của người gửi. Nếu bỏ qua tham số này, địa chỉ của keyring được sử dụng để ký sẽ được thiết lập.
đếnchuỗi(tùy chọn, mặc định: '0x') Địa chỉ tài khoản sẽ nhận giá trị được chuyển hoặc địa chỉ hợp đồng thông minh nếu giao dịch danh sách tiếp cận ethereum thực thi hợp đồng thông minh. Nếu một giao dịch danh sách tiếp cận ethereum triển khai hợp đồng thông minh thì không cần xác định to.
nhậpchuỗi(tùy chọn) Dữ liệu gắn kèm giao dịch, dùng để triển khai/thực thi hợp đồng thông minh.
chữ kýMảng(tùy chọn) Mảng các chữ ký. Một giao dịch danh sách tiếp cận ethereum có thể chỉ có một chữ ký.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này, caver.rpc.klay.getTransactionCount(address, 'pending') sẽ được sử dụng để thiết lập số dùng một lần.
giá gaschuỗi(tùy chọn) Một tham số nhân để tính toán số lượng token mà người gửi sẽ thanh toán. Nếu bỏ qua tham số này, caver.rpc.klay.getGasPrice sẽ được sử dụng để thiết lập giá gas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này, caver.rpc.klay.getChainId sẽ được sử dụng để thiết lập mã chuỗi.
accessListMảng(tùy chọn) Là danh sách truy cập EIP-2930 chứa tất cả các khe lưu trữ và địa chỉ mà giao dịch đọc và ghi.

Ví dụ


> caver.transaction.ethereumAccessList.create({
to: '0x9957dfd92e4b70f91131c573293343bc5f21f215',
value: caver.utils.toPeb(1, 'KLAY'),
gas: 40000,
accessList: [
{
address: '0x5430192ae264b3feff967fc08982b9c6f5694023',
storageKeys: [
'0x0000000000000000000000000000000000000000000000000000000000000003',
'0x0000000000000000000000000000000000000000000000000000000000000007',
],
},
]
})
> caver.transaction.ethereumAccessList.create('0x7801f90109822710238505d21dba00829c4094c5fb1386b60160614a8151dcd4b0ae41325d1cb801b844a9059cbb0000000000000000000000008a4c9c443bb0645df646a2d5bb55def0ed1e885a0000000000000000000000000000000000000000000000000000000000003039f85bf859945430192ae264b3feff967fc08982b9c6f5694023f842a00000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000701a05ac25e47591243af2d6b8e7f54d608e9e0e0aeb5194d34c17852bd7e376f4857a0095a40394f33e95cce9695d5badf4270f4cc8aff0b5395cefc3a0fe213be1f30')
EthereumAccessList {
_type: 'TxTypeEthereumAccessList',
_from: '0x0000000000000000000000000000000000000000',
_gas: '0x9c40',
_nonce: '0x23',
_chainId: '0x2710',
_signatures: SignatureData {
_v: '0x01',
_r: '0x5ac25e47591243af2d6b8e7f54d608e9e0e0aeb5194d34c17852bd7e376f4857',
_s: '0x095a40394f33e95cce9695d5badf4270f4cc8aff0b5395cefc3a0fe213be1f30'
},
_to: '0xc5fb1386b60160614a8151dcd4b0ae41325d1cb8',
_input: '0xa9059cbb0000000000000000000000008a4c9c443bb0645df646a2d5bb55def0ed1e885a0000000000000000000000000000000000000000000000000000000000003039',
_value: '0x1',
_accessList: AccessList(0) [],
_gasPrice: '0x5d21dba00'
}

EthereumDynamicFee


caver.transaction.ethereumDynamicFee.create(transactionObject)

EthereumDynamicFee biểu thị một giao dịch phí biến đổi Ethereum. Tài khoản Klaytn có thể thực thi giao dịch EthereumDynamicFee chỉ bằng [AccountKeyLegacy (Khóa tài khoản cũ)]. transactionObject có thể có các thuộc tính dưới đây để tạo EthereumDynamicFee.

EthereumDynamicFee có các thuộc tính sau đây giống như các biến thành viên. Thuộc tính được đánh dấu là optional nghĩa là các thuộc tính được tùy ý đưa ra trong transactionObject khi người dùng tạo EthereumDynamicFee. Và lưu ý rằng giao dịch EthereumDynamicFee không sử dụng gasPrice, giao dịch này sử dụng maxPriorityFeePerGasmaxFeePerGas.

ghi chú

LƯU Ý: Bạn có thể tạo một đối tượng EthereumDynamicFee từ chuỗi mã hóa RLP. Hãy xem ví dụ dưới đây. LƯU Ý: caver.transaction.ethereumDynamicFee được hỗ trợ kể từ phiên bản caver-js v1.8.0.

LƯU Ý: Kể từ phiên bản caver-js v1.8.1-rc.4, tính năng tạo giao dịch chỉ được hỗ trợ bằng cách sử dụng hàm create. Nếu bạn đang tạo giao dịch bằng cách sử dụng hàm tạo như new caver.transaction.ethereumDynamicFee({...}), vui lòng đổi thành caver.transaction.ethereumDynamicFee.create({...}).

thuộc tính

TêntypeMô tả
gaschuỗiGiá trị phí giao dịch tối đa mà giao dịch được phép sử dụng.
giá trịchuỗi(tùy chọn, mặc định: '0x0') Số lượng KLAY tính bằng peb sẽ được chuyển. Bạn có thể sử dụng hàm caver.utils.toPeb.
từchuỗi(tùy chọn) Địa chỉ của người gửi. Nếu bỏ qua tham số này thì sẽ được thiết lập thành địa chỉ keyring được sử dụng để ký.
đếnchuỗi(tùy chọn, mặc định: '0x') Địa chỉ tài khoản sẽ nhận giá trị được chuyển hoặc địa chỉ hợp đồng thông minh khi giao dịch phí biến đổi ethereum thực thi hợp đồng thông minh. Nếu một giao dịch phí biến đổi ethereum triển khai hợp đồng thông minh thì không cần xác định to.
nhậpchuỗi(tùy chọn) Dữ liệu gắn kèm giao dịch, dùng để triển khai/thực thi hợp đồng thông minh.
chữ kýMảng(tùy chọn) Mảng các chữ ký. Một giao dịch phí biến đổi ethereum có thể chỉ có một chữ ký.
noncechuỗi(tùy chọn) Giá trị dùng để định danh duy nhất cho một giao dịch của người gửi. Nếu bỏ qua tham số này thì sẽ được thiết lập thành caver.rpc.klay.getTransactionCount(address, 'pending').
maxPriorityFeePerGaschuỗi(tùy chọn) Giới hạn tối đa mức phí trả thêm cho giao dịch theo đơn vị peb. Do Klaytn có giá gas cố định, giá trị này nên được đặt giống với giá trị của caver.rpc.klay.getGasPrice. Nếu bỏ qua tham số này thì sẽ được thiết lập thành caver.rpc.klay.getMaxPriorityFeePerGas().
maxFeePerGaschuỗi(tùy chọn) Số tiền tối đa chi trả cho việc thực thi giao dịch. Do Klaytn có giá gas cố định, giá trị này nên được đặt giống với giá trị của caver.rpc.klay.getGasPrice. Nếu bỏ qua tham số này, giá trị baseFeePerGas * 2 + maxPriorityFeePerGas được đặt thành maxFeePerGas.
chainIdchuỗi(tùy chọn) Mã chuỗi của mạng lưới Klaytn. Nếu bỏ qua tham số này thì sẽ được thiết lập thành caver.rpc.klay.getChainId.
accessListMảng(tùy chọn) Là danh sách truy cập EIP-2930 chứa tất cả các khe lưu trữ và địa chỉ mà giao dịch đọc và ghi.

Ví dụ


> caver.transaction.ethereumDynamicFee.create({
to: '0x9957dfd92e4b70f91131c573293343bc5f21f215',
value: caver.utils.toPeb(1, 'KLAY'),
gas: 50000,
accessList: [
{
address: '0x5430192ae264b3feff967fc08982b9c6f5694023',
storageKeys: [
'0x0000000000000000000000000000000000000000000000000000000000000003',
'0x0000000000000000000000000000000000000000000000000000000000000007',
],
},
]
})
> caver.transaction.ethereumDynamicFee.create('0x7802f9010f822710258505d21dba008505d21dba00829c40941fc92c23f71a7de4cdb4394a37fc636986a0f48401b844a9059cbb0000000000000000000000008a4c9c443bb0645df646a2d5bb55def0ed1e885a0000000000000000000000000000000000000000000000000000000000003039f85bf8599467116062f1626f7b3019631f03d301b8f701f709f842a00000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000780a04fc52da183020a27dc4b684a45404445630e946b0c1a37edeb538d4bdae63040a07d56dbcc61f42ffcbced105f838d20b8fe71e85a4d0344c7f60815fddfeae4cc')
EthereumDynamicFee {
_type: 'TxTypeEthereumDynamicFee',
_from: '0x0000000000000000000000000000000000000000',
_gas: '0x9c40',
_nonce: '0x25',
_chainId: '0x2710',
_signatures: SignatureData {
_v: '0x',
_r: '0x4fc52da183020a27dc4b684a45404445630e946b0c1a37edeb538d4bdae63040',
_s: '0x7d56dbcc61f42ffcbced105f838d20b8fe71e85a4d0344c7f60815fddfeae4cc'
},
_to: '0x1fc92c23f71a7de4cdb4394a37fc636986a0f484',
_input: '0xa9059cbb0000000000000000000000008a4c9c443bb0645df646a2d5bb55def0ed1e885a0000000000000000000000000000000000000000000000000000000000003039',
_value: '0x1',
_accessList: AccessList(0) [],
_maxPriorityFeePerGas: '0x5d21dba00',
_maxFeePerGas: '0x5d21dba00'
}

Make this page better