mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-04-28 03:00:18 -04:00
cashierd: return expanded info for features rpc response
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
use async_std::sync::{Arc, Mutex};
|
||||
use std::collections::HashMap;
|
||||
use std::path::PathBuf;
|
||||
use std::str::FromStr;
|
||||
|
||||
@@ -53,6 +52,7 @@ struct Cashierd {
|
||||
bridge: Arc<Bridge>,
|
||||
cashier_wallet: Arc<CashierDb>,
|
||||
networks: Vec<Network>,
|
||||
public_key: String,
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
@@ -101,6 +101,7 @@ impl Cashierd {
|
||||
bridge,
|
||||
cashier_wallet,
|
||||
networks,
|
||||
public_key: String::from(""),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -427,14 +428,34 @@ impl Cashierd {
|
||||
}
|
||||
|
||||
async fn features(&self, id: Value, _params: Value) -> JsonResult {
|
||||
JsonResult::Resp(jsonresp(
|
||||
json!(self
|
||||
.networks
|
||||
.iter()
|
||||
.map(|net| (net.name.to_string(), net.blockchain.to_owned()))
|
||||
.collect::<HashMap<String, String>>()),
|
||||
id,
|
||||
))
|
||||
let mut resp: serde_json::Value = json!(
|
||||
{
|
||||
"server_version": "0.1.0",
|
||||
"protocol_version": "1.0",
|
||||
"public_key": self.public_key,
|
||||
"networks": [],
|
||||
"hosts": {
|
||||
"tcp_port": null,
|
||||
"tls_port": 9000,
|
||||
"onion_addr": null,
|
||||
"dns_addr": "testnet.cashier.dark.fi"
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
for network in self.networks.iter() {
|
||||
resp.as_object_mut().unwrap()["networks"]
|
||||
.as_array_mut()
|
||||
.unwrap()
|
||||
.push(json!(
|
||||
{
|
||||
network.name.to_string().to_lowercase():
|
||||
{"chain": network.blockchain.to_lowercase()}
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
JsonResult::Resp(jsonresp(resp, id))
|
||||
}
|
||||
|
||||
fn check_token_id(network: &NetworkName, _token_id: &str) -> Result<Option<String>> {
|
||||
@@ -519,9 +540,7 @@ impl Cashierd {
|
||||
let main_keypairs = self.cashier_wallet.get_main_keys(&NetworkName::Bitcoin)?;
|
||||
|
||||
if network.keypair.is_empty() {
|
||||
|
||||
if main_keypairs.is_empty()
|
||||
{
|
||||
if main_keypairs.is_empty() {
|
||||
main_keypair = Keypair::new();
|
||||
self.cashier_wallet.put_main_keys(
|
||||
&TokenKey {
|
||||
@@ -674,7 +693,11 @@ async fn start(
|
||||
let merkle_roots = RocksColumn::<columns::MerkleRoots>::new(rocks.clone());
|
||||
let nullifiers = RocksColumn::<columns::Nullifiers>::new(rocks);
|
||||
|
||||
let cashier_public_keys = vec![client.main_keypair.public];
|
||||
let cashier_public = client.main_keypair.public;
|
||||
let cashier_public_str = bs58::encode(&serialize(&cashier_public)).into_string();
|
||||
cashierd.public_key = cashier_public_str.clone();
|
||||
|
||||
let cashier_public_keys = vec![cashier_public];
|
||||
|
||||
let state = Arc::new(Mutex::new(State {
|
||||
tree: CommitmentTree::empty(),
|
||||
@@ -686,9 +709,7 @@ async fn start(
|
||||
}));
|
||||
|
||||
if get_address_flag {
|
||||
let cashier_public = client.main_keypair.public;
|
||||
let cashier_public = bs58::encode(&serialize(&cashier_public)).into_string();
|
||||
println!("Public Key: {}", cashier_public);
|
||||
println!("Public Key: {}", cashier_public_str);
|
||||
return Ok(());
|
||||
};
|
||||
|
||||
@@ -720,7 +741,7 @@ async fn main() -> Result<()> {
|
||||
.get_matches();
|
||||
|
||||
let config_path = if args.is_present("CONFIG") {
|
||||
PathBuf::from(args.value_of("CONFIG").unwrap())
|
||||
expand_path(args.value_of("CONFIG").unwrap())?
|
||||
} else {
|
||||
join_config_path(&PathBuf::from("cashierd.toml"))?
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user