caver.klay.tài khoảns

API caver-js API liên quan đến việc quản lý tài khoản.

caver.klay.tài khoảns chứa các hàm để tạo tài khoản Klaytn và ký các giao dịch cũng như dữ liệu.

tạo

caver.klay.tài khoảns.create([entropy])

Tạo một đối tượng tài khoản với khóa riêng tư và khóa công khai.

Tham số

TêntypeMô tả

độ nhiễu loạn

Chuỗi

(tùy chọn) Một chuỗi ngẫu nhiên để tăng độ nhiễu loạn. Nếu không có chuỗi nào được cung cấp, một chuỗi ngẫu nhiên sẽ được tạo bằng cách sử dụng randomHex.

Giá trị trả về

Đối tượng - Đối tượng tài khoản có cấu trúc như sau:

TênLoạiMô tả

address

Chuỗi

Địa chỉ tài khoản.

privateKey

Chuỗi

Khóa riêng tư của tài khoản. Khóa này tuyệt đối không được chia sẻ hoặc lưu trữ không được mã hóa trong bộ nhớ cục bộ! Ngoài ra, hãy đảm bảo vô hiệu hóa bộ nhớ sau khi sử dụng.

signTransaction(tx [, callback])

Hàm

Hàm dùng để ký giao dịch. Xem caver.klay.tài khoảns.signTransaction.

sign(data)

Hàm

Hàm dùng để ký giao dịch. Xem caver.klay.tài khoảns.sign.

mã hóa

Hàm

Hàm dùng để mã hóa khóa riêng tư với mật khẩu đã cho.

Ví dụ

> caver.klay.tài khoảns.create();
{
    address: '0x79FF91738661760AC67b3E951c0B4f1F70F80478',
    privateKey: '0x{private key}',
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

> caver.klay.tài khoảns.create('entropy');
{
    address: '0x205fffB1025F4af604fEB1d3a22b46C0D2326585',
    privateKey: '0x{private key}',
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

> caver.klay.tài khoảns.create(caver.utils.randomHex(32));
{ 
    address: '0x62Ca8964610A9D447E1a64753a09fC8b3D40b405',
    privateKey: '0x{private key}',
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

createWithAccountKey

caver.klay.tài khoảns.createWithAccountKey(address, tài khoảnKey)

Tạo một phiên bản Tài khoản với AccountKey đã cho. Tài khoản dùng để quản lý địa chỉ và AccountKey của tài khoản.

LƯU Ý Đây chỉ là một cấu trúc dữ liệu được sử dụng trong caver-js. Phương thức này không tạo hoặc cập nhật tài khoản trong mạng lưới Klaytn. LƯU Ý caver.klay.tài khoảns.createWithAccountKey được hỗ trợ kể từ caver-js phiên bản v1.2.0.

Tham số

TêntypeMô tả

address

Chuỗi

Địa chỉ của tài khoản.

tài khoảnKey

Chuỗi | Mảng | Đối tượng

Phiên bản AccountKey (AccountKeyPublic, AccountKeyMultiSig hoặc AccountKeyRoleBased) hoặc cấu trúc dữ liệu chứa thông tin khóa (chuỗi khóa riêng tư, mảng chuỗi khóa riêng tư hoặc một đối tượng xác định khóa cho từng vai trò).

Giá trị trả về

Đối tượng - Một phiên bản Tài khoản được trả về với các thuộc tính sau:

TênLoạiMô tả

address

Chuỗi

Địa chỉ của tài khoản.

privateKey

Chuỗi

Chuỗi khóa mặc định của tài khoảnKey mà tài khoản có. Thuộc tính này được để lại cho khả năng tương thích ngược. privateKey chỉ đại diện cho khóa mặc định của tài khoảnKey, do đó, bạn không nên sử dụng privateKey để ký hoặc gửi giao dịch. Bạn nên sử dụng transactionKey, updateKey hoặc feePayerKey trong ngữ cảnh.

tài khoảnKeyType

Chuỗi

Loại tài tài khoảnKey tài khoản có. Đây có thể là AccountKeyPublic, AccountKeyMultiSig hoặc AccountKeyRoleBased

tài khoảnKey

Đối tượng

Khóa của tài khoản. Đây có thể là AccountKeyPublic, AccountKeyMultiSig hoặc AccountKeyRoleBased.

khóa

Chuỗi | Mảng | Đối tượng

Tất cả các khóa bên trong tài khoảnKey mà tài khoản có. Đối với AccountKeyPublic, đây là một chuỗi khóa riêng tư; đối với AccountKeyMultiSig, điều này trả về một mảng chứa tất cả các chuỗi khóa riêng tư. Trong trường hợp AccountKeyRoleBased, một đối tượng có các khóa được liên kết với từng vai trò sẽ được trả về.

transactionKey

Chuỗi | Mảng

Khóa được sử dụng cho [RoleTransaction](../../../../../klaytn/design/tài khoảns.md#roles). AccountKeyPublic hoặc AccountKeyMultiSig không bị ràng buộc với bất kỳ vai trò nào, do đó, transactionKey giữ giá trị giống như các khóa. các khóa.

updateKey

Chuỗi | Mảng

Khóa được sử dụng cho [RoleAccountUpdate](../../../../../klaytn/design/tài khoảns.md#roles). AccountKeyPublic hoặc AccountKeyMultiSig không bị ràng buộc với bất kỳ vai trò nào, vì vậy updateKey giữ giá trị giống như các khóa.khóa.

feePayerKey

Chuỗi | Mảng

Khóa được sử dụng cho [RoleFeePayer](../../../../../klaytn/design/tài khoảns.md#roles). AccountKeyPublic hoặc AccountKeyMultiSig không bị ràng buộc với bất kỳ vai trò nào, do đó, feePayerKey giữ cùng một giá trị như các khóa.

signTransaction(tx [, callback])

Hàm

Hàm dùng để ký giao dịch. Xem caver.klay.tài khoảns.signTransaction.

sign(data)

Hàm

Hàm dùng để ký giao dịch. Xem caver.klay.tài khoảns.sign.

mã hóa

Hàm

Hàm dùng để mã hóa Tài khoản với mật khẩu đã cho.

getKlaytnWalletKey

Hàm

Hàm dùng để lấy [Khóa Ví Klaytn](../../../../../klaytn/design/tài khoảns.md#klaytn-wallet-key-format).

Ví dụ

// Tạo tài khoản với AccountKeyPublic
> caver.klay.tài khoảns.createWithAccountKey('0x62ca8964610a9d447e1a64753a09fc8b3d40b405', '0x{private key}')
Account {
    address: [Getter/Setter],
    tài khoảnKey: [Getter/Setter],
    privateKey: [Getter/Setter],
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

// Tạo một tài khoản với AccountKeyMultiSig
> caver.klay.tài khoảns.createWithAccountKey('0x62ca8964610a9d447e1a64753a09fc8b3d40b405', ['0x{private key}', '0x{private key}'])
Account {
    address: [Getter/Setter],
    tài khoảnKey: [Getter/Setter],
    privateKey: [Getter/Setter],
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

// Tạo một tài khoản với AccountKeyRoleBased
> caver.klay.tài khoảns.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],
    tài khoảnKey: [Getter/Setter],
    privateKey: [Getter/Setter],
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

createWithAccountKeyPublic

caver.klay.tài khoảns.createWithAccountKeyPublic(address, tài khoảnKey)

Tạo một phiên bản Tài khoản với AccountKeyPublic.

LƯU Ý caver.klay.tài khoảns.createWithAccountKeyPublic được hỗ trợ kể từ caver-js phiên bản v1.2.0.

Tham số

TênLoạiMô tả

address

Chuỗi

Địa chỉ của tài khoản.

tài khoảnKey

Chuỗi | Đối tượng

Phiên bản AccountKeyPublic hoặc chuỗi khóa riêng tư.

Giá trị trả về

Đối tượng - Phiên bản tài khoản, xem [caver.klay.tài khoảns.createWithAccountKey](#createwithtài khoảnkey).

Ví dụ

> caver.klay.tài khoảns.createWithAccountKeyPublic('0x62ca8964610a9d447e1a64753a09fc8b3d40b405', '0x{private key}')
Account {
    address: [Getter/Setter],
    tài khoảnKey: [Getter/Setter],
    privateKey: [Getter/Setter],
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

createWithAccountKeyMultiSig

caver.klay.tài khoảns.createWithAccountKeyMultiSig(address, tài khoảnKey)

Tạo một phiên bản tài khoản với AccountKeyMultiSig.

LƯU Ý caver.klay.tài khoảns.createWithAccountKeyMultiSig được hỗ trợ kể từ caver-js phiên bản v1.2.0.

Tham số

TêntypeMô tả

address

Chuỗi

Địa chỉ của tài khoản.

tài khoảnKey

Chuỗi | Đối tượng

Một phiên bản AccountKeyMultiSig hoặc một mảng các chuỗi khóa riêng tư.

Giá trị trả về

Đối tượng - Phiên bản tài khoản, xem [caver.klay.tài khoảns.createWithAccountKey](#createwithtài khoảnkey).

Ví dụ

> caver.klay.tài khoảns.createWithAccountKeyMultiSig('0x62ca8964610a9d447e1a64753a09fc8b3d40b405', ['0x{private key}', '0x{private key}'])
Account {
    address: [Getter/Setter],
    tài khoảnKey: [Getter/Setter],
    privateKey: [Getter/Setter],
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

createWithAccountKeyRoleBased

caver.klay.tài khoảns.createWithAccountKeyRoleBased(address, tài khoảnKey)

Tạo một phiên bản tài khoản với AccountKeyRoleBased.

LƯU Ý caver.klay.tài khoảns.createWithAccountKeyRoleBased được hỗ trợ kể từ caver-js phiên bản v1.2.0.

Tham số

TênLoạiMô tả

address

Chuỗi

Địa chỉ của tài khoản.

tài khoảnKey

Chuỗi | Đối tượng

Một phiên bản AccountKeyRoleBased hoặc một đối tượng xác định khóa cho từng vai trò.

Giá trị trả về

Đối tượng - Phiên bản tài khoản, xem [caver.klay.tài khoảns.createWithAccountKey](#createwithtài khoảnkey).

Ví dụ

> caver.klay.tài khoảns.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],
    tài khoảnKey: [Getter/Setter],
    privateKey: [Getter/Setter],
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

createAccountKey

caver.klay.tài khoảns.createAccountKey(key)

Tạo phiên bản của AccountKeyPublic, AccountKeyMultiSig hoặc AccountKeyRoleBased tùy thuộc vào loại tham số.

AccountKey là cấu trúc dữ liệu dùng để quản lý khóa trong caver-js. Sử dụng AccountKeyPublic nếu bạn muốn sử dụng một khóa riêng tư, AccountKeyMultiSig nếu bạn muốn sử dụng nhiều khóa riêng tư hoặc AccountKeyRoleBased nếu bạn muốn sử dụng một khóa khác cho từng vai trò.

LƯU Ý caver.klay.tài khoảns.createAccountKey được hỗ trợ kể từ caver-js v1.2.0.

Tham số

TênLoạiMô tả

khóa

Chuỗi | Mảng | Đối tượng

Khóa để tạo AccountKey. Nếu key là một chuỗi khóa riêng tư, thì một phiên bản AccountKeyPublic sẽ được tạo. Nếu key là một mảng chứa nhiều chuỗi khóa riêng tư, thì một phiên bản AccountKeyMultiSig sẽ được tạo. Nếu key là một đối tượng xác định khóa (chuỗi khóa riêng tư hoặc một mảng các chuỗi khóa riêng tư) cho mỗi vai trò, thì một phiên bản AccountKeyRoleBased sẽ được tạo. Phiên bản AccountKeyRoleBased có thể có AccountKeyPublic hoặc AccountKeyMultiSig cho mỗi vai trò.

Giá trị trả về

Đối tượng - Một phiên bản AccountKeyPublic, AccountKeyMultiSig hoặc AccountKeyRoleBased được trả về với các thuộc tính sau:

TênLoạiMô tả

loại

Chuỗi

Loại phiên bản AccountKey.

defaultKey

Chuỗi

Khóa riêng tư mặc định của AccountKey. Khóa riêng tư mặc định đại diện cho một chuỗi khóa riêng tư được xác định cho AccountKeyPublic và một chuỗi khóa riêng tư trong chỉ mục thứ 0 của mảng nếu là AccountKeyMultiSig. Đối với AccountKeyRoleBased, khóa này đại diện cho khóa mặc định của AccountKey được tìm thấy đầu tiên, trong đó AccountKey được tìm kiếm theo thứ tự sau: transactionkey, updateKey, feePayerKey.

khóa

Chuỗi | Mảng | Đối tượng

Tất cả các khóa riêng tư được xác định bên trong phiên bản AccountKey. Đối với AccountKeyPublic, đây là một chuỗi khóa riêng tư; đối với AccountKeyMultiSig, điều này trả về một mảng chứa tất cả các chuỗi khóa riêng tư. Trong trường hợp AccountKeyRoleBased, một đối tượng có các khóa được liên kết với từng vai trò sẽ được trả về.

transactionKey

Chuỗi | Mảng

Khóa được sử dụng cho [RoleTransaction](../../../../../klaytn/design/tài khoảns.md#roles). AccountKeyPublic hoặc AccountKeyMultiSig không bị ràng buộc với bất kỳ vai trò nào, do đó, transactionKey giữ giá trị giống như các khóa. các khóa.

updateKey

Chuỗi | Mảng

Khóa được sử dụng cho [RoleAccountUpdate](../../../../../klaytn/design/tài khoảns.md#roles). AccountKeyPublic hoặc AccountKeyMultiSig không bị ràng buộc với bất kỳ vai trò nào, vì vậy updateKey giữ giá trị giống như các khóa.khóa.

feePayerKey

Chuỗi | Mảng

Khóa được sử dụng cho [RoleFeePayer](../../../../../klaytn/design/tài khoảns.md#roles). AccountKeyPublic hoặc AccountKeyMultiSig không bị ràng buộc với bất kỳ vai trò nào, do đó, feePayerKey giữ cùng một giá trị như các khóa.

Ví dụ

// Tạo một AccountKeyPublic
> caver.klay.tài khoảns.createAccountKey('0x{private key}')
AccountKeyPublic {
    _key: '0x{private key}'
}

// Tạo một AccountKeyMultiSig
> caver.klay.tài khoảns.createAccountKey(['0x{private key}', '0x{private key}'])
AccountKeyMultiSig {
    _keys: [ 
      '0x{private key}',
      '0x{private key}'
    ]
}

// Tạo một AccountKeyRoleBased
> caver.klay.tài khoảns.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

caver.klay.tài khoảns.createAccountKeyPublic(key)

Tạo phiên bản của AccountKeyPublic với chuỗi khóa riêng tư đã cho.

LƯU Ý caver.klay.tài khoảns.createAccountKeyPublic được hỗ trợ kể từ caver-js phiên bản v1.2.0.

Tham số

TêntypeMô tả

khóa

Chuỗi

Một chuỗi khóa riêng tư dùng để tạo AccountKeyPublic.

Giá trị trả về

Đối tượng - Phiên bản AccountKeyPublic, xem [caver.klay.tài khoảns.createAccountKey](#createtài khoảnkey).

Ví dụ

> caver.klay.tài khoảns.createAccountKeyPublic('0x{private key}')
AccountKeyPublic {
    _key: '0x{private key}'
}

createAccountKeyMultiSig

caver.klay.tài khoảns.createAccountKeyMultiSig(keys)

Tạo phiên bản của AccountKeyMultiSig với nhiều khóa riêng tư đã cho.

LƯU Ý caver.klay.tài khoảns.createAccountKeyMultiSig được hỗ trợ kể từ caver-js phiên bản v1.2.0.

Tham số

TênLoạiMô tả

khóa

Mảng

Một mảng các chuỗi khóa riêng tư dùng để tạo AccountKeyMultiSig.

Giá trị trả về

Đối tượng - Phiên bản AccountKeyMultiSig, xem [caver.klay.tài khoảns.createAccountKey](#createtài khoảnkey).

Ví dụ

> caver.klay.tài khoảns.createAccountKeyMultiSig(['0x{private key}', '0x{private key}'])
AccountKeyMultiSig {
    _keys: [ 
      '0x{private key}',
      '0x{private key}'
    ]
}

createAccountKeyRoleBased

caver.klay.tài khoảns.createAccountKeyRoleBased(keyObject)

Tạo phiên bản của AccountKeyRoleBased với các khóa đã cho được liên kết với từng vai trò.

LƯU Ý caver.klay.tài khoảns.createAccountKeyRoleBased được hỗ trợ kể từ caver-js phiên bản v1.2.0.

Tham số

TêntypeMô tả

keyObject

Đối tượng

Một đối tượng có các cặp khóa vai trò. Khóa cho mỗi vai trò có thể là chuỗi khóa riêng tư hoặc một mảng các chuỗi khóa riêng tư.

Giá trị trả về

Đối tượng - Phiên bản AccountKeyRoleBased, xem [caver.klay.tài khoảns.createAccountKey](#createtài khoảnkey).

Ví dụ

> caver.klay.tài khoảns.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}' 
        }
}

tài khoảnKeyToPublicKey

caver.klay.tài khoảns.tài khoảnKeyToPublicKey(tài khoảnKey)

Hàm này chuyển đổi khóa riêng tư của AccountKey thành khóa công khai.

NOTE caver.klay.tài khoảns.tài khoảnKeyToPublicKey được hỗ trợ kể từ caver-js v1.2.0.

Tham số

TênLoạiMô tả

tài khoảnKey

Chuỗi | Mảng | Đối tượng

Phiên bản AccountKey (AccountKeyPublic, AccountKeyMultiSig hoặc AccountKeyRoleBased) hoặc cấu trúc dữ liệu chứa thông tin khóa (chuỗi khóa riêng tư, mảng chuỗi khóa riêng tư hoặc một đối tượng xác định khóa cho từng vai trò).

Giá trị trả về

LoạiMô tả

Chuỗi | Mảng | Đối tượng

Nếu tham số là một phiên bản AccountKeyPublic hoặc một chuỗi khóa riêng tư, thì một chuỗi khóa công khai sẽ được trả về. Nếu tham số là một phiên bản AccountKeyMultiSig hoặc một mảng các chuỗi khóa riêng tư, thì một mảng các chuỗi khóa công khai sẽ được trả về. Nếu tham số là một phiên bản AccountKeyRoleBased hoặc một đối tượng xác định khóa (chuỗi khóa riêng tư hoặc một mảng các chuỗi khóa riêng tư) đối với mỗi vai trò, thì một đối tượng có vai trò và khóa công khai (chuỗi khóa công khai hoặc một mảng các chuỗi khóa công khai) được trả về.

Ví dụ

// Chuyển đổi chuỗi khóa riêng tư
> caver.klay.tài khoảns.tài khoảnKeyToPublicKey('0x{private key}')
'0x67f20d1198abcdc036a4d8f3ea0cf837527716c90f71d0b0410dfe3e1b405eded9ea818eedd5e8ad79658b2cdf4862ab0956a6f7fd0a4886afe6110b2e9803a4'

// Chuyển đổi một mảng các chuỗi khóa riêng tư
> caver.klay.tài khoảns.tài khoảnKeyToPublicKey(['0x{private key}', '0x{private key}'])
[
    '0x67f20d1198abcdc036a4d8f3ea0cf837527716c90f71d0b0410dfe3e1b405eded9ea818eedd5e8ad79658b2cdf4862ab0956a6f7fd0a4886afe6110b2e9803a4',
    '0x7c5415f99628618b3fe78e14606c83a22488769b3361e3758c7c98a204a23b615cf07af65490895d70a7b7e7e885fc2f597d65ea69ed586c7ae7cb0241656036'
]

// Chuyển đổi khóa theo vai trò
> caver.klay.tài khoảns.tài khoảnKeyToPublicKey({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

caver.klay.tài khoảns.privateKeyToAccount(privateKey)

Tạo một đối tượng tài khoản từ khóa riêng tư.

Tham số

TênLoạiMô tả

privateKey

chuỗi

Khóa riêng tư dùng để chuyển đổi.

Giá trị trả về

Đối tượng - Đối tượng tài khoản

Ví dụ

> caver.klay.tài khoảns.privateKeyToAccount('0x{private key}');
{ 
    address: '0x62ca8964610a9d447e1a64753a09fc8b3d40b405',
    privateKey: '0x{private key}',
    signTransaction: [Function: signTransaction],
    sign: [Function: sign],
    encrypt: [Function: encrypt],
    getKlaytnWalletKey: [Function: getKlaytnWalletKey] 
}

privateKeyToPublicKey

caver.klay.tài khoảns.privateKeyToPublicKey(privateKey)

Nhận khóa công khai từ khóa riêng tư đã cho

Tham số

TênLoạiMô tả

privateKey

chuỗi

Khóa riêng tư dùng để chuyển đổi.

Giá trị trả về

Chuỗi - Khóa công khai (64 byte)

Ví dụ

> caver.klay.tài khoảns.privateKeyToPublicKey('0x{private key}')
'0xbb1846722a4c27e71196e1a44611ee7174276a6c51c4830fb810cac64b0725f217cb8783625a809d1303adeeec2cf036ab74098a77a6b7f1003486e173b29aa7'

createAccountForUpdate

caver.klay.tài khoảns.createAccountForUpdate(address, tài khoảnKey, options)

Tạo phiên bản của AccountForUpdate. AccountForUpdate chứa địa chỉ của tài khoản và khóa công khai mới để cập nhật.

AccountForUpdate có thể được sử dụng trong đối tượng giao dịch cập nhật tài khoản (ACCOUNT_UPDATE, FEE_DELEGATED_ACCOUNT_UPDATE hoặc FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO) dưới dạng khóa. Nếu bạn muốn biết cách sử dụng AccountForUpdate trong giao dịch, hãy xem [Cập nhật tài khoản với AccountForUpdate ](../getting-started_1.4.1.md#tài khoản-update-with-tài khoảnforupdate).

Tham số tài khoảnKey của caver.klay.tài khoảns.createAccountForUpdate phải là khóa riêng tư.

Bạn có thể tạo phiên bản AccountForUpdate bằng khóa công khai với [caver.klay.tài khoảns.createAccountForUpdateWithPublicKey](#createtài khoảnforupdatewithpublickey).

Bạn cũng có thể dùng [caver.klay.tài khoảns.createAccountForUpdateWithLegacyKey](#createtài khoảnforupdatewithlegacykey) để tạo phiên bản AccountForUpdate dùng để cập nhật lên [AccountKeyLegacy](../../../../../klaytn/design/tài khoảns.md#tài khoảnkeylegacy) và [caver.klay.tài khoảns.createAccountForUpdateWithFailKey](#createtài khoảnforupdatewithfailkey) để tạo phiên bản AccountForUpdate dùng để cập nhật lên [AccountKeyFail](../../../../../klaytn/design/tài khoảns.md#tài khoảnkeyfail).

LƯU Ý caver.klay.tài khoảns.createAccountForUpdate được hỗ trợ kể từ caver-js phiên bản v1.2.0.

Tham số

TêntypeMô tả

address

Chuỗi

Địa chỉ của tài khoản.

tài khoảnKey

Chuỗi | Mảng | Đối tượng

Phiên bản AccountKey (AccountKeyPublic, AccountKeyMultiSig hoặc AccountKeyRoleBased) hoặc thông tin khóa tương đương (chuỗi khóa riêng tư, mảng các chuỗi khóa riêng tư hoặc đối tượng xác định (các) khóa với (các) vai trò). Nếu tài khoảnKey không phải là một phiên bản AccountKey, thì phương pháp này sẽ gọi nội bộ [caver.klay.tài khoảns.createAccountKey](#createtài khoảnkey) để tạo một phiên bản AccountKey từ thông tin khóa đã cho.

tùy chọn

Đối tượng

Một đối tượng tùy chọn chứa ngưỡng và trọng số. Điều này là bắt buộc khi sử dụng AccountKeyMultiSig. Cách sử dụng được minh họa trong ví dụ dưới đây.

Giá trị trả về

Đối tượng - Một phiên bản AccountForUpdate được trả về với các thuộc tính sau:

TêntypeMô tả

address

Chuỗi

Địa chỉ của tài khoản sẽ được cập nhật.

keyForUpdate

Đối tượng

Một đối tượng chứa khóa công khai mới được lấy từ tài khoảnKey đã cho.

Ví dụ

// Tạo AccountForUpdate cho AccountKeyPublic
> caver.klay.tài khoảns.createAccountForUpdate('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', '0x{private key}')
AccountForUpdate {
    address: '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef',
    keyForUpdate: { 
        publicKey: '0x24c32ee4f908ceed89e7501de2980fcb1d2add69080d3921f86c49de863eb2d507e24d9aaf91328b7f7cef2a94b538cb33b3f8cdd64925855ce0a4bf6e11f3db'
    }
}

// Tạo AccountForUpdate cho AccountKeyMultiSig với đối tượng tùy chọn
> caver.klay.tài khoảns.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'
                }
            ]
        }
    }
}

// Tạo AccountForUpdate cho AccountKeyRoleBased với đối tượng tùy chọn
> caver.klay.tài khoảns.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'
        }
    }
}

// Tạo AccountForUpdate cho AccountKeyRoleBased với khóa kế thừa hoặc khóa lỗi
// Khi cập nhật khóa được sử dụng cho một vai trò cụ thể trong AccountKeyRoleBased thành AccountKeyLegacy hoặc AccountKeyFailKey, hãy xác định vai trò cần cập nhật như sau.
> caver.klay.tài khoảns.createAccountForUpdate('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', { transactionKey: 'legacyKey', updateKey: 'failKey' })
AccountForUpdate {
    address: '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef',
    keyForUpdate: {
        roleTransactionKey: { legacyKey: true },
        roleAccountUpdateKey: { failKey: true }
    }
}

createAccountForUpdateWithPublicKey

caver.klay.tài khoảns.createAccountForUpdateWithPublicKey(address, keyForUpdate, options)

Tạo một phiên bản AccountForUpdate bằng khóa công khai của khóa mới cần cập nhật.

AccountForUpdate có thể được sử dụng trong đối tượng giao dịch cập nhật tài khoản (ACCOUNT_UPDATE, FEE_DELEGATED_ACCOUNT_UPDATE hoặc FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO) dưới dạng khóa. Nếu bạn muốn biết cách sử dụng AccountForUpdate trong giao dịch, hãy xem [Cập nhật tài khoản với AccountForUpdate ](../getting-started_1.4.1.md#tài khoản-update-with-tài khoảnforupdate).

NOTE caver.klay.tài khoảns.createAccountForUpdateWithPublicKey được hỗ trợ kể từ caver-js v1.2.0.

Tham số

TênLoạiMô tả

address

Chuỗi

Địa chỉ của tài khoản.

keyForUpdate

Chuỗi | Mảng | Đối tượng

Khóa công khai của khóa mới cần cập nhật. Giá trị này là một chuỗi khóa công khai khi khóa là AccountKeyPublic, một mảng chuỗi khóa công khai khi AccountKeyMultiSig, một đối tượng khi khóa là AccountKeyRoleBased.

tùy chọn

Đối tượng

Một đối tượng tùy chọn chứa ngưỡng và trọng số. Điều này là bắt buộc khi sử dụng AccountKeyMultiSig. Nếu bạn sử dụng AccountkeyMultiSig làm một trong các khóa trong AccountKeyRoleBased, hãy chỉ định vai trò của ngưỡng và trọng số. Cách sử dụng được minh họa trong ví dụ dưới đây.

Giá trị trả về

Đối tượng - Phiên bản AccountForUpdate, xem [caver.klay.tài khoảns.createAccountForUpdate](#createtài khoảnforupdate).

Ví dụ

// Tạo AccountForUpdate cho AccountKeyPublic
> caver.klay.tài khoảns.createAccountForUpdateWithPublicKey('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef', '0x24c32ee4f908ceed89e7501de2980fcb1d2add69080d3921f86c49de863eb2d507e24d9aaf91328b7f7cef2a94b538cb33b3f8cdd64925855ce0a4bf6e11f3db')
AccountForUpdate {
    address: '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef',
    keyForUpdate: { 
        publicKey: '0x24c32ee4f908ceed89e7501de2980fcb1d2add69080d3921f86c49de863eb2d507e24d9aaf91328b7f7cef2a94b538cb33b3f8cdd64925855ce0a4bf6e11f3db'
    }
}

// Tạo AccountForUpdate cho AccountKeyMultiSig với đối tượng tùy chọn
> caver.klay.tài khoảns.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'
                }
            ]
        }
    }
}

// Tạo AccountForUpdate cho AccountKeyRoleBased với đối tượng tùy chọn
> caver.klay.tài khoảns.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

caver.klay.tài khoảns.createAccountForUpdateWithLegacyKey(address)

Tạo một phiên bản AccountForUpdate để cập nhật khóa của tài khoản bằng [AccountKeyLegacy](../../../../../klaytn/design/tài khoảns.md#tài khoảnkeylegacy). Đảm bảo rằng bạn có khóa riêng tư khớp với địa chỉ tài khoản của mình trước khi cập nhật lên AccountKeyLegacy.

AccountForUpdate có thể được sử dụng trong đối tượng giao dịch cập nhật tài khoản (ACCOUNT_UPDATE, FEE_DELEGATED_ACCOUNT_UPDATE hoặc FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO) dưới dạng khóa. Nếu bạn muốn biết cách sử dụng AccountForUpdate trong giao dịch, hãy xem [Cập nhật tài khoản với AccountForUpdate ](../getting-started_1.4.1.md#tài khoản-update-with-tài khoảnforupdate).

Lưu ý caver.klay.tài khoảns.createAccountForUpdateWithLegacyKey được hỗ trợ kể từ caver-js v1.2.0.

Tham số

TênLoạiMô tả

address

Chuỗi

Địa chỉ của tài khoản.

Giá trị trả về

Đối tượng - Phiên bản AccountForUpdate, xem [caver.klay.tài khoảns.createAccountForUpdate](#createtài khoảnforupdate).

Ví dụ

// Tạo AccountForUpdate cho AccountKeyLegacy
> caver.klay.tài khoảns.createAccountForUpdateWithLegacyKey('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef')
AccountForUpdate {
    address: '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef',
    keyForUpdate: { legacyKey: true } 
}

createAccountForUpdateWithFailKey

caver.klay.tài khoảns.createAccountForUpdateWithFailKey(address)

Tạo một phiên bản AccountForUpdate để cập nhật khóa của tài khoản bằng [AccountKeyFail](../../../../../klaytn/design/tài khoảns.md#tài khoảnkeyfail). Các giao dịch được gửi bởi một tài khoản có AccountKeyFail luôn không thành công trong quá trình xác thực.

AccountForUpdate có thể được sử dụng trong đối tượng giao dịch cập nhật tài khoản (ACCOUNT_UPDATE, FEE_DELEGATED_ACCOUNT_UPDATE hoặc FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO) dưới dạng khóa. Nếu bạn muốn biết cách sử dụng AccountForUpdate trong giao dịch, hãy xem [Cập nhật tài khoản với AccountForUpdate ](../getting-started_1.4.1.md#tài khoản-update-with-tài khoảnforupdate).

LƯU Ý caver.klay.tài khoảns.createAccountForUpdateWithFailKey được hỗ trợ kể từ caver-js v1.2.0.

Tham số

TênLoạiMô tả

address

Chuỗi

Địa chỉ của tài khoản.

Giá trị trả về

Đối tượng - Phiên bản AccountForUpdate, xem [caver.klay.tài khoảns.createAccountForUpdate](#createtài khoảnforupdate).

Ví dụ

// Tạo AccountForUpdate cho AccountKeyFail
> caver.klay.tài khoảns.createAccountForUpdateWithFailKey('0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef')
AccountForUpdate {
    address: '0x5B4EF8e2417DdE1b9B80BcfC35d1bfeF3D7234ef',
    keyForUpdate: { failKey: true } 
}

signTransaction

caver.klay.tài khoảns.signTransaction(tx [, privateKey] [, callback])

Ký một giao dịch Klaytn bằng một khóa riêng tư đã cho.

Vì caver-js v1.2.0 nên phương pháp này lấy một giao dịch được mã hóa RLP làm một đầu vào cũng như một đối tượng giao dịch thuần. Xem caver.klay.sendTransaction để biết các loại đối tượng giao dịch khác nhau. Về cơ bản, phương pháp này ký với tư cách là người gửi. Nếu bạn muốn ký với tư cách là người trả phí, bạn nên sử dụng caver.klay.tài khoảns.feePayerSignTransaction. Tuy nhiên, người trả phí vẫn có thể ký bằng phương pháp này bằng cách chuyển một đối tượng, {senderRawTransaction: rawTransaction, feePayer: feePayerAddress}, dưới dạng tx. senderRawTransaction phải là giao dịch loại FEE_DELEGATED_.

Ngoài ra, vì caver-js v1.2.0, signTransaction giữ chữ ký/feePayerSignatures hiện có trong giao dịch đầu vào và nối (các) chữ ký của người ký vào đó.

Xem Gửi Giao dịch có nhiều người ký để biết cách kết hợp chữ ký của nhiều người dùng thành một rawTransaction duy nhất.

Tham số

TênLoạiMô tả

tx

Chuỗi | Đối tượng

Đối tượng giao dịch hoặc chuỗi giao dịch được mã hóa RLP (rawTransaction). Các thuộc tính của một đối tượng giao dịch khác nhau tùy thuộc vào loại giao dịch. Để biết mô tả về từng loại giao dịch, hãy xem caver.klay.sendTransaction.

privateKey

Chuỗi | Mảng

(tùy chọn) Khóa riêng tư dùng để ký.

callback

Hà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.

LƯU Ý Tham số privateKey đã được thay đổi thành tham số tùy chọn kể từ caver-js v1.2.0-rc.3. Ngoài ra, tham số privateKey hỗ trợ mảng của các chuỗi khóa riêng tư kể từ caver-js v1.2.0-rc.3. Nếu bạn không chuyển khóa riêng tư, tài khoản từ hoặc feePayer phải tồn tại trong caver.klay.tài khoảns.wallet để ký giao dịch. Nếu một mảng privateKeys được cung cấp, thì giao dịch được ký bằng tất cả các khóa bên trong mảng.

LƯU Ý Tham số tx chấp nhận giao dịch được mã hóa RLP kể từ caver-js v1.2.0.

Giá trị trả về

Promise trả về Đối tượng: Giao dịch đã ký được mã hóa RLP. Các thuộc tính đối tượng như sau:

TênLoạiMô tả

messageHash

Chuỗi

Hàm băm của thông báo đã cho.

r

Chuỗi

Chữ ký ECDSA r.

s

Chuỗi

Chữ ký ECDSA s.

v

Chuỗi

Mã khôi phục ECDSA.

rawTransaction

Chuỗi

Giao dịch được mã hóa RLP, sẵn sàng gửi bằng cách sử dụng caver.klay.sendSignedTransaction.

txHash

Chuỗi 32 byte

Hàm băm của giao dịch.

senderTxHash

Chuỗi 32 byte

Hàm băm của một giao dịch chỉ được người gửi ký. Xem SenderTxHash

chữ ký

Mảng

(tùy chọn) Một mảng (các) chữ ký của người gửi.

feePayerSignatures

Mảng

(tùy chọn) Một mảng (các) chữ ký của người trả phí.

LƯU Ý Các thuộc tính signature và feePayerSignatures đã được thêm từ caver-js v1.2.0-rc.3. Nếu người gửi ký giao dịch, mảng chữ ký sẽ được trả về trong signatures. Nếu người trả phí ký, mảng chữ ký sẽ được trả về trong feePayerSignatures.

LƯU Ý txHashsenderTxHash trong đối tượng kết quả có thể không phải là giá trị cuối cùng. Nếu chữ ký của người gửi khác được thêm vào, txHash và người gửiTxHash sẽ thay đổi. Nếu chữ ký của người trả phí được thêm vào, txHash sẽ thay đổi.

Ví dụ

// ký giao dịch kế thừa với chuỗi khóa riêng tư
> caver.klay.tài khoảns.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 với chuỗi khóa riêng tư
> caver.klay.tài khoảns.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 không có tham số privateKey
> caver.klay.tài khoảns.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 với mảng khóa riêng tư
> caver.klay.tài khoảns.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 với khóa riêng tư của người trả phí
> caver.klay.tài khoảns.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 không có khóa riêng tư của người trả phí
> caver.klay.tài khoảns.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

caver.klay.tài khoảns.signTransactionWithHash(txHash, privateKeys [, chainId] [, callback])

Ký một giao dịch Klaytn với hàm băm giao dịch đã cho và khóa riêng tư.

LƯU Ý caver.klay.tài khoảns.signTransactionWithHash được hỗ trợ kể từ caver-js v1.3.2-rc.2.

Tham số

TêntypeMô tả

txHash

Chuỗi

Hàm băm của giao dịch cần ký.

privateKeys

Chuỗi | Mảng

Khóa riêng tư dùng để ký.

chainId

Chuỗi | Số

(tùy chọn) chainId của chuỗi. Nếu bị bỏ qua, giá trị này sẽ được caver-js thiết lập bằng cách gọi ra caver.klay.getChainId

callback

Hà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ề Mảng: Một mảng chữ ký

Mỗi đối tượng chữ ký trong mảng có các giá trị sau:

TênLoạiMô tả

V

Chuỗi

Mã khôi phục ECDSA.

R

Chuỗi

Chữ ký ECDSA r.

S

Chuỗi

Chữ ký ECDSA s.

Ví dụ

// ký giao dịch với khóa riêng tư và id chuỗi
> caver.klay.tài khoảns.signTransactionWithHash('0x583d887614e1ce674c05fcd050a661f0631c23ed1f95fa43fefcc25e6383bca1', '0x{priavte key}', '0x3e9').then(console.log)
[
    {
        V: '0x07f5',
        R: '0x66eb2dbb90295b7541de72f2d34002bac3f00a94501453b310b25a0da62446a5',
        S: '0x1c7c3aefabc042b055489f5b899df55439fe1851858d61e8eb6c4b44be35c227'
    }
]

// ký giao dịch với khóa riêng tư
> caver.klay.tài khoảns.signTransactionWithHash('0x583d887614e1ce674c05fcd050a661f0631c23ed1f95fa43fefcc25e6383bca1', '0x{priavte key}').then(console.log)
[
    {
        V: '0x07f5',
        R: '0x66eb2dbb90295b7541de72f2d34002bac3f00a94501453b310b25a0da62446a5',
        S: '0x1c7c3aefabc042b055489f5b899df55439fe1851858d61e8eb6c4b44be35c227'
    }
]

// ký giao dịch với nhiều khóa riêng tư và id chuỗi
> caver.klay.tài khoảns.signTransactionWithHash('0x583d887614e1ce674c05fcd050a661f0631c23ed1f95fa43fefcc25e6383bca1', ['0x{priavte key}', '0x{priavte key}'], '0x3e9').then(console.log)
[
    {
        V: '0x07f5',
        R: '0x66eb2dbb90295b7541de72f2d34002bac3f00a94501453b310b25a0da62446a5',
        S: '0x1c7c3aefabc042b055489f5b899df55439fe1851858d61e8eb6c4b44be35c227'
    },
    {
        V: '0x07f6',
        R: '0x946ce0288ee98b56160fadae8ec38e36828cf764f897f68f93157a2dc286d4aa',
        S: '0x049ab3f5e91cec831124bdb10782e38de3a02a803ca2dd61a50da81cf5c4f8ef'