1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
use super::Rpc;
use crate::types::{Bytes, PrivateKey, TransactionRequest, H160, H256};

pub fn personal_import_raw_key(private_key: PrivateKey, password: String) -> Rpc<H160> {
    let mut rpc = Rpc::new("personal_importRawKey");
    rpc.add_param(private_key);
    rpc.add_param(password);
    rpc
}

pub fn personal_list_accounts() -> Rpc<Vec<H160>> {
    Rpc::new("personal_listAccounts")
}

pub fn personal_unlock_account(
    address: H160,
    password: String,
    duration: Option<u32>,
) -> Rpc<bool> {
    let mut rpc = Rpc::new("personal_unlockAccount");
    rpc.add_param(address);
    rpc.add_param(password);
    if let Some(duration) = duration {
        rpc.add_param(duration);
    }
    rpc
}

pub fn personal_lock_account(address: H160) -> Rpc<bool> {
    let mut rpc = Rpc::new("personal_lockAccount");
    rpc.add_param(address);
    rpc
}

pub fn personal_new_account(password: String) -> Rpc<H160> {
    let mut rpc = Rpc::new("personal_newAccount");
    rpc.add_param(password);
    rpc
}

pub fn personal_send_transaction(transaction: TransactionRequest, password: String) -> Rpc<H256> {
    let mut rpc = Rpc::new("personal_sendTransaction");
    rpc.add_param(transaction);
    rpc.add_param(password);
    rpc
}

pub fn personal_sign(message: Bytes, address: H160, password: String) -> Rpc<Bytes> {
    let mut rpc = Rpc::new("personal_sign");
    rpc.add_param(message);
    rpc.add_param(address);
    rpc.add_param(password);
    rpc
}

pub fn personal_ec_recover(message: Bytes, signature: Bytes) -> Rpc<H160> {
    let mut rpc = Rpc::new("personal_ecRecover");
    rpc.add_param(message);
    rpc.add_param(signature);
    rpc
}