Merge branch 'unstable' of https://github.com/sigp/lighthouse into eip4844
This commit is contained in:
		
						commit
						1aec17b09c
					
				| @ -349,7 +349,7 @@ fn load_voting_keypair( | |||||||
|     password_file_path: Option<&PathBuf>, |     password_file_path: Option<&PathBuf>, | ||||||
|     stdin_inputs: bool, |     stdin_inputs: bool, | ||||||
| ) -> Result<Keypair, String> { | ) -> Result<Keypair, String> { | ||||||
|     let keystore = Keystore::from_json_file(&voting_keystore_path).map_err(|e| { |     let keystore = Keystore::from_json_file(voting_keystore_path).map_err(|e| { | ||||||
|         format!( |         format!( | ||||||
|             "Unable to read keystore JSON {:?}: {:?}", |             "Unable to read keystore JSON {:?}: {:?}", | ||||||
|             voting_keystore_path, e |             voting_keystore_path, e | ||||||
|  | |||||||
| @ -176,7 +176,7 @@ pub fn cli_run(matches: &ArgMatches, validator_dir: PathBuf) -> Result<(), Strin | |||||||
| 
 | 
 | ||||||
|             let password = match keystore_password_path.as_ref() { |             let password = match keystore_password_path.as_ref() { | ||||||
|                 Some(path) => { |                 Some(path) => { | ||||||
|                     let password_from_file: ZeroizeString = fs::read_to_string(&path) |                     let password_from_file: ZeroizeString = fs::read_to_string(path) | ||||||
|                         .map_err(|e| format!("Unable to read {:?}: {:?}", path, e))? |                         .map_err(|e| format!("Unable to read {:?}: {:?}", path, e))? | ||||||
|                         .into(); |                         .into(); | ||||||
|                     password_from_file.without_newlines() |                     password_from_file.without_newlines() | ||||||
| @ -256,7 +256,7 @@ pub fn cli_run(matches: &ArgMatches, validator_dir: PathBuf) -> Result<(), Strin | |||||||
|             .ok_or_else(|| format!("Badly formatted file name: {:?}", src_keystore))?; |             .ok_or_else(|| format!("Badly formatted file name: {:?}", src_keystore))?; | ||||||
| 
 | 
 | ||||||
|         // Copy the keystore to the new location.
 |         // Copy the keystore to the new location.
 | ||||||
|         fs::copy(&src_keystore, &dest_keystore) |         fs::copy(src_keystore, &dest_keystore) | ||||||
|             .map_err(|e| format!("Unable to copy keystore: {:?}", e))?; |             .map_err(|e| format!("Unable to copy keystore: {:?}", e))?; | ||||||
| 
 | 
 | ||||||
|         // Register with slashing protection.
 |         // Register with slashing protection.
 | ||||||
|  | |||||||
| @ -159,7 +159,7 @@ pub fn create_wallet_from_mnemonic( | |||||||
|         unknown => return Err(format!("--{} {} is not supported", TYPE_FLAG, unknown)), |         unknown => return Err(format!("--{} {} is not supported", TYPE_FLAG, unknown)), | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     let mgr = WalletManager::open(&wallet_base_dir) |     let mgr = WalletManager::open(wallet_base_dir) | ||||||
|         .map_err(|e| format!("Unable to open --{}: {:?}", WALLETS_DIR_FLAG, e))?; |         .map_err(|e| format!("Unable to open --{}: {:?}", WALLETS_DIR_FLAG, e))?; | ||||||
| 
 | 
 | ||||||
|     let wallet_password: PlainText = match wallet_password_path { |     let wallet_password: PlainText = match wallet_password_path { | ||||||
|  | |||||||
| @ -45,7 +45,7 @@ impl HeadTracker { | |||||||
|     /// Returns a `SszHeadTracker`, which contains all necessary information to restore the state
 |     /// Returns a `SszHeadTracker`, which contains all necessary information to restore the state
 | ||||||
|     /// of `Self` at some later point.
 |     /// of `Self` at some later point.
 | ||||||
|     pub fn to_ssz_container(&self) -> SszHeadTracker { |     pub fn to_ssz_container(&self) -> SszHeadTracker { | ||||||
|         SszHeadTracker::from_map(&*self.0.read()) |         SszHeadTracker::from_map(&self.0.read()) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /// Creates a new `Self` from the given `SszHeadTracker`, restoring `Self` to the same state of
 |     /// Creates a new `Self` from the given `SszHeadTracker`, restoring `Self` to the same state of
 | ||||||
|  | |||||||
| @ -588,7 +588,7 @@ impl<E: EthSpec, Hot: ItemStore<E>, Cold: ItemStore<E>> BackgroundMigrator<E, Ho | |||||||
|         let persisted_head = PersistedBeaconChain { |         let persisted_head = PersistedBeaconChain { | ||||||
|             _canonical_head_block_root: DUMMY_CANONICAL_HEAD_BLOCK_ROOT, |             _canonical_head_block_root: DUMMY_CANONICAL_HEAD_BLOCK_ROOT, | ||||||
|             genesis_block_root, |             genesis_block_root, | ||||||
|             ssz_head_tracker: SszHeadTracker::from_map(&*head_tracker_lock), |             ssz_head_tracker: SszHeadTracker::from_map(&head_tracker_lock), | ||||||
|         }; |         }; | ||||||
|         drop(head_tracker_lock); |         drop(head_tracker_lock); | ||||||
|         kv_batch.push(persisted_head.as_kv_store_op(BEACON_CHAIN_DB_KEY)); |         kv_batch.push(persisted_head.as_kv_store_op(BEACON_CHAIN_DB_KEY)); | ||||||
|  | |||||||
| @ -17,7 +17,6 @@ use crate::persisted_fork_choice::{ | |||||||
| }; | }; | ||||||
| use crate::types::ChainSpec; | use crate::types::ChainSpec; | ||||||
| use slog::{warn, Logger}; | use slog::{warn, Logger}; | ||||||
| use std::path::Path; |  | ||||||
| use std::sync::Arc; | use std::sync::Arc; | ||||||
| use store::hot_cold_store::{HotColdDB, HotColdDBError}; | use store::hot_cold_store::{HotColdDB, HotColdDBError}; | ||||||
| use store::metadata::{SchemaVersion, CURRENT_SCHEMA_VERSION}; | use store::metadata::{SchemaVersion, CURRENT_SCHEMA_VERSION}; | ||||||
| @ -27,7 +26,6 @@ use store::{Error as StoreError, StoreItem}; | |||||||
| pub fn migrate_schema<T: BeaconChainTypes>( | pub fn migrate_schema<T: BeaconChainTypes>( | ||||||
|     db: Arc<HotColdDB<T::EthSpec, T::HotStore, T::ColdStore>>, |     db: Arc<HotColdDB<T::EthSpec, T::HotStore, T::ColdStore>>, | ||||||
|     deposit_contract_deploy_block: u64, |     deposit_contract_deploy_block: u64, | ||||||
|     datadir: &Path, |  | ||||||
|     from: SchemaVersion, |     from: SchemaVersion, | ||||||
|     to: SchemaVersion, |     to: SchemaVersion, | ||||||
|     log: Logger, |     log: Logger, | ||||||
| @ -42,21 +40,12 @@ pub fn migrate_schema<T: BeaconChainTypes>( | |||||||
|             migrate_schema::<T>( |             migrate_schema::<T>( | ||||||
|                 db.clone(), |                 db.clone(), | ||||||
|                 deposit_contract_deploy_block, |                 deposit_contract_deploy_block, | ||||||
|                 datadir, |  | ||||||
|                 from, |                 from, | ||||||
|                 next, |                 next, | ||||||
|                 log.clone(), |                 log.clone(), | ||||||
|                 spec, |                 spec, | ||||||
|             )?; |             )?; | ||||||
|             migrate_schema::<T>( |             migrate_schema::<T>(db, deposit_contract_deploy_block, next, to, log, spec) | ||||||
|                 db, |  | ||||||
|                 deposit_contract_deploy_block, |  | ||||||
|                 datadir, |  | ||||||
|                 next, |  | ||||||
|                 to, |  | ||||||
|                 log, |  | ||||||
|                 spec, |  | ||||||
|             ) |  | ||||||
|         } |         } | ||||||
|         // Downgrade across multiple versions by recursively migrating one step at a time.
 |         // Downgrade across multiple versions by recursively migrating one step at a time.
 | ||||||
|         (_, _) if to.as_u64() + 1 < from.as_u64() => { |         (_, _) if to.as_u64() + 1 < from.as_u64() => { | ||||||
| @ -64,21 +53,12 @@ pub fn migrate_schema<T: BeaconChainTypes>( | |||||||
|             migrate_schema::<T>( |             migrate_schema::<T>( | ||||||
|                 db.clone(), |                 db.clone(), | ||||||
|                 deposit_contract_deploy_block, |                 deposit_contract_deploy_block, | ||||||
|                 datadir, |  | ||||||
|                 from, |                 from, | ||||||
|                 next, |                 next, | ||||||
|                 log.clone(), |                 log.clone(), | ||||||
|                 spec, |                 spec, | ||||||
|             )?; |             )?; | ||||||
|             migrate_schema::<T>( |             migrate_schema::<T>(db, deposit_contract_deploy_block, next, to, log, spec) | ||||||
|                 db, |  | ||||||
|                 deposit_contract_deploy_block, |  | ||||||
|                 datadir, |  | ||||||
|                 next, |  | ||||||
|                 to, |  | ||||||
|                 log, |  | ||||||
|                 spec, |  | ||||||
|             ) |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         //
 |         //
 | ||||||
|  | |||||||
| @ -356,7 +356,7 @@ where | |||||||
| 
 | 
 | ||||||
|         let urls: Vec<SensitiveUrl> = urls |         let urls: Vec<SensitiveUrl> = urls | ||||||
|             .iter() |             .iter() | ||||||
|             .map(|s| SensitiveUrl::parse(*s)) |             .map(|s| SensitiveUrl::parse(s)) | ||||||
|             .collect::<Result<_, _>>() |             .collect::<Result<_, _>>() | ||||||
|             .unwrap(); |             .unwrap(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -332,34 +332,22 @@ impl<T: EthSpec> ValidatorMonitor<T> { | |||||||
|                     metrics::set_int_gauge( |                     metrics::set_int_gauge( | ||||||
|                         &metrics::VALIDATOR_MONITOR_SLASHED, |                         &metrics::VALIDATOR_MONITOR_SLASHED, | ||||||
|                         &[id], |                         &[id], | ||||||
|                         if validator.slashed { 1 } else { 0 }, |                         i64::from(validator.slashed), | ||||||
|                     ); |                     ); | ||||||
|                     metrics::set_int_gauge( |                     metrics::set_int_gauge( | ||||||
|                         &metrics::VALIDATOR_MONITOR_ACTIVE, |                         &metrics::VALIDATOR_MONITOR_ACTIVE, | ||||||
|                         &[id], |                         &[id], | ||||||
|                         if validator.is_active_at(current_epoch) { |                         i64::from(validator.is_active_at(current_epoch)), | ||||||
|                             1 |  | ||||||
|                         } else { |  | ||||||
|                             0 |  | ||||||
|                         }, |  | ||||||
|                     ); |                     ); | ||||||
|                     metrics::set_int_gauge( |                     metrics::set_int_gauge( | ||||||
|                         &metrics::VALIDATOR_MONITOR_EXITED, |                         &metrics::VALIDATOR_MONITOR_EXITED, | ||||||
|                         &[id], |                         &[id], | ||||||
|                         if validator.is_exited_at(current_epoch) { |                         i64::from(validator.is_exited_at(current_epoch)), | ||||||
|                             1 |  | ||||||
|                         } else { |  | ||||||
|                             0 |  | ||||||
|                         }, |  | ||||||
|                     ); |                     ); | ||||||
|                     metrics::set_int_gauge( |                     metrics::set_int_gauge( | ||||||
|                         &metrics::VALIDATOR_MONITOR_WITHDRAWABLE, |                         &metrics::VALIDATOR_MONITOR_WITHDRAWABLE, | ||||||
|                         &[id], |                         &[id], | ||||||
|                         if validator.is_withdrawable_at(current_epoch) { |                         i64::from(validator.is_withdrawable_at(current_epoch)), | ||||||
|                             1 |  | ||||||
|                         } else { |  | ||||||
|                             0 |  | ||||||
|                         }, |  | ||||||
|                     ); |                     ); | ||||||
|                     metrics::set_int_gauge( |                     metrics::set_int_gauge( | ||||||
|                         &metrics::VALIDATOR_ACTIVATION_ELIGIBILITY_EPOCH, |                         &metrics::VALIDATOR_ACTIVATION_ELIGIBILITY_EPOCH, | ||||||
|  | |||||||
| @ -858,7 +858,6 @@ where | |||||||
|     /// Specifies that the `Client` should use a `HotColdDB` database.
 |     /// Specifies that the `Client` should use a `HotColdDB` database.
 | ||||||
|     pub fn disk_store( |     pub fn disk_store( | ||||||
|         mut self, |         mut self, | ||||||
|         datadir: &Path, |  | ||||||
|         hot_path: &Path, |         hot_path: &Path, | ||||||
|         cold_path: &Path, |         cold_path: &Path, | ||||||
|         config: StoreConfig, |         config: StoreConfig, | ||||||
| @ -888,7 +887,6 @@ where | |||||||
|             migrate_schema::<Witness<TSlotClock, TEth1Backend, _, _, _>>( |             migrate_schema::<Witness<TSlotClock, TEth1Backend, _, _, _>>( | ||||||
|                 db, |                 db, | ||||||
|                 deposit_contract_deploy_block, |                 deposit_contract_deploy_block, | ||||||
|                 datadir, |  | ||||||
|                 from, |                 from, | ||||||
|                 to, |                 to, | ||||||
|                 log, |                 log, | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
|  | #![recursion_limit = "256"] | ||||||
| //! This crate contains a HTTP server which serves the endpoints listed here:
 | //! This crate contains a HTTP server which serves the endpoints listed here:
 | ||||||
| //!
 | //!
 | ||||||
| //! https://github.com/ethereum/beacon-APIs
 | //! https://github.com/ethereum/beacon-APIs
 | ||||||
|  | |||||||
| @ -269,7 +269,7 @@ pub(crate) fn save_metadata_to_disk<E: EthSpec>( | |||||||
|     metadata: MetaData<E>, |     metadata: MetaData<E>, | ||||||
|     log: &slog::Logger, |     log: &slog::Logger, | ||||||
| ) { | ) { | ||||||
|     let _ = std::fs::create_dir_all(&dir); |     let _ = std::fs::create_dir_all(dir); | ||||||
|     match File::create(dir.join(METADATA_FILENAME)) |     match File::create(dir.join(METADATA_FILENAME)) | ||||||
|         .and_then(|mut f| f.write_all(&metadata.as_ssz_bytes())) |         .and_then(|mut f| f.write_all(&metadata.as_ssz_bytes())) | ||||||
|     { |     { | ||||||
|  | |||||||
| @ -267,7 +267,7 @@ impl<T: EthSpec> OperationPool<T> { | |||||||
|                 &prev_epoch_key, |                 &prev_epoch_key, | ||||||
|                 &*all_attestations, |                 &*all_attestations, | ||||||
|                 state, |                 state, | ||||||
|                 &*reward_cache, |                 &reward_cache, | ||||||
|                 total_active_balance, |                 total_active_balance, | ||||||
|                 prev_epoch_validity_filter, |                 prev_epoch_validity_filter, | ||||||
|                 spec, |                 spec, | ||||||
| @ -278,7 +278,7 @@ impl<T: EthSpec> OperationPool<T> { | |||||||
|                 &curr_epoch_key, |                 &curr_epoch_key, | ||||||
|                 &*all_attestations, |                 &*all_attestations, | ||||||
|                 state, |                 state, | ||||||
|                 &*reward_cache, |                 &reward_cache, | ||||||
|                 total_active_balance, |                 total_active_balance, | ||||||
|                 curr_epoch_validity_filter, |                 curr_epoch_validity_filter, | ||||||
|                 spec, |                 spec, | ||||||
|  | |||||||
| @ -61,7 +61,7 @@ impl<E: EthSpec> ProductionBeaconNode<E> { | |||||||
|         let client_genesis = client_config.genesis.clone(); |         let client_genesis = client_config.genesis.clone(); | ||||||
|         let store_config = client_config.store.clone(); |         let store_config = client_config.store.clone(); | ||||||
|         let log = context.log().clone(); |         let log = context.log().clone(); | ||||||
|         let datadir = client_config.create_data_dir()?; |         let _datadir = client_config.create_data_dir()?; | ||||||
|         let db_path = client_config.create_db_path()?; |         let db_path = client_config.create_db_path()?; | ||||||
|         let freezer_db_path = client_config.create_freezer_db_path()?; |         let freezer_db_path = client_config.create_freezer_db_path()?; | ||||||
|         let executor = context.executor.clone(); |         let executor = context.executor.clone(); | ||||||
| @ -84,13 +84,7 @@ impl<E: EthSpec> ProductionBeaconNode<E> { | |||||||
|             .runtime_context(context) |             .runtime_context(context) | ||||||
|             .chain_spec(spec) |             .chain_spec(spec) | ||||||
|             .http_api_config(client_config.http_api.clone()) |             .http_api_config(client_config.http_api.clone()) | ||||||
|             .disk_store( |             .disk_store(&db_path, &freezer_db_path, store_config, log.clone())?; | ||||||
|                 &datadir, |  | ||||||
|                 &db_path, |  | ||||||
|                 &freezer_db_path, |  | ||||||
|                 store_config, |  | ||||||
|                 log.clone(), |  | ||||||
|             )?; |  | ||||||
| 
 | 
 | ||||||
|         let builder = if let Some(slasher_config) = client_config.slasher.clone() { |         let builder = if let Some(slasher_config) = client_config.slasher.clone() { | ||||||
|             let slasher = Arc::new( |             let slasher = Arc::new( | ||||||
|  | |||||||
| @ -55,7 +55,7 @@ pub enum Error { | |||||||
| /// Creates a file with `600 (-rw-------)` permissions and writes the specified bytes to file.
 | /// Creates a file with `600 (-rw-------)` permissions and writes the specified bytes to file.
 | ||||||
| pub fn create_with_600_perms<P: AsRef<Path>>(path: P, bytes: &[u8]) -> Result<(), Error> { | pub fn create_with_600_perms<P: AsRef<Path>>(path: P, bytes: &[u8]) -> Result<(), Error> { | ||||||
|     let path = path.as_ref(); |     let path = path.as_ref(); | ||||||
|     let mut file = File::create(&path).map_err(Error::UnableToCreateFile)?; |     let mut file = File::create(path).map_err(Error::UnableToCreateFile)?; | ||||||
| 
 | 
 | ||||||
|     #[cfg(unix)] |     #[cfg(unix)] | ||||||
|     { |     { | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ where | |||||||
|     S: Serializer, |     S: Serializer, | ||||||
| { | { | ||||||
|     let mut hex_string: String = "0x".to_string(); |     let mut hex_string: String = "0x".to_string(); | ||||||
|     hex_string.push_str(&hex::encode(&bytes)); |     hex_string.push_str(&hex::encode(bytes)); | ||||||
| 
 | 
 | ||||||
|     serializer.serialize_str(&hex_string) |     serializer.serialize_str(&hex_string) | ||||||
| } | } | ||||||
|  | |||||||
| @ -39,7 +39,7 @@ impl<'de> Visitor<'de> for QuantityVisitor { | |||||||
|             hex::decode(&format!("0{}", stripped)) |             hex::decode(&format!("0{}", stripped)) | ||||||
|                 .map_err(|e| de::Error::custom(format!("invalid hex ({:?})", e))) |                 .map_err(|e| de::Error::custom(format!("invalid hex ({:?})", e))) | ||||||
|         } else { |         } else { | ||||||
|             hex::decode(&stripped).map_err(|e| de::Error::custom(format!("invalid hex ({:?})", e))) |             hex::decode(stripped).map_err(|e| de::Error::custom(format!("invalid hex ({:?})", e))) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -368,7 +368,7 @@ mod test { | |||||||
|     fn context_size() { |     fn context_size() { | ||||||
|         assert_eq!( |         assert_eq!( | ||||||
|             mem::size_of::<HalfNode>(), |             mem::size_of::<HalfNode>(), | ||||||
|             232, |             224, | ||||||
|             "Halfnode size should be as expected" |             "Halfnode size should be as expected" | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -40,7 +40,7 @@ impl ConfigAndPreset { | |||||||
|         let extra_fields = get_extra_fields(spec); |         let extra_fields = get_extra_fields(spec); | ||||||
| 
 | 
 | ||||||
|         if spec.bellatrix_fork_epoch.is_some() |         if spec.bellatrix_fork_epoch.is_some() | ||||||
|             || fork_name == None |             || fork_name.is_none() | ||||||
|             || fork_name == Some(ForkName::Merge) |             || fork_name == Some(ForkName::Merge) | ||||||
|         { |         { | ||||||
|             let bellatrix_preset = BellatrixPreset::from_chain_spec::<T>(spec); |             let bellatrix_preset = BellatrixPreset::from_chain_spec::<T>(spec); | ||||||
| @ -65,7 +65,7 @@ impl ConfigAndPreset { | |||||||
| 
 | 
 | ||||||
| /// Get a hashmap of constants to add to the `PresetAndConfig`
 | /// Get a hashmap of constants to add to the `PresetAndConfig`
 | ||||||
| pub fn get_extra_fields(spec: &ChainSpec) -> HashMap<String, Value> { | pub fn get_extra_fields(spec: &ChainSpec) -> HashMap<String, Value> { | ||||||
|     let hex_string = |value: &[u8]| format!("0x{}", hex::encode(&value)).into(); |     let hex_string = |value: &[u8]| format!("0x{}", hex::encode(value)).into(); | ||||||
|     let u32_hex = |v: u32| hex_string(&v.to_le_bytes()); |     let u32_hex = |v: u32| hex_string(&v.to_le_bytes()); | ||||||
|     let u8_hex = |v: u8| hex_string(&v.to_le_bytes()); |     let u8_hex = |v: u8| hex_string(&v.to_le_bytes()); | ||||||
|     hashmap! { |     hashmap! { | ||||||
|  | |||||||
| @ -27,7 +27,7 @@ impl Graffiti { | |||||||
| 
 | 
 | ||||||
| impl fmt::Display for Graffiti { | impl fmt::Display for Graffiti { | ||||||
|     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | ||||||
|         write!(f, "{}", eth2_serde_utils::hex::encode(&self.0)) |         write!(f, "{}", eth2_serde_utils::hex::encode(self.0)) | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -257,7 +257,6 @@ pub fn migrate_db<E: EthSpec>( | |||||||
|     migrate_schema::<Witness<SystemTimeSlotClock, CachingEth1Backend<E>, _, _, _>>( |     migrate_schema::<Witness<SystemTimeSlotClock, CachingEth1Backend<E>, _, _, _>>( | ||||||
|         db, |         db, | ||||||
|         client_config.eth1.deposit_contract_deploy_block, |         client_config.eth1.deposit_contract_deploy_block, | ||||||
|         &client_config.get_data_dir(), |  | ||||||
|         from, |         from, | ||||||
|         to, |         to, | ||||||
|         log, |         log, | ||||||
|  | |||||||
| @ -188,7 +188,7 @@ pub trait TargetArrayChunk: Sized + serde::Serialize + serde::de::DeserializeOwn | |||||||
| 
 | 
 | ||||||
|         txn.put( |         txn.put( | ||||||
|             Self::select_db(db), |             Self::select_db(db), | ||||||
|             &disk_key.to_be_bytes(), |             disk_key.to_be_bytes(), | ||||||
|             &compressed_value, |             &compressed_value, | ||||||
|         )?; |         )?; | ||||||
|         Ok(()) |         Ok(()) | ||||||
|  | |||||||
| @ -301,7 +301,7 @@ impl<E: EthSpec> SlasherDB<E> { | |||||||
|     pub fn store_schema_version(&self, txn: &mut RwTransaction<'_>) -> Result<(), Error> { |     pub fn store_schema_version(&self, txn: &mut RwTransaction<'_>) -> Result<(), Error> { | ||||||
|         txn.put( |         txn.put( | ||||||
|             &self.databases.metadata_db, |             &self.databases.metadata_db, | ||||||
|             &METADATA_VERSION_KEY, |             METADATA_VERSION_KEY, | ||||||
|             &bincode::serialize(&CURRENT_SCHEMA_VERSION)?, |             &bincode::serialize(&CURRENT_SCHEMA_VERSION)?, | ||||||
|         )?; |         )?; | ||||||
|         Ok(()) |         Ok(()) | ||||||
| @ -323,7 +323,7 @@ impl<E: EthSpec> SlasherDB<E> { | |||||||
|     pub fn store_config(&self, config: &Config, txn: &mut RwTransaction<'_>) -> Result<(), Error> { |     pub fn store_config(&self, config: &Config, txn: &mut RwTransaction<'_>) -> Result<(), Error> { | ||||||
|         txn.put( |         txn.put( | ||||||
|             &self.databases.metadata_db, |             &self.databases.metadata_db, | ||||||
|             &METADATA_CONFIG_KEY, |             METADATA_CONFIG_KEY, | ||||||
|             &bincode::serialize(config)?, |             &bincode::serialize(config)?, | ||||||
|         )?; |         )?; | ||||||
|         Ok(()) |         Ok(()) | ||||||
| @ -367,7 +367,7 @@ impl<E: EthSpec> SlasherDB<E> { | |||||||
|                 txn.put( |                 txn.put( | ||||||
|                     &self.databases.attesters_db, |                     &self.databases.attesters_db, | ||||||
|                     &AttesterKey::new(validator_index, target_epoch, &self.config), |                     &AttesterKey::new(validator_index, target_epoch, &self.config), | ||||||
|                     &CompactAttesterRecord::null().as_bytes(), |                     CompactAttesterRecord::null().as_bytes(), | ||||||
|                 )?; |                 )?; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| @ -423,7 +423,7 @@ impl<E: EthSpec> SlasherDB<E> { | |||||||
|         key: &IndexedAttestationIdKey, |         key: &IndexedAttestationIdKey, | ||||||
|         value: IndexedAttestationId, |         value: IndexedAttestationId, | ||||||
|     ) -> Result<(), Error> { |     ) -> Result<(), Error> { | ||||||
|         txn.put(&self.databases.indexed_attestation_id_db, key, &value)?; |         txn.put(&self.databases.indexed_attestation_id_db, key, value)?; | ||||||
|         Ok(()) |         Ok(()) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -579,7 +579,7 @@ impl<E: EthSpec> SlasherDB<E> { | |||||||
|             txn.put( |             txn.put( | ||||||
|                 &self.databases.attesters_db, |                 &self.databases.attesters_db, | ||||||
|                 &AttesterKey::new(validator_index, target_epoch, &self.config), |                 &AttesterKey::new(validator_index, target_epoch, &self.config), | ||||||
|                 &indexed_attestation_id, |                 indexed_attestation_id, | ||||||
|             )?; |             )?; | ||||||
| 
 | 
 | ||||||
|             Ok(AttesterSlashingStatus::NotSlashable) |             Ok(AttesterSlashingStatus::NotSlashable) | ||||||
|  | |||||||
| @ -13,7 +13,7 @@ const GETH_REPO_URL: &str = "https://github.com/ethereum/go-ethereum"; | |||||||
| pub fn build_result(repo_dir: &Path) -> Output { | pub fn build_result(repo_dir: &Path) -> Output { | ||||||
|     Command::new("make") |     Command::new("make") | ||||||
|         .arg("geth") |         .arg("geth") | ||||||
|         .current_dir(&repo_dir) |         .current_dir(repo_dir) | ||||||
|         .output() |         .output() | ||||||
|         .expect("failed to make geth") |         .expect("failed to make geth") | ||||||
| } | } | ||||||
|  | |||||||
| @ -203,8 +203,8 @@ impl<E: GenericExecutionEngine> TestRig<E> { | |||||||
|         .await; |         .await; | ||||||
| 
 | 
 | ||||||
|         // We hardcode the accounts here since some EEs start with a default unlocked account
 |         // We hardcode the accounts here since some EEs start with a default unlocked account
 | ||||||
|         let account1 = ethers_core::types::Address::from_slice(&hex::decode(&ACCOUNT1).unwrap()); |         let account1 = ethers_core::types::Address::from_slice(&hex::decode(ACCOUNT1).unwrap()); | ||||||
|         let account2 = ethers_core::types::Address::from_slice(&hex::decode(&ACCOUNT2).unwrap()); |         let account2 = ethers_core::types::Address::from_slice(&hex::decode(ACCOUNT2).unwrap()); | ||||||
| 
 | 
 | ||||||
|         /* |         /* | ||||||
|          * Check the transition config endpoint. |          * Check the transition config endpoint. | ||||||
|  | |||||||
| @ -30,7 +30,7 @@ pub fn transactions<E: EthSpec>(account1: Address, account2: Address) -> Vec<Typ | |||||||
|         Transaction::DepositDepositContract { |         Transaction::DepositDepositContract { | ||||||
|             sender: account1, |             sender: account1, | ||||||
|             deposit_contract_address: ethers_core::types::Address::from_slice( |             deposit_contract_address: ethers_core::types::Address::from_slice( | ||||||
|                 &hex::decode(&DEPOSIT_CONTRACT_ADDRESS).unwrap(), |                 &hex::decode(DEPOSIT_CONTRACT_ADDRESS).unwrap(), | ||||||
|             ), |             ), | ||||||
|         } |         } | ||||||
|         .transaction::<E>(), |         .transaction::<E>(), | ||||||
|  | |||||||
| @ -60,7 +60,7 @@ impl ApiSecret { | |||||||
|             // Create and write the secret key to file with appropriate permissions
 |             // Create and write the secret key to file with appropriate permissions
 | ||||||
|             create_with_600_perms( |             create_with_600_perms( | ||||||
|                 &sk_path, |                 &sk_path, | ||||||
|                 eth2_serde_utils::hex::encode(&sk.serialize()).as_bytes(), |                 eth2_serde_utils::hex::encode(sk.serialize()).as_bytes(), | ||||||
|             ) |             ) | ||||||
|             .map_err(|e| { |             .map_err(|e| { | ||||||
|                 format!( |                 format!( | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user