跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)

caver.account

caver.account "是一个提供与 "账户 "相关功能的软件包,在更新账户时使用。

类别

账户


const account = new caver.account(address, accountKey)

账户 "是一个包含更新 kaia 区块链平台(kaia)中账户的AccountKey所需的信息的类。 这是 caver.account 软件包的默认类。 要使用公钥字符串创建账户实例,请参考 caver.account.create

属性

名称类型描述
地址字符串要更新的账户地址。
帐户密钥对象账户中要使用的新账户密钥。 An object defines keyType and key inside or an instance of AccountKey (AccountKeyLegacy, AccountKeyPublic, AccountKeyFailAccountKeyWeightedMultiSigAccountKeyRoleBased)。 执行交易时,存储在 kaia 中的账户的 accountKey 会更改为此值。

账户密钥


const accountKeyLegacy = new caver.account.accountKey.accountKeyLegacy()

AccountKeyLegacy` 用于更新 kaia 中具有 AccountKeyLegacy 的账户的 AccountKey。 要创建具有 "账户密钥合法性 "的账户实例,请参考 caver.account.createWithAccountKeyLegacy

公共账户密钥


const accountKeyPublic = new caver.account.accountKey.accountKeyPublic(publicKey)

AccountKeyPublic "用于用AccountKeyPublic更新 kaia 中账户的 AccountKey。 将 AccountKey 更新为 "AccountKeyPublic",就可以将现有的 AccountKey 变为新的公钥,该公钥将用于在 kaia 中验证交易。 在将私人密钥与账户地址分离时,这一更改是必要的。 详见 AccountUpdateAccountKey

要创建带有 "AccountKeyPublic "的账户实例,请参考 caver.account.createcaver.account.createWithAccountKeyPublic

属性

名称类型描述
公钥字符串公钥字符串。

AccountUpdate


const accountKeyFail = new caver.account.accountKey.accountKeyFail()

AccountKeyFail "用于以AccountKeyFail更新 kaia 中账户的 AccountKey。 要创建带有 "AccountKeyFail "的账户实例,请参阅 caver.account.createWithAccountKeyFail

账户密钥加权多重加密


const accountKeyWeightedMultiSig = new caver.account.accountKey.accountKeyWeightedMultiSig(threshold, weightedPublicKeys)

AccountKeyWeightedMultiSig "用于使用AccountKeyWeightedMultiSig更新 kaia 中账户的 AccountKey。 将您的 AccountKey 更新为 "AccountKeyWeightedMultiSig "后,您就可以将现有的 AccountKey 更改为新的公钥,该公钥将用于验证 kaia 中的交易。 在将私人密钥与账户地址分离时,这一更改是必要的。 详见 AccountUpdateAccountKey

要使用 "AccountKeyWeightedMultiSig "创建账户实例,请参考 caver.account.createcaver.account.createWithAccountKeyWeightedMultiSig

属性

名称类型描述
阈值数量验证阈值。
加权公钥数组加权公钥]数组。

基于账户密钥角色


const accountKeyRoleBased = new caver.account.accountKey.accountKeyRoleBased(accountKeyArray)

AccountKeyRoleBased "用于使用AccountKeyRoleBased更新 kaia 中账户的 AccountKey。 通过将 AccountKey 更新为 "基于角色的 AccountKey",您可以更改为每个角色分配的 AccountKey,所有这些 AccountKey 都用于在 kaia 中验证交易。 详见 AccountUpdateAccountKey

要创建基于 "账户密钥角色 "的账户实例,请参考 caver.account.createcaver.account.createWithAccountKeyRoleBased

属性

名称类型描述
帐户密钥数组数组定义每个 role 使用的 accountKey 的数组。 每个角色都可以用 AccountKeyLegacyAccountKeyPublicAccountKeyFailAccountKeyWeightedMultiSig 来定义。

加权公钥


const weightedPublicKey = new caver.account.accountKey.weightedPublicKey(weight, publicKey)

加权公钥 "包含一个公钥及其权重。 加权公钥 "是一个包含公钥和公钥权重的类,在 AccountKeyWeightedMultiSig 中使用。

属性

名称类型描述
权重数量公开密钥的权重。 权重用于检查公钥的加权总和是否大于 AccountKeyWeightedMultiSig 对象的阈值。
公钥字符串私钥字符串。

加权多重加密选项


const weightedMultiSigOptions = new caver.account.weightedMultiSigOptions(threshold, weights)

加权多重签名选项 "包含阈值和权重。 WeightedMultiSigOptions "是一个用于定义 AccountKeyWeightedMultiSig 选项的类。

属性

名称类型描述
阀值数量验证阈值。
权重数组键值权重数组。

caver.account.create


caver.account.create(address, accountKey [, options])

生成一个带有地址和 accountKey 的账户实例。

如果 accountKey 是公钥字符串,则会创建一个以 AccountKeyPublic 作为 accountKey 的账户实例。 如果 accountKey 是一个包含公钥字符串的数组,则会创建一个以 AccountKeyWeightedMultiSig 作为 accountKey 的账户实例。 如果最后一个参数没有定义选项,则使用默认选项创建,阈值为 1,每个键的权重为 1。 如果 accountKey 是一个数组,其中包含用于每个角色的 accountKeys,则会创建一个具有 AccountKeyRoleBased 的 Account 实例。 必须使用 WeightedMultiSigOptions 为每个角色定义选项。 如果未定义选项,则会对使用多个公钥的角色使用默认选项。 请参考下面的示例了解如何使用。

参数

名称类型描述
地址字符串要更新的账户地址。
帐户密钥字符串公钥字符串、公钥数组或二维数组,其中每个元素都包含用于每个角色的密钥数组。
选项WeightedMultiSigOptions \Array

返回价值

类型描述
[账户]返回账户实例。

示例


// Create an Account instance with a public key string -> Account with AccountKeyPublic
> caver.account.create('0x{address in hex}', '0x034f1...')
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey: AccountKeyPublic { _publicKey: '0x034f1...' }
}
// Create an Account instance with an array of public keys -> Account with AccountKeyWeightedMultiSig
> caver.account.create('0x{address in hex}', ['0x034f1...', '0xfe4b8...'])
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey:
AccountKeyWeightedMultiSig {
_threshold: 1,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0x034f1...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xfe4b8...' }
]
}
}
// Create an Account instance with an array of public keys with WeightedMultiSigOptions -> Account with AccountKeyWeightedMultiSig
> const options = new caver.account.weightedMultiSigOptions(2, [1, 1])
> caver.account.create('0x{address in hex}', ['0x034f1...', '0xfe4b8...'], options)
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey:
AccountKeyWeightedMultiSig {
_threshold: 2,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0x034f1...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xfe4b8...' }
]
}
}
// Create an Account instance with an array in which keys to be used for each role are defined as an array -> Account with AccountKeyRoleBased
> const publicKeys = [
['0xd8510...', '0xaa105...'],
['0xd8510...'],
['0xd8510...', '0xceeee...']
]
> caver.account.create('0x{address in hex}', publicKeys)
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey:
AccountKeyRoleBased {
_accountKeys: [
AccountKeyWeightedMultiSig {
_threshold: 1,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0xd8510...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xaa105...' }
]
},
AccountKeyPublic { _publicKey: '0xd8510...' },
AccountKeyWeightedMultiSig {
_threshold: 1,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0xd8510...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xceeee...' }
]
}
]
}
}
// Create an Account instance with an array in which keys to be used for each role are defined as an array with an array of WeightedMultiSigOptions -> Account with AccountKeyRoleBased
> const publicKeys = [
['0xd8510...', '0xaa105...'],
['0xd8510...'],
['0xd8510...', '0xceeee...']
]
> const options = [
new caver.account.weightedMultiSigOptions(2, [1, 1]),
new caver.account.weightedMultiSigOptions(),
new caver.account.weightedMultiSigOptions(3, [1, 2])
]
> caver.account.create('0x{address in hex}', publicKeys, options)
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey:
AccountKeyRoleBased {
_accountKeys: [
AccountKeyWeightedMultiSig {
_threshold: 2,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0xd8510...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xaa105...' }
]
},
AccountKeyPublic { _publicKey: '0xd8510...' },
AccountKeyWeightedMultiSig {
_threshold: 3,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0xd8510...' },
WeightedPublicKey { _weight: 2, _publicKey: '0xceeee...' }
]
}
]
}
}

caver.account.createFromRLPEncoding


caver.account.createFromRLPEncoding(address, rlpEncodedKey)

根据 RLP 编码的 AccountKey 创建账户实例。

参数

名称类型描述
地址字符串要更新的账户地址。
rlpEncodedKey字符串AccountKey 的 RLP 编码字符串。

返回价值

类型描述
[账户]返回账户实例。

示例


> caver.account.createFromRLPEncoding('0x{address in hex}'、'0x04f84b02f848e301a102c10b598a1a3ba252acc21349d61c2fbd9bc8c15c50a5599f420cccc3291f9bf9e301a1021769a9196f523c419be50c26419ebbec34d3d6aa8b59da834212f13dbec9a9c1')
Account {
_address:'0x9ea5b871e7bef65868a0d278be3fc6cdbee543ee',
_accountKey:
AccountKeyWeightedMultiSig {
_threshold: 2,
_weightedPublicKeys:[
WeightedPublicKey { _weight: 1, _publicKey: '0x02c10...' },
WeightedPublicKey { _weight: 1, _publicKey: '0x02176...' }
]。
}
}

caver.account.createWithAccountKeyLegacy


caver.account.createWithAccountKeyLegacy(address)

创建一个以 AccountKeyLegacy 作为 AccountKey 的账户实例。

参数

名称类型描述
地址字符串要更新的账户地址。

返回价值

类型描述
[帐户]返回账户实例。

示例


> caver.account.createWithAccountKeyLegacy('0x{address in hex}')
Account {
_address:'0x9ea5b871e7bef65868a0d278be3fc6cdbee543ee',
_accountKey:AccountKeyLegacy {}
}

caver.account.createWithAccountKeyPublic


caver.account.createWithAccountKeyPublic(address, publicKey)

创建一个以 AccountKeyPublic 作为 AccountKey 的账户实例。

参数

名称类型描述
地址字符串要更新的账户地址。
公钥字符串公钥字符串。

返回价值

类型描述
[帐户]返回账户实例。

示例


> caver.account.createWithAccountKeyPublic('0x{address in hex}', '0xb5a9a...')
Account {
_address:'0x9ea5b871e7bef65868a0d278be3fc6cdbee543ee',
_accountKey:AccountKeyPublic { _publicKey: ,'0xb5a9a...' }
}

caver.account.createWithAccountKeyFail


caver.account.createWithAccountKeyFail(address)

创建一个 AccountKeyFail 作为 AccountKey 的 Account 实例。

参数

名称类型描述
地址字符串要更新的账户地址。

返回价值

类型描述
[账户]返回账户实例。

示例


> caver.account.createWithAccountKeyFail('0x{address in hex}')
Account {
_address:'0x9ea5b871e7bef65868a0d278be3fc6cdbee543ee',
_accountKey:AccountKeyFail {}
}

caver.account.createWithAccountKeyWeightedMultiSig


caver.account.createWithAccountKeyWeightedMultiSig(address, publicKeyArray [, options])

创建账户实例,该实例的账户密钥为 AccountKeyWeightedMultiSig。

参数

名称类型描述
地址字符串要更新的账户地址。
公钥数组数组包含多个公钥字符串的数组。
选项[加权多重加密选项](可选)定义阈值和权重数组的 WeightedMultiSigOptions 实例。

返回价值

类型描述
[帐户]返回账户实例。

示例


// create an Account instance without options
> caver.account.createWithAccountKeyWeightedMultiSig('0x{address in hex}', ['0xb5a9a...', '0xfe4b8...'])
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey:
AccountKeyWeightedMultiSig {
_threshold: 1,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0xb5a9a...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xfe4b8...' }
]
}
}
// create an Account instance with options
> const options = new caver.account.weightedMultiSigOptions(2, [1, 1])
> caver.account.createWithAccountKeyWeightedMultiSig('0x{address in hex}', ['0xb5a9a...', '0xfe4b8...'], options)
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey:
AccountKeyWeightedMultiSig {
_threshold: 2,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0xb5a9a...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xfe4b8...' }
]
}
}

caver.account.createWithAccountKeyRoleBased


caver.account.createWithAccountKeyRoleBased(address, roledBasedPublicKeyArray [, options])

创建一个 AccountKeyRoleBased 作为 AccountKey 的 Account 实例。

参数

名称类型描述
地址字符串要更新的账户地址。
公钥数组数组二维数组,包含每个角色的公钥字符串数组。
选项数组(可选)包含每个角色的 WeightedMultiSigOptions 实例的数组。

返回价值

类型描述
[账户]返回账户实例。

示例


// create an Account instance without options
> const publicKeys = [
['0x034f1...', '0xfe4b8...'],
['0xb5a9a...'],
['0x034f1...', '0xb5a9a...']
]
> caver.account.createWithAccountKeyRoleBased('0x{address in hex}', publicKeys)
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey:
AccountKeyRoleBased {
_accountKeys: [
AccountKeyWeightedMultiSig {
_threshold: 1,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0x034f1...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xfe4b8...' }
]
},
AccountKeyPublic { _publicKey: '0xb5a9a...' },
AccountKeyWeightedMultiSig {
_threshold: 1,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0x034f1...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xb5a9a...' }
]
}
]
}
}
// create an Account instance with options
> const publicKeys = [
['0x034f1...', '0xfe4b8...'],
['0xb5a9a...'],
['0x034f1...', '0xb5a9a...']
]
> const options = [
new caver.account.weightedMultiSigOptions(2, [1, 1]),
new caver.account.weightedMultiSigOptions(),
new caver.account.weightedMultiSigOptions(3, [1, 2])
]
> caver.account.createWithAccountKeyRoleBased('0x{address in hex}', publicKeys, options)
Account {
_address: '0xc771822ad361898a330df0169f2382ee92f6286d',
_accountKey:
AccountKeyRoleBased {
_accountKeys: [
AccountKeyWeightedMultiSig {
_threshold: 2,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0x034f1...' },
WeightedPublicKey { _weight: 1, _publicKey: '0xfe4b8...' }
]
},
AccountKeyPublic { _publicKey: '0xb5a9a...' },
AccountKeyWeightedMultiSig {
_threshold: 3,
_weightedPublicKeys: [
WeightedPublicKey { _weight: 1, _publicKey: '0x034f1...' },
WeightedPublicKey { _weight: 2, _publicKey: '0xb5a9a...' }
]
}
]
}
}

caver.account.accountKey.decode


caver.account.accountKey.decode(rlpEncodedAccountKey)

An object defines keyType and key inside or an instance of AccountKey (AccountKeyLegacy, AccountKeyPublic, AccountKeyFailAccountKeyWeightedMultiSigAccountKeyRoleBased)。

参数

名称类型描述
rlpEncodedAccountKey字符串账户密钥的 RLP 编码字符串。

返回价值

类型描述
AccountKeyLegacy \AccountKeyPublic \

示例


> caver.account.accountKey.decode('0x02a102c10b598a1a3ba252acc21349d61c2fbd9bc8c15c50a5599f420cccc3291f9bf9')
AccountKeyPublic { _publicKey: '0x02c10b598a1a3ba252acc21349d61c2fbd9bc8c15c50a5599f420cccc3291f9bf9' }

account.getRLPEncodingAccountKey


account.getRLPEncodingAccountKey()

返回 AccountKey 的 RLP 编码字符串。

返回价值

类型描述
字符串账户密钥的 RLP 编码字符串。

示例


> const account = caver.account.create('0x{address in hWeightedMultiSigOptionsex}', '0x034f1...')
> account.getRLPEncodingAccountKey()
'0x02a102d851040f46d61a042a787cca34ad12bc43e51f01ad0b22270cfc25c15c4b4e22'

让这个页面变得更好