### personal\_importRawKey 将给定的未加密私钥(十六进制字符串)导入密钥存储区,并使用密码对其进行加密。 返回新帐户的地址。 | 命令方式 | 调用方法 | | --- | --- | | Console | `personal.importRawKey(keydata, passphrase)` | | RPC | `{"method": "personal_importRawKey", "params": [string, string]}` | ### personal\_listAccounts 返回密钥库中所有密钥的所有worldchain账户地址。 | 命令方式 | 调用方法 | | --- | --- | | Console | `personal.listAccounts` | | RPC | `{"method": "personal_listAccounts", "params": []}` | #### 例 ~~~ > personal.listAccounts ["0x5e97870f263700f46aa00d967821199b9bc5a120", "0x3d80b31a78c30fc628f20b2c89d7ddbf6e53cedc"] ~~~ ### personal\_lockAccounts 从内存中删除具有给定地址的私钥。该帐户不能再用于发送交易。 | 命令方式 | 调用方法 | | --- | --- | | Console | `personal.lockAccount(address)` | | RPC | `{"method": "personal_lockAccount", "params": [string]}` | ### personal\_newAccounts 生成一个新的私钥并将其存储在密钥库目录中。密钥文件使用给定的密码加密。返回新帐户的地址。 在wsc控制台上,`newAccount`如果未提供密码作为参数,则将提示您输入密码。 | 命令方式 | 调用方法 | | --- | --- | | Console | `personal.newAccount()` | | RPC | `{"method": "personal_newAccount", "params": [string]}` | #### 例 ~~~ > personal.newAccount() Passphrase: Repeat passphrase: "0x5e97870f263700f46aa00d967821199b9bc5a120" ~~~ 密码也可以字符串形式提供。 ~~~ > personal.newAccount("h4ck3r") "0x3d80b31a78c30fc628f20b2c89d7ddbf6e53cedc" ~~~ ### personal\_unlockAccounts 从密钥存储区使用给定的地址解密密钥。 使用JavaScript控制台时,密码短语和解锁持续时间都是可选的。如果未提供密码短语作为参数,则控制台将交互提示输入密码短语。 未加密的密钥将保留在内存中,直到解锁持续时间到期为止。如果解锁持续时间默认为300秒。明确的零秒持续时间将锁解锁,直到wsc退出。 该账户可以使用`wsc_sign`,并`wsc_sendTransaction`同时被解锁。 | 命令方式 | 调用方法 | | --- | --- | | Console | `personal.unlockAccount(address, passphrase, duration)` | | RPC | `{"method": "personal_unlockAccount", "params": [string, string, number]}` | #### 例子 ~~~ > personal.unlockAccount("0x5e97870f263700f46aa00d967821199b9bc5a120") Unlock account 0x5e97870f263700f46aa00d967821199b9bc5a120 Passphrase: true ~~~ 提供密码和解锁持续时间作为参数: ~~~ > personal.unlockAccount("0x5e97870f263700f46aa00d967821199b9bc5a120", "foo", 30) true ~~~ 如果要输入密码,并且stil覆盖默认的解锁持续时间,请`null`以密码形式通过。 ~~~ > personal.unlockAccount("0x5e97870f263700f46aa00d967821199b9bc5a120", null, 30) Unlock account 0x5e97870f263700f46aa00d967821199b9bc5a120 Passphrase: true ~~~ ### personal\_sendTransaction 验证给定的密码短语并提交交易。 事务与for相同,`wsc_sendTransaction`并且包含`from`地址。如果密码短语可用于解密私钥,则将`tx.from`验证登录到事务的签名,签名并发送到网络上。该帐户未在节点中全局解锁,因此无法在其他RPC调用中使用。 | 命令方式 | 调用方法 | | --- | --- | | Console | `personal.sendTransaction(tx, passphrase)` | | RPC | `{"method": "personal_sendTransaction", "params": [tx, string]}` | #### 例子 ~~~ > var tx = {from: "0x391694e7e0b0cce554cb130d723a9d27458f9298", to: "0xafa3f8684e54059998bc3a7b0d2b0da075154d66", value: web3.toWei(1.23, "wsc")} undefined > personal.sendTransaction(tx, "passphrase") 0x8474441674cdd47b35b875fd1a530b800b51a5264b9975fb21129eeb8c18582f ~~~ ### personal\_sign sign方法使用来计算worldchain特定的签名`sign(keccack256("\x19worldchain Signed Message:\n" + len(message) + message)))`。 通过在消息中添加前缀,可以将计算出的签名识别为worldchain特定的签名。这样可以防止在恶意DApp可以签名任意数据(例如交易)并使用签名模拟受害者的情况下进行滥用。 请参阅ecRecover以验证签名。 | 命令方式 | 调用方法 | | --- | --- | | Console | `personal.sign(message, account, [password])` | | RPC | `{"method": "personal_sign", "params": [message, account, password]}` | #### 例子 ~~~ > personal.sign("0xdeadbeaf", "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "") "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b" ~~~ ### personal\_ecRecover `ecRecover`返回与用于计算中的签名的私钥关联的地址`personal_sign`。 | 命令方式 | 调用方法 | | --- | --- | | Console | `personal.ecRecover(message, signature)` | | RPC | `{"method": "personal_ecRecover", "params": [message, signature]}` | #### 例子 ~~~ > personal.sign("0xdeadbeaf", "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "") "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b" > personal.ecRecover("0xdeadbeaf", "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b") "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83" ~~~