From d78183b2c886041b255b074c733dde5608894f47 Mon Sep 17 00:00:00 2001 From: Shoaib Ahmed Date: Mon, 10 Jun 2024 09:04:52 -0700 Subject: [PATCH] cycles-sync: make obligato-url/key CLI configurable & fix wasmd invocations (#7) --- utils/cycles-sync/src/cli.rs | 11 +++++++++++ utils/cycles-sync/src/main.rs | 8 +++----- utils/cycles-sync/src/obligato_client/http.rs | 8 ++++---- utils/cycles-sync/src/wasmd_client.rs | 5 +---- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/utils/cycles-sync/src/cli.rs b/utils/cycles-sync/src/cli.rs index dfb72bb..d165117 100644 --- a/utils/cycles-sync/src/cli.rs +++ b/utils/cycles-sync/src/cli.rs @@ -18,6 +18,17 @@ pub struct Cli { #[arg(short = 'N', long, default_value = "http://127.0.0.1:26657")] pub node: Url, + /// Obligato API server. + #[arg(long, default_value = "https://bisenzone.obligato.network")] + pub obligato_url: Url, + + /// Obligato key. + #[arg( + long, + default_value = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNhZXNzdGpjdG16bXVqaW55cGJlIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTcwMzAxOTE0OSwiZXhwIjoyMDE4NTk1MTQ5fQ.EV6v5J3dz8WHAdTK4_IEisKzF-n1Gqyn4wCce_Zrqf4" + )] + pub obligato_key: String, + /// Path to output CSV file #[arg(short, long)] pub keys_file: PathBuf, diff --git a/utils/cycles-sync/src/main.rs b/utils/cycles-sync/src/main.rs index f33fb8d..aab1fd2 100644 --- a/utils/cycles-sync/src/main.rs +++ b/utils/cycles-sync/src/main.rs @@ -41,8 +41,6 @@ const MNEMONIC_PHRASE: &str = "clutch debate vintage foster barely primary clown const ALICE_ID: &str = "7bfad4e8-d898-4ce2-bbac-1beff7182319"; const BANK_DEBTOR_ID: &str = "3879fa15-d86e-4464-b679-0a3d78cf3dd3"; -const OBLIGATO_URL: &str = "https://bisenzone.obligato.network"; - type Sha256Digest = [u8; 32]; type DynError = Box; @@ -79,7 +77,7 @@ async fn main() -> Result<(), DynError> { async fn sync_setoffs(cli: Cli) -> Result<(), DynError> { let wasmd_client = CliWasmdClient::new(cli.node); let query_result: QueryResult = - wasmd_client.query_smart(&cli.contract, json!("get_all_setoffs"), &cli.chain_id)?; + wasmd_client.query_smart(&cli.contract, json!("get_all_setoffs"))?; let setoffs = query_result.data.setoffs; // read keys @@ -119,7 +117,7 @@ async fn sync_setoffs(cli: Cli) -> Result<(), DynError> { debug!("setoffs: {setoffs:?}"); // send to Obligato - let client = HttpClient::new(OBLIGATO_URL.parse().unwrap()); + let client = HttpClient::new(cli.obligato_url, cli.obligato_key); client.set_setoffs(setoffs).await?; Ok(()) @@ -127,7 +125,7 @@ async fn sync_setoffs(cli: Cli) -> Result<(), DynError> { async fn sync_obligations(cli: Cli, epoch_pk: &str) -> Result<(), DynError> { let mut intents = { - let client = HttpClient::new(OBLIGATO_URL.parse().unwrap()); + let client = HttpClient::new(cli.obligato_url, cli.obligato_key); client.get_obligations().await.unwrap() }; diff --git a/utils/cycles-sync/src/obligato_client/http.rs b/utils/cycles-sync/src/obligato_client/http.rs index 7767d14..b997c8d 100644 --- a/utils/cycles-sync/src/obligato_client/http.rs +++ b/utils/cycles-sync/src/obligato_client/http.rs @@ -12,13 +12,15 @@ use crate::{ pub struct HttpClient { client: reqwest::Client, url: Url, + key: String, } impl HttpClient { - pub fn new(url: Url) -> Self { + pub fn new(url: Url, key: String) -> Self { Self { client: reqwest::Client::new(), url, + key, } } @@ -29,8 +31,6 @@ impl HttpClient { } } -// eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNhZXNzdGpjdG16bXVqaW55cGJlIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDMwMTkxNDksImV4cCI6MjAxODU5NTE0OX0.gQsQ26W2AGfwmncTecfKaenRaxhXwZFqLtmcllD_7Sg - #[async_trait] impl Client for HttpClient { type Error = reqwest::Error; @@ -39,7 +39,7 @@ impl Client for HttpClient { let response = self .client .post(self.url_with_path("api/sync/obligations2contract")) - .json(&json!({"denom_id": "1", "key": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNhZXNzdGpjdG16bXVqaW55cGJlIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTcwMzAxOTE0OSwiZXhwIjoyMDE4NTk1MTQ5fQ.EV6v5J3dz8WHAdTK4_IEisKzF-n1Gqyn4wCce_Zrqf4"})) + .json(&json!({"denom_id": "1", "key": self.key })) .send() .await? .json::() diff --git a/utils/cycles-sync/src/wasmd_client.rs b/utils/cycles-sync/src/wasmd_client.rs index b6836f8..14e4c85 100644 --- a/utils/cycles-sync/src/wasmd_client.rs +++ b/utils/cycles-sync/src/wasmd_client.rs @@ -15,7 +15,6 @@ pub trait WasmdClient { &self, contract: &Self::Address, query: Self::Query, - chain_id: &Id, ) -> Result; fn tx_execute( @@ -64,7 +63,6 @@ impl WasmdClient for CliWasmdClient { &self, contract: &Self::Address, query: Self::Query, - chain_id: &Id, ) -> Result { let mut wasmd = Command::new("wasmd"); let command = wasmd @@ -72,7 +70,6 @@ impl WasmdClient for CliWasmdClient { .args(["query", "wasm"]) .args(["contract-state", "smart", contract.as_ref()]) .arg(query.to_string()) - .args(["--chain-id", chain_id.as_ref()]) .args(["--output", "json"]); let output = command.output()?; @@ -93,9 +90,9 @@ impl WasmdClient for CliWasmdClient { let mut wasmd = Command::new("wasmd"); let command = wasmd .args(["--node", self.url.as_str()]) + .args(["--chain-id", chain_id.as_ref()]) .args(["tx", "wasm"]) .args(["execute", contract.as_ref(), &msg.to_string()]) - .args(["--chain-id", chain_id.as_ref()]) .args(["--gas", &gas.to_string()]) .args(["--from", sender.as_ref()]) .args(["--output", "json"])