diff --git a/models/core/core__dim_address_labels.sql b/models/core/core__dim_address_labels.sql index 4020e38..ae14de6 100644 --- a/models/core/core__dim_address_labels.sql +++ b/models/core/core__dim_address_labels.sql @@ -1,6 +1,7 @@ {{ config( materialized = 'view', - secure = true + secure = true, + tags = ['s3_curated'] ) }} SELECT diff --git a/models/core/core__dim_staking_actions.sql b/models/core/core__dim_staking_actions.sql index 9d1b2d3..5706e89 100644 --- a/models/core/core__dim_staking_actions.sql +++ b/models/core/core__dim_staking_actions.sql @@ -7,13 +7,21 @@ 'PURPOSE': 'STAKING' } } - } + }, + tags = ['s3_curated'] ) }} with staking_actions as ( select * - from {{ ref('silver__staking_actions') }} + from {{ ref('silver__staking_actions_s3') }} ) -select * from staking_actions +select + tx_hash, + block_timestamp, + pool_address, + tx_signer, + stake_amount, + action + from staking_actions diff --git a/models/core/core__dim_staking_pools.sql b/models/core/core__dim_staking_pools.sql index b7ee7e3..cc82e9c 100644 --- a/models/core/core__dim_staking_pools.sql +++ b/models/core/core__dim_staking_pools.sql @@ -7,7 +7,8 @@ 'PURPOSE': 'STAKING' } } - } + }, + tags = ['s3_curated'] ) }} WITH staking_pools AS ( diff --git a/models/core/core__dim_token_labels.sql b/models/core/core__dim_token_labels.sql index 1d64b53..a41ebee 100644 --- a/models/core/core__dim_token_labels.sql +++ b/models/core/core__dim_token_labels.sql @@ -1,6 +1,7 @@ {{ config( materialized = 'view', - secure = true + secure = true, + tags = ['s3_curated'] ) }} WITH token_labels AS ( diff --git a/models/core/core__ez_dex_swaps.sql b/models/core/core__ez_dex_swaps.sql index c9ea407..11061d3 100644 --- a/models/core/core__ez_dex_swaps.sql +++ b/models/core/core__ez_dex_swaps.sql @@ -7,7 +7,8 @@ 'PURPOSE': 'DEFI, SWAPS' } } - } + }, + tags = ['s3_curated'] ) }} WITH dex_swaps AS ( diff --git a/models/core/core__ez_nft_mints.sql b/models/core/core__ez_nft_mints.sql index 56053a3..fc8e6ce 100644 --- a/models/core/core__ez_nft_mints.sql +++ b/models/core/core__ez_nft_mints.sql @@ -7,7 +7,8 @@ 'PURPOSE': 'NFT' } } - } + }, + tags = ['s3_curated'] ) }} with mints as ( diff --git a/models/core/core__ez_usn_supply.sql b/models/core/core__ez_usn_supply.sql index a5be589..cc91650 100644 --- a/models/core/core__ez_usn_supply.sql +++ b/models/core/core__ez_usn_supply.sql @@ -1,6 +1,7 @@ {{ config( materialized = 'view', - secure = true + secure = true, + tags = ['s3_curated'] ) }} WITH transactions AS ( diff --git a/models/core/core__fact_actions_events.sql b/models/core/core__fact_actions_events.sql index 34dfb48..1f5811d 100644 --- a/models/core/core__fact_actions_events.sql +++ b/models/core/core__fact_actions_events.sql @@ -3,7 +3,7 @@ secure = true ) }} -WITH actions_events AS ( +WITH actions AS ( SELECT * @@ -13,10 +13,11 @@ WITH actions_events AS ( SELECT action_id, tx_hash, + receipt_object_id, block_id, block_timestamp, action_index, action_name, action_data FROM - actions_events + actions diff --git a/models/core/core__fact_actions_events.yml b/models/core/core__fact_actions_events.yml index 28a7433..ae254fd 100644 --- a/models/core/core__fact_actions_events.yml +++ b/models/core/core__fact_actions_events.yml @@ -25,6 +25,15 @@ models: - STRING - VARCHAR + - name: RECEIPT_OBJECT_ID + description: "{{ doc('receipt_object_id')}}" + tests: + - not_null + - dbt_expectations.expect_column_values_to_be_in_type_list: + column_type_list: + - STRING + - VARCHAR + - name: BLOCK_ID description: "{{ doc('block_id')}}" tests: diff --git a/models/core/core__fact_actions_events_addkey.sql b/models/core/core__fact_actions_events_addkey.sql index 36f3e95..2dbc877 100644 --- a/models/core/core__fact_actions_events_addkey.sql +++ b/models/core/core__fact_actions_events_addkey.sql @@ -1,6 +1,7 @@ {{ config( materialized = 'view', - secure = true + secure = true, + enabled = False ) }} WITH actions_events_addkey AS ( diff --git a/models/core/core__fact_actions_events_addkey.yml b/models/core/core__fact_actions_events_addkey.yml index 003807e..efb6be2 100644 --- a/models/core/core__fact_actions_events_addkey.yml +++ b/models/core/core__fact_actions_events_addkey.yml @@ -3,7 +3,7 @@ version: 2 models: - name: core__fact_actions_events_addkey description: |- - This table extracts all AddKey events from actions and stores the argument data under action_data. + Deprecating soon! Data is no longer updating. Please use the actions events table for AddKey type events columns: - name: ACTION_ID diff --git a/models/core/core__fact_actions_events_function_call.yml b/models/core/core__fact_actions_events_function_call.yml index 285bbc8..020dd08 100644 --- a/models/core/core__fact_actions_events_function_call.yml +++ b/models/core/core__fact_actions_events_function_call.yml @@ -3,7 +3,7 @@ version: 2 models: - name: core__fact_actions_events_function_call description: |- - This table extracts all FunctionCall events from actions and decodes the arguments for easy use. + This table extracts all FunctionCall events from actions and decodes the arguments for easy use. If further nested arguments are encoded, the snowflake function `try_base64_decode_string()` will likely work. columns: - name: ACTION_ID @@ -69,8 +69,8 @@ models: - not_null - dbt_expectations.expect_column_values_to_be_in_type_list: column_type_list: - - STRING - - VARCHAR + - VARIANT + - OBJECT - name: DEPOSIT description: "{{ doc('deposit')}}" diff --git a/models/core/core__fact_prices.sql b/models/core/core__fact_prices.sql index c935775..0936eed 100644 --- a/models/core/core__fact_prices.sql +++ b/models/core/core__fact_prices.sql @@ -7,7 +7,8 @@ 'PURPOSE': 'PRICES' } } - } + }, + tags = ['s3_curated'] ) }} WITH oracle_prices AS ( diff --git a/models/core/core__fact_receipts.sql b/models/core/core__fact_receipts.sql index 1d41575..5c304b2 100644 --- a/models/core/core__fact_receipts.sql +++ b/models/core/core__fact_receipts.sql @@ -18,6 +18,8 @@ SELECT receipt_object_id, receipt_outcome_id, receiver_id, + receipt_actions AS actions, + execution_outcome AS outcome, gas_burnt, status_value, logs, diff --git a/models/core/core__fact_receipts.yml b/models/core/core__fact_receipts.yml index 78d42c8..96c4fa2 100644 --- a/models/core/core__fact_receipts.yml +++ b/models/core/core__fact_receipts.yml @@ -44,7 +44,7 @@ models: tests: - not_null - unique: - where: receipt_object_id not in ('FA9zcm7WkWxdjkub7WFiKkQdnnQrcEmBht94VFzXfkm1', '6QKTEHsLihDgVrdtWYbURA28zF29Xdw5dnfWbDVWHPv4') + where: tx_hash != 'J4CZZQrZK6kYPVLkrdbTEpcqhUNZiRxktbMzHviqeGgf' - dbt_expectations.expect_column_values_to_be_in_type_list: column_type_list: - STRING @@ -58,7 +58,6 @@ models: column_type_list: - ARRAY - VARIANT - - OBJECT - name: RECEIVER_ID description: "{{ doc('receiver_id')}}" @@ -69,6 +68,24 @@ models: - STRING - VARCHAR + - name: ACTIONS + description: "{{ doc('actions')}}" + tests: + - not_null + - dbt_expectations.expect_column_values_to_be_in_type_list: + column_type_list: + - OBJECT + - VARIANT + + - name: OUTCOME + description: "{{ doc('outcome')}}" + tests: + - not_null + - dbt_expectations.expect_column_values_to_be_in_type_list: + column_type_list: + - OBJECT + - VARIANT + - name: GAS_BURNT description: "{{ doc('gas_burnt')}}" tests: diff --git a/models/core/core__fact_transfers.sql b/models/core/core__fact_transfers.sql index 90475d8..8f2b2c5 100644 --- a/models/core/core__fact_transfers.sql +++ b/models/core/core__fact_transfers.sql @@ -1,6 +1,7 @@ {{ config( materialized = 'view', - secure = true + secure = true, + tags = ['s3_curated'] ) }} WITH transfers AS ( diff --git a/models/descriptions/action_id.md b/models/descriptions/action_id.md index ded88a3..3c9ffe2 100644 --- a/models/descriptions/action_id.md +++ b/models/descriptions/action_id.md @@ -1,5 +1,5 @@ {% docs action_id %} -The `action_id` as compiled from `tx_id` and `action_index`. This is unique for each record. +The `action_id` as compiled from `tx_hash` or `receipt_id `and `action_index`. This is unique for each record. The primary hash depends on the source of the action, as both a transaction and a receipt can process actions. {% enddocs %} diff --git a/models/descriptions/action_source.md b/models/descriptions/action_source.md new file mode 100644 index 0000000..2154309 --- /dev/null +++ b/models/descriptions/action_source.md @@ -0,0 +1,5 @@ +{% docs action_source %} + +The source object of the executed action, transaction or receipt. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/actions.md b/models/descriptions/actions.md new file mode 100644 index 0000000..9ef25d2 --- /dev/null +++ b/models/descriptions/actions.md @@ -0,0 +1,5 @@ +{% docs actions %} + +The actions executed during the receipt or transaction processing. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/outcome.md b/models/descriptions/outcome.md new file mode 100644 index 0000000..1d55a70 --- /dev/null +++ b/models/descriptions/outcome.md @@ -0,0 +1,5 @@ +{% docs outcome %} + +The outcome of the transaction, action, or receipt that was executed in the shard. + +{% enddocs %} \ No newline at end of file diff --git a/models/silver/silver__actions_events_addkey_s3.sql b/models/silver/actions/silver__actions_events_addkey_s3.sql similarity index 96% rename from models/silver/silver__actions_events_addkey_s3.sql rename to models/silver/actions/silver__actions_events_addkey_s3.sql index e39a9a3..3e40e00 100644 --- a/models/silver/silver__actions_events_addkey_s3.sql +++ b/models/silver/actions/silver__actions_events_addkey_s3.sql @@ -3,7 +3,8 @@ incremental_strategy = 'delete+insert', unique_key = 'action_id', cluster_by = ['block_timestamp::DATE', '_load_timestamp::DATE'], - tags = ['curated', 's3_curated'] + tags = ['actions_s3'], + enabled = False ) }} WITH action_events AS ( diff --git a/models/silver/silver__actions_events_addkey_s3.yml b/models/silver/actions/silver__actions_events_addkey_s3.yml similarity index 91% rename from models/silver/silver__actions_events_addkey_s3.yml rename to models/silver/actions/silver__actions_events_addkey_s3.yml index eb2c05e..bc418b7 100644 --- a/models/silver/silver__actions_events_addkey_s3.yml +++ b/models/silver/actions/silver__actions_events_addkey_s3.yml @@ -3,7 +3,7 @@ version: 2 models: - name: silver__actions_events_addkey_s3 description: |- - This table extracts all AddKey events from actions and stores the argument data under action_data. + Deprecting soon - no longer updating. columns: - name: ACTION_ID diff --git a/models/silver/silver__actions_events_function_call_s3.sql b/models/silver/actions/silver__actions_events_function_call_s3.sql similarity index 54% rename from models/silver/silver__actions_events_function_call_s3.sql rename to models/silver/actions/silver__actions_events_function_call_s3.sql index 34851b6..1f73bc5 100644 --- a/models/silver/silver__actions_events_function_call_s3.sql +++ b/models/silver/actions/silver__actions_events_function_call_s3.sql @@ -3,7 +3,7 @@ incremental_strategy = 'delete+insert', cluster_by = ['block_timestamp::DATE', '_load_timestamp::DATE'], unique_key = 'action_id', - tags = ['curated', 's3_curated'] + tags = ['actions_s3'] ) }} WITH action_events AS ( @@ -14,6 +14,7 @@ WITH action_events AS ( {{ ref('silver__actions_events_s3') }} WHERE action_name = 'FunctionCall' + {% if target.name == 'manual_fix' or target.name == 'manual_fix_dev' %} AND {{ partition_load_manual('no_buffer') }} {% else %} @@ -22,31 +23,38 @@ WITH action_events AS ( ), decoding AS ( SELECT - *, + action_id, + tx_hash, + block_id, + block_timestamp, + action_name, action_data :args AS args, - COALESCE(TRY_PARSE_JSON(TRY_BASE64_DECODE_STRING(args)), TRY_BASE64_DECODE_STRING(args), args) AS args_decoded, + COALESCE(TRY_PARSE_JSON(TRY_BASE64_DECODE_STRING(args)), args) AS args_decoded, action_data :deposit :: NUMBER AS deposit, action_data :gas :: NUMBER AS attached_gas, - action_data :method_name :: STRING AS method_name + action_data :method_name :: STRING AS method_name, + _load_timestamp, + _partition_by_block_number FROM - action_events), - function_calls AS ( - SELECT - action_id, - tx_hash, - block_id, - block_timestamp, - action_name, - method_name, - args_decoded AS args, - deposit, - attached_gas, - _load_timestamp, - _partition_by_block_number - FROM - decoding - ) + action_events +), +function_calls AS ( SELECT - * + action_id, + tx_hash, + block_id, + block_timestamp, + action_name, + method_name, + args_decoded AS args, + deposit, + attached_gas, + _load_timestamp, + _partition_by_block_number FROM - function_calls + decoding +) +SELECT + * +FROM + function_calls diff --git a/models/silver/silver__actions_events_function_call_s3.yml b/models/silver/actions/silver__actions_events_function_call_s3.yml similarity index 100% rename from models/silver/silver__actions_events_function_call_s3.yml rename to models/silver/actions/silver__actions_events_function_call_s3.yml diff --git a/models/silver/actions/silver__actions_events_s3.sql b/models/silver/actions/silver__actions_events_s3.sql new file mode 100644 index 0000000..35baa62 --- /dev/null +++ b/models/silver/actions/silver__actions_events_s3.sql @@ -0,0 +1,79 @@ +{{ config( + materialized = 'incremental', + incremental_strategy = 'delete+insert', + cluster_by = ['block_timestamp::DATE', '_load_timestamp::DATE'], + unique_key = 'action_id', + tags = ['actions_s3'] +) }} + +WITH receipts AS ( + + SELECT + * + FROM + {{ ref('silver__streamline_receipts_final') }} + + {% if target.name == 'manual_fix' or target.name == 'manual_fix_dev' %} + WHERE + {{ partition_load_manual('no_buffer') }} + {% else %} + WHERE + {{ incremental_load_filter('_load_timestamp') }} + {% endif %} +), +flatten_actions AS ( + SELECT + tx_hash, + receipt_object_id, + block_id, + block_timestamp, + chunk_hash, + _load_timestamp, + _partition_by_block_number, + receipt_actions, + execution_outcome, + VALUE AS action_object, + INDEX AS action_index + FROM + receipts, + LATERAL FLATTEN( + input => receipt_actions :receipt :Action :actions + ) +), +FINAL AS ( + SELECT + tx_hash, + receipt_object_id, + block_id, + block_timestamp, + chunk_hash, + _load_timestamp, + _partition_by_block_number, + this, + key AS action_name, + TRY_PARSE_JSON(VALUE) AS action_data, + action_index + FROM + flatten_actions, + LATERAL FLATTEN( + input => action_object + ) +) +SELECT + concat_ws( + '-', + receipt_object_id, + action_index + ) AS action_id, + chunk_hash, + tx_hash, + receipt_object_id, + block_id, + block_timestamp, + action_index, + action_name, + action_data, + _load_timestamp, + _partition_by_block_number +FROM + FINAL diff --git a/models/silver/silver__actions_events_s3.yml b/models/silver/actions/silver__actions_events_s3.yml similarity index 52% rename from models/silver/silver__actions_events_s3.yml rename to models/silver/actions/silver__actions_events_s3.yml index 2d012f1..543ec36 100644 --- a/models/silver/silver__actions_events_s3.yml +++ b/models/silver/actions/silver__actions_events_s3.yml @@ -3,29 +3,60 @@ version: 2 models: - name: silver__actions_events_s3 description: |- - This table extracts all action events from a transaction and stores the argument data under action_data. + This table extracts all action events from a receipt and stores the argument data under action_data. columns: - name: ACTION_ID description: "{{ doc('action_id')}}" + tests: + - unique: + where: tx_hash != 'J4CZZQrZK6kYPVLkrdbTEpcqhUNZiRxktbMzHviqeGgf' + - not_null + + - name: CHUNK_HASH + description: "{{ doc('chunk_hash')}}" + tests: + - not_null: + where: "block_id not in (34691244, 34691277)" - name: TX_HASH description: "{{ doc('tx_hash')}}" - + tests: + - not_null + + - name: RECEIPT_OBJECT_ID + description: "{{ doc('receipt_object_id')}}" + tests: + - not_null + - name: BLOCK_ID description: "{{ doc('block_id')}}" - + tests: + - not_null + - name: BLOCK_TIMESTAMP description: "{{ doc('block_timestamp')}}" - + tests: + - not_null + - name: ACTION_INDEX description: "{{ doc('action_index')}}" - + tests: + - not_null + - name: ACTION_NAME description: "{{ doc('action_name')}}" - + tests: + - not_null + - name: ACTION_DATA description: "{{ doc('action_data')}}" + tests: + - not_null + - dbt_expectations.expect_column_values_to_be_in_type_list: + column_type_list: + - OBJECT + - VARIANT - name: _PARTITION_BY_BLOCK_NUMBER description: "{{ doc('_partition_by_block_number')}}" diff --git a/models/silver/silver__dex_swaps_s3.sql b/models/silver/curated/silver__dex_swaps_s3.sql similarity index 100% rename from models/silver/silver__dex_swaps_s3.sql rename to models/silver/curated/silver__dex_swaps_s3.sql diff --git a/models/silver/silver__dex_swaps_s3.yml b/models/silver/curated/silver__dex_swaps_s3.yml similarity index 100% rename from models/silver/silver__dex_swaps_s3.yml rename to models/silver/curated/silver__dex_swaps_s3.yml diff --git a/models/silver/silver__nft_mints_s3.sql b/models/silver/curated/silver__nft_mints_s3.sql similarity index 100% rename from models/silver/silver__nft_mints_s3.sql rename to models/silver/curated/silver__nft_mints_s3.sql diff --git a/models/silver/silver__nft_mints_s3.yml b/models/silver/curated/silver__nft_mints_s3.yml similarity index 100% rename from models/silver/silver__nft_mints_s3.yml rename to models/silver/curated/silver__nft_mints_s3.yml diff --git a/models/silver/silver__prices_oracle_s3.sql b/models/silver/curated/silver__prices_oracle_s3.sql similarity index 100% rename from models/silver/silver__prices_oracle_s3.sql rename to models/silver/curated/silver__prices_oracle_s3.sql diff --git a/models/silver/silver__prices_oracle_s3.yml b/models/silver/curated/silver__prices_oracle_s3.yml similarity index 100% rename from models/silver/silver__prices_oracle_s3.yml rename to models/silver/curated/silver__prices_oracle_s3.yml diff --git a/models/silver/silver__staking_actions_s3.sql b/models/silver/curated/silver__staking_actions_s3.sql similarity index 100% rename from models/silver/silver__staking_actions_s3.sql rename to models/silver/curated/silver__staking_actions_s3.sql diff --git a/models/silver/silver__staking_actions_s3.yml b/models/silver/curated/silver__staking_actions_s3.yml similarity index 100% rename from models/silver/silver__staking_actions_s3.yml rename to models/silver/curated/silver__staking_actions_s3.yml diff --git a/models/silver/silver__staking_pools_s3.sql b/models/silver/curated/silver__staking_pools_s3.sql similarity index 100% rename from models/silver/silver__staking_pools_s3.sql rename to models/silver/curated/silver__staking_pools_s3.sql diff --git a/models/silver/silver__staking_pools_s3.yml b/models/silver/curated/silver__staking_pools_s3.yml similarity index 100% rename from models/silver/silver__staking_pools_s3.yml rename to models/silver/curated/silver__staking_pools_s3.yml diff --git a/models/silver/silver__transfers_s3.sql b/models/silver/curated/silver__transfers_s3.sql similarity index 100% rename from models/silver/silver__transfers_s3.sql rename to models/silver/curated/silver__transfers_s3.sql diff --git a/models/silver/silver__transfers_s3.yml b/models/silver/curated/silver__transfers_s3.yml similarity index 100% rename from models/silver/silver__transfers_s3.yml rename to models/silver/curated/silver__transfers_s3.yml diff --git a/models/silver/silver__usn_supply_s3.sql b/models/silver/curated/silver__usn_supply_s3.sql similarity index 100% rename from models/silver/silver__usn_supply_s3.sql rename to models/silver/curated/silver__usn_supply_s3.sql diff --git a/models/silver/silver__usn_supply_s3.yml b/models/silver/curated/silver__usn_supply_s3.yml similarity index 100% rename from models/silver/silver__usn_supply_s3.yml rename to models/silver/curated/silver__usn_supply_s3.yml diff --git a/models/silver/silver__api_nearblocks_fts.sql b/models/silver/labels/silver__api_nearblocks_fts.sql similarity index 100% rename from models/silver/silver__api_nearblocks_fts.sql rename to models/silver/labels/silver__api_nearblocks_fts.sql diff --git a/models/silver/silver__api_nearblocks_fts.yml b/models/silver/labels/silver__api_nearblocks_fts.yml similarity index 100% rename from models/silver/silver__api_nearblocks_fts.yml rename to models/silver/labels/silver__api_nearblocks_fts.yml diff --git a/models/silver/silver__token_labels.sql b/models/silver/labels/silver__token_labels.sql similarity index 100% rename from models/silver/silver__token_labels.sql rename to models/silver/labels/silver__token_labels.sql diff --git a/models/silver/silver__token_labels.yml b/models/silver/labels/silver__token_labels.yml similarity index 100% rename from models/silver/silver__token_labels.yml rename to models/silver/labels/silver__token_labels.yml diff --git a/models/silver/silver__actions_events_s3.sql b/models/silver/silver__actions_events_s3.sql deleted file mode 100644 index d58cc54..0000000 --- a/models/silver/silver__actions_events_s3.sql +++ /dev/null @@ -1,80 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - cluster_by = ['block_timestamp::DATE', '_load_timestamp::DATE'], - unique_key = 'action_id', - tags = ['curated', 's3_curated'] -) }} - -WITH txs AS ( - - SELECT - block_id, - block_hash, - tx_hash, - block_timestamp, - nonce, - signature, - tx_receiver, - tx_signer, - tx, - gas_used, - transaction_fee, - attached_gas, - _load_timestamp, - _partition_by_block_number - FROM - {{ ref('silver__streamline_transactions_final') }} - - {% if target.name == 'manual_fix' or target.name == 'manual_fix_dev' %} - WHERE - {{ partition_load_manual('no_buffer') }} - {% else %} - WHERE - {{ incremental_load_filter('_load_timestamp') }} - {% endif %} -), -actions AS ( - SELECT - tx_hash, - block_id, - block_timestamp, - INDEX AS action_index, - CASE - WHEN VALUE LIKE '%CreateAccount%' THEN VALUE - ELSE object_keys(VALUE) [0] :: STRING - END AS action_name, - CASE - WHEN action_name = 'CreateAccount' THEN '{}' - ELSE VALUE [action_name] - END AS action_data, - _load_timestamp, - _partition_by_block_number - FROM - txs, - LATERAL FLATTEN( - input => tx :actions - ) -), -FINAL AS ( - SELECT - concat_ws( - '-', - tx_hash, - action_index - ) AS action_id, - tx_hash, - block_id, - block_timestamp, - action_index, - action_name, - TRY_PARSE_JSON(action_data) AS action_data, - _load_timestamp, - _partition_by_block_number - FROM - actions -) -SELECT - * -FROM - FINAL diff --git a/models/silver/streamline/silver__streamline_receipts.yml b/models/silver/streamline/silver__streamline_receipts.yml index 9e0eca7..a80e810 100644 --- a/models/silver/streamline/silver__streamline_receipts.yml +++ b/models/silver/streamline/silver__streamline_receipts.yml @@ -35,6 +35,7 @@ models: tests: - not_null: where: "block_id not in (34691244, 34691277)" + # these blocks have no chunks. Per explorer, no txs. Block includes chunks - name: RECEIPT description: "{{ doc('receipt')}}" diff --git a/models/silver/streamline/silver__streamline_receipts_final.yml b/models/silver/streamline/silver__streamline_receipts_final.yml index e53f0cf..c6e3783 100644 --- a/models/silver/streamline/silver__streamline_receipts_final.yml +++ b/models/silver/streamline/silver__streamline_receipts_final.yml @@ -17,6 +17,9 @@ models: - name: CHUNK_HASH description: "{{ doc('chunk_hash')}}" + tests: + - not_null: + where: "block_id not in (34691244, 34691277)" - name: RECEIPT_ACTIONS description: "{{ doc('receipt')}}"