caver.klay.accounts
contains functions to generate Klaytn accounts and sign transactions and data.
create
Copy caver . klay . accounts .create ([entropy])
Generates an account object with private key and public key.
Parameters
Return Value
Object
- The account object with the following structure:
Example
Copy > caver . klay . accounts .create ();
{
address : '0x79FF91738661760AC67b3E951c0B4f1F70F80478' ,
privateKey : '0x{private key}' ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
> caver . klay . accounts .create ( 'entropy' );
{
address : '0x205fffB1025F4af604fEB1d3a22b46C0D2326585' ,
privateKey : '0x{private key}' ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
> caver . klay . accounts .create ( caver . utils .randomHex ( 32 ));
{
address : '0x62Ca8964610A9D447E1a64753a09fC8b3D40b405' ,
privateKey : '0x{private key}' ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
createWithAccountKey
Copy caver . klay . accounts .createWithAccountKey (address , accountKey)
Creates an instance of Account with the given AccountKey. Account is for managing an account's address and AccountKey.
NOTE This is merely a data structure used in caver-js. This method does not create or update an account in the Klaytn network. NOTE caver.klay.accounts.createWithAccountKey
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An Account instance is returned, with the following properties:
Example
Copy // Create an Account with AccountKeyPublic
> caver . klay . accounts .createWithAccountKey ( '0x62ca8964610a9d447e1a64753a09fc8b3d40b405' , '0x{private key}' )
Account {
address : [Getter / Setter] ,
accountKey : [Getter / Setter] ,
privateKey : [Getter / Setter] ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
// Create an Account with AccountKeyMultiSig
> caver.klay.accounts.createWithAccountKey('0x62ca8964610a9d447e1a64753a09fc8b3d40b405', ['0x{private key}', '0x{private key}'])
Account {
address : [Getter / Setter] ,
accountKey : [Getter / Setter] ,
privateKey : [Getter / Setter] ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
// Create an Account with AccountKeyRoleBased
> caver . klay . accounts .createWithAccountKey ( '0x62ca8964610a9d447e1a64753a09fc8b3d40b405' , {
transactionKey : [ '0x{private key}' , '0x{private key}' ] , '0x{private key}' ,
updateKey : [ '0x{private key}' , '0x{private key}' , '0x{private key}' ] ,
feePayerKey : [ '0x{private key}' , '0x{private key}' , '0x{private key}' ]
})
Account {
address : [Getter / Setter] ,
accountKey : [Getter / Setter] ,
privateKey : [Getter / Setter] ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
createWithAccountKeyPublic
Copy caver . klay . accounts .createWithAccountKeyPublic (address , accountKey)
Creates an instance of Account with AccountKeyPublic.
NOTE caver.klay.accounts.createWithAccountKeyPublic
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An Account instance, see caver.klay.accounts.createWithAccountKey .
Example
Copy > caver . klay . accounts .createWithAccountKeyPublic ( '0x62ca8964610a9d447e1a64753a09fc8b3d40b405' , '0x{private key}' )
Account {
address : [Getter / Setter] ,
accountKey : [Getter / Setter] ,
privateKey : [Getter / Setter] ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
createWithAccountKeyMultiSig
Copy caver . klay . accounts .createWithAccountKeyMultiSig (address , accountKey)
Creates an instance of Account with AccountKeyMultiSig.
NOTE caver.klay.accounts.createWithAccountKeyMultiSig
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An Account instance, see caver.klay.accounts.createWithAccountKey .
Example
Copy > caver.klay.accounts.createWithAccountKeyMultiSig('0x62ca8964610a9d447e1a64753a09fc8b3d40b405', ['0x{private key}', '0x{private key}'])
Account {
address : [Getter / Setter] ,
accountKey : [Getter / Setter] ,
privateKey : [Getter / Setter] ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
createWithAccountKeyRoleBased
Copy caver . klay . accounts .createWithAccountKeyRoleBased (address , accountKey)
Creates an instance of Account with AccountKeyRoleBased.
NOTE caver.klay.accounts.createWithAccountKeyRoleBased
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An Account instance, see caver.klay.accounts.createWithAccountKey .
Example
Copy > caver . klay . accounts .createWithAccountKeyRoleBased ( '0x62ca8964610a9d447e1a64753a09fc8b3d40b405' , {
transactionKey : [ '0x{private key}' , '0x{private key}' , '0x{private key}' ] ,
updateKey : [ '0x{private key}' , '0x{private key}' , '0x{private key}' ] ,
feePayerKey : [ '0x{private key}' , '0x{private key}' , '0x{private key}' ]
})
Account {
address : [Getter / Setter] ,
accountKey : [Getter / Setter] ,
privateKey : [Getter / Setter] ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
createAccountKey
Copy caver . klay . accounts .createAccountKey (key)
Creates an instance of AccountKeyPublic
, AccountKeyMultiSig
, or AccountKeyRoleBased
depending on the type of parameter.
AccountKey is a data structure for managing keys in caver-js. Use AccountKeyPublic if you want to use a single private key, AccountKeyMultiSig if you want to use multiple private keys, or AccountKeyRoleBased if you want to use a different key for each role.
NOTE caver.klay.accounts.createAccountKey
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An AccountKeyPublic, AccountKeyMultiSig or AccountKeyRoleBased instance is returned with the following properties:
Example
Copy // Create an AccountKeyPublic
> caver . klay . accounts .createAccountKey ( '0x{private key}' )
AccountKeyPublic {
_key : '0x{private key}'
}
// Create an AccountKeyMultiSig
> caver . klay . accounts .createAccountKey ([ '0x{private key}' , '0x{private key}' ])
AccountKeyMultiSig {
_keys : [
'0x{private key}' ,
'0x{private key}'
]
}
// Create an AccountKeyRoleBased
> caver . klay . accounts .createAccountKey ({
transactionKey : '0x{private key}' ,
updateKey : [ '0x{private key}' , '0x{private key}' ] ,
feePayerKey : '0x{private key}'
})
AccountKeyRoleBased {
_transactionKey :
AccountKeyPublic {
_key : '0x{private key}'
} ,
_updateKey :
AccountKeyMultiSig {
_keys : [
'0x{private key}' ,
'0x{private key}'
]
} ,
_feePayerKey :
AccountKeyPublic {
_key : '0x{private key}'
}
}
createAccountKeyPublic
Copy caver . klay . accounts .createAccountKeyPublic (key)
Creates an instance of AccountKeyPublic
with the given private key string.
NOTE caver.klay.accounts.createAccountKeyPublic
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An AccountKeyPublic instance, see caver.klay.accounts.createAccountKey .
Example
Copy > caver . klay . accounts .createAccountKeyPublic ( '0x{private key}' )
AccountKeyPublic {
_key : '0x{private key}'
}
createAccountKeyMultiSig
Copy caver . klay . accounts .createAccountKeyMultiSig (keys)
Creates an instance of AccountKeyMultiSig
with the given multiple private keys.
NOTE caver.klay.accounts.createAccountKeyMultiSig
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An AccountKeyMultiSig instance, see caver.klay.accounts.createAccountKey .
Example
Copy > caver . klay . accounts .createAccountKeyMultiSig ([ '0x{private key}' , '0x{private key}' ])
AccountKeyMultiSig {
_keys : [
'0x{private key}' ,
'0x{private key}'
]
}
createAccountKeyRoleBased
Copy caver . klay . accounts .createAccountKeyRoleBased (keyObject)
Creates an instance of AccountKeyRoleBased
with the given keys associated with each role.
NOTE caver.klay.accounts.createAccountKeyRoleBased
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An AccountKeyRoleBased instance, see caver.klay.accounts.createAccountKey .
Example
Copy > caver . klay . accounts .createAccountKeyRoleBased ({
transactionKey : '0x{private key}' ,
updateKey : [ '0x{private key}' , '0x{private key}' ] ,
feePayerKey : '0x{private key}'
})
AccountKeyRoleBased {
_transactionKey :
AccountKeyPublic {
_key : '0x{private key}'
} ,
_updateKey :
AccountKeyMultiSig {
_keys : [
'0x{private key}' ,
'0x{private key}'
]
} ,
_feePayerKey :
AccountKeyPublic {
_key : '0x{private key}'
}
}
accountKeyToPublicKey
Copy caver . klay . accounts .accountKeyToPublicKey (accountKey)
This function converts the private key of AccountKey to public key.
NOTE caver.klay.accounts.accountKeyToPublicKey
is supported since caver-js v1.2.0 .
Parameters
Return Value
Example
Copy // Convert a private key string
> caver . klay . accounts .accountKeyToPublicKey ( '0x{private key}' )
'0x67f20d1198abcdc036a4d8f3ea0cf837527716c90f71d0b0410dfe3e1b405eded9ea818eedd5e8ad79658b2cdf4862ab0956a6f7fd0a4886afe6110b2e9803a4'
// Convert an array of private key strings
> caver . klay . accounts .accountKeyToPublicKey ([ '0x{private key}' , '0x{private key}' ])
[
'0x67f20d1198abcdc036a4d8f3ea0cf837527716c90f71d0b0410dfe3e1b405eded9ea818eedd5e8ad79658b2cdf4862ab0956a6f7fd0a4886afe6110b2e9803a4',
'0x7c5415f99628618b3fe78e14606c83a22488769b3361e3758c7c98a204a23b615cf07af65490895d70a7b7e7e885fc2f597d65ea69ed586c7ae7cb0241656036'
]
// Convert a role-based key
> caver.klay.accounts.accountKeyToPublicKey({transactionKey: ['0x{private key}', '0x{private key}'], updateKey: '0x{private key}', feePayerKey: ['0x{private key}', '0x{private key}']})
{
transactionKey : [
'0x67f20d1198abcdc036a4d8f3ea0cf837527716c90f71d0b0410dfe3e1b405eded9ea818eedd5e8ad79658b2cdf4862ab0956a6f7fd0a4886afe6110b2e9803a4',
'0x7c5415f99628618b3fe78e14606c83a22488769b3361e3758c7c98a204a23b615cf07af65490895d70a7b7e7e885fc2f597d65ea69ed586c7ae7cb0241656036'
] ,
updateKey: '0x21aa42e0232e6c7607a0028bcbd690400b92574c44b17af8b036f3f4f01b0586f90578976a040debf6aecef4a5d00b5315b8c82e999ed8e5fbacd5fcbee82080',
feePayerKey : [
'0xb82bb74e902b1fa3594c7cc8bd33a727eb1c85a9bfc991327a0215fc413eafe0b3723cc7f3c6e79981b409e82b8bf7033fed2d2878c26502bea64f84d592b167',
'0x39acd887f32ccecd1b13c890854d2dfd0016f0be477155d81a848e971ff59412b0e4c0b5bfc1fd548b971f98cd9ef19367309d0475033fda3c8028ba9df27734'
]
}
privateKeyToAccount
Copy caver . klay . accounts .privateKeyToAccount (privateKey)
Creates an account object from a private key.
Parameters
Return Value
Object
- The account object
Example
Copy > caver . klay . accounts .privateKeyToAccount ( '0x{private key}' );
{
address : '0x62ca8964610a9d447e1a64753a09fc8b3d40b405' ,
privateKey : '0x{private key}' ,
signTransaction : [Function: signTransaction] ,
sign : [Function: sign] ,
encrypt : [Function: encrypt] ,
getKlaytnWalletKey : [Function: getKlaytnWalletKey]
}
privateKeyToPublicKey
Copy caver . klay . accounts .privateKeyToPublicKey (privateKey)
Gets public key from a given private key
Parameters
Return Value
String
- The public key (64 bytes)
Example
Copy > caver . klay . accounts .privateKeyToPublicKey ( '0x{private key}' )
'0xbb1846722a4c27e71196e1a44611ee7174276a6c51c4830fb810cac64b0725f217cb8783625a809d1303adeeec2cf036ab74098a77a6b7f1003486e173b29aa7'
createAccountForUpdate
Copy caver . klay . accounts .createAccountForUpdate (address , accountKey , options)
Creates an instance of AccountForUpdate
. AccountForUpdate contains the address of the account and the new public key to update.
AccountForUpdate
can be used in the account update transaction object (ACCOUNT_UPDATE
, FEE_DELEGATED_ACCOUNT_UPDATE
, or FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO
) as a key
. If you want to know how to use AccountForUpdate
in the transaction, see Account update with AccountForUpdate .
The accountKey parameter of caver.klay.accounts.createAccountForUpdate must be a private key.
You can create an AccountForUpdate instance using the public key with caver.klay.accounts.createAccountForUpdateWithPublicKey .
You can also use caver.klay.accounts.createAccountForUpdateWithLegacyKey to create an AccountForUpdate instance for updating to AccountKeyLegacy , and caver.klay.accounts.createAccountForUpdateWithFailKey to create an AccountForUpdate instance for updating to AccountKeyFail .
NOTE caver.klay.accounts.createAccountForUpdate
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An AccountForUpdate instance is returned, with the following properties:
Example
Copy // Create AccountForUpdate for AccountKeyPublic
> caver . klay . accounts .createAccountForUpdate ( '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' , '0x{private key}' )
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : {
publicKey: '0x24c32ee4f908ceed89e7501de2980fcb1d2add69080d3921f86c49de863eb2d507e24d9aaf91328b7f7cef2a94b538cb33b3f8cdd64925855ce0a4bf6e11f3db'
}
}
// Create AccountForUpdate for AccountKeyMultiSig with an options object
> caver.klay.accounts.createAccountForUpdate('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', ['0x{private key}', '0x{private key}'], { threshold: 2, weight: [1,1] })
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : {
multisig : {
threshold : 2 ,
keys : [
{
weight : 1 ,
publicKey: '0xc89f551ce9c569cf978f4f64833e447f177a83eda4f1883d770360ab35002dbdeb2d502cd33217238add013ea1c4ff5055ceda46473569824e336d0d64e9eeb2'
} ,
{
weight : 1 ,
publicKey: '0xab0837fa3d61cf33dc4f3af4aca692d8c939566e1abbca0036fa3b29cd55b38a387f73baf59510d96680062bd129dd2bb8dcbb5ea5ed16c881f83a3251f73600'
}
]
}
}
}
// Create AccountForUpdate for AccountKeyRoleBased with an options object
> caver.klay.accounts.createAccountForUpdate('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', { transactionKey: '0x{private key}', updateKey: ['0x{private key}', '0x{private key}'], feePayerKey: '0x{private key}' }, { updateKey: { threshold: 2, weight: [1,1] } })
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : {
roleTransactionKey : {
publicKey: '0x2b4a1d4ca1ee828f17e8c4c0ac0c0c46cf08f4b27fafc01e4b3481a4fe0891cacf315ed10b1df85bfd6797ea6c5ebafac437a7564eff355b11ad1e3d6e6c43a7'
} ,
roleAccountUpdateKey : {
multisig : {
threshold : 2 ,
keys : [
{
weight : 1 ,
publicKey: '0x26156615c8e503d96cd332a2fba6aab88b6156b983c89f586bcfc0443c0a7f2372d892d73c66d30f726f8269c75920a082eb2e57f6662d855389bb922ee263f3'
} ,
{
weight : 1 ,
publicKey: '0xafc139d2bcace02fa3d4b12926f976cf672f35a6ea2bc0f7e2e6d2ada0dd28f672acb8dcaedc694d6134a2f6c4aae472c9d67d30f760e16e742e01758c4daf83'
}
]
}
} ,
roleFeePayerKey : {
publicKey: '0xe55d39e147a0d5542d4bb965aeaa01e918c81a332ce47e0d3173179fe5b68c8c9264bec516d50bea0a7da7c3d8f98e124761a9b27434221d138ff8e22d932a0a'
}
}
}
// Create AccountForUpdate for AccountKeyRoleBased with legacy key or fail key
// When updating the key used for a specific role in AccountKeyRoleBased to AccountKeyLegacy or AccountKeyFailKey, define the role to update as follows.
> caver.klay.accounts.createAccountForUpdate('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', { transactionKey: 'legacyKey', updateKey: 'failKey' })
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : {
roleTransactionKey : { legacyKey : true } ,
roleAccountUpdateKey : { failKey : true }
}
}
createAccountForUpdateWithPublicKey
Copy caver . klay . accounts .createAccountForUpdateWithPublicKey (address , keyForUpdate , options)
Creates an instance of AccountForUpdate
with the public key of the new key to update.
AccountForUpdate
can be used in the account update transaction object (ACCOUNT_UPDATE
, FEE_DELEGATED_ACCOUNT_UPDATE
, or FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO
) as a key
. If you want to know how to use AccountForUpdate
in the transaction, see Account update with AccountForUpdate .
NOTE caver.klay.accounts.createAccountForUpdateWithPublicKey
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An AccountForUpdate instance, see caver.klay.accounts.createAccountForUpdate .
Example
Copy // Create AccountForUpdate for AccountKeyPublic
> caver.klay.accounts.createAccountForUpdateWithPublicKey('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', '0x24c32ee4f908ceed89e7501de2980fcb1d2add69080d3921f86c49de863eb2d507e24d9aaf91328b7f7cef2a94b538cb33b3f8cdd64925855ce0a4bf6e11f3db')
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : {
publicKey: '0x24c32ee4f908ceed89e7501de2980fcb1d2add69080d3921f86c49de863eb2d507e24d9aaf91328b7f7cef2a94b538cb33b3f8cdd64925855ce0a4bf6e11f3db'
}
}
// Create AccountForUpdate for AccountKeyMultiSig with an options object
> caver.klay.accounts.createAccountForUpdateWithPublicKey('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', ['0xc89f551ce9c569cf978f4f64833e447f177a83eda4f1883d770360ab35002dbdeb2d502cd33217238add013ea1c4ff5055ceda46473569824e336d0d64e9eeb2', '0xab0837fa3d61cf33dc4f3af4aca692d8c939566e1abbca0036fa3b29cd55b38a387f73baf59510d96680062bd129dd2bb8dcbb5ea5ed16c881f83a3251f73600'], { threshold: 2, weight: [1,1] })
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : {
multisig : {
threshold : 2 ,
keys : [
{
weight : 1 ,
publicKey: '0xc89f551ce9c569cf978f4f64833e447f177a83eda4f1883d770360ab35002dbdeb2d502cd33217238add013ea1c4ff5055ceda46473569824e336d0d64e9eeb2'
} ,
{
weight : 1 ,
publicKey: '0xab0837fa3d61cf33dc4f3af4aca692d8c939566e1abbca0036fa3b29cd55b38a387f73baf59510d96680062bd129dd2bb8dcbb5ea5ed16c881f83a3251f73600'
}
]
}
}
}
// Create AccountForUpdate for AccountKeyRoleBased with an options object
> caver.klay.accounts.createAccountForUpdateWithPublicKey('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', { transactionKey: '0x2b4a1d4ca1ee828f17e8c4c0ac0c0c46cf08f4b27fafc01e4b3481a4fe0891cacf315ed10b1df85bfd6797ea6c5ebafac437a7564eff355b11ad1e3d6e6c43a7', updateKey: ['0x26156615c8e503d96cd332a2fba6aab88b6156b983c89f586bcfc0443c0a7f2372d892d73c66d30f726f8269c75920a082eb2e57f6662d855389bb922ee263f3', '0xafc139d2bcace02fa3d4b12926f976cf672f35a6ea2bc0f7e2e6d2ada0dd28f672acb8dcaedc694d6134a2f6c4aae472c9d67d30f760e16e742e01758c4daf83'], feePayerKey: '0xe55d39e147a0d5542d4bb965aeaa01e918c81a332ce47e0d3173179fe5b68c8c9264bec516d50bea0a7da7c3d8f98e124761a9b27434221d138ff8e22d932a0a' }, { updateKey: { threshold: 2, weight: [1,1] } })
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : {
roleTransactionKey : {
publicKey: '0x2b4a1d4ca1ee828f17e8c4c0ac0c0c46cf08f4b27fafc01e4b3481a4fe0891cacf315ed10b1df85bfd6797ea6c5ebafac437a7564eff355b11ad1e3d6e6c43a7'
} ,
roleAccountUpdateKey : {
multisig : {
threshold : 2 ,
keys : [
{
weight : 1 ,
publicKey: '0x26156615c8e503d96cd332a2fba6aab88b6156b983c89f586bcfc0443c0a7f2372d892d73c66d30f726f8269c75920a082eb2e57f6662d855389bb922ee263f3'
} ,
{
weight : 1 ,
publicKey: '0xafc139d2bcace02fa3d4b12926f976cf672f35a6ea2bc0f7e2e6d2ada0dd28f672acb8dcaedc694d6134a2f6c4aae472c9d67d30f760e16e742e01758c4daf83'
}
]
}
} ,
roleFeePayerKey : {
publicKey: '0xe55d39e147a0d5542d4bb965aeaa01e918c81a332ce47e0d3173179fe5b68c8c9264bec516d50bea0a7da7c3d8f98e124761a9b27434221d138ff8e22d932a0a'
}
}
}
createAccountForUpdateWithLegacyKey
Copy caver . klay . accounts .createAccountForUpdateWithLegacyKey (address)
Creates an AccountForUpdate instance to update the account's key with AccountKeyLegacy . Make sure you have a private key that matches your account address before updating to AccountKeyLegacy.
AccountForUpdate
can be used in the account update transaction object (ACCOUNT_UPDATE
, FEE_DELEGATED_ACCOUNT_UPDATE
, or FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO
) as a key
. If you want to know how to use AccountForUpdate
in the transaction, see Account update with AccountForUpdate .
NOTE caver.klay.accounts.createAccountForUpdateWithLegacyKey
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An AccountForUpdate instance, see caver.klay.accounts.createAccountForUpdate .
Example
Copy // Create AccountForUpdate for AccountKeyLegacy
> caver . klay . accounts .createAccountForUpdateWithLegacyKey ( '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' )
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : { legacyKey : true }
}
createAccountForUpdateWithFailKey
Copy caver . klay . accounts .createAccountForUpdateWithFailKey (address)
Creates an AccountForUpdate instance to update the account's key with AccountKeyFail . Transactions sent by an account with AccountKeyFail always fail in the validation process.
AccountForUpdate
can be used in the account update transaction object (ACCOUNT_UPDATE
, FEE_DELEGATED_ACCOUNT_UPDATE
, or FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO
) as a key
. If you want to know how to use AccountForUpdate
in the transaction, see Account update with AccountForUpdate .
NOTE caver.klay.accounts.createAccountForUpdateWithFailKey
is supported since caver-js v1.2.0 .
Parameters
Return Value
Object
- An AccountForUpdate instance, see caver.klay.accounts.createAccountForUpdate .
Example
Copy // Create AccountForUpdate for AccountKeyFail
> caver . klay . accounts .createAccountForUpdateWithFailKey ( '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' )
AccountForUpdate {
address : '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef' ,
keyForUpdate : { failKey : true }
}
signTransaction
Copy caver . klay . accounts .signTransaction (tx [ , privateKey] [ , callback])
Signs a Klaytn transaction with a given private key.
Since caver-js v1.2.0 , this method takes an RLP-encoded transaction as an input as well as a plain transaction object. See caver.klay.sendTransaction for the various types of transaction object. This method basically signs as a sender. If you want to sign as a fee-payer, we recommend to use caver.klay.accounts.feePayerSignTransaction . But, fee-payers can still sign using this method by passing an object, {senderRawTransaction: rawTransaction, feePayer: feePayerAddress}
, as tx
. senderRawTransaction must be a FEEDELEGATED type transaction.
Also since caver-js v1.2.0 , signTransaction keeps the existing signatures/feePayerSignatures in the input transaction and appends the signature(s) of the signer to it.
See Sending a Transaction with multiple signer for how to combine multiple users' signatures into a single rawTransaction.
Parameters
NOTE The privateKey
parameter has been changed to an optional parameter
since caver-js v1.2.0-rc.3 . Also, privateKey parameter supports array
of private key strings since caver-js v1.2.0-rc.3 . If you do not pass a privateKey, either from
or feePayer
account must exist in caver.klay.accounts.wallet to sign the transaction. If an array of privateKeys are provided, the transaction is signed with all the keys inside the array.
NOTE The tx
parameter accepts an RLP-encoded transaction since caver-js v1.2.0 .
Return Value
Promise
returning Object
: The RLP encoded signed transaction. The object properties are as follows:
NOTE The signatures and feePayerSignatures properties have been added since caver-js v1.2.0-rc.3 . If the sender signs the transaction, the signature array is returned in signatures
. If the fee payer signs, the signature array is returned in feePayerSignatures
.
NOTE The txHash
and senderTxHash
in the result object may not be the final values. If another sender signature is added, txHash and senderTxHash will change. If a fee-payer signature is added, txHash will change.
Example
Copy // sign legacy transaction with private key string
> caver . klay . accounts .signTransaction ({
from : '0x72519cf34d9aa14629e7ad0cad5d55a3bb398364' ,
to : '0xa9d2cc2bb853163b6eadfb6f962d72f7e00bc2e6' ,
value : caver . utils .toPeb ( 1 , 'KLAY' ) ,
gas : 900000 ,
} , '0x{private key}' ) .then ( console .log)
{
messageHash : '0xc4f3d98b901489c2c6e7bb9a5ddb4bc807b0251c6eac671356f01b66b749141f' ,
v : '0x4e44' ,
r : '0x2ef0d0c59ad302bcd73823879f6e1550e4bc6e6c38be69724c71ad6e09edde82' ,
s : '0x602b1064ff5a6ba4718a493e50cf9e58ca9a9addf6ed4bbbc89fbc040a3c107e' ,
rawTransaction: '0xf86f808505d21dba00830dbba094a9d2cc2bb853163b6eadfb6f962d72f7e00bc2e6880de0b6b3a764000080824e44a02ef0d0c59ad302bcd73823879f6e1550e4bc6e6c38be69724c71ad6e09edde82a0602b1064ff5a6ba4718a493e50cf9e58ca9a9addf6ed4bbbc89fbc040a3c107e',
txHash : '0x87e84bd1d9c512cfabe5ebce10597dd40bc6fe828a10e460b7c01075c76b71a5' ,
senderTxHash : '0x87e84bd1d9c512cfabe5ebce10597dd40bc6fe828a10e460b7c01075c76b71a5' ,
signatures : [
'0x4e44' ,
'0x2ef0d0c59ad302bcd73823879f6e1550e4bc6e6c38be69724c71ad6e09edde82' ,
'0x602b1064ff5a6ba4718a493e50cf9e58ca9a9addf6ed4bbbc89fbc040a3c107e'
]
}
// signTransaction with private key string
> caver . klay . accounts .signTransaction ({
type : 'VALUE_TRANSFER' ,
from : '0x72519cf34d9aa14629e7ad0cad5d55a3bb398364' ,
to : '0xa9d2cc2bb853163b6eadfb6f962d72f7e00bc2e6' ,
value : caver . utils .toPeb ( 1 , 'KLAY' ) ,
gas : 900000 ,
} , '0x{private key}' ) .then ( console .log)
{
messageHash : '0xf003c68467424eed29b55d3d107167b207adb6bba66f8b9b73b7df824beb144c' ,
v : '0x4e43' ,
r : '0xea3bba902857eb58bed048fd1b94c5d99881e4356221d6e1e6e873401abf3a5c' ,
s : '0x5e5d250db3c31a193dbe5289935755461ad78e41c1f60d3ca80ae0a97d2a9924' ,
rawTransaction: '0x08f887808505d21dba00830dbba094a9d2cc2bb853163b6eadfb6f962d72f7e00bc2e6880de0b6b3a76400009472519cf34d9aa14629e7ad0cad5d55a3bb398364f847f845824e43a0ea3bba902857eb58bed048fd1b94c5d99881e4356221d6e1e6e873401abf3a5ca05e5d250db3c31a193dbe5289935755461ad78e41c1f60d3ca80ae0a97d2a9924',
txHash : '0x1b5759e8060ac01ba94437bd115ecf471ba05e144f4874dd5b82a8379aa98a63' ,
senderTxHash : '0x1b5759e8060ac01ba94437bd115ecf471ba05e144f4874dd5b82a8379aa98a63' ,
signatures : [
[
'0x4e43' ,
'0xea3bba902857eb58bed048fd1b94c5d99881e4356221d6e1e6e873401abf3a5c' ,
'0x5e5d250db3c31a193dbe5289935755461ad78e41c1f60d3ca80ae0a97d2a9924'
]
]
}
// signTransaction without privateKey parameter
> caver . klay . accounts .signTransaction ({
type : 'VALUE_TRANSFER' ,
from : '0x72519cf34d9aa14629e7ad0cad5d55a3bb398364' ,
to : '0xa9d2cc2bb853163b6eadfb6f962d72f7e00bc2e6' ,
value : caver . utils .toPeb ( 1 , 'KLAY' ) ,
gas : 900000 ,
}) .then ( console .log)
{
messageHash : '0xf003c68467424eed29b55d3d107167b207adb6bba66f8b9b73b7df824beb144c' ,
v : '0x4e43' ,
r : '0xea3bba902857eb58bed048fd1b94c5d99881e4356221d6e1e6e873401abf3a5c' ,
s : '0x5e5d250db3c31a193dbe5289935755461ad78e41c1f60d3ca80ae0a97d2a9924' ,
rawTransaction: '0x08f887808505d21dba00830dbba094a9d2cc2bb853163b6eadfb6f962d72f7e00bc2e6880de0b6b3a76400009472519cf34d9aa14629e7ad0cad5d55a3bb398364f847f845824e43a0ea3bba902857eb58bed048fd1b94c5d99881e4356221d6e1e6e873401abf3a5ca05e5d250db3c31a193dbe5289935755461ad78e41c1f60d3ca80ae0a97d2a9924',
txHash : '0x1b5759e8060ac01ba94437bd115ecf471ba05e144f4874dd5b82a8379aa98a63' ,
senderTxHash : '0x1b5759e8060ac01ba94437bd115ecf471ba05e144f4874dd5b82a8379aa98a63' ,
signatures : [
[
'0x4e43' ,
'0xea3bba902857eb58bed048fd1b94c5d99881e4356221d6e1e6e873401abf3a5c' ,
'0x5e5d250db3c31a193dbe5289935755461ad78e41c1f60d3ca80ae0a97d2a9924'
]
]
}
// signTransaction with array of private keys
> caver . klay . accounts .signTransaction ({
type : 'VALUE_TRANSFER' ,
from : '0x72519cf34d9aa14629e7ad0cad5d55a3bb398364' ,
to : '0xa9d2cc2bb853163b6eadfb6f962d72f7e00bc2e6' ,
value : caver . utils .toPeb ( 1 , 'KLAY' ) ,
gas : 900000 ,
} , [ '0x{private key}' , '0x{private key}' ]) .then ( console .log)
{
messageHash : '0xf003c68467424eed29b55d3d107167b207adb6bba66f8b9b73b7df824beb144c' ,
v : '0x4e44' ,
r : '0xf9e93c6dc3227a4cde633dc7a9b3c5e81ceb1879bfcf138d6205b2d49cdef60b' ,
s : '0x0787d1a42c75d6d708ddb7552c6470ad15e58da6259cdf48e508f577187fad20' ,
rawTransaction: '0x08f8ce808505d21dba00830dbba094a9d2cc2bb853163b6eadfb6f962d72f7e00bc2e6880de0b6b3a76400009472519cf34d9aa14629e7ad0cad5d55a3bb398364f88ef845824e44a0f9e93c6dc3227a4cde633dc7a9b3c5e81ceb1879bfcf138d6205b2d49cdef60ba00787d1a42c75d6d708ddb7552c6470ad15e58da6259cdf48e508f577187fad20f845824e43a0ea3bba902857eb58bed048fd1b94c5d99881e4356221d6e1e6e873401abf3a5ca05e5d250db3c31a193dbe5289935755461ad78e41c1f60d3ca80ae0a97d2a9924',
txHash : '0x1dfac8cb1ab9c25de93758652f3cded2537355e2207c45ba39442b7cb700e8fd' ,
senderTxHash : '0x1dfac8cb1ab9c25de93758652f3cded2537355e2207c45ba39442b7cb700e8fd' ,
signatures : [
[
'0x4e44' ,
'0xf9e93c6dc3227a4cde633dc7a9b3c5e81ceb1879bfcf138d6205b2d49cdef60b' ,
'0x0787d1a42c75d6d708ddb7552c6470ad15e58da6259cdf48e508f577187fad20'
] ,
[
'0x4e43' ,
'0xea3bba902857eb58bed048fd1b94c5d99881e4356221d6e1e6e873401abf3a5c' ,
'0x5e5d250db3c31a193dbe5289935755461ad78e41c1f60d3ca80ae0a97d2a9924'
]
]
}
// signTransaction with fee payer's private key
> caver . klay . accounts .signTransaction ({
senderRawTransaction: '0x09f886819a8505d21dba00830dbba094d05c5926b0a2f31aadcc9a9cbd3868a50104d834019476d1cc1cdb081de8627cab2c074f02ebc7bce0d0f847f845820fe9a0c5ea5b57f460bbc76101bafa2ed16228af0c0094d31a8a799e430278b4360724a0240afd7cf426e6aababdc59a3935b97aac4e059b59ba85ccedc75c95168abcfb80c4c3018080',
feePayer : '0x6e75945404daa4130a338af01199244b1eae2a0b'
} , '0x{private key}' ) .then ( console .log)
{
messageHash : '0xec121b6f7e2925166bcb1e6f14fd0b078f1168b6feca9340db7bd31998d14043' ,
v : '0x4e44' ,
r : '0xf68d2c65563baee7a76d5f75aaadbfecf4ae3f55b349013f740159edd38465d9' ,
s : '0x5146c0bbe998a7ba6e7c8f5aef7eb5fea0b4b7429713d65e38b2435f6a575300' ,
rawTransaction: '0x09f8de819a8505d21dba00830dbba094d05c5926b0a2f31aadcc9a9cbd3868a50104d834019476d1cc1cdb081de8627cab2c074f02ebc7bce0d0f847f845820fe9a0c5ea5b57f460bbc76101bafa2ed16228af0c0094d31a8a799e430278b4360724a0240afd7cf426e6aababdc59a3935b97aac4e059b59ba85ccedc75c95168abcfb946e75945404daa4130a338af01199244b1eae2a0bf847f845824e44a0f68d2c65563baee7a76d5f75aaadbfecf4ae3f55b349013f740159edd38465d9a05146c0bbe998a7ba6e7c8f5aef7eb5fea0b4b7429713d65e38b2435f6a575300',
txHash : '0xf31ab04d9ccdb93262a4349afabd68326db0d61452c06259ed8ea91bc09ca295' ,
senderTxHash : '0x1b7c0f2fc7548056e90d9690e8c397acf99eb38e622ac91ee22c2085065f8a55' ,
feePayerSignatures : [
[
'0x4e44' ,
'0xf68d2c65563baee7a76d5f75aaadbfecf4ae3f55b349013f740159edd38465d9' ,
'0x5146c0bbe998a7ba6e7c8f5aef7eb5fea0b4b7429713d65e38b2435f6a575300'
]
]
}
// signTransaction without fee payer's private key
> caver . klay . accounts .signTransaction ({
senderRawTransaction: '0x09f886819a8505d21dba00830dbba094d05c5926b0a2f31aadcc9a9cbd3868a50104d834019476d1cc1cdb081de8627cab2c074f02ebc7bce0d0f847f845820fe9a0c5ea5b57f460bbc76101bafa2ed16228af0c0094d31a8a799e430278b4360724a0240afd7cf426e6aababdc59a3935b97aac4e059b59ba85ccedc75c95168abcfb80c4c3018080',
feePayer : '0x6e75945404daa4130a338af01199244b1eae2a0b'
}) .then ( console .log)
{
messageHash : '0xec121b6f7e2925166bcb1e6f14fd0b078f1168b6feca9340db7bd31998d14043' ,
v : '0x4e44' ,
r : '0xf68d2c65563baee7a76d5f75aaadbfecf4ae3f55b349013f740159edd38465d9' ,
s : '0x5146c0bbe998a7ba6e7c8f5aef7eb5fea0b4b7429713d65e38b2435f6a575300' ,
rawTransaction: '0x09f8de819a8505d21dba00830dbba094d05c5926b0a2f31aadcc9a9cbd3868a50104d834019476d1cc1cdb081de8627cab2c074f02ebc7bce0d0f847f845820fe9a0c5ea5b57f460bbc76101bafa2ed16228af0c0094d31a8a799e430278b4360724a0240afd7cf426e6aababdc59a3935b97aac4e059b59ba85ccedc75c95168abcfb946e75945404daa4130a338af01199244b1eae2a0bf847f845824e44a0f68d2c65563baee7a76d5f75aaadbfecf4ae3f55b349013f740159edd38465d9a05146c0bbe998a7ba6e7c8f5aef7eb5fea0b4b7429713d65e38b2435f6a575300',
txHash : '0xf31ab04d9ccdb93262a4349afabd68326db0d61452c06259ed8ea91bc09ca295' ,
senderTxHash : '0x1b7c0f2fc7548056e90d9690e8c397acf99eb38e622ac91ee22c2085065f8a55' ,
feePayerSignatures : [
[
'0x4e44' ,
'0xf68d2c65563baee7a76d5f75aaadbfecf4ae3f55b349013f740159edd38465d9' ,
'0x5146c0bbe998a7ba6e7c8f5aef7eb5fea0b4b7429713d65e38b2435f6a575300'
]
]
}
signTransactionWithHash
Copy caver . klay . accounts .signTransactionWithHash (txHash , privateKeys [ , chainId] [ , callback])
Signs a Klaytn transaction with the given transaction hash and private key.
NOTE caver.klay.accounts.signTransactionWithHash
is supported since caver-js v1.3.2-rc.2 .
Parameters
Return Value
Promise
returning Array
: An array of signatures
Each signature object in the array has the following values:
Example
Copy // sign transaction with single private key and chain id
> caver.klay.accounts.signTransactionWithHash('0x583d887614e1ce674c05fcd050a661f0631c23ed1f95fa43fefcc25e6383bca1', '0x{priavte key}', '0x3e9').then(console.log)
[
{
V : '0x07f5' ,
R : '0x66eb2dbb90295b7541de72f2d34002bac3f00a94501453b310b25a0da62446a5' ,
S : '0x1c7c3aefabc042b055489f5b899df55439fe1851858d61e8eb6c4b44be35c227'
}
]
// sign transaction with single private key
> caver.klay.accounts.signTransactionWithHash('0x583d887614e1ce674c05fcd050a661f0631c23ed1f95fa43fefcc25e6383bca1', '0x{priavte key}').then(console.log)
[
{
V : '0x07f5' ,
R : '0x66eb2dbb90295b7541de72f2d34002bac3f00a94501453b310b25a0da62446a5' ,
S : '0x1c7c3aefabc042b055489f5b899df55439fe1851858d61e8eb6c4b44be35c227'
}
]
// sign transaction with mulitple private keys and chain id
> caver.klay.accounts.signTransactionWithHash('0x583d887614e1ce674c05fcd050a661f0631c23ed1f95fa43fefcc25e6383bca1', ['0x{priavte key}', '0x{priavte key}'], '0x3e9').then(console.log)
[
{
V : '0x07f5' ,
R : '0x66eb2dbb90295b7541de72f2d34002bac3f00a94501453b310b25a0da62446a5' ,
S : '0x1c7c3aefabc042b055489f5b899df55439fe1851858d61e8eb6c4b44be35c227'
} ,
{
V : '0x07f6' ,
R : '0x946ce0288ee98b56160fadae8ec38e36828cf764f897f68f93157a2dc286d4aa' ,
S : '0x049ab3f5e91cec831124bdb10782e38de3a02a803ca2dd61a50da81cf5c4f8ef'
}
]
// sign transaction with mulitple private keys
> caver.klay.accounts.signTransactionWithHash('0x583d887614e1ce674c05fcd050a661f0631c23ed1f95fa43fefcc25e6383bca1', ['0x{priavte key}', '0x{priavte key}']).then(console.log)
[
{
V : '0x07f5' ,
R : '0x66eb2dbb90295b7541de72f2d34002bac3f00a94501453b310b25a0da62446a5' ,
S : '0x1c7c3aefabc042b055489f5b899df55439fe1851858d61e8eb6c4b44be35c227'
} ,
{
V : '0x07f6' ,
R : '0x946ce0288ee98b56160fadae8ec38e36828cf764f897f68f93157a2dc286d4aa' ,
S : '0x049ab3f5e91cec831124bdb10782e38de3a02a803ca2dd61a50da81cf5c4f8ef'
}
]
feePayerSignTransaction
Copy caver . klay . accounts .feePayerSignTransaction (tx , feePayerAddress [ , privateKey] [ , callback])
Signs a transaction as a fee payer.
Fee payers can sign on a FEEDELEGATED transaction. A transaction object or an RLP-encoded transaction can be passed as an argument.
If privateKay is not given, feePayerKey of the fee payer's account inside the caver-js in-memory wallet is used.
feePayerSignTransaction keeps the existing signatures/feePayerSignatures in the input transaction and appends the fee-payer signature(s) to it.
See Sending a Transaction with multiple signer for how to combine multiple users' signatures into a single rawTransaction.
NOTE caver.klay.accounts.feePayerSignTransaction
is supported since caver-js v1.2.0 .
Parameters
Return Value
Promise
returning Object
: The RLP encoded signed transaction. The object properties are as follows:
NOTE The txHash
and senderTxHash
in the result object may not be the final values. If another sender signature is added, txHash and senderTxHash will change. If a fee-payer signature is added, txHash will change.
Example
Copy // feePayerSignTransaction with transaction object
> caver . klay . accounts .feePayerSignTransaction ({
type : 'FEE_DELEGATED_VALUE_TRANSFER' ,
from : '0x9230c09295dd8b9c02b6ae138ffe3133b58b25c1' ,
to : '0x715139255d5e300b431722ec9666ac2350cbf523' ,
value : 1 ,
gas : 900000 ,
}, '0x2e4351e950d8d43444ac789cc9e87ba35340ad52', '0x90300d268bb2bad69f5b24e2ac1409a9416cc814254b356ce96b3f75c4364716').then(console.log)
{
messageHash : '0x4cc0a423199d374d412cd3f92777a8f82bfc47b701d0df1f82b0d932802c955e' ,
v : '0x4e44' ,
r : '0x2a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730' ,
s : '0x4fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7' ,
rawTransaction: '0x09f899808505d21dba00830dbba094715139255d5e300b431722ec9666ac2350cbf52301949230c09295dd8b9c02b6ae138ffe3133b58b25c1c4c3018080942e4351e950d8d43444ac789cc9e87ba35340ad52f847f845824e44a02a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730a04fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7',
txHash : '0xead2cdf961090d014044de7ac78e3f9522b430edcd0ea4d3299811464ed636ea' ,
senderTxHash : '0x5e0bfce81dca4d6ec5ebeaff8a55fe5dd6d77e6292ee0548c12d7a7aaaff1300' ,
feePayerSignatures : [
[
'0x4e44' ,
'0x2a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730' ,
'0x4fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7'
]
]
}
// feePayerSignTransaction with transaction object defines signatures
// rawTransaction in result will include signatures
> caver.klay.accounts.feePayerSignTransaction({
type : 'FEE_DELEGATED_VALUE_TRANSFER' ,
from : '0x9230c09295dd8b9c02b6ae138ffe3133b58b25c1' ,
to : '0x715139255d5e300b431722ec9666ac2350cbf523' ,
value : 1 ,
gas : 900000 ,
signatures: [['0x4e44', '0xd31041fe47da32fe03cf644186f50f39beaa969f73deb189d1a51706715215ec', '0x335961d9b38027a01d6b97842c036725a8d4781b5010c47ddb85756687c2def9']]
}, '0x2e4351e950d8d43444ac789cc9e87ba35340ad52', '0x90300d268bb2bad69f5b24e2ac1409a9416cc814254b356ce96b3f75c4364716').then(console.log)
{
messageHash : '0x4cc0a423199d374d412cd3f92777a8f82bfc47b701d0df1f82b0d932802c955e' ,
v : '0x4e44' ,
r : '0x2a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730' ,
s : '0x4fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7' ,
rawTransaction: '0x09f8dd808505d21dba00830dbba094715139255d5e300b431722ec9666ac2350cbf52301949230c09295dd8b9c02b6ae138ffe3133b58b25c1f847f845824e44a0d31041fe47da32fe03cf644186f50f39beaa969f73deb189d1a51706715215eca0335961d9b38027a01d6b97842c036725a8d4781b5010c47ddb85756687c2def9942e4351e950d8d43444ac789cc9e87ba35340ad52f847f845824e44a02a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730a04fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7',
txHash : '0x19006aa7228aa50000bab00ecccde8232516b8e1dce6835528d57561a79b5d3d' ,
senderTxHash : '0x7aa6d0b4146020ae38c07c2c9efc26030bd667b9256981379b8cbc86acfd5b27' ,
feePayerSignatures : [
[
'0x4e44' ,
'0x2a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730' ,
'0x4fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7'
]
]
}
// feePayerSignTransaction with transaction object defines feePayerSignatures
> caver . klay . accounts .feePayerSignTransaction ({
type : 'FEE_DELEGATED_VALUE_TRANSFER' ,
from : '0x9230c09295dd8b9c02b6ae138ffe3133b58b25c1' ,
to : '0x715139255d5e300b431722ec9666ac2350cbf523' ,
value : 1 ,
gas : 900000 ,
feePayerSignatures: [['0x4e44', '0x2a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730', '0x4fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7']]
}, '0x2e4351e950d8d43444ac789cc9e87ba35340ad52', ['0xa39599bb66c9f2346f789398d72232e9f218a0ec37e7bcf61cf40e52d860e3f7', '0x8d4c1ffd743faefc711e72f17ff370419ece777c6be2e6a84ac1986806fd57ea']).then(console.log)
{
messageHash : '0x4cc0a423199d374d412cd3f92777a8f82bfc47b701d0df1f82b0d932802c955e' ,
v : '0x4e44' ,
r : '0x2a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730' ,
s : '0x4fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7' ,
rawTransaction: '0x09f90127808505d21dba00830dbba094715139255d5e300b431722ec9666ac2350cbf52301949230c09295dd8b9c02b6ae138ffe3133b58b25c1c4c3018080942e4351e950d8d43444ac789cc9e87ba35340ad52f8d5f845824e44a02a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730a04fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7f845824e44a0ec9ab57810b1f02960f2150b7931aefde5d8df9333b436ff11bc9666783358e3a055602d262c0b0ead09359ab0f00138dd7b5754d02694b4ee118bc99c9d8c44adf845824e44a030afe3d18d5a9e2b54d30326de856dbf9cf797e7ade2317d53675913129f863ca0711ab4c6cd60935c0b633679aac55f58443becd4194317f69746d2e829ad881c',
txHash : '0x2226428e0ca7221ba091d34efbb6e1575e90affc3901550850b479fbfe00f084' ,
senderTxHash : '0x5e0bfce81dca4d6ec5ebeaff8a55fe5dd6d77e6292ee0548c12d7a7aaaff1300' ,
feePayerSignatures : [
[
'0x4e44' ,
'0x2a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730' ,
'0x4fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7'
] ,
[
'0x4e44' ,
'0xec9ab57810b1f02960f2150b7931aefde5d8df9333b436ff11bc9666783358e3' ,
'0x55602d262c0b0ead09359ab0f00138dd7b5754d02694b4ee118bc99c9d8c44ad'
] ,
[
'0x4e44' ,
'0x30afe3d18d5a9e2b54d30326de856dbf9cf797e7ade2317d53675913129f863c' ,
'0x711ab4c6cd60935c0b633679aac55f58443becd4194317f69746d2e829ad881c'
]
]
}
// feePayerSignTransaction with RLP encoded transaction string(rawTransaction)
> caver.klay.accounts.feePayerSignTransaction('0x09f885808505d21dba00830dbba094715139255d5e300b431722ec9666ac2350cbf52301949230c09295dd8b9c02b6ae138ffe3133b58b25c1f847f845824e44a0d31041fe47da32fe03cf644186f50f39beaa969f73deb189d1a51706715215eca0335961d9b38027a01d6b97842c036725a8d4781b5010c47ddb85756687c2def980c4c3018080', '0x2e4351e950d8d43444ac789cc9e87ba35340ad52', '0x90300d268bb2bad69f5b24e2ac1409a9416cc814254b356ce96b3f75c4364716').then(console.log)
{
messageHash : '0x4cc0a423199d374d412cd3f92777a8f82bfc47b701d0df1f82b0d932802c955e' ,
v : '0x4e44' ,
r : '0x2a2cdce5dd2fea8e717f94457700ca9cfa43fd5b09b57b1c8dc9cd2e73ac2730' ,
s : '0x4fdf1e4483f8c07c5ea180eea1af11fcd7fc32f6b6dded39eb8cb4a1f2e9f5a7' ,