drk: get all addresses from darkfid

This commit is contained in:
ghassmo
2022-01-02 23:27:51 +04:00
parent 3c91d0d2fa
commit 83a9ac84a7
3 changed files with 27 additions and 2 deletions

View File

@@ -74,6 +74,7 @@ impl RequestHandler for Darkfid {
Some("create_wallet") => return self.create_wallet(req.id, req.params).await,
Some("key_gen") => return self.key_gen(req.id, req.params).await,
Some("get_key") => return self.get_key(req.id, req.params).await,
Some("get_keys") => return self.get_keys(req.id, req.params).await,
Some("get_balances") => return self.get_balances(req.id, req.params).await,
Some("get_token_id") => return self.get_token_id(req.id, req.params).await,
Some("features") => return self.features(req.id, req.params).await,

View File

@@ -99,6 +99,14 @@ impl Drk {
Ok(self.request(req).await?)
}
// --> {"jsonrpc": "2.0", "method": "get_keys", "params": [], "id": 42}
// <-- {"jsonrpc": "2.0", "result": "[vdNS7oBj7KvsMWWmo9r96SV4SqATLrGsH2a3PGpCfJC, ...]", "id":
// 42}
async fn get_keys(&self) -> Result<Value> {
let req = jsonrpc::request(json!("get_keys"), json!([]));
Ok(self.request(req).await?)
}
// --> {"jsonrpc": "2.0", "method": "get_key", "params": ["solana", "usdc"], "id": 42}
// <-- {"jsonrpc": "2.0", "result": "vdNS7oBj7KvsMWWmo9r96SV4SqATLrGsH2a3PGpCfJC", "id": 42}
async fn get_token_id(&self, network: &str, token: &str) -> Result<Value> {
@@ -170,7 +178,7 @@ async fn start(config: &DrkConfig, options: CliDrk) -> Result<()> {
println!("Features: {}", &reply.to_string());
return Ok(())
}
Some(CliDrkSubCommands::Wallet { create, keygen, address, balances }) => {
Some(CliDrkSubCommands::Wallet { create, keygen, address, balances, addresses }) => {
if create {
let reply = client.create_wallet().await?;
if reply.as_bool().unwrap() {
@@ -197,6 +205,19 @@ async fn start(config: &DrkConfig, options: CliDrk) -> Result<()> {
return Ok(())
}
if addresses {
let reply = client.get_keys().await?;
println!("Wallet addresses: ");
if reply.as_array().is_some() {
for address in reply.as_array().unwrap() {
println!("- {}", address);
}
} else {
println!("Empty!!",);
}
return Ok(())
}
if balances {
let reply = client.get_balances().await?;

View File

@@ -14,9 +14,12 @@ pub enum CliDrkSubCommands {
/// Generate wallet keypair
#[clap(long)]
keygen: bool,
/// Get wallet address
/// Get default wallet address
#[clap(long)]
address: bool,
/// Get wallet addresses
#[clap(long)]
addresses: bool,
/// Get wallet balances
#[clap(long)]
balances: bool,