|
@@ -3,6 +3,7 @@ use log::*;
|
|
|
use std::path::PathBuf;
|
|
use std::path::PathBuf;
|
|
|
|
|
|
|
|
use clap::clap_app;
|
|
use clap::clap_app;
|
|
|
|
|
+use serde::Serialize;
|
|
|
use serde_json::{json, Value};
|
|
use serde_json::{json, Value};
|
|
|
use simplelog::{
|
|
use simplelog::{
|
|
|
CombinedLogger, Config as SimLogConfig, ConfigBuilder, LevelFilter, TermLogger, TerminalMode,
|
|
CombinedLogger, Config as SimLogConfig, ConfigBuilder, LevelFilter, TermLogger, TerminalMode,
|
|
@@ -30,18 +31,27 @@ use drk::{
|
|
|
|
|
|
|
|
use ff::PrimeField;
|
|
use ff::PrimeField;
|
|
|
|
|
|
|
|
-// network: String specifier
|
|
|
|
|
-// asset_id: Token HEX
|
|
|
|
|
|
|
+#[derive(Debug, Clone, Serialize)]
|
|
|
struct Features {
|
|
struct Features {
|
|
|
networks: Vec<String>,
|
|
networks: Vec<String>,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+impl Features {
|
|
|
|
|
+ fn new() -> Self {
|
|
|
|
|
+ let mut networks = Vec::new();
|
|
|
|
|
+ networks.push("solana".to_string());
|
|
|
|
|
+ networks.push("bitcoin".to_string());
|
|
|
|
|
+ Self { networks }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
#[derive(Clone)]
|
|
#[derive(Clone)]
|
|
|
struct Cashierd {
|
|
struct Cashierd {
|
|
|
verbose: bool,
|
|
verbose: bool,
|
|
|
config: CashierdConfig,
|
|
config: CashierdConfig,
|
|
|
client_wallet: Arc<WalletDb>,
|
|
client_wallet: Arc<WalletDb>,
|
|
|
cashier_wallet: Arc<CashierDb>,
|
|
cashier_wallet: Arc<CashierDb>,
|
|
|
|
|
+ features: Features,
|
|
|
// clientdb:
|
|
// clientdb:
|
|
|
// mint_params:
|
|
// mint_params:
|
|
|
// spend_params:
|
|
// spend_params:
|
|
@@ -58,12 +68,14 @@ impl Cashierd {
|
|
|
&PathBuf::from(config.cashierdb_path.clone()),
|
|
&PathBuf::from(config.cashierdb_path.clone()),
|
|
|
config.password.clone(),
|
|
config.password.clone(),
|
|
|
)?;
|
|
)?;
|
|
|
|
|
+ let features = Features::new();
|
|
|
|
|
|
|
|
Ok(Self {
|
|
Ok(Self {
|
|
|
verbose,
|
|
verbose,
|
|
|
config,
|
|
config,
|
|
|
cashier_wallet,
|
|
cashier_wallet,
|
|
|
client_wallet,
|
|
client_wallet,
|
|
|
|
|
+ features,
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -184,7 +196,7 @@ impl Cashierd {
|
|
|
|
|
|
|
|
// TODO: implement this
|
|
// TODO: implement this
|
|
|
async fn features(self, id: Value, _params: Value) -> JsonResult {
|
|
async fn features(self, id: Value, _params: Value) -> JsonResult {
|
|
|
- JsonResult::Err(jsonerr(InvalidParams, None, id))
|
|
|
|
|
|
|
+ JsonResult::Resp(jsonresp(json!(self.features), id))
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|