mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 14:48:08 -05:00
[crypsinous] move circuit creation to leadcoin
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
use halo2_proofs::{arithmetic::Field, dev::MockProver, circuit::Value};
|
||||
use halo2_proofs::{arithmetic::Field, dev::MockProver};
|
||||
use incrementalmerkletree::{bridgetree::BridgeTree, Tree};
|
||||
use pasta_curves::{
|
||||
arithmetic::CurveAffine,
|
||||
@@ -54,27 +54,7 @@ fn main() {
|
||||
let coins: Vec<LeadCoin> = epoch.create_coins();
|
||||
let coin_idx = 0;
|
||||
let coin = coins[coin_idx];
|
||||
|
||||
let contract = LeadContract {
|
||||
path: Value::known(coin.path.unwrap()),
|
||||
coin_pk_x: Value::known(coin.pk_x.unwrap()),
|
||||
coin_pk_y: Value::known(coin.pk_y.unwrap()),
|
||||
root_sk: Value::known(coin.root_sk.unwrap()),
|
||||
sf_root_sk: Value::known(mod_r_p(coin.root_sk.unwrap())),
|
||||
path_sk: Value::known(coin.path_sk.unwrap()),
|
||||
coin_timestamp: Value::known(coin.tau.unwrap()), //
|
||||
coin_nonce: Value::known(coin.nonce.unwrap()),
|
||||
coin1_blind: Value::known(coin.c1_blind.unwrap()),
|
||||
value: Value::known(coin.value.unwrap()),
|
||||
coin2_blind: Value::known(coin.c2_blind.unwrap()),
|
||||
cm_pos: Value::known(coin.idx),
|
||||
//sn_c1: Value::known(coin.sn.unwrap()),
|
||||
slot: Value::known(coin.sl.unwrap()),
|
||||
mau_rho: Value::known(mod_r_p(coin.rho_mu.unwrap())),
|
||||
mau_y: Value::known(mod_r_p(coin.y_mu.unwrap())),
|
||||
root_cm: Value::known(coin.root_cm.unwrap()),
|
||||
};
|
||||
|
||||
let contract = coin.create_contract();
|
||||
//let proof = create_lead_proof(lead_pk.clone(), coin.clone()).unwrap();
|
||||
//verify_lead_proof(&lead_vk, &proof, coin);
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
use pasta_curves::pallas;
|
||||
|
||||
use crate::crypto::{
|
||||
constants::MERKLE_DEPTH_ORCHARD,
|
||||
merkle_node::MerkleNode,
|
||||
util::{mod_r_p, pedersen_commitment_scalar},
|
||||
use halo2_proofs::{circuit::Value};
|
||||
use crate::{
|
||||
zk::circuit::lead_contract::LeadContract,
|
||||
crypto::{
|
||||
constants::MERKLE_DEPTH_ORCHARD,
|
||||
merkle_node::MerkleNode,
|
||||
util::{mod_r_p, pedersen_commitment_scalar},
|
||||
}
|
||||
};
|
||||
|
||||
use incrementalmerkletree::Hashable;
|
||||
@@ -89,4 +92,28 @@ impl LeadCoin {
|
||||
];
|
||||
public_inputs
|
||||
}
|
||||
|
||||
pub fn create_contract(&self) -> LeadContract
|
||||
{
|
||||
let contract = LeadContract {
|
||||
path: Value::known(self.path.unwrap()),
|
||||
coin_pk_x: Value::known(self.pk_x.unwrap()),
|
||||
coin_pk_y: Value::known(self.pk_y.unwrap()),
|
||||
root_sk: Value::known(self.root_sk.unwrap()),
|
||||
sf_root_sk: Value::known(mod_r_p(self.root_sk.unwrap())),
|
||||
path_sk: Value::known(self.path_sk.unwrap()),
|
||||
coin_timestamp: Value::known(self.tau.unwrap()), //
|
||||
coin_nonce: Value::known(self.nonce.unwrap()),
|
||||
coin1_blind: Value::known(self.c1_blind.unwrap()),
|
||||
value: Value::known(self.value.unwrap()),
|
||||
coin2_blind: Value::known(self.c2_blind.unwrap()),
|
||||
cm_pos: Value::known(self.idx),
|
||||
//sn_c1: Value::known(self.sn.unwrap()),
|
||||
slot: Value::known(self.sl.unwrap()),
|
||||
mau_rho: Value::known(mod_r_p(self.rho_mu.unwrap())),
|
||||
mau_y: Value::known(mod_r_p(self.y_mu.unwrap())),
|
||||
root_cm: Value::known(self.root_cm.unwrap()),
|
||||
};
|
||||
contract
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ use crate::{
|
||||
use pasta_curves::{
|
||||
pallas,
|
||||
};
|
||||
|
||||
use group::ff::PrimeField;
|
||||
|
||||
pub struct Stakeholder
|
||||
|
||||
Reference in New Issue
Block a user