From 8e99784ea764fff5e02bc579bf3932a02a7bcc59 Mon Sep 17 00:00:00 2001 From: ghassmo Date: Wed, 22 Sep 2021 12:15:15 +0300 Subject: [PATCH] pass asset_id as jubjub::Fr to cashierdb --- src/wallet/cashierdb.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/wallet/cashierdb.rs b/src/wallet/cashierdb.rs index 85c26f77c..bd8f27edc 100644 --- a/src/wallet/cashierdb.rs +++ b/src/wallet/cashierdb.rs @@ -51,7 +51,7 @@ impl CashierDb { pub fn get_deposit_token_keys_by_dkey_public( &self, d_key_public: &jubjub::SubgroupPoint, - asset_id: &Vec, + asset_id: &jubjub::Fr, ) -> Result, Vec)>> { debug!(target: "CASHIERDB", "Check for existing dkey"); let d_key_public = self.get_value_serialized(d_key_public)?; @@ -60,6 +60,8 @@ impl CashierDb { // unlock database conn.pragma_update(None, "key", &self.password)?; + let asset_id = self.get_value_serialized(asset_id)?; + let mut stmt = conn.prepare("SELECT * FROM deposit_keypairs where d_key_public = :d_key_public AND asset_id = :asset_id")?; let keys_iter = stmt.query_map::<(Vec, Vec), _, _>( @@ -81,7 +83,7 @@ impl CashierDb { d_key_public: &jubjub::SubgroupPoint, token_private: &Vec, token_public: &Vec, - asset_id: &Vec, + asset_id: &jubjub::Fr, ) -> Result<()> { debug!(target: "CASHIERDB", "Put exchange keys"); @@ -92,6 +94,8 @@ impl CashierDb { // unlock database conn.pragma_update(None, "key", &self.password)?; + let asset_id = self.get_value_serialized(asset_id)?; + conn.execute( "INSERT INTO deposit_keypairs(d_key_public, token_key_private, token_public_key_public, asset_id) VALUES (:d_key_public, :token_key_private, :token_key_public, :asset_id)", @@ -163,7 +167,7 @@ impl CashierDb { pub fn get_withdraw_keys_by_token_public_key( &self, token_public_key: &Vec, - asset_id: &Vec, + asset_id: &jubjub::Fr, ) -> Result> { debug!(target: "CASHIERDB", "Check for existing token address"); // open connection @@ -173,6 +177,8 @@ impl CashierDb { let confirm = self.get_value_serialized(&false)?; + let asset_id = self.get_value_serialized(asset_id)?; + let mut stmt = conn.prepare( "SELECT * FROM withdraw_keypairs WHERE token_key_id = :token_key_id AND asset_id = :asset_id AND confirm = :confirm;")?; @@ -180,7 +186,7 @@ impl CashierDb { let addr_iter = stmt.query_map::( &[ (":token_key_id", &token_public_key), - (":asset_id", &asset_id), + (":asset_id", &&asset_id), (":confirm", &&confirm), ], |row| { @@ -244,7 +250,7 @@ impl CashierDb { pub fn confirm_withdraw_key_record( &self, token_address: &Vec, - asset_id: &Vec, + asset_id: &jubjub::Fr, ) -> Result<()> { debug!(target: "CASHIERDB", "Confirm withdraw keys"); @@ -253,6 +259,8 @@ impl CashierDb { // unlock database conn.pragma_update(None, "key", &self.password)?; + let asset_id = self.get_value_serialized(asset_id)?; + let confirm = self.get_value_serialized(&true)?; conn.execute( @@ -268,12 +276,13 @@ impl CashierDb { token_key_id: &Vec, d_key_public: &jubjub::SubgroupPoint, d_key_private: &jubjub::Fr, - asset_id: &Vec, + asset_id: &jubjub::Fr, ) -> Result<()> { debug!(target: "CASHIERDB", "Put withdraw keys"); let d_key_public = self.get_value_serialized(d_key_public)?; let d_key_private = self.get_value_serialized(d_key_private)?; + let asset_id = self.get_value_serialized(asset_id)?; // open connection let conn = Connection::open(&self.path)?; @@ -321,7 +330,7 @@ mod tests { // btc addr testnet let token_addr = serialize(&String::from("mxVFsFW5N4mu1HPkxPttorvocvzeZ7KZyk")); - let asset_id = serialize(&1); + let asset_id: jubjub::Fr = jubjub::Fr::random(&mut OsRng); wallet.put_withdraw_keys(&token_addr, &public2, &secret2, &asset_id)?;