|
|
@@ -107,6 +107,21 @@ impl Drk {
|
|
|
Ok(self.request(req).await?)
|
|
|
}
|
|
|
|
|
|
+ // --> {"jsonrpc": "2.0", "method": "set_default_address", "params":
|
|
|
+ // "vdNS7oBj7KvsMWWmo9r96SV4SqATLrGsH2a3PGpCfJC", "id": 42} <-- {"jsonrpc": "2.0", "result":
|
|
|
+ // true, "id": 42}
|
|
|
+ async fn set_default_address(&self, address: String) -> 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", "result": true, "id": 42}
|
|
|
+ async fn export_keypair(&self, path: String) -> Result<Value> {
|
|
|
+ let req = jsonrpc::request(json!("export_keypair"), json!(path));
|
|
|
+ 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> {
|
|
|
@@ -178,7 +193,15 @@ async fn start(config: &DrkConfig, options: CliDrk) -> Result<()> {
|
|
|
println!("Features: {}", &reply.to_string());
|
|
|
return Ok(())
|
|
|
}
|
|
|
- Some(CliDrkSubCommands::Wallet { create, keygen, address, balances, addresses }) => {
|
|
|
+ Some(CliDrkSubCommands::Wallet {
|
|
|
+ create,
|
|
|
+ keygen,
|
|
|
+ address,
|
|
|
+ balances,
|
|
|
+ addresses,
|
|
|
+ export_keypair,
|
|
|
+ set_default_address,
|
|
|
+ }) => {
|
|
|
if create {
|
|
|
let reply = client.create_wallet().await?;
|
|
|
if reply.as_bool().unwrap() {
|
|
|
@@ -241,6 +264,18 @@ async fn start(config: &DrkConfig, options: CliDrk) -> Result<()> {
|
|
|
|
|
|
return Ok(())
|
|
|
}
|
|
|
+
|
|
|
+ if set_default_address.is_some() {
|
|
|
+ let default_address = set_default_address.unwrap();
|
|
|
+ client.set_default_address(default_address).await?;
|
|
|
+ return Ok(())
|
|
|
+ }
|
|
|
+
|
|
|
+ if export_keypair.is_some() {
|
|
|
+ let path = export_keypair.unwrap();
|
|
|
+ client.export_keypair(path).await?;
|
|
|
+ return Ok(())
|
|
|
+ }
|
|
|
}
|
|
|
Some(CliDrkSubCommands::Id { network, token }) => {
|
|
|
let network = network.to_lowercase();
|