caver.wallet.keyring
caver.wallet.keyring "是一个提供 Keyring 相关功能的软件包,其中包括地址和私钥。
Class
Keyring "是一个包含账户地址和私人密钥的结构。 这是 caver-js 中的一个类,允许用户使用自己的 [Kaia 账户] 登录(.../../../../.../.../learn/accounts.md#klaytn-accounts)。
根据所存储密钥的类型,"钥匙圈 "可分为三种类型:单钥匙环 用于存储一个地址和一个私钥,多钥匙环 用于存储一个地址和多个私钥,基于角色的钥匙环 用于为每个角色存储一个地址和一个或多个私钥。
- SingleKeyring:用户使用私钥签名
- MultipleKeyring:用户使用私钥签名
- RoleBasedKeyring:用户按角色使用私钥签名
SingleKeyring
const keyring = new caver.wallet.keyring.singleKeyring(address, key)
SingleKeyring
是一个存储账户 "地址 "和 "私人密钥 "的类。 要使用私钥字符串创建 SingleKeyring 实例,请参阅 caver.wallet.keyring.create。
SingleKeyring
使用的是未指定角色的私人密钥。
属性
名称 | 类型 | 描述 |
---|---|---|
address | string | 所有者地址。 |
key | PrivateKey | [PrivateKey] (#privatekey)的一个实例,其中包含一个私钥。 |
MultipleKeyring
const keyring = new caver.wallet.keyring.multipleKeyring(address, keys)
MultipleKeyring
是一个存储账户地址和多个私人密钥的类。 要使用私钥字符串创建 MultipleKeyring 实例,请参考 caver.wallet.keyring.create。
MultipleKeyring
使用未指定角色的私人钥匙。
属性
名称 | 类型 | 描述 |
---|---|---|
address | string | 所有者地址。 |
keys | Array | 包含一个私钥的 PrivateKey 实例数组。 |
RoleBasedKeyring
const keyring = new caver.wallet.keyring.roleBasedKeyring(address, keys)
RoleBasedKeyring
是一个以数组形式存储账户地址和用于每个角色的私钥的类。
RoleBasedKeyring
"定义了 "keys",它是一个二维数组(空 "keys "看起来像"[[], [], [] ]"),每个[role]可以包含多个密钥(.../.../.../.../.../learn/accounts.md#roles)。 第一个数组元素定义了 roleTransactionKey
的私钥,第二个数组元素定义了 roleAccountUpdateKey
的私钥,第三个数组元素定义了 roleFeePayerKey
的私钥。
属性
名称 | 类型 | 描述 |
---|---|---|
address | string | 所有者地址。 |
keys | Array | 一个二维数组,用于定义每个 role 的键值。 每个 role 都包含 PrivateKey 实例。 其中第一个元素是 roleTransactionKey . 第二个元素是 roleAccountUpdateKey . 最后一个元素是 roleFeePayerKey . |
下面是 keyring 中定义的一个 getter,可以直观地使用为每个角色定义的密钥。 通过下面的获取器可以更方便地获取每个角色使用的密钥。
名称 | 类型 | 描述 |
---|---|---|
roleTransactionKey | Array | 用于签署交易的 roleTransactionKey(账户更新交易除外)。 keyring.roleTransactionkey 将返回 keys 属性的第一个元素。 |
roleAccountUpdateKey | Array | 用于签署账户更新事务的 roleAccountUpdateKey。 keyring.roleAccountUpdateKey 将返回 keys 属性的第二个元素。 |
roleFeePayerKey | Array | 用于以付费者身份签署交易的 roleFeePayerKey。 keyring.roleFeePayerKey 将返回 keys 属性的第三个元素。 |
PrivateKey
const privateKey = new caver.wallet.keyring.privateKey('0x{private key}')
PrivateKey是一个包含私钥字符串的类。 Keyring 中每个角色使用的私钥都定义为这个
PrivateKey` 实例。
属性
名称 | 类型 | 描述 |
---|---|---|
privateKey | string | 私钥字符串。 |
签名数据
SignatureData是一个包含签名数据的类。 作为
sign或
signMessage` 结果的签名将作为 signatureData 返回。 您可以看到 signatureData 包含签名的情况,如下所示。
const signature = new caver.wallet.keyring.signatureData(['0x1b', '0x2dfc6...', '0x15038...'])
属性
名称 | 类型 | 描述 |
---|---|---|
v | String | ECDSA 恢复 ID。 |
r | String | ECDSA 签名 r. |
s | String | ECDSA 签名 |
caver.wallet.keyring.generate
caver.wallet.keyring.generate([entropy])
用随机生成的私钥生成一个 SingleKeyring 实例。
参数
名称 | 类型 | 描述 |
---|---|---|
entropy | string | (可选)用于增加熵的随机字符串。 |
返回价值
类型 | 描述 |
---|---|
SingleKeyring | 返回随机生成的单个密钥环实例。 |
示例
> caver.wallet.keyring.generate()SingleKeyring { _address: '0x8ecdfda0281f0d36518f89e0e2444c4f98b2e718', _key: PrivateKey { _privateKey: '0x{private key}' }}
caver.wallet.keyring.generateSingleKey
caver.wallet.keyring.generateSingleKey([entropy])
生成私钥字符串。
参数
名称 | 类型 | 描述 |
---|---|---|
entropy | string | (可选)用于增加熵的随机字符串。 |
返回价值
类型 | 描述 |
---|---|
string | 返回私钥字符串。 |
示例
> caver.wallet.keyring.generateSingleKey()'0x{private key}'
caver.wallet.keyring.generateMultipleKeys
caver.wallet.keyring.generateMultipleKeys(num [, entropy])
生成私钥字符串。
参数
名称 | 类型 | 描述 |
---|---|---|
num | number | 私钥字符串的数量。 |
entropy | string | (可选)用于增加熵的随机字符串。 |
返回价值
类型 | 描述 |
---|---|
Array | 返回一个包含私钥字符串的数组。 |
示例
> caver.wallet.keyring.generateMultipleKeys(3)[ '0x{private key1}', '0x{private key2}', '0x{private key3}']
caver.wallet.keyring.generateRoleBasedKeys
caver.wallet.keyring.generateRoleBasedKeys(numArray [, entropy])
生成一个 2D 数组,其中每个数组元素都包含为每个 [role] (.../../../../.../learn/accounts.md#roles)定义的键。
参数
名称 | 类型 | 说明 |
---|---|---|
numArray | Array | 包含每个 role 键数的数组。 |
entropy | string | (可选)用于增加熵的随机字符串。 |
返回价值
类型 | 描述 |
---|---|
Array | 返回一个 2D 数组,其中每个数组元素都包含为每个 role 定义的键。 |
示例
> caver.wallet.keyring.generateRoleBasedKeys([2, 1, 3])[ [ '0x{private key1}', '0x{private key2}' ], [ '0x{private key3}' ], [ '0x{private key4}', '0x{private key5}', '0x{private key6}' ]]
caver.wallet.keyring.create
caver.wallet.keyring.create(address, key)
创建一个带参数的 Keyring 实例。
如果 key
是私钥字符串,则会创建一个使用单个私钥的 SingleKeyring 实例。 如果 key
是一个包含私钥字符串的数组,则会创建一个使用多个私钥的 MultipleKeyring 实例。 如果 key
是一个二维数组,其中每个元素都包含每个角色要使用的私钥,则会创建一个 RoleBasedKeyring 实例。
参数
名称 | 类型 | 描述 |
---|---|---|
address | string | keyring 地址。 |
key | string \ | Array |
返回价值
类型 | 说明 |
---|---|
Keyring | 返回 Keyring 实例。 根据key 参数的不同,可以是[SingleKeyring](#singlekeyring)、[MultipleKeyring](#multiplekeyring)或[RoleBasedKeyring](#rolebasedkeyring)。 |
示例
// Create singleKeyring which uses one private key> caver.wallet.keyring.create('0x{address in hex}', '0x{private key}')SingleKeyring { _address: '0x30fcfa9679c7141a234c1324c7e0a8b715bdfc90', _key: PrivateKey { _privateKey: '0x{private key}' }}// Create multipleKeyring which uses multiple private keys> caver.wallet.keyring.create('0x{address in hex}', ['0x{private key1}', '0x{private key2}'])MultipleKeyring { _address: '0x30fcfa9679c7141a234c1324c7e0a8b715bdfc90', _keys: [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ]}// Create roleBasedKeyring which uses different private key(s) by roles> const roleBasedKeys = [ ['0x{private key1}', '0x{private key2}'], ['0x{private key3}', '0x{private key4}'], ['0x{private key5}', '0x{private key6}'],]> caver.wallet.keyring.create('0x{address in hex}', roleBasedKeys)RoleBasedKeyring { _address: '0x30fcfa9679c7141a234c1324c7e0a8b715bdfc90', _keys: [ [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ], [ PrivateKey { _privateKey: '0x{private key3}' }, PrivateKey { _privateKey: '0x{private key4}' } ], [ PrivateKey { _privateKey: '0x{private key5}' }, PrivateKey { _privateKey: '0x{private key6}' } ] ]}
caver.wallet.keyring.createFromPrivateKey
caver.wallet.keyring.createFromPrivateKey(key)
从私钥字符串或 KlaytnWalletKey 创建一个 SingleKeyring
实例。
参数
名称 | 类型 | 说明 |
---|---|---|
key | string | 该参数可以是私钥或 [KlaytnWalletKey](.../.../.../.../.../learn/accounts.md#klaytn-wallet-key-format)。 |
返回价值
类型 | 说明 |
---|---|
SingleKeyring | 返回 SingleKeyring 实例。 |
示例
// Create singleKeyring from private key string> caver.wallet.keyring.createFromPrivateKey('0x{private key}')SingleKeyring { _address: '0xaa7b43f2eab01cfd787b07ce2f2fb5d6d20a8aa0', _key: PrivateKey { _privateKey: '0x{private key}' }}// Create singleKeyring from KlaytnWalletKey> caver.wallet.keyring.createFromPrivateKey('0x{private key}0x{type}0x{address in hex}')SingleKeyring { _address: '0xaa7b43f2eab01cfd787b07ce2f2fb5d6d20a8aa0', _key: PrivateKey { _privateKey: '0x{private key}' }}
caver.wallet.keyring.createFromKlaytnWalletKey
caver.wallet.keyring.createFromKlaytnWalletKey(klaytnWalletKey)
从 KlaytnWalletKey 字符串创建一个 SingleKeyring
实例。
参数
名称 | 类型 | 描述 |
---|---|---|
klaytnWalletKey | string | KlaytnWalletKey](.../.../.../.../.../learn/accounts.md#klaytn-wallet-key-format)字符串。 |
返回价值
类型 | 描述 |
---|---|
SingleKeyring | 返回 SingleKeyring 实例。 |
示例
>caver.wallet.keyring.createFromKlaytnWalletKey('0x{private key}0x{type}0x{address in hex}')SingleKeyring { _address: '0xaa7b43f2eab01cfd787b07ce2f2fb5d6d20a8aa0', _key: PrivateKey { _privateKey: '0x{private key}' }}
caver.wallet.keyring.createWithSingleKey
caver.wallet.keyring.createWithSingleKey(address, key)
根据地址和私钥字符串创建一个 SingleKeyring
实例。
参数
名称 | 类型 | 说明 |
---|---|---|
address | string | 用于创建 keyring 的地址。 |
key | string | 私钥 keyring |
返回价值
类型 | 说明 |
---|---|
SingleKeyring | 返回 SingleKeyring 实例。 |
示例
> caver.wallet.keyring.createWithSingleKey('0x{address in hex}', '0x{private key}')SingleKeyring { _address: '0xaa7b43f2eab01cfd787b07ce2f2fb5d6d20a8aa0', _key: PrivateKey { _privateKey: '0x{private key}' }}
caver.wallet.keyring.createWithMultipleKey
caver.wallet.keyring.createWithMultipleKey(address, key)
根据地址和私钥字符串创建一个 MultipleKeyring
实例。
参数
名称 | 类型 | 描述 |
---|---|---|
address | string | keyring 地址。 |
keyArray | Array | 私钥字符串的数量。 |
返回价值
类型 | 描述 |
---|---|
MultipleKeyring | 返回 MultipleKeyring 实例。 |
示例
> caver.wallet.keyring.createWithMultipleKey('0x{address in hex}', ['0x{private key1}', '0x{private key2}' ])MultipleKeyring { _address: '0x30fcfa9679c7141a234c1324c7e0a8b715bdfc90', _keys: [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ]}
caver.wallet.keyring.createWithRoleBasedKey
caver.wallet.keyring.createWithRoleBasedKey(address, roledBasedKeyArray)
通过地址和二维数组创建一个 RoleBasedKeyring
实例,其中每个数组元素都包含为每个 role 定义的键。
参数
名称 | 类型 | 描述 |
---|---|---|
address | string | keyring 地址。 |
roledBasedKeyArray | Array | 二维数组,包含每个角色的私钥字符串数组。 |
返回价值
类型 | 说明 |
---|---|
RoleBasedKeyring | 返回 RoleBasedKeyring 实例。 |
示例
> const roleBasedKeys = [ ['0x{private key1}', '0x{private key2}'], ['0x{private key3}', '0x{private key4}'], ['0x{private key5}', '0x{private key6}'],]> caver.wallet.keyring.createWithRoleBasedKey('0x{address in hex}', roleBasedKeys)RoleBasedKeyring { _address: '0x30fcfa9679c7141a234c1324c7e0a8b715bdfc90', _keys: [ [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ], [ PrivateKey { _privateKey: '0x{private key3}' }, PrivateKey { _privateKey: '0x{private key4}' } ], [ PrivateKey { _privateKey: '0x{private key5}' }, PrivateKey { _privateKey: '0x{private key6}' } ] ]}
caver.wallet.keyring.decrypt
caver.wallet.keyring.decrypt(keystore, password)
解密密钥存储 v3 或 v4 JSON 并返回解密后的 Keyring 实例。
参数
名称 | 类型 | 描述 |
---|---|---|
keystore | object | 要解密的密钥存储 v3 或 v4。 |
password | string | 用于加密的密码。 |
返回价值
类型 | 描述 |
---|---|
Keyring | 解密后的密钥 环实例(SingleKeyring、MultipleKeyring 或 RoleBasedKeyring)。 |
示例
// Decrypt keystroe v4 (encrypted single keyring)> caver.wallet.keyring.decrypt({ version: 4, id: '9c12de05-0153-41c7-a8b7-849472eb5de7', address: '0xc02cec4d0346bf4124deeb55c5216a4138a40a8c', keyring: [ { ciphertext: 'eacf496cea5e80eca291251b3743bf93cdbcf7072efc3a74efeaf518e2796b15', cipherparams: { iv: 'd688a4319342e872cefcf51aef3ec2da' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: 'c3cee502c7157e0faa42386c6d666116ffcdf093c345166c502e23bc34e6ba40', n: 4096, r: 8, p: 1 }, mac: '4b49574f3d3356fa0d04f73e07d5a2a6bbfdd185bedfa31f37f347bc98f2ef26' } ]}, 'password')SingleKeyring { _address: '0xc02cec4d0346bf4124deeb55c5216a4138a40a8c', _key: PrivateKey { _privateKey: '0x{private key}' }}// Decrypt keystroe v4 (encrypted multiple keyring)> caver.wallet.keyring.decrypt({ version: 4, id: '55da3f9c-6444-4fc1-abfa-f2eabfc57501', address: '0x86bce8c859f5f304aa30adb89f2f7b6ee5a0d6e2', keyring: [ { ciphertext: '93dd2c777abd9b80a0be8e1eb9739cbf27c127621a5d3f81e7779e47d3bb22f6', cipherparams: { iv: '84f90907f3f54f53d19cbd6ae1496b86' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: '69bf176a136c67a39d131912fb1e0ada4be0ed9f882448e1557b5c4233006e10', n: 4096, r: 8, p: 1, }, mac: '8f6d1d234f4a87162cf3de0c7fb1d4a8421cd8f5a97b86b1a8e576ffc1eb52d2', }, { ciphertext: '53d50b4e86b550b26919d9b8cea762cd3c637dfe4f2a0f18995d3401ead839a6', cipherparams: { iv: 'd7a6f63558996a9f99e7daabd289aa2c' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: '966116898d90c3e53ea09e4850a71e16df9533c1f9e1b2e1a9edec781e1ad44f', n: 4096, r: 8, p: 1, }, mac: 'bca7125e17565c672a110ace9a25755847d42b81aa7df4bb8f5ce01ef7213295', }, ],}, 'password')MultipleKeyring { _address: '0x86bce8c859f5f304aa30adb89f2f7b6ee5a0d6e2', _keys: [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ]}// Decrypt keystroe v4 (encrypted role-based keyring)> caver.wallet.keyring.decrypt({ version: 4, id: '55da3f9c-6444-4fc1-abfa-f2eabfc57501', address: '0x86bce8c859f5f304aa30adb89f2f7b6ee5a0d6e2', keyring: [ [ { ciphertext: '93dd2c777abd9b80a0be8e1eb9739cbf27c127621a5d3f81e7779e47d3bb22f6', cipherparams: { iv: '84f90907f3f54f53d19cbd6ae1496b86' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: '69bf176a136c67a39d131912fb1e0ada4be0ed9f882448e1557b5c4233006e10', n: 4096, r: 8, p: 1, }, mac: '8f6d1d234f4a87162cf3de0c7fb1d4a8421cd8f5a97b86b1a8e576ffc1eb52d2', }, { ciphertext: '53d50b4e86b550b26919d9b8cea762cd3c637dfe4f2a0f18995d3401ead839a6', cipherparams: { iv: 'd7a6f63558996a9f99e7daabd289aa2c' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: '966116898d90c3e53ea09e4850a71e16df9533c1f9e1b2e1a9edec781e1ad44f', n: 4096, r: 8, p: 1, }, mac: 'bca7125e17565c672a110ace9a25755847d42b81aa7df4bb8f5ce01ef7213295', }, ], [ { ciphertext: 'f16def98a70bb2dae053f791882f3254c66d63416633b8d91c2848893e7876ce', cipherparams: { iv: 'f5006128a4c53bc02cada64d095c15cf' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: '0d8a2f71f79c4880e43ff0795f6841a24cb18838b3ca8ecaeb0cda72da9a72ce', n: 4096, r: 8, p: 1, }, mac: '38b79276c3805b9d2ff5fbabf1b9d4ead295151b95401c1e54aed782502fc90a', }, ], [ { ciphertext: '544dbcc327942a6a52ad6a7d537e4459506afc700a6da4e8edebd62fb3dd55ee', cipherparams: { iv: '05dd5d25ad6426e026818b6fa9b25818' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: '3a9003c1527f65c772c54c6056a38b0048c2e2d58dc0e584a1d867f2039a25aa', n: 4096, r: 8, p: 1, }, mac: '19a698b51409cc9ac22d63d329b1201af3c89a04a1faea3111eec4ca97f2e00f', }, { ciphertext: 'dd6b920f02cbcf5998ed205f8867ddbd9b6b088add8dfe1774a9fda29ff3920b', cipherparams: { iv: 'ac04c0f4559dad80dc86c975d1ef7067' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: '22279c6dbcc706d7daa120022a236cfe149496dca8232b0f8159d1df999569d6', n: 4096, r: 8, p: 1, }, mac: '1c54f7378fa279a49a2f790a0adb683defad8535a21bdf2f3dadc48a7bddf517', }, ], ],}, 'password')RoleBasedKeyring { _address: '0x86bce8c859f5f304aa30adb89f2f7b6ee5a0d6e2', _keys: [ [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ], [ PrivateKey { _privateKey: '0x{private key3}' } ], [ PrivateKey { _privateKey: '0x{private key4}' }, PrivateKey { _privateKey: '0x{private key5}' } ] ]}// Decrypt keystroe v3 JSON> caver.wallet.keyring.decrypt({ version: 3, id: '43f99d36-3905-40e6-bff8-ff0dfc380037', address: '0xc02cec4d0346bf4124deeb55c5216a4138a40a8c', crypto: { ciphertext: 'f7296e68807837a5318502c097276a89d58d91b85e45e692aee284a27bcd0955', cipherparams: { iv: '03fd985d07777601078840c73cc6f7f3' }, cipher: 'aes-128-ctr', kdf: 'scrypt', kdfparams: { dklen: 32, salt: '46f85271c43fa64ab3338c5235f1d5073bc9379d9b7ba6065c89afb816d83a8a', n: 4096, r: 8, p: 1 }, mac: '947f13cd1481fa5ba186e59418ef7600fa69e9830054d59e4d5dc67176e1f967' }}, 'password')SingleKeyring { _address: '0xc02cec4d0346bf4124deeb55c5216a4138a40a8c', _key: PrivateKey { _privateKey: '0x{private key}' }}
keyring.getPublicKey
keyring.getPublicKey()
返回公钥字符串。 如果 keyring
是 SingleKeyring 的实例,则 getPublicKey 返回公钥字符串。 如果 keyring
是 MultipleKeyring 的实例,则 getPublicKey 返回公钥字符串数组。 如果 keyring
是 RoleBasedKeyring 的实例,getPublicKey 返回一个二维数组,其中每个角色使用的公钥都被定义为数组。
参数
名称 | 类型 | 描述 |
---|---|---|
compressed | boolean | (可选)是否采用压缩格式(默认:false )。 |
返回价值
类型 | 描述 |
---|---|
string \ | Array |
示例
// Get public key with singleKeyring> keyring.getPublicKey()'0x49b2a...'// Get public key with multipleKeyring> keyring.getPublicKey()[ '0x65b51...', '0x8d85c...' ]// Get public key with roleBasedKeyring> keyring.getPublicKey()[ [ '0x2d939...', '0x6beb4...', '0xd8f2f...' ], [ '0xf09cd...', '0x96a63...', '0x02000...' ], [ '0xc2d33...', '0x3088f...', '0xab193...' ]]
keyring.copy
keyring.copy()
返回复制的 keyring 实例。
返回价值
类型 | 说明 |
---|---|
Keyring | 复制的密钥环实例(SingleKeyring、MultipleKeyring 或 RoleBasedKeyring )。 |
示例
// When keyring is an instance of SingleKeyring> keyring.copy()SingleKeyring { _address: '0x30fcfa9679c7141a234c1324c7e0a8b715bdfc90', _key: PrivateKey { _privateKey: '0x{private key}' }}// When keyring is an instance of MultipleKeyring> keyring.copy()MultipleKeyring { _address: '0x30fcfa9679c7141a234c1324c7e0a8b715bdfc90', _keys: [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ]}// When keyring is an instance of RoleBasedKeyring> keyring.copy()RoleBasedKeyring { _address: '0x30fcfa9679c7141a234c1324c7e0a8b715bdfc90', _keys: [ [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ], [ PrivateKey { _privateKey: '0x{private key3}' }, PrivateKey { _privateKey: '0x{private key4}' } ], [ PrivateKey { _privateKey: '0x{private key5}' }, PrivateKey { _privateKey: '0x{private key6}' } ] ]}
keyring.sign
keyring.sign(transactionHash, chainId, role [, index])
用私钥与 transactionHash 签名,并返回签名。 如果用户未定义 "索引",则 "keyring.sign "会使用角色使用的所有私钥签署交易。 如果定义了 "index",则 "keyring.sign "只使用索引处的一个私钥来签署事务。 可以通过 caver.wallet.keyring.role
检查 caver-js 中使用的角色。
签署交易时,建议使用caver.wallet.sign或transaction.sign。
参数
名称 | 类型 | 描述 |
---|---|---|
transactionHash | string | 要签名的交易哈希字符串。 |
chainId | string \ | number |
role | number | 表示钥匙作用的数字。 您可以使用 caver.wallet.keyring.role 。 |
index | number | (可选)要使用的私人密钥的索引。 索引必须小于为每个角色定义的私钥数组的长度。 如果没有定义索引,该方法将使用所有私钥。 |
返回价值
类型 | 描述 |
---|---|
Array | [SignatureData](#signaturedata)的数组。 |