skoupidi 1 год назад
Родитель
Сommit
be45acd927

+ 5 - 13
bin/drk/src/rpc.rs

@@ -225,13 +225,14 @@ impl Drk {
         println!("=======================================");
         println!("=======================================");
         println!("[scan_block] Iterating over {} transactions", block.txs.len());
         println!("[scan_block] Iterating over {} transactions", block.txs.len());
         for tx in block.txs.iter() {
         for tx in block.txs.iter() {
-            let tx_hash = tx.hash().to_string();
+            let tx_hash = tx.hash();
+            let tx_hash_string = tx_hash.to_string();
             let mut wallet_tx = false;
             let mut wallet_tx = false;
-            println!("[scan_block] Processing transaction: {tx_hash}");
+            println!("[scan_block] Processing transaction: {tx_hash_string}");
             for (i, call) in tx.calls.iter().enumerate() {
             for (i, call) in tx.calls.iter().enumerate() {
                 if call.data.contract_id == *MONEY_CONTRACT_ID {
                 if call.data.contract_id == *MONEY_CONTRACT_ID {
                     println!("[scan_block] Found Money contract in call {i}");
                     println!("[scan_block] Found Money contract in call {i}");
-                    if self.apply_tx_money_data(i, &tx.calls, &tx_hash).await? {
+                    if self.apply_tx_money_data(i, &tx.calls, &tx_hash_string).await? {
                         wallet_tx = true;
                         wallet_tx = true;
                     };
                     };
                     continue
                     continue
@@ -239,16 +240,7 @@ impl Drk {
 
 
                 if call.data.contract_id == *DAO_CONTRACT_ID {
                 if call.data.contract_id == *DAO_CONTRACT_ID {
                     println!("[scan_block] Found DAO contract in call {i}");
                     println!("[scan_block] Found DAO contract in call {i}");
-                    if self
-                        .apply_tx_dao_data(
-                            &call.data.data,
-                            TransactionHash::new(
-                                *blake3::hash(&serialize_async(tx).await).as_bytes(),
-                            ),
-                            i as u8,
-                        )
-                        .await?
-                    {
+                    if self.apply_tx_dao_data(&call.data.data, tx_hash, i as u8).await? {
                         wallet_tx = true;
                         wallet_tx = true;
                     };
                     };
                     continue
                     continue

+ 1 - 1
bin/explorer/explorerd/src/service/blocks.rs

@@ -82,7 +82,7 @@ impl From<&BlockInfo> for BlockRecord {
             timestamp: block.header.timestamp,
             timestamp: block.header.timestamp,
             nonce: block.header.nonce,
             nonce: block.header.nonce,
             transactions_root: block.header.transactions_root.to_string(),
             transactions_root: block.header.transactions_root.to_string(),
-            state_root: blake3::hash(&block.header.state_root).to_string(),
+            state_root: blake3::Hash::from_bytes(block.header.state_root).to_string(),
             signature: block.signature,
             signature: block.signature,
         }
         }
     }
     }

+ 3 - 3
src/blockchain/header_store.rs

@@ -50,7 +50,7 @@ impl HeaderHash {
     }
     }
 
 
     pub fn as_string(&self) -> String {
     pub fn as_string(&self) -> String {
-        format!("{}", blake3::hash(&self.0))
+        blake3::Hash::from_bytes(self.0).to_string()
     }
     }
 }
 }
 
 
@@ -64,7 +64,7 @@ impl FromStr for HeaderHash {
 
 
 impl fmt::Display for HeaderHash {
 impl fmt::Display for HeaderHash {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        write!(f, "{}", blake3::hash(&self.0))
+        write!(f, "{}", self.as_string())
     }
     }
 }
 }
 
 
@@ -140,7 +140,7 @@ impl fmt::Display for Header {
             "Transactions Root",
             "Transactions Root",
             self.transactions_root,
             self.transactions_root,
             "State Root",
             "State Root",
-            blake3::hash(&self.state_root),
+            blake3::Hash::from_bytes(self.state_root),
         );
         );
 
 
         write!(f, "{}", s)
         write!(f, "{}", s)

+ 2 - 2
src/sdk/src/tx.rs

@@ -47,7 +47,7 @@ impl TransactionHash {
     }
     }
 
 
     pub fn as_string(&self) -> String {
     pub fn as_string(&self) -> String {
-        format!("{}", blake3::hash(&self.0))
+        blake3::Hash::from_bytes(self.0).to_string()
     }
     }
 }
 }
 
 
@@ -64,7 +64,7 @@ impl FromStr for TransactionHash {
 
 
 impl fmt::Display for TransactionHash {
 impl fmt::Display for TransactionHash {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        write!(f, "{}", blake3::hash(&self.0))
+        write!(f, "{}", self.as_string())
     }
     }
 }
 }
 
 

+ 6 - 6
src/validator/consensus.rs

@@ -658,8 +658,8 @@ impl Consensus {
         let last_block_state_root = self.blockchain.last_header()?.state_root;
         let last_block_state_root = self.blockchain.last_header()?.state_root;
         if state_root != last_block_state_root {
         if state_root != last_block_state_root {
             return Err(Error::ContractsStatesRootError(
             return Err(Error::ContractsStatesRootError(
-                blake3::hash(&state_root).to_string(),
-                blake3::hash(&last_block_state_root).to_string(),
+                blake3::Hash::from_bytes(state_root).to_string(),
+                blake3::Hash::from_bytes(last_block_state_root).to_string(),
             ));
             ));
         }
         }
 
 
@@ -946,8 +946,8 @@ impl Fork {
         };
         };
         if state_root != fork_state_root {
         if state_root != fork_state_root {
             return Err(Error::ContractsStatesRootError(
             return Err(Error::ContractsStatesRootError(
-                blake3::hash(&state_root).to_string(),
-                blake3::hash(&fork_state_root).to_string(),
+                blake3::Hash::from_bytes(state_root).to_string(),
+                blake3::Hash::from_bytes(fork_state_root).to_string(),
             ));
             ));
         }
         }
 
 
@@ -955,8 +955,8 @@ impl Fork {
         let last_block_state_root = self.last_proposal()?.block.header.state_root;
         let last_block_state_root = self.last_proposal()?.block.header.state_root;
         if state_root != last_block_state_root {
         if state_root != last_block_state_root {
             return Err(Error::ContractsStatesRootError(
             return Err(Error::ContractsStatesRootError(
-                blake3::hash(&state_root).to_string(),
-                blake3::hash(&last_block_state_root).to_string(),
+                blake3::Hash::from_bytes(state_root).to_string(),
+                blake3::Hash::from_bytes(last_block_state_root).to_string(),
             ));
             ));
         }
         }
 
 

+ 6 - 6
src/validator/verification.rs

@@ -116,8 +116,8 @@ pub async fn verify_genesis_block(
     };
     };
     if state_root != block.header.state_root {
     if state_root != block.header.state_root {
         return Err(Error::ContractsStatesRootError(
         return Err(Error::ContractsStatesRootError(
-            blake3::hash(&state_root).to_string(),
-            blake3::hash(&block.header.state_root).to_string(),
+            blake3::Hash::from_bytes(state_root).to_string(),
+            blake3::Hash::from_bytes(block.header.state_root).to_string(),
         ));
         ));
     }
     }
 
 
@@ -262,8 +262,8 @@ pub async fn verify_block(
     };
     };
     if state_root != block.header.state_root {
     if state_root != block.header.state_root {
         return Err(Error::ContractsStatesRootError(
         return Err(Error::ContractsStatesRootError(
-            blake3::hash(&state_root).to_string(),
-            blake3::hash(&block.header.state_root).to_string(),
+            blake3::Hash::from_bytes(state_root).to_string(),
+            blake3::Hash::from_bytes(block.header.state_root).to_string(),
         ));
         ));
     }
     }
 
 
@@ -340,8 +340,8 @@ pub async fn verify_checkpoint_block(
     };
     };
     if state_root != block.header.state_root {
     if state_root != block.header.state_root {
         return Err(Error::ContractsStatesRootError(
         return Err(Error::ContractsStatesRootError(
-            blake3::hash(&state_root).to_string(),
-            blake3::hash(&block.header.state_root).to_string(),
+            blake3::Hash::from_bytes(state_root).to_string(),
+            blake3::Hash::from_bytes(block.header.state_root).to_string(),
         ));
         ));
     }
     }