mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-27 01:33:33 +00:00
Add deposit processing, fix clippy lints
This commit is contained in:
@@ -17,6 +17,7 @@ pub use crate::signature::Signature;
|
||||
|
||||
pub const BLS_AGG_SIG_BYTE_SIZE: usize = 96;
|
||||
|
||||
use hashing::hash;
|
||||
use ssz::ssz_encode;
|
||||
|
||||
/// For some signature and public key, ensure that the signature message was the public key and it
|
||||
@@ -33,6 +34,15 @@ pub fn create_proof_of_possession(keypair: &Keypair) -> Signature {
|
||||
Signature::new(&ssz_encode(&keypair.pk), 0, &keypair.sk)
|
||||
}
|
||||
|
||||
/// Returns the withdrawal credentials for a given public key.
|
||||
pub fn get_withdrawal_credentials(pubkey: &PublicKey, prefix_byte: u8) -> Vec<u8> {
|
||||
let hashed = hash(&ssz_encode(pubkey));
|
||||
let mut prefixed = vec![prefix_byte];
|
||||
prefixed.extend_from_slice(&hashed[1..]);
|
||||
|
||||
prefixed
|
||||
}
|
||||
|
||||
pub fn bls_verify_aggregate(
|
||||
pubkey: &AggregatePublicKey,
|
||||
message: &[u8],
|
||||
|
||||
@@ -25,14 +25,14 @@ fn merkle_root_from_branch(leaf: H256, branch: &[H256], depth: usize, index: usi
|
||||
|
||||
let mut merkle_root = leaf.as_bytes().to_vec();
|
||||
|
||||
for i in 0..depth {
|
||||
for (i, leaf) in branch.iter().enumerate().take(depth) {
|
||||
let ith_bit = (index >> i) & 0x01;
|
||||
if ith_bit == 1 {
|
||||
let input = concat(branch[i].as_bytes().to_vec(), merkle_root);
|
||||
let input = concat(leaf.as_bytes().to_vec(), merkle_root);
|
||||
merkle_root = hash(&input);
|
||||
} else {
|
||||
let mut input = merkle_root;
|
||||
input.extend_from_slice(branch[i].as_bytes());
|
||||
input.extend_from_slice(leaf.as_bytes());
|
||||
merkle_root = hash(&input);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ fn type_ident_is_signature(ident: &syn::Ident) -> bool {
|
||||
/// the final `Ident` in that path.
|
||||
///
|
||||
/// E.g., for `types::Signature` returns `Signature`.
|
||||
fn final_type_ident<'a>(field: &'a syn::Field) -> &'a syn::Ident {
|
||||
fn final_type_ident(field: &syn::Field) -> &syn::Ident {
|
||||
match &field.ty {
|
||||
syn::Type::Path(path) => &path.path.segments.last().unwrap().value().ident,
|
||||
_ => panic!("ssz_derive only supports Path types."),
|
||||
|
||||
Reference in New Issue
Block a user