Skip to content

Commit

Permalink
some cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
ec2 committed Jan 24, 2024
1 parent 62c96be commit 27bdb04
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 86 deletions.
2 changes: 1 addition & 1 deletion lightclient-circuits/src/committee_update_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ impl<S: Spec, F: Field> CommitteeUpdateCircuit<S, F> {
.hash_tree_root()
.unwrap()
.as_ref()
.into_iter()
.iter()
.map(|v| builder.main().load_witness(F::from(*v as u64)))
.collect_vec();
verify_merkle_multiproof(
Expand Down
4 changes: 2 additions & 2 deletions lightclient-circuits/src/sync_step_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ impl<S: Spec, F: Field> StepCircuit<S, F> {
.hash_tree_root()
.unwrap()
.as_ref()
.into_iter()
.iter()
.map(|v| builder.main().load_witness(F::from(*v as u64)))
.collect_vec();

Expand Down Expand Up @@ -156,7 +156,7 @@ impl<S: Spec, F: Field> StepCircuit<S, F> {
.hash_tree_root()
.unwrap()
.as_ref()
.into_iter()
.iter()
.map(|v| builder.main().load_witness(F::from(*v as u64)))
.collect_vec();

Expand Down
16 changes: 16 additions & 0 deletions lightclient-circuits/src/witness/multiproof.rs
Original file line number Diff line number Diff line change
Expand Up @@ -198,3 +198,19 @@ pub fn block_header_to_leaves(
header.body_root.hash_tree_root()?,
])
}

pub fn beacon_header_multiproof_and_helper_indices(
header: &mut BeaconBlockHeader,
gindices: &[usize],
) -> (Vec<Node>, Vec<usize>) {
let header_leaves = block_header_to_leaves(header).unwrap();
let merkle_tree = merkle_tree(&header_leaves);
let helper_indices = get_helper_indices(gindices);
let proof = helper_indices
.iter()
.copied()
.map(|i| merkle_tree[i])
.collect::<Vec<_>>();
assert_eq!(proof.len(), helper_indices.len());
(proof, helper_indices)
}
18 changes: 2 additions & 16 deletions preprocessor/src/rotation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ use std::marker::PhantomData;

use beacon_api_client::{BlockId, Client, ClientTypes};
use eth_types::Spec;
use ethereum_consensus_types::{BeaconBlockHeader, LightClientUpdateCapella};
use ethereum_consensus_types::LightClientUpdateCapella;
use itertools::Itertools;
use lightclient_circuits::witness::{
block_header_to_leaves, get_helper_indices, merkle_tree, CommitteeUpdateArgs,
beacon_header_multiproof_and_helper_indices, CommitteeUpdateArgs,
};
use log::debug;
use ssz_rs::Merkleized;
Expand Down Expand Up @@ -95,20 +95,6 @@ where
"Execution payload merkle proof verification failed"
);

let beacon_header_multiproof_and_helper_indices =
|header: &mut BeaconBlockHeader, gindices: &[usize]| {
let header_leaves = block_header_to_leaves(header).unwrap();
let merkle_tree = merkle_tree(&header_leaves);
let helper_indices = get_helper_indices(gindices);
let proof = helper_indices
.iter()
.copied()
.map(|i| merkle_tree[i])
.collect_vec();
assert_eq!(proof.len(), helper_indices.len());
(proof, helper_indices)
};

let (finalized_header_multiproof, finalized_header_helper_indices) =
beacon_header_multiproof_and_helper_indices(
&mut update.finalized_header.beacon.clone(),
Expand Down
23 changes: 2 additions & 21 deletions preprocessor/src/step.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,9 @@ use beacon_api_client::{BlockId, ClientTypes, StateId};
use eth_types::Spec;
use ethereum_consensus_types::bls::BlsPublicKey;
use ethereum_consensus_types::signing::{compute_domain, DomainType};
use ethereum_consensus_types::{
BeaconBlockHeader, ForkData, LightClientBootstrap, LightClientFinalityUpdate,
};
use ethereum_consensus_types::{ForkData, LightClientBootstrap, LightClientFinalityUpdate};
use itertools::Itertools;
use lightclient_circuits::witness::{
block_header_to_leaves, get_helper_indices, merkle_tree, SyncStepArgs,
};
use lightclient_circuits::witness::{beacon_header_multiproof_and_helper_indices, SyncStepArgs};
use ssz_rs::Vector;
use ssz_rs::{Merkleized, Node};

Expand Down Expand Up @@ -123,21 +119,6 @@ pub async fn step_args_from_finality_update<S: Spec>(
"Finality merkle proof verification failed"
);

let beacon_header_multiproof_and_helper_indices =
|header: &mut BeaconBlockHeader, gindices: &[usize]| {
let header_leaves = block_header_to_leaves(header).unwrap();
let merkle_tree = merkle_tree(&header_leaves);
let helper_indices = get_helper_indices(gindices);
let proof = helper_indices
.iter()
.copied()
.map(|i| merkle_tree[i])
.collect_vec();
// println!("Proof length: {}", proof.len());
assert_eq!(proof.len(), helper_indices.len());
(proof, helper_indices)
};

// Proof length is 3
let (attested_header_multiproof, attested_header_helper_indices) =
beacon_header_multiproof_and_helper_indices(
Expand Down
18 changes: 2 additions & 16 deletions preprocessor/src/unit_test_gen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ use ethereum_consensus::signing::compute_signing_root;
use ethereum_consensus::state_transition::Context;
use itertools::Itertools as _;
use lightclient_circuits::witness::{
block_header_to_leaves, get_helper_indices, merkle_tree, parent, CommitteeUpdateArgs,
SyncStepArgs,
beacon_header_multiproof_and_helper_indices, get_helper_indices, merkle_tree, parent,
CommitteeUpdateArgs, SyncStepArgs,
};
use ssz_rs::{MerkleizationError, Merkleized, Node};
use std::fs::File;
Expand Down Expand Up @@ -156,20 +156,6 @@ fn main() {
body_root: finalized_block.body_root,
};

let beacon_header_multiproof_and_helper_indices =
|header: &mut ethereum_consensus_types::BeaconBlockHeader, gindices: &[usize]| {
let header_leaves = block_header_to_leaves(header).unwrap();
let merkle_tree = merkle_tree(&header_leaves);
let helper_indices = get_helper_indices(gindices);
let proof = helper_indices
.iter()
.copied()
.map(|i| merkle_tree[i])
.collect_vec();
assert_eq!(proof.len(), helper_indices.len());
(proof, helper_indices)
};

// Proof length is 3
let (attested_header_multiproof, attested_header_helper_indices) =
beacon_header_multiproof_and_helper_indices(
Expand Down
31 changes: 1 addition & 30 deletions test-utils/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use ethereum_consensus_types::{ForkData, Root};
use itertools::Itertools;
use lightclient_circuits::poseidon::poseidon_committee_commitment_from_uncompressed;
use lightclient_circuits::witness::{
block_header_to_leaves, get_helper_indices, merkle_tree, CommitteeUpdateArgs, SyncStepArgs,
beacon_header_multiproof_and_helper_indices, CommitteeUpdateArgs, SyncStepArgs,
};
use ssz_rs::prelude::*;
use ssz_rs::Merkleized;
Expand Down Expand Up @@ -114,21 +114,6 @@ pub fn read_test_files_and_gen_witness(
let mut agg_pk: ByteVector<48> = ByteVector(Vector::try_from(agg_pubkeys_compressed).unwrap());

sync_committee_branch.insert(0, agg_pk.hash_tree_root().unwrap().deref().to_vec());

let beacon_header_multiproof_and_helper_indices =
|header: &mut BeaconBlockHeader, gindices: &[usize]| {
let header_leaves = block_header_to_leaves(header).unwrap();
let merkle_tree = merkle_tree(&header_leaves);
let helper_indices = get_helper_indices(gindices);
let proof = helper_indices
.iter()
.copied()
.map(|i| merkle_tree[i])
.collect_vec();
assert_eq!(proof.len(), helper_indices.len());
(proof, helper_indices)
};

let (finalized_header_multiproof, finalized_header_helper_indices) =
beacon_header_multiproof_and_helper_indices(
&mut sync_wit.attested_header.clone(),
Expand Down Expand Up @@ -271,20 +256,6 @@ fn to_sync_ciruit_witness<const SYNC_COMMITTEE_SIZE: usize>(
.map(|b| b.deref().to_vec())
.collect();

let beacon_header_multiproof_and_helper_indices =
|header: &mut BeaconBlockHeader, gindices: &[usize]| {
let header_leaves = block_header_to_leaves(header).unwrap();
let merkle_tree = merkle_tree(&header_leaves);
let helper_indices = get_helper_indices(gindices);
let proof = helper_indices
.iter()
.copied()
.map(|i| merkle_tree[i])
.collect_vec();
assert_eq!(proof.len(), helper_indices.len());
(proof, helper_indices)
};

// Proof length is 3
let (attested_header_multiproof, attested_header_helper_indices) =
beacon_header_multiproof_and_helper_indices(
Expand Down

0 comments on commit 27bdb04

Please sign in to comment.