Переглянути джерело

refactor: move compute_fee from validator to sdk/blockchain and remove drk dependency on validator feature due to validator feature's deploy_native_contracts function
that causes an error when drk is used as a library

oars 4 місяців тому
батько
коміт
eec7de2ecd

+ 1 - 1
bin/drk/Cargo.toml

@@ -14,7 +14,7 @@ crate-type = ["cdylib", "rlib"]
 
 [dependencies]
 # Darkfi
-darkfi = {path = "../../", features = ["async-daemonize", "bs58", "rpc", "validator"]}
+darkfi = {path = "../../", features = ["async-daemonize", "bs58", "rpc"]}
 darkfi_money_contract = {path = "../../src/contract/money", features = ["no-entrypoint", "client"]}
 darkfi_dao_contract = {path = "../../src/contract/dao", features = ["no-entrypoint", "client"]}
 darkfi_deployooor_contract = {path = "../../src/contract/deployooor", features = ["no-entrypoint", "client"]}

+ 1 - 1
bin/drk/src/money.rs

@@ -28,7 +28,6 @@ use rusqlite::types::Value;
 use darkfi::{
     tx::Transaction,
     util::encoding::base64,
-    validator::fees::compute_fee,
     zk::{halo2::Field, proof::ProvingKey, vm::ZkCircuit, vm_heap::empty_witnesses, Proof},
     zkas::ZkBinary,
     Error, Result,
@@ -47,6 +46,7 @@ use darkfi_money_contract::{
     MoneyFunction, MONEY_CONTRACT_ZKAS_FEE_NS_V1,
 };
 use darkfi_sdk::{
+    blockchain::compute_fee,
     bridgetree::Position,
     crypto::{
         keypair::{Address, Keypair, PublicKey, SecretKey, StandardAddress},

+ 2 - 1
script/research/tx-replayer/src/main.rs

@@ -29,12 +29,13 @@ use darkfi::{
     tx::{MAX_TX_CALLS, MIN_TX_CALLS, Transaction},
     util::path::expand_path,
     validator::{
-        fees::{GasData, PALLAS_SCHNORR_SIGNATURE_FEE, circuit_gas_use, compute_fee},
+        fees::{GasData, PALLAS_SCHNORR_SIGNATURE_FEE, circuit_gas_use},
         verification::verify_transaction,
     },
     zk::VerifyingKey,
 };
 use darkfi_sdk::{
+    blockchain::compute_fee,
     crypto::{ContractId, MerkleTree, PublicKey},
     dark_tree::dark_forest_leaf_vec_integrity_check,
     deploy::DeployParamsV1,

+ 1 - 2
src/contract/money/tests/delayed_tx.rs

@@ -18,7 +18,6 @@
 
 use darkfi::{
     tx::{ContractCallLeaf, TransactionBuilder},
-    validator::fees::compute_fee,
     zk::halo2::Field,
     Result,
 };
@@ -35,7 +34,7 @@ use darkfi_money_contract::{
     MONEY_CONTRACT_ZKAS_MINT_NS_V1,
 };
 use darkfi_sdk::{
-    blockchain::expected_reward,
+    blockchain::{compute_fee, expected_reward},
     crypto::{
         contract_id::MONEY_CONTRACT_ID, note::AeadEncryptedNote, BaseBlind, FuncId, MerkleNode,
         ScalarBlind, SecretKey,

+ 1 - 1
src/contract/test-harness/src/money_fee.rs

@@ -20,7 +20,6 @@ use std::{collections::HashSet, hash::RandomState};
 
 use darkfi::{
     tx::{ContractCallLeaf, Transaction, TransactionBuilder},
-    validator::fees::compute_fee,
     zk::{halo2::Field, Proof},
     Result,
 };
@@ -34,6 +33,7 @@ use darkfi_money_contract::{
     MoneyFunction, MONEY_CONTRACT_ZKAS_FEE_NS_V1,
 };
 use darkfi_sdk::{
+    blockchain::compute_fee,
     crypto::{
         contract_id::MONEY_CONTRACT_ID, note::AeadEncryptedNote, BaseBlind, Blind, FuncId,
         ScalarBlind, SecretKey,

+ 8 - 0
src/sdk/src/blockchain.rs

@@ -67,3 +67,11 @@ pub fn expected_reward(height: u32) -> u64 {
         _ => 100_000_000,   // 1 DRK
     }
 }
+
+/// Auxiliary function to compute the corresponding fee value
+/// for the provided gas.
+///
+/// Currently we simply divide the gas value by 100.
+pub fn compute_fee(gas: &u64) -> u64 {
+    gas / 100
+}

+ 0 - 8
src/validator/fees.rs

@@ -142,11 +142,3 @@ impl std::fmt::Debug for GasData {
             .finish()
     }
 }
-
-/// Auxiliary function to compute the corresponding fee value
-/// for the provided gas.
-///
-/// Currently we simply divide the gas value by 100.
-pub fn compute_fee(gas: &u64) -> u64 {
-    gas / 100
-}

+ 1 - 2
src/validator/mod.rs

@@ -18,7 +18,7 @@
 
 use std::{collections::HashMap, sync::Arc};
 
-use darkfi_sdk::crypto::MerkleTree;
+use darkfi_sdk::{blockchain::compute_fee, crypto::MerkleTree};
 use num_bigint::BigUint;
 use sled_overlay::sled;
 use smol::lock::RwLock;
@@ -56,7 +56,6 @@ use verification::{
 
 /// Fee calculation helpers
 pub mod fees;
-use fees::compute_fee;
 
 /// Helper utilities
 pub mod utils;

+ 2 - 2
src/validator/verification.rs

@@ -19,7 +19,7 @@
 use std::collections::HashMap;
 
 use darkfi_sdk::{
-    blockchain::block_version,
+    blockchain::{block_version, compute_fee},
     crypto::{
         schnorr::{SchnorrPublic, Signature},
         ContractId, MerkleTree, PublicKey,
@@ -44,7 +44,7 @@ use crate::{
     tx::{Transaction, MAX_TX_CALLS, MIN_TX_CALLS},
     validator::{
         consensus::{Consensus, Fork, Proposal, BLOCK_GAS_LIMIT},
-        fees::{circuit_gas_use, compute_fee, GasData, PALLAS_SCHNORR_SIGNATURE_FEE},
+        fees::{circuit_gas_use, GasData, PALLAS_SCHNORR_SIGNATURE_FEE},
         pow::PoWModule,
     },
     zk::VerifyingKey,