package beaconclient // This interface captured what the events can be for processed event streams. type ProcessedEvents interface { Head | FinalizedCheckpoint | ChainReorg } // This struct captures the JSON representation of the head topic type Head struct { Slot string `json:"slot"` Block string `json:"block"` State string `json:"state"` CurrentDutyDependentRoot string `json:"current_duty_dependent_root"` PreviousDutyDependentRoot string `json:"previous_duty_dependent_root"` EpochTransition bool `json:"epoch_transition"` ExecutionOptimistic bool `json:"execution_optimistic"` } // This struct captures the JSON representation of the finalized_checkpoint topic. type FinalizedCheckpoint struct { Block string `json:"block"` State string `json:"state"` Epoch string `json:"epoch"` ExecutionOptimistic bool `json:"execution_optimistic"` } // This struct captures the JSON representation of the chain_reorg topic. type ChainReorg struct { Slot string `json:"slot"` Depth string `json:"depth"` OldHeadBlock string `json:"old_head_block"` NewHeadBlock string `json:"new_head_block"` OldHeadState string `json:"old_head_state"` NewHeadState string `json:"new_head_state"` Epoch string `json:"epoch"` ExecutionOptimistic bool `json:"execution_optimistic"` }