mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 14:48:08 -05:00
darkfid: implement set_default_address rpc function
This commit is contained in:
@@ -174,7 +174,7 @@ impl Darkfid {
|
||||
async fn get_keys(&self, id: Value, _params: Value) -> JsonResult {
|
||||
let result: Result<Vec<String>> = async {
|
||||
let keypairs = self.client.lock().await.get_keypairs().await?;
|
||||
let default_keypair = self.client.lock().await.get_default_keypair().await?;
|
||||
let default_keypair = self.client.lock().await.main_keypair;
|
||||
|
||||
let mut addresses: Vec<String> = keypairs
|
||||
.iter()
|
||||
@@ -198,7 +198,7 @@ impl Darkfid {
|
||||
}
|
||||
}
|
||||
|
||||
// --> {"method": "export_keypair", "params": "path/"}
|
||||
// --> {"method": "export_keypair", "params": "[path/]"}
|
||||
// <-- {"result": true}
|
||||
async fn export_keypair(&self, id: Value, params: Value) -> JsonResult {
|
||||
let args = params.as_array();
|
||||
@@ -234,11 +234,28 @@ impl Darkfid {
|
||||
}
|
||||
|
||||
// --> {"method": "set_default_address", "params":
|
||||
// "vdNS7oBj7KvsMWWmo9r96SV4SqATLrGsH2a3PGpCfJC"}
|
||||
// "[vdNS7oBj7KvsMWWmo9r96SV4SqATLrGsH2a3PGpCfJC]"}
|
||||
// <-- {"result": true}
|
||||
async fn set_default_address(&self, _id: Value, _params: Value) -> JsonResult {
|
||||
// TODO
|
||||
unimplemented!()
|
||||
async fn set_default_address(&self, id: Value, params: Value) -> JsonResult {
|
||||
let args = params.as_array();
|
||||
|
||||
if args.is_none() && args.unwrap()[0].as_str().is_none() {
|
||||
return JsonResult::Err(jsonerr(InvalidParams, None, id))
|
||||
}
|
||||
|
||||
let addr_str = args.unwrap()[0].as_str().unwrap();
|
||||
|
||||
let result: Result<()> = async {
|
||||
let public = PublicKey::from(Address::from_str(addr_str.into())?);
|
||||
self.client.lock().await.set_default_keypair(&public).await?;
|
||||
Ok(())
|
||||
}
|
||||
.await;
|
||||
|
||||
match result {
|
||||
Ok(_) => JsonResult::Resp(jsonresp(json!(true), id)),
|
||||
Err(err) => JsonResult::Err(jsonerr(ServerError(-32005), Some(err.to_string()), id)),
|
||||
}
|
||||
}
|
||||
|
||||
// --> {"method": "get_balances", "params": []}
|
||||
|
||||
@@ -108,14 +108,15 @@ impl Drk {
|
||||
}
|
||||
|
||||
// --> {"jsonrpc": "2.0", "method": "set_default_address", "params":
|
||||
// "vdNS7oBj7KvsMWWmo9r96SV4SqATLrGsH2a3PGpCfJC", "id": 42} <-- {"jsonrpc": "2.0", "result":
|
||||
// "[vdNS7oBj7KvsMWWmo9r96SV4SqATLrGsH2a3PGpCfJC]", "id": 42}
|
||||
// <-- {"jsonrpc": "2.0", "result":
|
||||
// true, "id": 42}
|
||||
async fn set_default_address(&self, address: &str) -> Result<Value> {
|
||||
let req = jsonrpc::request(json!("set_default_address"), json!([address]));
|
||||
Ok(self.request(req).await?)
|
||||
}
|
||||
|
||||
// --> {"jsonrpc": "2.0", "method": "export_keypair", "params": "path/", "id": 42}
|
||||
// --> {"jsonrpc": "2.0", "method": "export_keypair", "params": "[path/]", "id": 42}
|
||||
// <-- {"jsonrpc": "2.0", "result": true, "id": 42}
|
||||
async fn export_keypair(&self, path: &str) -> Result<Value> {
|
||||
let req = jsonrpc::request(json!("export_keypair"), json!([path]));
|
||||
|
||||
@@ -384,8 +384,10 @@ impl Client {
|
||||
self.wallet.get_keypairs().await
|
||||
}
|
||||
|
||||
pub async fn get_default_keypair(&self) -> Result<Keypair> {
|
||||
self.wallet.get_default_keypair().await
|
||||
pub async fn set_default_keypair(&mut self, public: &PublicKey) -> Result<()> {
|
||||
self.wallet.set_default_keypair(public).await?;
|
||||
self.main_keypair = self.wallet.get_default_keypair().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn key_gen(&self) -> Result<()> {
|
||||
|
||||
@@ -22,6 +22,7 @@ pub enum ErrorCode {
|
||||
KeyGenError,
|
||||
GetAddressesError,
|
||||
CreateFile,
|
||||
SetDefaultAddress,
|
||||
InvalidAmountParam,
|
||||
InvalidNetworkParam,
|
||||
InvalidTokenIdParam,
|
||||
@@ -41,6 +42,7 @@ impl ErrorCode {
|
||||
ErrorCode::KeyGenError => -32002,
|
||||
ErrorCode::GetAddressesError => -32003,
|
||||
ErrorCode::CreateFile => -32004,
|
||||
ErrorCode::SetDefaultAddress => -32005,
|
||||
ErrorCode::InvalidAmountParam => -32010,
|
||||
ErrorCode::InvalidNetworkParam => -32011,
|
||||
ErrorCode::InvalidTokenIdParam => -32012,
|
||||
@@ -60,6 +62,7 @@ impl ErrorCode {
|
||||
ErrorCode::KeyGenError => "Key gen error",
|
||||
ErrorCode::GetAddressesError => "get addresses error",
|
||||
ErrorCode::CreateFile => "error creating a file",
|
||||
ErrorCode::SetDefaultAddress => "error set default address",
|
||||
ErrorCode::InvalidAmountParam => "Invalid amount param",
|
||||
ErrorCode::InvalidNetworkParam => "Invalid network param",
|
||||
ErrorCode::InvalidTokenIdParam => "Invalid token id param",
|
||||
|
||||
Reference in New Issue
Block a user