op-pool: check previous epoch in get_attestations
This commit is contained in:
parent
e512f7c0e1
commit
22a90a0224
@ -145,13 +145,17 @@ impl OperationPool {
|
|||||||
|
|
||||||
/// Get a list of attestations for inclusion in a block.
|
/// Get a list of attestations for inclusion in a block.
|
||||||
pub fn get_attestations(&self, state: &BeaconState, spec: &ChainSpec) -> Vec<Attestation> {
|
pub fn get_attestations(&self, state: &BeaconState, spec: &ChainSpec) -> Vec<Attestation> {
|
||||||
// Attestations for the current fork...
|
// Attestations for the current fork, which may be from the current or previous epoch.
|
||||||
// FIXME: should we also check domain bytes for the previous epoch?
|
let prev_epoch = state.previous_epoch(spec);
|
||||||
let current_epoch = state.slot.epoch(spec.slots_per_epoch);
|
let current_epoch = state.current_epoch(spec);
|
||||||
let domain_bytes = AttestationId::compute_domain_bytes(current_epoch, state, spec);
|
let prev_domain_bytes = AttestationId::compute_domain_bytes(prev_epoch, state, spec);
|
||||||
|
let curr_domain_bytes = AttestationId::compute_domain_bytes(current_epoch, state, spec);
|
||||||
self.attestations
|
self.attestations
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|(key, _)| key.domain_bytes_match(&domain_bytes))
|
.filter(|(key, _)| {
|
||||||
|
key.domain_bytes_match(&prev_domain_bytes)
|
||||||
|
|| key.domain_bytes_match(&curr_domain_bytes)
|
||||||
|
})
|
||||||
.flat_map(|(_, attestations)| attestations)
|
.flat_map(|(_, attestations)| attestations)
|
||||||
// That are valid...
|
// That are valid...
|
||||||
.filter(|attestation| validate_attestation(state, attestation, spec).is_ok())
|
.filter(|attestation| validate_attestation(state, attestation, spec).is_ok())
|
||||||
|
Loading…
Reference in New Issue
Block a user