mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-22 07:18:25 +00:00
The great renaming receipt -> request
This commit is contained in:
@@ -20,7 +20,7 @@ use reqwest::StatusCode;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use strum::IntoStaticStr;
|
||||
use superstruct::superstruct;
|
||||
use types::execution_payload::{DepositReceipts, WithdrawalRequests};
|
||||
use types::execution_payload::{DepositRequests, WithdrawalRequests};
|
||||
pub use types::{
|
||||
Address, BeaconBlockRef, EthSpec, ExecutionBlockHash, ExecutionPayload, ExecutionPayloadHeader,
|
||||
ExecutionPayloadRef, FixedVector, ForkName, Hash256, Transactions, Uint256, VariableList,
|
||||
@@ -67,7 +67,7 @@ pub enum Error {
|
||||
TransitionConfigurationMismatch,
|
||||
SszError(ssz_types::Error),
|
||||
DeserializeWithdrawals(ssz_types::Error),
|
||||
DeserializeDepositReceipts(ssz_types::Error),
|
||||
DeserializeDepositRequests(ssz_types::Error),
|
||||
DeserializeWithdrawalRequests(ssz_types::Error),
|
||||
BuilderApi(builder_client::Error),
|
||||
IncorrectStateVariant,
|
||||
@@ -204,7 +204,7 @@ pub struct ExecutionBlockWithTransactions<E: EthSpec> {
|
||||
#[serde(with = "serde_utils::u64_hex_be")]
|
||||
pub excess_blob_gas: u64,
|
||||
#[superstruct(only(Electra))]
|
||||
pub deposit_receipts: Vec<JsonDepositRequest>,
|
||||
pub deposit_requests: Vec<JsonDepositRequest>,
|
||||
#[superstruct(only(Electra))]
|
||||
pub withdrawal_requests: Vec<JsonWithdrawalRequest>,
|
||||
}
|
||||
@@ -314,8 +314,8 @@ impl<E: EthSpec> TryFrom<ExecutionPayload<E>> for ExecutionBlockWithTransactions
|
||||
.collect(),
|
||||
blob_gas_used: block.blob_gas_used,
|
||||
excess_blob_gas: block.excess_blob_gas,
|
||||
deposit_receipts: block
|
||||
.deposit_receipts
|
||||
deposit_requests: block
|
||||
.deposit_requests
|
||||
.into_iter()
|
||||
.map(|deposit| deposit.into())
|
||||
.collect(),
|
||||
@@ -546,7 +546,7 @@ impl<E: EthSpec> GetPayloadResponse<E> {
|
||||
pub struct ExecutionPayloadBodyV1<E: EthSpec> {
|
||||
pub transactions: Transactions<E>,
|
||||
pub withdrawals: Option<Withdrawals<E>>,
|
||||
pub deposit_receipts: Option<DepositReceipts<E>>,
|
||||
pub deposit_requests: Option<DepositRequests<E>>,
|
||||
pub withdrawal_requests: Option<WithdrawalRequests<E>>,
|
||||
}
|
||||
|
||||
@@ -635,13 +635,13 @@ impl<E: EthSpec> ExecutionPayloadBodyV1<E> {
|
||||
}
|
||||
}
|
||||
ExecutionPayloadHeader::Electra(header) => {
|
||||
let (Some(withdrawals), Some(deposit_receipts), Some(withdrawal_requests)) = (
|
||||
let (Some(withdrawals), Some(deposit_requests), Some(withdrawal_requests)) = (
|
||||
self.withdrawals,
|
||||
self.deposit_receipts,
|
||||
self.deposit_requests,
|
||||
self.withdrawal_requests,
|
||||
) else {
|
||||
return Err(format!(
|
||||
"block {} is post-electra but payload body doesn't have withdrawals/deposit_receipts/withdrawal_requests \
|
||||
"block {} is post-electra but payload body doesn't have withdrawals/deposit_requests/withdrawal_requests \
|
||||
Check that ELs are returning receipts and withdrawal_requests in getPayloadBody requests",
|
||||
header.block_hash
|
||||
));
|
||||
@@ -664,7 +664,7 @@ impl<E: EthSpec> ExecutionPayloadBodyV1<E> {
|
||||
withdrawals,
|
||||
blob_gas_used: header.blob_gas_used,
|
||||
excess_blob_gas: header.excess_blob_gas,
|
||||
deposit_receipts,
|
||||
deposit_requests,
|
||||
withdrawal_requests,
|
||||
}))
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use superstruct::superstruct;
|
||||
use types::beacon_block_body::KzgCommitments;
|
||||
use types::blob_sidecar::BlobsList;
|
||||
use types::{
|
||||
DepositReceipt, ExecutionLayerWithdrawalRequest, FixedVector, PublicKeyBytes, Signature,
|
||||
DepositRequest, ExecutionLayerWithdrawalRequest, FixedVector, PublicKeyBytes, Signature,
|
||||
Unsigned,
|
||||
};
|
||||
|
||||
@@ -106,7 +106,7 @@ pub struct JsonExecutionPayload<E: EthSpec> {
|
||||
pub excess_blob_gas: u64,
|
||||
#[superstruct(only(V4))]
|
||||
// TODO(electra): Field name should be changed post devnet-0. See https://github.com/ethereum/execution-apis/pull/544
|
||||
pub deposit_requests: VariableList<JsonDepositRequest, E::MaxDepositReceiptsPerPayload>,
|
||||
pub deposit_requests: VariableList<JsonDepositRequest, E::MaxDepositRequestsPerPayload>,
|
||||
#[superstruct(only(V4))]
|
||||
pub withdrawal_requests:
|
||||
VariableList<JsonWithdrawalRequest, E::MaxWithdrawalRequestsPerPayload>,
|
||||
@@ -213,7 +213,7 @@ impl<E: EthSpec> From<ExecutionPayloadElectra<E>> for JsonExecutionPayloadV4<E>
|
||||
blob_gas_used: payload.blob_gas_used,
|
||||
excess_blob_gas: payload.excess_blob_gas,
|
||||
deposit_requests: payload
|
||||
.deposit_receipts
|
||||
.deposit_requests
|
||||
.into_iter()
|
||||
.map(Into::into)
|
||||
.collect::<Vec<_>>()
|
||||
@@ -340,7 +340,7 @@ impl<E: EthSpec> From<JsonExecutionPayloadV4<E>> for ExecutionPayloadElectra<E>
|
||||
.into(),
|
||||
blob_gas_used: payload.blob_gas_used,
|
||||
excess_blob_gas: payload.excess_blob_gas,
|
||||
deposit_receipts: payload
|
||||
deposit_requests: payload
|
||||
.deposit_requests
|
||||
.into_iter()
|
||||
.map(Into::into)
|
||||
@@ -725,7 +725,7 @@ pub struct JsonExecutionPayloadBodyV1<E: EthSpec> {
|
||||
#[serde(with = "ssz_types::serde_utils::list_of_hex_var_list")]
|
||||
pub transactions: Transactions<E>,
|
||||
pub withdrawals: Option<VariableList<JsonWithdrawal, E::MaxWithdrawalsPerPayload>>,
|
||||
pub deposit_receipts: Option<VariableList<JsonDepositRequest, E::MaxDepositReceiptsPerPayload>>,
|
||||
pub deposit_requests: Option<VariableList<JsonDepositRequest, E::MaxDepositRequestsPerPayload>>,
|
||||
pub withdrawal_requests:
|
||||
Option<VariableList<JsonWithdrawalRequest, E::MaxWithdrawalRequestsPerPayload>>,
|
||||
}
|
||||
@@ -742,8 +742,8 @@ impl<E: EthSpec> From<JsonExecutionPayloadBodyV1<E>> for ExecutionPayloadBodyV1<
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
}),
|
||||
deposit_receipts: value.deposit_receipts.map(|json_receipts| {
|
||||
DepositReceipts::<E>::from(
|
||||
deposit_requests: value.deposit_requests.map(|json_receipts| {
|
||||
DepositRequests::<E>::from(
|
||||
json_receipts
|
||||
.into_iter()
|
||||
.map(Into::into)
|
||||
@@ -849,8 +849,8 @@ pub struct JsonDepositRequest {
|
||||
pub index: u64,
|
||||
}
|
||||
|
||||
impl From<DepositReceipt> for JsonDepositRequest {
|
||||
fn from(deposit: DepositReceipt) -> Self {
|
||||
impl From<DepositRequest> for JsonDepositRequest {
|
||||
fn from(deposit: DepositRequest) -> Self {
|
||||
Self {
|
||||
pubkey: deposit.pubkey,
|
||||
withdrawal_credentials: deposit.withdrawal_credentials,
|
||||
@@ -861,7 +861,7 @@ impl From<DepositReceipt> for JsonDepositRequest {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<JsonDepositRequest> for DepositReceipt {
|
||||
impl From<JsonDepositRequest> for DepositRequest {
|
||||
fn from(json_deposit: JsonDepositRequest) -> Self {
|
||||
Self {
|
||||
pubkey: json_deposit.pubkey,
|
||||
|
||||
@@ -1994,14 +1994,14 @@ impl<E: EthSpec> ExecutionLayer<E> {
|
||||
.collect(),
|
||||
)
|
||||
.map_err(ApiError::DeserializeWithdrawals)?;
|
||||
let deposit_receipts = VariableList::new(
|
||||
let deposit_requests = VariableList::new(
|
||||
electra_block
|
||||
.deposit_receipts
|
||||
.deposit_requests
|
||||
.into_iter()
|
||||
.map(Into::into)
|
||||
.collect(),
|
||||
)
|
||||
.map_err(ApiError::DeserializeDepositReceipts)?;
|
||||
.map_err(ApiError::DeserializeDepositRequests)?;
|
||||
let withdrawal_requests = VariableList::new(
|
||||
electra_block
|
||||
.withdrawal_requests
|
||||
@@ -2028,7 +2028,7 @@ impl<E: EthSpec> ExecutionLayer<E> {
|
||||
withdrawals,
|
||||
blob_gas_used: electra_block.blob_gas_used,
|
||||
excess_blob_gas: electra_block.excess_blob_gas,
|
||||
deposit_receipts,
|
||||
deposit_requests,
|
||||
withdrawal_requests,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -659,7 +659,7 @@ impl<E: EthSpec> ExecutionBlockGenerator<E> {
|
||||
withdrawals: pa.withdrawals.clone().into(),
|
||||
blob_gas_used: 0,
|
||||
excess_blob_gas: 0,
|
||||
deposit_receipts: vec![].into(),
|
||||
deposit_requests: vec![].into(),
|
||||
withdrawal_requests: vec![].into(),
|
||||
}),
|
||||
_ => unreachable!(),
|
||||
|
||||
@@ -589,8 +589,8 @@ pub async fn handle_rpc<E: EthSpec>(
|
||||
.withdrawals()
|
||||
.ok()
|
||||
.map(|withdrawals| VariableList::from(withdrawals.clone())),
|
||||
deposit_receipts: block.deposit_receipts().ok().map(
|
||||
|deposit_receipts| VariableList::from(deposit_receipts.clone()),
|
||||
deposit_requests: block.deposit_requests().ok().map(
|
||||
|deposit_requests| VariableList::from(deposit_requests.clone()),
|
||||
),
|
||||
withdrawal_requests: block.withdrawal_requests().ok().map(
|
||||
|withdrawal_requests| {
|
||||
|
||||
@@ -121,7 +121,7 @@ where
|
||||
|
||||
// Electra
|
||||
#[superstruct(only(Electra))]
|
||||
pub deposit_receipts_start_index: u64,
|
||||
pub deposit_requests_start_index: u64,
|
||||
#[superstruct(only(Electra))]
|
||||
pub deposit_balance_to_consume: u64,
|
||||
#[superstruct(only(Electra))]
|
||||
@@ -284,7 +284,7 @@ impl<E: EthSpec> PartialBeaconState<E> {
|
||||
latest_execution_payload_header,
|
||||
next_withdrawal_index,
|
||||
next_withdrawal_validator_index,
|
||||
deposit_receipts_start_index,
|
||||
deposit_requests_start_index,
|
||||
deposit_balance_to_consume,
|
||||
exit_balance_to_consume,
|
||||
earliest_exit_epoch,
|
||||
@@ -557,7 +557,7 @@ impl<E: EthSpec> TryInto<BeaconState<E>> for PartialBeaconState<E> {
|
||||
latest_execution_payload_header,
|
||||
next_withdrawal_index,
|
||||
next_withdrawal_validator_index,
|
||||
deposit_receipts_start_index,
|
||||
deposit_requests_start_index,
|
||||
deposit_balance_to_consume,
|
||||
exit_balance_to_consume,
|
||||
earliest_exit_epoch,
|
||||
|
||||
@@ -44,9 +44,9 @@ pub fn process_operations<E: EthSpec, Payload: AbstractExecPayload<E>>(
|
||||
if let Some(requests) = requests {
|
||||
process_execution_layer_withdrawal_requests(state, &requests, spec)?;
|
||||
}
|
||||
let receipts = block_body.execution_payload()?.deposit_receipts()?;
|
||||
let receipts = block_body.execution_payload()?.deposit_requests()?;
|
||||
if let Some(receipts) = receipts {
|
||||
process_deposit_receipts(state, &receipts, spec)?;
|
||||
process_deposit_requests(state, &receipts, spec)?;
|
||||
}
|
||||
process_consolidations(state, block_body.consolidations()?, verify_signatures, spec)?;
|
||||
}
|
||||
@@ -372,9 +372,9 @@ pub fn process_deposits<E: EthSpec>(
|
||||
// [Modified in Electra:EIP6110]
|
||||
// Disable former deposit mechanism once all prior deposits are processed
|
||||
//
|
||||
// If `deposit_receipts_start_index` does not exist as a field on `state`, electra is disabled
|
||||
// If `deposit_requests_start_index` does not exist as a field on `state`, electra is disabled
|
||||
// which means we always want to use the old check, so this field defaults to `u64::MAX`.
|
||||
let eth1_deposit_index_limit = state.deposit_receipts_start_index().unwrap_or(u64::MAX);
|
||||
let eth1_deposit_index_limit = state.deposit_requests_start_index().unwrap_or(u64::MAX);
|
||||
|
||||
if state.eth1_deposit_index() < eth1_deposit_index_limit {
|
||||
let expected_deposit_len = std::cmp::min(
|
||||
@@ -625,15 +625,15 @@ pub fn process_execution_layer_withdrawal_requests<E: EthSpec>(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn process_deposit_receipts<E: EthSpec>(
|
||||
pub fn process_deposit_requests<E: EthSpec>(
|
||||
state: &mut BeaconState<E>,
|
||||
receipts: &[DepositReceipt],
|
||||
receipts: &[DepositRequest],
|
||||
spec: &ChainSpec,
|
||||
) -> Result<(), BlockProcessingError> {
|
||||
for receipt in receipts {
|
||||
// Set deposit receipt start index
|
||||
if state.deposit_receipts_start_index()? == spec.unset_deposit_receipts_start_index {
|
||||
*state.deposit_receipts_start_index_mut()? = receipt.index
|
||||
if state.deposit_requests_start_index()? == spec.unset_deposit_requests_start_index {
|
||||
*state.deposit_requests_start_index_mut()? = receipt.index
|
||||
}
|
||||
let deposit_data = DepositData {
|
||||
pubkey: receipt.pubkey,
|
||||
|
||||
@@ -78,7 +78,7 @@ pub fn upgrade_to_electra<E: EthSpec>(
|
||||
next_withdrawal_validator_index: pre.next_withdrawal_validator_index,
|
||||
historical_summaries: pre.historical_summaries.clone(),
|
||||
// Electra
|
||||
deposit_receipts_start_index: spec.unset_deposit_receipts_start_index,
|
||||
deposit_requests_start_index: spec.unset_deposit_requests_start_index,
|
||||
deposit_balance_to_consume: 0,
|
||||
exit_balance_to_consume: 0,
|
||||
earliest_exit_epoch,
|
||||
|
||||
@@ -35,7 +35,7 @@ MAX_CONSOLIDATIONS: 1
|
||||
# Execution
|
||||
# ---------------------------------------------------------------
|
||||
# 2**13 (= 8192) receipts
|
||||
MAX_DEPOSIT_RECEIPTS_PER_PAYLOAD: 8192
|
||||
MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 8192
|
||||
# 2**4 (= 16) withdrawal requests
|
||||
MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 16
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ MAX_CONSOLIDATIONS: 1
|
||||
# Execution
|
||||
# ---------------------------------------------------------------
|
||||
# 2**13 (= 8192) receipts
|
||||
MAX_DEPOSIT_RECEIPTS_PER_PAYLOAD: 8192
|
||||
MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 8192
|
||||
# 2**4 (= 16) withdrawal requests
|
||||
MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 16
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ MAX_CONSOLIDATIONS: 1
|
||||
# Execution
|
||||
# ---------------------------------------------------------------
|
||||
# [customized]
|
||||
MAX_DEPOSIT_RECEIPTS_PER_PAYLOAD: 4
|
||||
MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 4
|
||||
# [customized] 2**1 (= 2) withdrawal requests
|
||||
MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 2
|
||||
|
||||
|
||||
@@ -481,7 +481,7 @@ where
|
||||
#[superstruct(only(Electra), partial_getter(copy))]
|
||||
#[metastruct(exclude_from(tree_lists))]
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub deposit_receipts_start_index: u64,
|
||||
pub deposit_requests_start_index: u64,
|
||||
#[superstruct(only(Electra), partial_getter(copy))]
|
||||
#[metastruct(exclude_from(tree_lists))]
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
|
||||
@@ -180,7 +180,8 @@ pub struct ChainSpec {
|
||||
pub electra_fork_version: [u8; 4],
|
||||
/// The Electra fork epoch is optional, with `None` representing "Electra never happens".
|
||||
pub electra_fork_epoch: Option<Epoch>,
|
||||
pub unset_deposit_receipts_start_index: u64,
|
||||
// TODO(pawan): this shouldn't be a config parameter?
|
||||
pub unset_deposit_requests_start_index: u64,
|
||||
pub full_exit_request_amount: u64,
|
||||
pub min_activation_balance: u64,
|
||||
pub max_effective_balance_electra: u64,
|
||||
@@ -747,7 +748,7 @@ impl ChainSpec {
|
||||
*/
|
||||
electra_fork_version: [0x05, 00, 00, 00],
|
||||
electra_fork_epoch: None,
|
||||
unset_deposit_receipts_start_index: u64::MAX,
|
||||
unset_deposit_requests_start_index: u64::MAX,
|
||||
full_exit_request_amount: 0,
|
||||
min_activation_balance: option_wrapper(|| {
|
||||
u64::checked_pow(2, 5)?.checked_mul(u64::checked_pow(10, 9)?)
|
||||
@@ -1049,7 +1050,7 @@ impl ChainSpec {
|
||||
*/
|
||||
electra_fork_version: [0x05, 0x00, 0x00, 0x64],
|
||||
electra_fork_epoch: None,
|
||||
unset_deposit_receipts_start_index: u64::MAX,
|
||||
unset_deposit_requests_start_index: u64::MAX,
|
||||
full_exit_request_amount: 0,
|
||||
min_activation_balance: option_wrapper(|| {
|
||||
u64::checked_pow(2, 5)?.checked_mul(u64::checked_pow(10, 9)?)
|
||||
|
||||
@@ -124,7 +124,7 @@ pub fn get_extra_fields(spec: &ChainSpec) -> HashMap<String, Value> {
|
||||
"versioned_hash_version_kzg".to_uppercase() => deneb::VERSIONED_HASH_VERSION_KZG.to_string().into(),
|
||||
// Electra
|
||||
"compounding_withdrawal_prefix".to_uppercase() => u8_hex(spec.compounding_withdrawal_prefix_byte),
|
||||
"unset_deposit_receipts_start_index".to_uppercase() => spec.unset_deposit_receipts_start_index.to_string().into(),
|
||||
"unset_deposit_requests_start_index".to_uppercase() => spec.unset_deposit_requests_start_index.to_string().into(),
|
||||
"full_exit_request_amount".to_uppercase() => spec.full_exit_request_amount.to_string().into(),
|
||||
"domain_consolidation".to_uppercase()=> u32_hex(spec.domain_consolidation),
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ use tree_hash_derive::TreeHash;
|
||||
TreeHash,
|
||||
TestRandom,
|
||||
)]
|
||||
pub struct DepositReceipt {
|
||||
pub struct DepositRequest {
|
||||
pub pubkey: PublicKeyBytes,
|
||||
pub withdrawal_credentials: Hash256,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
@@ -33,5 +33,5 @@ pub struct DepositReceipt {
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
ssz_and_tree_hash_tests!(DepositReceipt);
|
||||
ssz_and_tree_hash_tests!(DepositRequest);
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ pub trait EthSpec:
|
||||
type PendingPartialWithdrawalsLimit: Unsigned + Clone + Sync + Send + Debug + PartialEq;
|
||||
type PendingConsolidationsLimit: Unsigned + Clone + Sync + Send + Debug + PartialEq;
|
||||
type MaxConsolidations: Unsigned + Clone + Sync + Send + Debug + PartialEq;
|
||||
type MaxDepositReceiptsPerPayload: Unsigned + Clone + Sync + Send + Debug + PartialEq;
|
||||
type MaxDepositRequestsPerPayload: Unsigned + Clone + Sync + Send + Debug + PartialEq;
|
||||
type MaxAttesterSlashingsElectra: Unsigned + Clone + Sync + Send + Debug + PartialEq;
|
||||
type MaxAttestationsElectra: Unsigned + Clone + Sync + Send + Debug + PartialEq;
|
||||
type MaxWithdrawalRequestsPerPayload: Unsigned + Clone + Sync + Send + Debug + PartialEq;
|
||||
@@ -330,9 +330,9 @@ pub trait EthSpec:
|
||||
Self::MaxConsolidations::to_usize()
|
||||
}
|
||||
|
||||
/// Returns the `MAX_DEPOSIT_RECEIPTS_PER_PAYLOAD` constant for this specification.
|
||||
fn max_deposit_receipts_per_payload() -> usize {
|
||||
Self::MaxDepositReceiptsPerPayload::to_usize()
|
||||
/// Returns the `MAX_DEPOSIT_REQUESTS_PER_PAYLOAD` constant for this specification.
|
||||
fn max_deposit_requests_per_payload() -> usize {
|
||||
Self::MaxDepositRequestsPerPayload::to_usize()
|
||||
}
|
||||
|
||||
/// Returns the `MAX_ATTESTER_SLASHINGS_ELECTRA` constant for this specification.
|
||||
@@ -405,7 +405,7 @@ impl EthSpec for MainnetEthSpec {
|
||||
type PendingPartialWithdrawalsLimit = U134217728;
|
||||
type PendingConsolidationsLimit = U262144;
|
||||
type MaxConsolidations = U1;
|
||||
type MaxDepositReceiptsPerPayload = U8192;
|
||||
type MaxDepositRequestsPerPayload = U8192;
|
||||
type MaxAttesterSlashingsElectra = U1;
|
||||
type MaxAttestationsElectra = U8;
|
||||
type MaxWithdrawalRequestsPerPayload = U16;
|
||||
@@ -442,7 +442,7 @@ impl EthSpec for MinimalEthSpec {
|
||||
type KzgCommitmentInclusionProofDepth = U9;
|
||||
type PendingPartialWithdrawalsLimit = U64;
|
||||
type PendingConsolidationsLimit = U64;
|
||||
type MaxDepositReceiptsPerPayload = U4;
|
||||
type MaxDepositRequestsPerPayload = U4;
|
||||
type MaxWithdrawalRequestsPerPayload = U2;
|
||||
|
||||
params_from_eth_spec!(MainnetEthSpec {
|
||||
@@ -528,7 +528,7 @@ impl EthSpec for GnosisEthSpec {
|
||||
type PendingPartialWithdrawalsLimit = U134217728;
|
||||
type PendingConsolidationsLimit = U262144;
|
||||
type MaxConsolidations = U1;
|
||||
type MaxDepositReceiptsPerPayload = U8192;
|
||||
type MaxDepositRequestsPerPayload = U8192;
|
||||
type MaxAttesterSlashingsElectra = U1;
|
||||
type MaxAttestationsElectra = U8;
|
||||
type MaxWithdrawalRequestsPerPayload = U16;
|
||||
|
||||
@@ -13,8 +13,8 @@ pub type Transactions<E> = VariableList<
|
||||
>;
|
||||
|
||||
pub type Withdrawals<E> = VariableList<Withdrawal, <E as EthSpec>::MaxWithdrawalsPerPayload>;
|
||||
pub type DepositReceipts<E> =
|
||||
VariableList<DepositReceipt, <E as EthSpec>::MaxDepositReceiptsPerPayload>;
|
||||
pub type DepositRequests<E> =
|
||||
VariableList<DepositRequest, <E as EthSpec>::MaxDepositRequestsPerPayload>;
|
||||
pub type WithdrawalRequests<E> =
|
||||
VariableList<ExecutionLayerWithdrawalRequest, <E as EthSpec>::MaxWithdrawalRequestsPerPayload>;
|
||||
|
||||
@@ -94,7 +94,7 @@ pub struct ExecutionPayload<E: EthSpec> {
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub excess_blob_gas: u64,
|
||||
#[superstruct(only(Electra))]
|
||||
pub deposit_receipts: VariableList<DepositReceipt, E::MaxDepositReceiptsPerPayload>,
|
||||
pub deposit_requests: VariableList<DepositRequest, E::MaxDepositRequestsPerPayload>,
|
||||
#[superstruct(only(Electra))]
|
||||
pub withdrawal_requests:
|
||||
VariableList<ExecutionLayerWithdrawalRequest, E::MaxWithdrawalRequestsPerPayload>,
|
||||
|
||||
@@ -295,7 +295,7 @@ impl<'a, E: EthSpec> From<&'a ExecutionPayloadElectra<E>> for ExecutionPayloadHe
|
||||
withdrawals_root: payload.withdrawals.tree_hash_root(),
|
||||
blob_gas_used: payload.blob_gas_used,
|
||||
excess_blob_gas: payload.excess_blob_gas,
|
||||
deposit_receipts_root: payload.deposit_receipts.tree_hash_root(),
|
||||
deposit_receipts_root: payload.deposit_requests.tree_hash_root(),
|
||||
withdrawal_requests_root: payload.withdrawal_requests.tree_hash_root(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ pub use crate::contribution_and_proof::ContributionAndProof;
|
||||
pub use crate::deposit::{Deposit, DEPOSIT_TREE_DEPTH};
|
||||
pub use crate::deposit_data::DepositData;
|
||||
pub use crate::deposit_message::DepositMessage;
|
||||
pub use crate::deposit_receipt::DepositReceipt;
|
||||
pub use crate::deposit_receipt::DepositRequest;
|
||||
pub use crate::deposit_tree_snapshot::{DepositTreeSnapshot, FinalizedExecutionBlock};
|
||||
pub use crate::enr_fork_id::EnrForkId;
|
||||
pub use crate::epoch_cache::{EpochCache, EpochCacheError, EpochCacheKey};
|
||||
|
||||
@@ -45,9 +45,9 @@ pub trait ExecPayload<E: EthSpec>: Debug + Clone + PartialEq + Hash + TreeHash +
|
||||
Option<VariableList<ExecutionLayerWithdrawalRequest, E::MaxWithdrawalRequestsPerPayload>>,
|
||||
Error,
|
||||
>;
|
||||
fn deposit_receipts(
|
||||
fn deposit_requests(
|
||||
&self,
|
||||
) -> Result<Option<VariableList<DepositReceipt, E::MaxDepositReceiptsPerPayload>>, Error>;
|
||||
) -> Result<Option<VariableList<DepositRequest, E::MaxDepositRequestsPerPayload>>, Error>;
|
||||
|
||||
/// Is this a default payload with 0x0 roots for transactions and withdrawals?
|
||||
fn is_default_with_zero_roots(&self) -> bool;
|
||||
@@ -303,15 +303,15 @@ impl<E: EthSpec> ExecPayload<E> for FullPayload<E> {
|
||||
}
|
||||
}
|
||||
|
||||
fn deposit_receipts(
|
||||
fn deposit_requests(
|
||||
&self,
|
||||
) -> Result<Option<VariableList<DepositReceipt, E::MaxDepositReceiptsPerPayload>>, Error> {
|
||||
) -> Result<Option<VariableList<DepositRequest, E::MaxDepositRequestsPerPayload>>, Error> {
|
||||
match self {
|
||||
FullPayload::Bellatrix(_) | FullPayload::Capella(_) | FullPayload::Deneb(_) => {
|
||||
Err(Error::IncorrectStateVariant)
|
||||
}
|
||||
FullPayload::Electra(inner) => {
|
||||
Ok(Some(inner.execution_payload.deposit_receipts.clone()))
|
||||
Ok(Some(inner.execution_payload.deposit_requests.clone()))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -464,15 +464,15 @@ impl<'b, E: EthSpec> ExecPayload<E> for FullPayloadRef<'b, E> {
|
||||
}
|
||||
}
|
||||
|
||||
fn deposit_receipts(
|
||||
fn deposit_requests(
|
||||
&self,
|
||||
) -> Result<Option<VariableList<DepositReceipt, E::MaxDepositReceiptsPerPayload>>, Error> {
|
||||
) -> Result<Option<VariableList<DepositRequest, E::MaxDepositRequestsPerPayload>>, Error> {
|
||||
match self {
|
||||
FullPayloadRef::Bellatrix(_)
|
||||
| FullPayloadRef::Capella(_)
|
||||
| FullPayloadRef::Deneb(_) => Err(Error::IncorrectStateVariant),
|
||||
FullPayloadRef::Electra(inner) => {
|
||||
Ok(Some(inner.execution_payload.deposit_receipts.clone()))
|
||||
Ok(Some(inner.execution_payload.deposit_requests.clone()))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -666,9 +666,9 @@ impl<E: EthSpec> ExecPayload<E> for BlindedPayload<E> {
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
fn deposit_receipts(
|
||||
fn deposit_requests(
|
||||
&self,
|
||||
) -> Result<Option<VariableList<DepositReceipt, E::MaxDepositReceiptsPerPayload>>, Error> {
|
||||
) -> Result<Option<VariableList<DepositRequest, E::MaxDepositRequestsPerPayload>>, Error> {
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
@@ -782,9 +782,9 @@ impl<'b, E: EthSpec> ExecPayload<E> for BlindedPayloadRef<'b, E> {
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
fn deposit_receipts(
|
||||
fn deposit_requests(
|
||||
&self,
|
||||
) -> Result<Option<VariableList<DepositReceipt, E::MaxDepositReceiptsPerPayload>>, Error> {
|
||||
) -> Result<Option<VariableList<DepositRequest, E::MaxDepositRequestsPerPayload>>, Error> {
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
@@ -890,9 +890,9 @@ macro_rules! impl_exec_payload_common {
|
||||
i(self)
|
||||
}
|
||||
|
||||
fn deposit_receipts(
|
||||
fn deposit_requests(
|
||||
&self,
|
||||
) -> Result<Option<VariableList<DepositReceipt, E::MaxDepositReceiptsPerPayload>>, Error> {
|
||||
) -> Result<Option<VariableList<DepositRequest, E::MaxDepositRequestsPerPayload>>, Error> {
|
||||
let j = $j;
|
||||
j(self)
|
||||
}
|
||||
@@ -1052,11 +1052,11 @@ macro_rules! impl_exec_payload_for_fork {
|
||||
let c: for<'a> fn(
|
||||
&'a $wrapper_type_full<E>,
|
||||
) -> Result<
|
||||
Option<VariableList<DepositReceipt, E::MaxDepositReceiptsPerPayload>>,
|
||||
Option<VariableList<DepositRequest, E::MaxDepositRequestsPerPayload>>,
|
||||
Error,
|
||||
> = |payload: &$wrapper_type_full<E>| {
|
||||
let wrapper_ref_type = FullPayloadRef::$fork_variant(&payload);
|
||||
wrapper_ref_type.deposit_receipts()
|
||||
wrapper_ref_type.deposit_requests()
|
||||
};
|
||||
c
|
||||
}
|
||||
|
||||
@@ -248,7 +248,7 @@ pub struct ElectraPreset {
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_consolidations: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_deposit_receipts_per_payload: u64,
|
||||
pub max_deposit_requests_per_payload: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
pub max_attester_slashings_electra: u64,
|
||||
#[serde(with = "serde_utils::quoted_u64")]
|
||||
@@ -270,7 +270,7 @@ impl ElectraPreset {
|
||||
pending_partial_withdrawals_limit: E::pending_partial_withdrawals_limit() as u64,
|
||||
pending_consolidations_limit: E::pending_consolidations_limit() as u64,
|
||||
max_consolidations: E::max_consolidations() as u64,
|
||||
max_deposit_receipts_per_payload: E::max_deposit_receipts_per_payload() as u64,
|
||||
max_deposit_requests_per_payload: E::max_deposit_requests_per_payload() as u64,
|
||||
max_attester_slashings_electra: E::max_attester_slashings_electra() as u64,
|
||||
max_attestations_electra: E::max_attestations_electra() as u64,
|
||||
max_withdrawal_requests_per_payload: E::max_withdrawal_requests_per_payload() as u64,
|
||||
|
||||
Reference in New Issue
Block a user