Jelajahi Sumber

removed unnecessary arc wrapper from adapter and walletdb

rachel-rose 5 tahun lalu
induk
melakukan
62ca0557cf
4 mengubah file dengan 21 tambahan dan 20 penghapusan
  1. 11 10
      src/bin/darkfid.rs
  2. 4 4
      src/rpc/adapter.rs
  3. 2 2
      src/rpc/jsonserver.rs
  4. 4 4
      src/wallet/walletdb.rs

+ 11 - 10
src/bin/darkfid.rs

@@ -36,16 +36,16 @@ pub struct State {
     // Nullifiers prevent double spending
     nullifiers: RocksColumn<columns::Nullifiers>,
     // All received coins
-    own_coins: Vec<(Coin, Note, jubjub::Fr, IncrementalWitness<MerkleNode>)>,
+    //own_coins: Vec<(Coin, Note, jubjub::Fr, IncrementalWitness<MerkleNode>)>,
     // Mint verifying key used by ZK
     mint_pvk: groth16::PreparedVerifyingKey<Bls12>,
     // Spend verifying key used by ZK
     spend_pvk: groth16::PreparedVerifyingKey<Bls12>,
     // Public key of the cashier
-    cashier_public: jubjub::SubgroupPoint,
+    //cashier_public: jubjub::SubgroupPoint,
     // List of all our secret keys
-    wallet: Arc<WalletDB>,
-    secrets: Vec<jubjub::Fr>,
+    wallet: WalletDB,
+    //secrets: Vec<jubjub::Fr>,
 }
 
 impl ProgramState for State {
@@ -96,8 +96,9 @@ impl State {
             // Keep track of all merkle roots that have existed
             self.merkle_roots.put(self.tree.root(), vec![] as Vec<u8>)?;
 
+            //let &self.wallet.own_coins = 
             // Also update all the coin witnesses
-            for (_, _, _, witness) in self.own_coins.iter_mut() {
+            for (_, _, _, witness) in self.wallet.own_coins.iter_mut() {
                 witness.append(node).expect("append to witness");
             }
 
@@ -195,8 +196,8 @@ async fn start(executor: Arc<Executor<'_>>, options: ClientProgramOptions) -> Re
     let (_mint_params, mint_pvk) = load_params("mint.params")?;
     let (_spend_params, spend_pvk) = load_params("spend.params")?;
 
-    let cashier_secret = jubjub::Fr::random(&mut OsRng);
-    let cashier_public = zcash_primitives::constants::SPENDING_KEY_GENERATOR * cashier_secret;
+    //let cashier_secret = jubjub::Fr::random(&mut OsRng);
+    //let cashier_public = zcash_primitives::constants::SPENDING_KEY_GENERATOR * cashier_secret;
 
     // wallet secret key
     let secret = jubjub::Fr::random(&mut OsRng);
@@ -211,12 +212,12 @@ async fn start(executor: Arc<Executor<'_>>, options: ClientProgramOptions) -> Re
         tree: CommitmentTree::empty(),
         merkle_roots,
         nullifiers,
-        own_coins: vec![],
+        //own_coins: vec![],
         mint_pvk,
         spend_pvk,
         wallet,
-        cashier_public,
-        secrets: vec![secret.clone()],
+        //cashier_public,
+        //secrets: vec![secret.clone()],
     };
 
     // create gateway client

+ 4 - 4
src/rpc/adapter.rs

@@ -1,18 +1,18 @@
 use crate::wallet::WalletDB;
 use crate::Result;
 use log::*;
-use std::sync::Arc;
+//use std::sync::Arc;
 
 // there should
 // Dummy adapter for now
 pub struct RpcAdapter {
-    wallet: Arc<WalletDB>,
+    wallet: WalletDB,
 }
 
 impl RpcAdapter {
-    pub fn new(dbname: &str) -> Result<Arc<Self>> {
+    pub fn new(dbname: &str) -> Result<Self> {
         let wallet = WalletDB::new(dbname)?;
-        Ok(Arc::new(Self { wallet }))
+        Ok(Self { wallet })
     }
 
     //pub async fn get_path(&self) -> Result<PathBuf> {

+ 2 - 2
src/rpc/jsonserver.rs

@@ -74,7 +74,7 @@ pub async fn listen(
 pub async fn start(
     executor: Arc<Executor<'_>>,
     options: ProgramOptions,
-    _adapter: Arc<RpcAdapter>,
+    _adapter: RpcAdapter,
 ) -> Result<()> {
     let p2p = net::P2p::new(options.network_settings);
 
@@ -107,7 +107,7 @@ pub struct RpcInterface {
     pub started: Mutex<bool>,
     stop_send: async_channel::Sender<()>,
     stop_recv: async_channel::Receiver<()>,
-    adapter: Arc<RpcAdapter>,
+    adapter: RpcAdapter,
 }
 
 impl RpcInterface {

+ 4 - 4
src/wallet/walletdb.rs

@@ -14,13 +14,13 @@ pub struct WalletDB {
     pub path: PathBuf,
     secrets: Vec<jubjub::Fr>,
     cashier_secrets: Vec<jubjub::Fr>,
-    own_coins: Vec<(Coin, Note, jubjub::Fr, IncrementalWitness<MerkleNode>)>,
+    pub own_coins: Vec<(Coin, Note, jubjub::Fr, IncrementalWitness<MerkleNode>)>,
     cashier_public: jubjub::SubgroupPoint,
     //conn: Arc<Connection>,
 }
 
 impl WalletDB {
-    pub fn new(wallet: &str) -> Result<Arc<Self>> {
+    pub fn new(wallet: &str) -> Result<Self> {
         let path = Self::create_path(wallet)?;
         let conn = Connection::open(&path)?;
         //let conn = Arc::new(Connection::open_with_flags(&path, OpenFlags::SQLITE_OPEN_NO_MUTEX)?);
@@ -30,14 +30,14 @@ impl WalletDB {
         let _public = zcash_primitives::constants::SPENDING_KEY_GENERATOR * secret;
         let cashier_public = zcash_primitives::constants::SPENDING_KEY_GENERATOR * cashier_secret;
         conn.execute_batch(&contents)?;
-        Ok(Arc::new(Self {
+        Ok(Self {
             path,
             own_coins: vec![],
             cashier_secrets: vec![cashier_secret.clone()],
             secrets: vec![secret.clone()],
             cashier_public,
             //conn,
-        }))
+        })
     }
 
     fn create_path(wallet: &str) -> Result<PathBuf> {