diff --git a/models/transformations/fct_attestation_vote_correctness_by_validator.sql b/models/transformations/fct_attestation_vote_correctness_by_validator.sql index 682269c5..038cf2f0 100644 --- a/models/transformations/fct_attestation_vote_correctness_by_validator.sql +++ b/models/transformations/fct_attestation_vote_correctness_by_validator.sql @@ -14,8 +14,12 @@ tags: - vote_correctness - validator_performance dependencies: - - "{{transformation}}.int_attestation_attested_canonical" - - "{{transformation}}.int_attestation_attested_head" + # OR group: head supplies gossip first-seen timing (LEFT JOINed, NULL when + # absent) and only exists from the event era; canonical reaches genesis and is + # the primary attestation source. Either satisfies coverage, so the model + # backfills to genesis with NULL gossip-timing columns pre-event. + - - "{{transformation}}.int_attestation_attested_head" + - "{{transformation}}.int_attestation_attested_canonical" - "{{transformation}}.fct_block_proposer" - "{{external}}.canonical_beacon_committee" - "{{external}}.canonical_beacon_block" diff --git a/models/transformations/fct_block_proposer.sql b/models/transformations/fct_block_proposer.sql index edbba431..055c90bb 100644 --- a/models/transformations/fct_block_proposer.sql +++ b/models/transformations/fct_block_proposer.sql @@ -13,8 +13,12 @@ tags: - proposer - canonical dependencies: - - "{{transformation}}.int_block_proposer_canonical" - - "{{transformation}}.fct_block_proposer_head" + # OR group: head gives orphaned-block status but only exists from the + # gossip/event era; canonical reaches genesis and is the primary source (the + # SQL drives FROM it). Either satisfies coverage, so the model backfills to + # genesis (status falls back to canonical/missed when head is absent). + - - "{{transformation}}.fct_block_proposer_head" + - "{{transformation}}.int_block_proposer_canonical" --- INSERT INTO `{{ .self.database }}`.`{{ .self.table }}`