caver.wallet
caver.wallet "是一个在内存钱包中管理Keyring实例的软件包。 caver.wallet
accepts all SingleKeyring, MultipleKeyring, and RoleBasedKeyring, and manages them by address.
Class
KeyringContainer
caver.wallet
KeyringContainer "是一个管理SingleKeyring、MultipleKeyring和RoleBasedKeyring实例的类。 当 Caver 实例化时,它会在 caver.wallet
中创建一个 KeyringContainer 实例。 您可以通过 caver.wallet
在内存钱包中存储和管理钥匙实例。
属性
名称 | 类型 | 描述 |
---|---|---|
length | number | keyringContainer 中keyrings的数量。 |
caver.wallet.generate
caver.wallet.generate(numberOfKeyrings [, entropy])
在 keyringContainer 中生成带有随机生成的私钥的 SingleKeyring 实例。
参数
名称 | 类型 | 描述 |
---|---|---|
numberOfKeyrings | number | 要创建的 SingleKeyring 实例的数量。 |
entropy | string | (可选)用于增加熵的随机字符串。 |
返回价值
类型 | 描述 |
---|---|
Array | 包含已生成地址的数组。 |
举例
// generate without entropy> caver.wallet.generate(3)[ '0xb4b0c3781082cf818bfaf5adfc73fdf59d92c1cd', '0x9957dfd92e4b70f91131c573293343bc5f21f215', '0xed2fe179c18fa528da2392532998560bd1008511']// generate with entropy> caver.wallet.generate(3, caver.utils.randomHex(32))[ '0xb4b0c3781082cf818bfaf5adfc73fdf59d92c1cd', '0x9957dfd92e4b70f91131c573293343bc5f21f215', '0xed2fe179c18fa528da2392532998560bd1008511']
caver.wallet.newKeyring
caver.wallet.newKeyring(address, key)
使用给定参数创建钥匙 圈实例,并将其添加到 caver.wallet
中。
如果 key
是私钥字符串,则会创建一个使用单个私钥的 SingleKeyring 实例。 如果 key
是一个包含私钥字符串的数组,则会创建一个使用多个私钥的 MultipleKeyring 实例。 如果 key
是一个二维数组,其中每个元素都包含每个角色要使用的私钥,则会创建一个 RoleBasedKeyring 实例。 创建的keyring会添加到 caver.wallet
。
参数
名称 | 类型 | 描述 |
---|---|---|
address | string | 地址字符串。 |
key | string \ | Array |
返回价值
类型 | 描述 |
---|---|
object | 返回添加到 caver.wallet 的 keyring 实例(SingleKeyring、MultipleKeyring 或 RoleBasedKeyring )。 |
示例
// Create a instance of SingleKeyring and add to caver.wallet> caver.wallet.newKeyring('0x{address in hex}', '0x{private key}')SingleKeyring { _address: '0x386a4bb40abbfaa59cecdc3ced202475895fd569', _key: PrivateKey { _privateKey: '0x{private key}' }}// Create a instance of MultipleKeyring and add to caver.wallet> caver.wallet.newKeyring('0x{address in hex}', ['0x{private key1}', '0x{private key2}'])MultipleKeyring { _address: '0x17e7531b40ad5d7b5fa7b4ec78df64ce1cb36d24', _keys: [ PrivateKey { _privateKey: '0x{private key1}' }, PrivateKey { _privateKey: '0x{private key2}' } ]}// Create a instance of RoleBasedKeyring and add to caver.wallet> const roleBasedKeys = [ ['0x{private key1}', '0x{private key2}'], ['0x{private key3}', '0x{private key4}'], ['0x{private key5}', '0x{private key6}'],]> caver.wallet.newKeyring('0x{address in hex}', roleBasedKeys)RoleBasedKeyring { _address: '0xe7e9184c125020af5d34eab7848bab799a1dcba9', _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.updateKeyring
caver.wallet.updateKeyring(keyring)
更新 caver.wallet
中的 keyring。 当一个新的 keyring
实例(SingleKeyring、MultipleKeyring 或 RoleBasedKeyring 被作为参数传递时,存储在 caver.wallet
中与给定的 keyring
实例的 address
属性相匹配的现有密钥环将被找到并替换为给定的密钥环。 如果找不到匹配的 keyring,则会出现错误。
参数
名称 | 类型 | 描述 |
---|---|---|
keyring | object | 要存储在 caver.wallet 中的新 keyring(SingleKeyring、MultipleKeyring 或 RoleBasedKeyring )。 |
返回价值
类型 | 描述 |
---|---|
object | 存储在caver.wallet 中的已更新 keyring(SingleKeyring、MultipleKeyring 或 RoleBasedKeyring )。 |
示例
> caver.wallet.updateKeyring(newKeyring)SingleKeyring { _address: '0x386a4bb40abbfaa59cecdc3ced202475895fd569', _key: PrivateKey { _privateKey: '0x{private key}' }}