فهرست منبع

contract/consensus: removed reimporting of MoneyMint and MoneyBurn as ConsensusMint and ConsensusBurn

aggstam 3 سال پیش
والد
کامیت
758ff4c756

+ 0 - 16
src/contract/consensus/src/entrypoint.rs

@@ -21,7 +21,6 @@ use darkfi_money_contract::{
     CONSENSUS_CONTRACT_COINS_TREE, CONSENSUS_CONTRACT_COIN_MERKLE_TREE,
     CONSENSUS_CONTRACT_COIN_ROOTS_TREE, CONSENSUS_CONTRACT_DB_VERSION,
     CONSENSUS_CONTRACT_INFO_TREE, CONSENSUS_CONTRACT_NULLIFIERS_TREE,
-    CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1, CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1,
     MONEY_CONTRACT_ZKAS_BURN_NS_V1, MONEY_CONTRACT_ZKAS_MINT_NS_V1,
 };
 use darkfi_sdk::{
@@ -72,23 +71,8 @@ fn init_contract(cid: ContractId, _ix: &[u8]) -> ContractResult {
 
     let money_mint_v1_bincode = include_bytes!("../../money/proof/mint_v1.zk.bin");
     let money_burn_v1_bincode = include_bytes!("../../money/proof/burn_v1.zk.bin");
-
-    // TODO: for now we use same proof for mint and burn as Money
-    let consensus_mint_v1_bincode = include_bytes!("../../money/proof/mint_v1.zk.bin");
-    let consensus_burn_v1_bincode = include_bytes!("../../money/proof/burn_v1.zk.bin");
-
     db_set(zkas_db, &serialize(&MONEY_CONTRACT_ZKAS_MINT_NS_V1), &money_mint_v1_bincode[..])?;
     db_set(zkas_db, &serialize(&MONEY_CONTRACT_ZKAS_BURN_NS_V1), &money_burn_v1_bincode[..])?;
-    db_set(
-        zkas_db,
-        &serialize(&CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1),
-        &consensus_mint_v1_bincode[..],
-    )?;
-    db_set(
-        zkas_db,
-        &serialize(&CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1),
-        &consensus_burn_v1_bincode[..],
-    )?;
 
     // Set up a database tree to hold Merkle roots of all coins
     // k=MerkleNode, v=[]

+ 3 - 4
src/contract/consensus/src/entrypoint/stake_v1.rs

@@ -21,8 +21,7 @@ use darkfi_money_contract::{
     model::{ConsensusStakeParamsV1, ConsensusStakeUpdateV1, MoneyStakeParamsV1},
     CONSENSUS_CONTRACT_COINS_TREE, CONSENSUS_CONTRACT_COIN_MERKLE_TREE,
     CONSENSUS_CONTRACT_COIN_ROOTS_TREE, CONSENSUS_CONTRACT_INFO_TREE,
-    CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1, MONEY_CONTRACT_COIN_ROOTS_TREE,
-    MONEY_CONTRACT_NULLIFIERS_TREE,
+    MONEY_CONTRACT_COIN_ROOTS_TREE, MONEY_CONTRACT_NULLIFIERS_TREE, MONEY_CONTRACT_ZKAS_MINT_NS_V1,
 };
 use darkfi_sdk::{
     crypto::{
@@ -59,7 +58,7 @@ pub(crate) fn consensus_stake_get_metadata_v1(
     let token_coords = output.token_commit.to_affine().coordinates().unwrap();
 
     zk_public_inputs.push((
-        CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1.to_string(),
+        MONEY_CONTRACT_ZKAS_MINT_NS_V1.to_string(),
         vec![
             output.coin.inner(),
             *value_coords.x(),
@@ -136,7 +135,7 @@ pub(crate) fn consensus_stake_process_instruction_v1(
     let previous_call_idx = call_idx - 1;
     let previous = &calls[previous_call_idx as usize];
     if previous.contract_id.inner() != MONEY_CONTRACT_ID.inner() {
-        msg!("[ConsensusStakeV1] Error: Previous contract call is not consensus contract");
+        msg!("[ConsensusStakeV1] Error: Previous contract call is not money contract");
         return Err(MoneyError::StakePreviousCallNotMoneyContract.into())
     }
 

+ 2 - 2
src/contract/consensus/src/entrypoint/unstake_v1.rs

@@ -20,7 +20,7 @@ use darkfi_money_contract::{
     error::MoneyError,
     model::{ConsensusUnstakeParamsV1, ConsensusUnstakeUpdateV1, MoneyUnstakeParamsV1},
     CONSENSUS_CONTRACT_COIN_ROOTS_TREE, CONSENSUS_CONTRACT_NULLIFIERS_TREE,
-    CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1,
+    MONEY_CONTRACT_ZKAS_BURN_NS_V1,
 };
 use darkfi_sdk::{
     crypto::{
@@ -62,7 +62,7 @@ pub(crate) fn consensus_unstake_get_metadata_v1(
     // `constrain_instance` calls in the zkas code.
     // Otherwise verification will fail.
     zk_public_inputs.push((
-        CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1.to_string(),
+        MONEY_CONTRACT_ZKAS_BURN_NS_V1.to_string(),
         vec![
             input.nullifier.inner(),
             *value_coords.x(),

+ 2 - 3
src/contract/consensus/tests/harness.rs

@@ -43,7 +43,6 @@ use rand::rngs::OsRng;
 
 use darkfi_money_contract::{
     client::transfer_v1::TransferCallBuilder, model::MoneyTransferParamsV1, MoneyFunction,
-    CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1, CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1,
     MONEY_CONTRACT_ZKAS_BURN_NS_V1, MONEY_CONTRACT_ZKAS_MINT_NS_V1,
 };
 
@@ -146,8 +145,8 @@ impl ConsensusTestHarness {
             &CONSENSUS_CONTRACT_ID,
             SMART_CONTRACT_ZKAS_DB_NAME,
         )?;
-        mkpk!(CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1);
-        mkpk!(CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1);
+        mkpk!(MONEY_CONTRACT_ZKAS_MINT_NS_V1);
+        mkpk!(MONEY_CONTRACT_ZKAS_BURN_NS_V1);
 
         Ok(Self { faucet, alice, proving_keys })
     }

+ 5 - 10
src/contract/consensus/tests/stake_unstake.rs

@@ -44,8 +44,7 @@ use darkfi_money_contract::{
     client::{
         stake_v1::MoneyStakeCallBuilder, unstake_v1::MoneyUnstakeCallBuilder, MoneyNote, OwnCoin,
     },
-    MoneyFunction, CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1, CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1,
-    MONEY_CONTRACT_ZKAS_BURN_NS_V1, MONEY_CONTRACT_ZKAS_MINT_NS_V1,
+    MoneyFunction, MONEY_CONTRACT_ZKAS_BURN_NS_V1, MONEY_CONTRACT_ZKAS_MINT_NS_V1,
 };
 
 use darkfi_consensus_contract::{
@@ -81,10 +80,6 @@ async fn consensus_contract_stake_unstake() -> Result<()> {
     let (airdrop_tx, airdrop_params) = th.airdrop_native(ALICE_AIRDROP, th.alice.keypair.public)?;
     let (mint_pk, mint_zkbin) = th.proving_keys.get(&MONEY_CONTRACT_ZKAS_MINT_NS_V1).unwrap();
     let (burn_pk, burn_zkbin) = th.proving_keys.get(&MONEY_CONTRACT_ZKAS_BURN_NS_V1).unwrap();
-    let (consensus_mint_pk, consensus_mint_zkbin) =
-        th.proving_keys.get(&CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1).unwrap();
-    let (consensus_burn_pk, consensus_burn_zkbin) =
-        th.proving_keys.get(&CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1).unwrap();
 
     info!(target: "consensus", "[Faucet] ==========================");
     info!(target: "consensus", "[Faucet] Executing Alice airdrop tx");
@@ -145,8 +140,8 @@ async fn consensus_contract_stake_unstake() -> Result<()> {
         nullifier: alice_money_stake_params.input.nullifier,
         merkle_root: alice_money_stake_params.input.merkle_root,
         signature_public: alice_money_stake_params.input.signature_public,
-        mint_zkbin: consensus_mint_zkbin.clone(),
-        mint_pk: consensus_mint_pk.clone(),
+        mint_zkbin: mint_zkbin.clone(),
+        mint_pk: mint_pk.clone(),
     }
     .build()?;
     let (alice_consensus_stake_params, alice_consensus_stake_proofs) =
@@ -228,8 +223,8 @@ async fn consensus_contract_stake_unstake() -> Result<()> {
     let alice_consensus_unstake_call_debris = ConsensusUnstakeCallBuilder {
         coin: alice_staked_oc.clone(),
         tree: th.alice.consensus_merkle_tree.clone(),
-        burn_zkbin: consensus_burn_zkbin.clone(),
-        burn_pk: consensus_burn_pk.clone(),
+        burn_zkbin: burn_zkbin.clone(),
+        burn_pk: burn_pk.clone(),
     }
     .build()?;
     let (

+ 0 - 4
src/contract/money/src/lib.rs

@@ -97,7 +97,3 @@ pub const CONSENSUS_CONTRACT_NULLIFIERS_TREE: &str = "consensus_nullifiers";
 // These are keys inside the consensus info tree
 pub const CONSENSUS_CONTRACT_DB_VERSION: &str = env!("CARGO_PKG_VERSION");
 pub const CONSENSUS_CONTRACT_COIN_MERKLE_TREE: &str = "consensus_coin_tree";
-
-/// Consensus zkas circuits namespaces
-pub const CONSENSUS_CONTRACT_ZKAS_MINT_NS_V1: &str = "Consensus_Mint_V1";
-pub const CONSENSUS_CONTRACT_ZKAS_BURN_NS_V1: &str = "Consensus_Burn_V1";