youchain-you-personal
youchain.you.personal 这个模块可以管理 youchain 上的节点账户。
newAccount
描述:在网络节点通过 RPC 方法创建一个账户
注意:尽量避免使用不安全的 Websocket 或 HTTP 连接传送数据,以保证密码安全。
参数值:password - String 账户的加密密码
返回值:Promise
youchain.you.personal.newAccount(password, [callback])
示例:
youchain.you.personal.newAccount('!@superpassword').then(console.log);
> '0x1234567891011121314151617181920212223456'
sign
描述:用一个特定账户签名数据
注意:通过非安全的 HTTP RPC 连接发送密码极为不安全。
参数值:
- String 需要签名的数据
- String 签名账户地址
- String 签名账户密码
- Callback 可选项,返回失败作为第一个参数,结果为第二个参数
返回值:Promise
youchain.you.personal.sign(dataToSign, address, password [, callback])
示例:
youchain.you.personal.sign("Hello world", "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", "test password!")
.then(console.log);
>"0x30755ed65396facf86c53e6217c52b4daebe72aa4941d89635409de4c9c7f9466d4e9aaec7977f05e923889b33c0d0dd27d7226b6e6f56ce737465c5cfd04be400"
ecRecover
描述:用一个特定账户签名数据
注意: "通过非安全的 HTTP RPC 连接发送密码极为不安全。
参数值:
- String - 签名后的数据
- String - 签名账户密码
- Callback - 可选参数,失败返回作为第一个参数,结果为第二个参数
返回值:Promise
youchain.you.personal.ecRecover(dataThatWasSigned, signature [, callback])
示例:
youchain.you.personal.ecRecover("Hello world", "0x30755ed65396facf86c53e6217c52b4daebe72aa4941d89635409de4c9c7f9466d4e9aaec7977f05e923889b33c0d0dd27d7226b6e6f56ce737465c5cfd04be400")
.then(console.log);
> "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe"
signTransaction
描述:签名交易
注意:通过非安全的 HTTP RPC 连接发送密码极为不安全。
参数值:
- Object 交易对象
- String 交易发出账户的密码
- Callback 可选项,失败返回作为第一个参数,结果为第二个参数
返回值:Promise
youchain.you.personal.signTransaction(transaction, password [, callback])
示例:
youchain.you.personal.signTransaction({
from: "0xEB014f8c8B418Db6b45774c326A0E64C78914dC0",
gasPrice: "20000000000",
gas: "21000",
to: '0x3535353535353535353535353535353535353535',
value: "1000000000000000000",
data: ""
}, 'MyPassword!').then(console.log);
> {
raw: '0xf86c808504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a04f4c17305743700648bc4f6cd3038ec6f6af0df73e31757007b7f59df7bee88da07e1941b264348e80c78c4027afc65a87b0a5e43e86742b8ca0823584c6788fd0',
tx: {
nonce: '0x0',
gasPrice: '0x4a817c800',
gas: '0x5208',
to: '0x3535353535353535353535353535353535353535',
value: '0xde0b6b3a7640000',
input: '0x',
v: '0x25',
r: '0x4f4c17305743700648bc4f6cd3038ec6f6af0df73e31757007b7f59df7bee88d',
s: '0x7e1941b264348e80c78c4027afc65a87b0a5e43e86742b8ca0823584c6788fd0',
hash: '0xda3be87732110de6c1354c83770aae630ede9ac308d9f7b399ecfba23d923384'
}
}
sendTransaction
描述:发送交易
注意:通过非安全的 HTTP RPC 连接发送密码极为不安全。
参数值:
- Object - 交易数据
- String - 当前账户的密码
- Callback - 可选参数,失败返回作为第一个参数,结果为第二个参数
返回值:Promise
youchain.you.personal.sendTransaction(transactionOptions, password [, callback])
示例:
youchain.you.personal.sendTransaction({
from: "0xEB014f8c8B418Db6b45774c326A0E64C78914dC0",
gasPrice: "20000000000",
gas: "21000",
to: '0x3535353535353535353535353535353535353535',
value: "1000000000000000000",
data: ""
}, 'MyPassword!')
.then(console.log);
> '0xda3be87732110de6c1354c83770aae630ede9ac308d9f7b399ecfba23d923384'
unlockAccount
描述:解锁账户
注意:通过非安全的 HTTP RPC 连接发送密码极为不安全。
参数值:
- address - String 解锁账户地址
- password - String 解锁账户密码
- unlockDuration - Number 解锁时长
- Callback - 可选参数,失败返回作为第一个参数,成功返回作为第二个参数
返回值:Promise
youchain.you.personal.unlockAccount(address, password, unlockDuraction [, callback])
示例:
youchain.you.personal.unlockAccount("0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", "test password!", 600)
.then(console.log('Account unlocked!'));
> "Account unlocked!"
lockAccount
描述:锁定账户
参数值:address - String 解锁账户地址
返回值:Promise
youchain.you.personal.lockAccount(address [, callback])
示例:
youchain.you.personal.lockAccount("0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe")
.then(console.log('Account locked!'));
> "Account locked!"
getAccounts
描述:通过 RPC 方法获取此节点控制的账户
注意:通过非安全的 HTTP RPC 连接发送密码极为不安全。
返回值:Promise
youchain.you.personal.getAccounts([callback])
示例:
youchain.you.personal.getAccounts().then(console.log);
> ["0x9AC3a0641e0C54441e23ee469e34Aa59dD9aBEF1", "0xDCc6960376d6C6dEa93647383FfB245CfCed97Cf"]
importRawKey
描述:通过私钥导入账户
注意:通过非安全的 HTTP RPC 连接发送密码极为不安全。"
参数值:
- privateKey - String 账户的私钥
- password - String 账户的密码
返回值:Promise
youchain.you.personal.importRawKey(privateKey, password)
示例:
youchain.you.personal.importRawKey("cd3376bb711cb332ee3fb2ca04c6a8b9f70c316fcdf7a1f44ef4c7999483295e", "password1234")
.then(console.log);
> "0x8f337bf484b2fc75e4b0436645dcc226ee2ac531"
newValKeyMethod
描述:创建新的验证者并导入密码
参数值
参数名 | 类型 | 描述 |
---|---|---|
password | string | 验证者账户密码 |
返回值
参数名 | 数据类型 | 备注 |
---|---|---|
address | string | 验证者账户地址 |
mainPubKey | string | 共识公钥 |
blsPubKey | number | BLS 公钥 |
示例:
youchain.you.personal.newValKeyMethod("password").then(result => {
console.log('validator address: ', result.address);
console.log('validator mainPubKey: ', result.mainPubKey);
console.log('validator blsPubKey: ', result.blsPubKey);
});
useValKeyMethod
描述:设置本地挖矿所用的密钥。密钥需已在本地存储。参数 keep 为 true 时,记录所用的 key,使得节点重启后能自动进行挖矿。最多只记住一个 validator key!
参数值
参数名 | 数据类型 | 备注 |
---|---|---|
address | string | 验证者账户地址 |
password | string | 初始 valKey 密码 |
keep | bool | 返回 true 时,记录所用的 key,使得节点重启后能自动进行挖矿 |
返回值
数据类型 | 备注 |
---|---|
null | 返回 null,否则返回失败 message 和 code |
示例:
youchain.you.personal.useValKeyMethod("0x627Eb2f317aD57f09bb229942E670d9cb52C260C", "password", true).then(console.log);
lockValKeyMethod
描述:删除本地存储的验证者私钥(如果之前通过 keep 参数记录了明文密钥,也一并删除)
参数值
无
返回值
数据类型 | 备注 |
---|---|
null | 返回 null,否则返回失败 message 和 code |
示例:
youchain.you.personal.lockValKeyMethod().then(console.log);
exportValKeyMethod
描述:使用初始 valKey 密码导出验证者私钥并设置新密码。
参数值
参数名 | 数据类型 | 备注 |
---|---|---|
address | string | 验证者账户地址 |
password | string | 初始 valKey 密码,即使用 newValKeyMethod 创建时的密码 |
encryptPassword | string | 导出 valKey 时设置的新密码 |
返回值
参数名 | 数据类型 | 备注 |
---|---|---|
privateKey | string | 返回验证者私钥,否则返回失败 message 和 code |
示例:
youchain.you.personal.exportValKeyMethod("0x627Eb2f317aD57f09bb229942E670d9cb52C260C", "123456", "Ta123456").then(console.log);
importValKeyMethod
描述:导入验证者私钥,使用新的加密密码重新加密后存储在本地。
参数值
参数名 | 数据类型 | 备注 |
---|---|---|
privateKey | string | 使用 exportValKeyMethod 导出的验证者私钥 |
password | string | 使用 exportValKeyMethod 导出时设置的密码 |
encryptPassword | string | 重新设置 valKey 密码 |
返回值
参数名 | 数据类型 | 备注 |
---|---|---|
address | string | 验证者账户地址 |
mainPubKey | string | 共识公钥 |
blsPubKey | string | BLS 公钥 |
示例:
youchain.you.personal.importValKeyMethod("0x7b2261646472657373223a2236323765623266333137616435376630396262323239393432653637306439636235326332363063222c2263727970746f223a7b22636970686572223a226165732d3132382d637472222c2263697068657274657874223a223531323730303936303436396137643831613930343435623161363961363436623539316532313338616132396561386131633461313634663938633637656539653864663233363861343935393663613834396531653836646435366631343839636131373833626363643434663331316236373532613430383162333336222c22636970686572706172616d73223a7b226976223a223131353735396235303137643366376663366438656565316431313136356534227d2c226b6466223a22736372797074222c226b6466706172616d73223a7b22646b6c656e223a33322c226e223a3236323134342c2270223a312c2272223a382c2273616c74223a2237633437343231383261646263316636646637323434323230646366346230633333653837373536623066643165643437616530316266643063326539626631227d2c226d6163223a2231323831363262363565373230663966616261373635643034656136323836316437666433356636623362353463646337656536366633633136396537616663227d2c226964223a2231656536663136632d383833372d313165612d616636332d613435653630656661383935222c2276657273696f6e223a337d", "password", "newPassword").then(console.log);
delValKeyMethod
描述:删除本地存储的验证者私钥。
参数值
参数名 | 数据类型 | 备注 |
---|---|---|
address | string | 验证者账户地址 |
password | string | 初始 valKey 密码 |
返回值
参数名 | 数据类型 | 备注 |
---|---|---|
null | 返回 null,否则返回失败 message 和 code |
示例:
youchain.you.personal.delValKeyMethod("0x627Eb2f317aD57f09bb229942E670d9cb52C260C", "newPassword").then(console.log);