Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(dbt): adds source and staging models for arb1 events #2197

Merged
merged 6 commits into from
Sep 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .sqlfluff
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
dialect = bigquery
templater = dbt
runaway_limit = 10
max_line_length = 80
max_line_length = 100
indent_unit = space
exclude_rules = AL09, RF02

Expand Down
13 changes: 13 additions & 0 deletions warehouse/dbt/models/arbitrum_one_sources.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
sources:
- name: arbitrum_one
database: opensource-observer
schema: arbitrum_one
tables:
- name: transactions
identifier: arbitrum_transactions

- name: blocks
identifier: arbitrum_blocks

- name: traces
identifier: arbitrum_traces
15 changes: 0 additions & 15 deletions warehouse/dbt/models/arbitrum_sources.yml

This file was deleted.

9 changes: 9 additions & 0 deletions warehouse/dbt/models/base_playground_sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@ sources:
- name: arbitrum_deployers
identifier: stg_arbitrum__deployers

- name: arbitrum_one_traces
identifier: int_arbitrum_one_traces

- name: arbitrum_one_transactions
identifier: int_arbitrum_one_transactions

- name: arbitrum_one_deployers
identifier: stg_arbitrum_one__deployers

- name: base_traces
identifier: int_base_traces

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
)
}}

{% set networks = ["optimism", "base", "frax", "metal", "mode", "zora"] %}
{% set networks = ["optimism", "base", "frax", "metal", "mode", "zora", "arbitrum_one"] %}

{% set union_queries = [] %}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
)
}}

{% set networks = ["optimism", "base", "frax", "metal", "mode", "zora"] %}
{% set networks = ["optimism", "base", "frax", "metal", "mode", "zora", "arbitrum_one"] %}

{% set union_queries = [] %}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{# any from address coming out of a proxy #}

{% set networks = ["optimism", "base", "frax", "metal", "mode", "zora"] %}
{% set networks = ["optimism", "base", "frax", "metal", "mode", "zora", "arbitrum_one"] %}

{% set union_queries = [] %}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
)
}}

{% set networks = ["optimism", "base", "frax", "metal", "mode", "zora"] %}
{% set networks = ["optimism", "base", "frax", "metal", "mode", "zora", "arbitrum_one"] %}

{% set union_queries = [] %}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{{
config(
materialized='incremental',
partition_by={
"field": "time",
"data_type": "timestamp",
"granularity": "day",
},
unique_id="id",
on_schema_change="append_new_columns",
incremental_strategy="insert_overwrite"
)
}}
{% if is_incremental() %}
{% set start = "TIMESTAMP_SUB(_dbt_max_partition, INTERVAL 1 DAY)" %}
{% else %}
{% set start = "'1970-01-01'" %}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ravenac95 check for gas logic

{% endif %}
{{ contract_invocation_events_with_l1("arbitrum_one", start) }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{
config(
materialized='incremental',
partition_by={
"field": "block_timestamp",
"data_type": "timestamp",
"granularity": "day",
},
unique_id="id",
on_schema_change="append_new_columns",
incremental_strategy="insert_overwrite"
)
}}
{{ filtered_blockchain_events("ARBITRUM_ONE", "arbitrum_one", "traces") }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
{{
config(
materialized='incremental',
partition_by={
"field": "block_timestamp",
"data_type": "timestamp",
"granularity": "day",
},
unique_id="id",
on_schema_change="append_new_columns",
incremental_strategy="insert_overwrite",
sql_header='''
CREATE TEMP FUNCTION from_string_to_double(input STRING)
RETURNS FLOAT64
LANGUAGE js AS r"""
yourNumber = BigInt(input, 10);
return parseFloat(yourNumber);
""";
'''
)
}}

with filtered_transactions as (
{{
filtered_blockchain_events(
"ARBITRUM_ONE",
"arbitrum_one",
"transactions"
)
}}
)

select
id,
`hash`,
nonce,
block_hash,
block_number,
transaction_index,
from_address,
to_address,
`value`,
gas,
{% if target.name == 'production' %}
{#
We need to convert the arbitrum gas_price from bytes to a double. We
intentionally lose some precision by doing this. The gas_price is
actually a utf-8 string. So we convert this to a string which is a
string of the integer. This transformation should only happen on
production and not on the playgrounds as the playgrounds source their
data originally from production
#}
from_string_to_double(CAST(gas_price AS STRING FORMAT 'UTF-8')) as gas_price,
{% else %}
gas_price,
{% endif %}
input,
max_fee_per_gas,
max_priority_fee_per_gas,
transaction_type,
receipt_cumulative_gas_used,
receipt_gas_used,
receipt_contract_address,
receipt_status,
receipt_effective_gas_price,
receipt_root_hash,
receipt_l1_fee,
receipt_l1_gas_used,
receipt_l1_gas_price,
receipt_l1_fee_scalar,
receipt_l1_blob_base_fee,
receipt_l1_blob_base_fee_scalar,
blob_versioned_hashes,
max_fee_per_blob_gas,
receipt_l1_block_number,
receipt_l1_base_fee_scalar,
gateway_fee,
fee_currency,
gateway_fee_recipient,
ingestion_time,
block_timestamp
from filtered_transactions
2 changes: 2 additions & 0 deletions warehouse/dbt/models/intermediate/events/int_events.sql
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,8 @@ all_events as (
select * from {{ ref('int_pgn_contract_invocation_events') }}
union all
select * from {{ ref('int_zora_contract_invocation_events') }}
union all
select * from {{ ref('int_arbitrum_one_contract_invocation_events') }}
)
union all
select
Expand Down
9 changes: 9 additions & 0 deletions warehouse/dbt/models/playground_sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@ sources:
- name: arbitrum_deployers
identifier: stg_arbitrum__deployers

- name: arbitrum_one_traces
identifier: int_arbitrum_one_traces

- name: arbitrum_one_transactions
identifier: int_arbitrum_one_transactions

- name: arbitrum_one_deployers
identifier: stg_arbitrum_one__deployers

- name: base_traces
identifier: int_base_traces

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{
config(
materialized='incremental',
partition_by={
"field": "block_timestamp",
"data_type": "timestamp",
"granularity": "day",
},
unique_id="transaction_hash",
on_schema_change="append_new_columns",
incremental_strategy="insert_overwrite"
)
}}
{{ transactions_with_receipts_deployers("arbitrum_one") }}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
unique_id="transaction_hash",
on_schema_change="append_new_columns",
incremental_strategy="insert_overwrite"
)
)
}}
{{ goog_blockchain_deployers("arbitrum") }}
{{ factory_deployments("arbitrum_one") }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{{
config(
materialized='incremental',
partition_by={
"field": "block_timestamp",
"data_type": "timestamp",
"granularity": "day",
},
unique_key="id",
on_schema_change="append_new_columns",
incremental_strategy="insert_overwrite"
)
}}
{% if is_incremental() %}
{% set start = "TIMESTAMP_SUB(_dbt_max_partition, INTERVAL 1 DAY)" %}
{% else %}
{% set start = "'1970-01-01'" %}
{% endif %}
{{ known_proxies("arbitrum_one", start) }}