-- Find all event types for a contract
SELECT DISTINCT event_name, COUNT(*) as occurrences
FROM ez_decoded_event_logs
WHERE contract_address = LOWER('0x...')
GROUP BY 1
ORDER BY 2 DESC;
``` |
| FULL_DECODED_LOG | VARIANT | Complete decoded event data including parameter names, values, types, and metadata.
Example: '{"event_name": "Transfer", "parameters": [{"name": "from", "type": "address", "value": "0x123...", "indexed": true}]}' |
| DECODED_LOG | OBJECT | Flattened JSON object containing decoded event parameters with their values.
Example: '{"from": "0x123...", "to": "0x456...", "value": "1000000000000000000"}' |
| CONTRACT_NAME | TEXT | Human-readable name of the smart contract emitting the event, joined from dim_contracts.
Example: 'USD Coin' |
| EZ_DECODED_EVENT_LOGS_ID | TEXT | Primary key - unique identifier for each row ensuring data integrity.
**Format**: Usually VARCHAR containing composite key generated using MD5 hash of the relevant columns.
**Example**: MD5(block_number, tx_hash, trace_index)
**Usage**:
- Deduplication in incremental loads
- Join operations for data quality checks
- Troubleshooting specific records
**Important**: Implementation varies by table - check table-specific documentation. |
| INSERTED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp when the record was first added to the Flipside database.
**Format**: TIMESTAMP_NTZ
**Use Cases**:
- Data freshness monitoring
- Incremental processing markers
- Debugging data pipeline issues
- SLA tracking
**Query Example**:
```sql
-- Check data latency
SELECT
DATE_TRUNC('hour', block_timestamp) as block_hour,
DATE_TRUNC('hour', inserted_timestamp) as insert_hour,
AVG(TIMESTAMPDIFF('minute', block_timestamp, inserted_timestamp)) as avg_latency_minutes
FROM <blockchain_name>.core.fact_transactions
WHERE block_timestamp >= CURRENT_DATE - 1
GROUP BY 1, 2;
``` |
| MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp of the most recent update to this record.
**Format**: TIMESTAMP_NTZ
**Triggers for Updates**:
- Data corrections
- Enrichment additions
- Reprocessing for accuracy
- Schema migrations
**Monitoring Usage**:
```sql
-- Recently modified records
SELECT *
FROM <blockchain_name>.core.fact_transactions
WHERE modified_timestamp > inserted_timestamp
AND modified_timestamp >= CURRENT_DATE - 1;
-- Data quality tracking
SELECT
DATE(modified_timestamp) as mod_date,
COUNT(*) as records_updated,
COUNT(DISTINCT block_number) as blocks_affected
FROM <blockchain_name>.core.fact_transactions
WHERE modified_timestamp > inserted_timestamp
GROUP BY 1
ORDER BY 1 DESC;
``` |