Recovers the public key strings from feePayerSignatures field of the given transaction.
NOTEcaver.transaction.recoverFeePayerPublicKeys is supported since caver-js v1.6.3.
Parameters
Name
Type
Description
rawTx
string
The RLP-encoded transaction string to recover public keys from feePayerSignatures. To recover fee payer's public keys, the transaction should be a fee-delegated transaction with the feePayerSignatures field inside.
Return Value
Type
Description
Array
An array containing public keys recovered from feePayerSignatures.
Signs the transaction as a transaction sender with the private key(s) in the keyring and appends signatures in the transaction object.
For Account Update transaction, use roleAccountUpdateKey, or otherwise, use roleTransactionKey in RoleBasedKeyring. If the user has not defined an index, transaction.sign signs the transaction using all the private keys used by the role. If index is defined, the transaction.sign signs the transaction using only one private key at the given index.
Parameters
Name
Type
Description
keyring
object | string
index
number
(optional) The index of the private key you want to use. The index must be less than the length of the array of the private keys defined for each role. If an index is not defined, this method will use all the private keys.
hasher
Function
(optional) The hash function to get the hash of the transaction.
Return Value
Promise returning object: The signed transaction.
Type
Description
object
Example
// This example uses the ValueTransfer transaction.>consttransaction=caver.transaction.valueTransfer.create({ from:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', value:1, gas:30000,})>constcustomHasher= () => { ... }// Sign a transaction with the roleBasedKeyring which use two private keys for roleTransactionKey>transaction.sign(roleBasedKeyring).then(console.log)ValueTransfer { _type:'TxTypeValueTransfer', _from:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', _gas:'0x7530', _signatures: [ SignatureData { _v:'0x4e43', _r:'0xd78a2...', _s:'0x379e9...' }, SignatureData { _v:'0x4e43', _r:'0x70a58...', _s:'0x2ab28...' } ], _to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', _value:'0x1', _chainId:'0x2710', _gasPrice:'0x5d21dba00', _nonce:'0x0'}// Sign a transaction with the roleBasedKeyring which use two private keys for roleTransactionKey and index>transaction.sign(roleBasedKeyring,1).then(console.log)ValueTransfer { _type:'TxTypeValueTransfer', _from:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', _gas:'0x7530', _signatures: [ SignatureData { _v:'0x4e43', _r:'0x70a58...', _s:'0x2ab28...' } ], _to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', _value:'0x1', _chainId:'0x2710', _gasPrice:'0x5d21dba00', _nonce:'0x0'}// Sign a transaction with the roleBasedKeyring which use two private keys for roleTransactionKey and hasher>transaction.sign(roleBasedKeyring, customHasher).then(console.log)ValueTransfer { _type:'TxTypeValueTransfer', _from:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', _gas:'0x7530', _signatures: [ SignatureData { _v:'0x4e44', _r:'0x7a8b6...', _s:'0x17139...' }, SignatureData { _v:'0x4e43', _r:'0x7f978...', _s:'0x1a532...' } ], _to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', _value:'0x1', _chainId:'0x2710', _gasPrice:'0x5d21dba00', _nonce:'0x0'}// Sign a transaction with the roleBasedKeyring which use two private keys for roleTransactionKey, index and hasher>transaction.sign(roleBasedKeyring,1, customHasher).then(console.log)ValueTransfer { _type:'TxTypeValueTransfer', _from:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', _gas:'0x7530', _signatures: [ SignatureData { _v:'0x4e43', _r:'0x7f978...', _s:'0x1a532...' } ], _to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', _value:'0x1', _chainId:'0x2710', _gasPrice:'0x5d21dba00', _nonce:'0x0'}
Signs the transaction as a transaction fee payer and appends feePayerSignatures in the transaction object with the private key(s) in the keyring.
For signing a transaction as a fee payer, use roleFeePayerKey in keyring. If the user has not defined an index, transaction.signAsFeePayer signs the transaction using all the private keys used by the role. If index is defined, the transaction.signAsFeePayer signs the transaction using only one private key at the given index.
If the transaction.feePayer is not defined, the address of the given keyring is set to transaction.feePayer.
If the keyring to be used for signing the transaction was added to caver.wallet, you can use caver.wallet.signAsFeePayer.
NOTE This function works only for "fee-delegated" transactions or "fee-delegated with ratio" transactions.
Parameters
Name
Type
Description
keyring
object | string
index
number
(optional) The index of the private key you want to use. The index must be less than the length of the array of the private keys defined for each role. If an index is not defined, this method will use all the private keys.
hasher
Function
(optional) The hash function to get the hash of the transaction.
Return Value
Promise returning object: The signed transaction.
Type
Description
object
Example
// This example uses the FeeDelegatedValueTransfer transaction.>consttransaction=caver.transaction.feeDelegatedValueTransfer.create({ from:'0x6fddbcb99d31b8755c2b840a367f53eea4b4f45c', to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', value:1, gas:30000,})>constcustomHasher= () => { ... }// Sign a transaction with the address of RoleBasedKeyring which use two private keys for roleFeePayerKey>transaction.signAsFeePayer(roleBasedKeyring).then(console.log)FeeDelegatedValueTransfer { _type:'TxTypeFeeDelegatedValueTransfer', _from:'0x6fddbcb99d31b8755c2b840a367f53eea4b4f45c', _gas:'0x7530', _signatures: [ SignatureData { _v:'0x01', _r:'0x', _s:'0x' } ], _feePayer:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', _feePayerSignatures: [ SignatureData { _v:'0x4e44', _r:'0x7010e...', _s:'0x65d6b...' }, SignatureData { _v:'0x4e43', _r:'0x96ef2...', _s:'0x77f34...' } ], _to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', _value:'0x1', _chainId:'0x2710', _gasPrice:'0x5d21dba00', _nonce:'0x0'}// Sign a transaction with the address of RoleBasedKeyring which use two private keys for roleFeePayerKey and index>transaction.signAsFeePayer(roleBasedKeyring,1).then(console.log)FeeDelegatedValueTransfer { _type:'TxTypeFeeDelegatedValueTransfer', _from:'0x6fddbcb99d31b8755c2b840a367f53eea4b4f45c', _gas:'0x7530', _signatures: [ SignatureData { _v:'0x01', _r:'0x', _s:'0x' } ], _feePayer:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', _feePayerSignatures: [ SignatureData { _v:'0x4e43', _r:'0x96ef2...', _s:'0x77f34...' } ], _to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', _value:'0x1', _chainId:'0x2710', _gasPrice:'0x5d21dba00', _nonce:'0x0'}// Sign a transaction with the address of RoleBasedKeyring which use two private keys for roleFeePayerKey and hasher>transaction.signAsFeePayer(roleBasedKeyring, customHasher).then(console.log)FeeDelegatedValueTransfer { _type:'TxTypeFeeDelegatedValueTransfer', _from:'0x6fddbcb99d31b8755c2b840a367f53eea4b4f45c', _gas:'0x7530', _signatures: [ SignatureData { _v:'0x01', _r:'0x', _s:'0x' } ], _feePayer:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', _feePayerSignatures: [ SignatureData { _v:'0x4e43', _r:'0xe48bf...', _s:'0x1cf36...' }, SignatureData { _v:'0x4e43', _r:'0x82976...', _s:'0x3c5e0...' } ], _to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', _value:'0x1', _chainId:'0x2710', _gasPrice:'0x5d21dba00', _nonce:'0x0'}// Sign a transaction with the address of RoleBasedKeyring which use two private keys for roleFeePayerKey, index and hasher>transaction.signAsFeePayer(roleBasedKeyring,1, customHasher).then(console.log)FeeDelegatedValueTransfer { _type:'TxTypeFeeDelegatedValueTransfer', _from:'0x6fddbcb99d31b8755c2b840a367f53eea4b4f45c', _gas:'0x7530', _signatures: [ SignatureData { _v:'0x01', _r:'0x', _s:'0x' } ], _feePayer:'0xe7e9184c125020af5d34eab7848bab799a1dcba9', _feePayerSignatures: [ SignatureData { _v:'0x4e43', _r:'0x82976...', _s:'0x3c5e0...' } ], _to:'0x3424b91026bdc5ec55df4548e6ebf0f28b60abd7', _value:'0x1', _chainId:'0x2710', _gasPrice:'0x5d21dba00', _nonce:'0x0'}
Collects signs in each RLP-encoded transaction string in the given array, combines them with the transaction instance, and returns a RLP-encoded transaction string which includes all signs. Note that the transaction instance doesn't necessarily be signed in advance. If the transaction is either a type of "fee-delegated" or "fee-delegated with ratio", feePayerSignatures is also merged and included in the output RLP-encoded transaction string.
Parameters
Name
Type
Description
rlpEncodedTxs
Array
An array of signed RLP-encoded transaction strings.
Return Value
Type
Description
string
A RLP-encoded transaction string which includes all signatures (and feePayerSignatures if transaction is a type of either "fee-delgated" or "fee-delegated with ratio").
The senderTxHash is a hash of the transaction except for the fee payer's address and signature, so transactionHash and senderTxHash are the same for basic transactions.
Returns a RLP-encoded transaction string for making the signature of the transaction sender. Note that the returned RLP-encoded transaction string is not added with the signature and rather is used to generate this signature.
For information on how to make a RLP-encoded transaction string to generate the transaction sender's signature for each transaction type, see Klaytn Design - Transactions.
Return Value
Type
Description
string
A RLP-encoded transaction string without any signature attached.
Returns a RLP-encoded transaction string for making the signature of the fee payer. Note that the returned RLP-encoded transaction string is not added with the signature and rather is used to generate this signature.
For information on how to make a RLP-encoded transaction string to generate the fee payer's signature for each transaction type, see Klaytn Design - Transactions.
NOTE This function works only for "fee-delegated" transactions or "fee-delegated with ratio" transactions.
Return Value
Type
Description
string
A RLP-encoded transaction string without any signature attached.
If the gasPrice, nonce, or chainId of the transaction are not defined, this method asks the default values for these optional variables and preset them by sending JSON RPC call to the connected Klaytn Node.
Returns suggested gas price. This function is used to set gasPrice field in the fillTransaction.
Before the Magma hard fork, suggestGasPrice returns the unit price of the network. After the Magma hard fork, suggestGasPrice returns baseFee * 2 which is recommended to use as gasPrice.
NOTEtransaction.suggestGasPrice is supported since caver-js v1.9.0.
Return Value
Promise returning string: The suggested gas price in hexadecimal string.
An instance of . For details of each transaction, refer to .
An instance of . For details of each transaction, refer to .
A private key string ( format is also allowed) or an instance of Keyring (, or ). If a private key string or a is passed as a parameter, the keyring instance is created internally.
An instance of signed . The signature is appended to the transaction.signatures.
A private key string ( format is also allowed) or an instance of Keyring (, or ). If the private key string or is passed as a parameter, the keyring instance is created internally.
An instance of signed . The signature is appended to the transaction.feePayerSignatures.
The signatures to be appended to the transaction. instance or an array containing instances. An array in which each 'v', 'r', and 's' are sequentially defined as string formats or a 2D array containing those arrays can also be taken as parameters.
The feePayerSignatures to be appended to the transaction. instance or an array containing instances. An array in which each 'v', 'r', and 's' are sequentially defined as string formats or a 2D array containing those arrays can also be taken as parameters.