feat(tokens): add Robinhood transfers and gas fees - #9832
Conversation
PR SummaryLow Risk Overview Gas: New Tokens: Robinhood-specific base, enriched, and daily net transfer models ( Per the PR description, USD/native metadata may be incomplete until Robinhood is registered in Reviewed by Cursor Bugbot for commit e493e3e. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: MERGE keys lack not_null tests
- Added column-level not_null data_tests on every unique_key column across the five Robinhood MERGE models in gas_robinhood_schema.yml and tokens robinhood _schema.yml.
Or push these changes by commenting:
@cursor push 7be913ddf8
Preview (7be913ddf8)
diff --git a/dbt_subprojects/hourly_spellbook/models/_sector/gas/fees/robinhood/gas_robinhood_schema.yml b/dbt_subprojects/hourly_spellbook/models/_sector/gas/fees/robinhood/gas_robinhood_schema.yml
--- a/dbt_subprojects/hourly_spellbook/models/_sector/gas/fees/robinhood/gas_robinhood_schema.yml
+++ b/dbt_subprojects/hourly_spellbook/models/_sector/gas/fees/robinhood/gas_robinhood_schema.yml
@@ -31,3 +31,12 @@
expression: "tx_fee_raw = reduce(map_values(tx_fee_breakdown_raw),uint256 '0',(s, x) -> s + x,s -> s)"
config:
where: "block_time > now() - interval '7' day"
+ columns:
+ - name: block_month
+ description: "Month for block event time in UTC"
+ data_tests:
+ - not_null
+ - name: tx_hash
+ description: "Primary key of the transaction"
+ data_tests:
+ - not_null
diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/robinhood/_schema.yml b/dbt_subprojects/tokens/models/transfers_and_balances/robinhood/_schema.yml
--- a/dbt_subprojects/tokens/models/transfers_and_balances/robinhood/_schema.yml
+++ b/dbt_subprojects/tokens/models/transfers_and_balances/robinhood/_schema.yml
@@ -19,10 +19,14 @@
columns:
- name: unique_key
description: "Surrogate key to identify unique row"
+ data_tests:
+ - not_null
- name: blockchain
description: "The blockchain of the transfers"
- name: block_date
description: "The date of the block"
+ data_tests:
+ - not_null
- name: block_time
description: "The time of the block"
- name: block_number
@@ -70,10 +74,14 @@
columns:
- name: unique_key
description: "Surrogate key to identify unique row"
+ data_tests:
+ - not_null
- name: blockchain
description: "The blockchain of the transfers"
- name: block_date
description: "The date of the block"
+ data_tests:
+ - not_null
- name: block_time
description: "The time of the block"
- name: block_number
@@ -125,6 +133,15 @@
combination_of_columns:
- blockchain
- block_date
+ columns:
+ - name: blockchain
+ description: "The blockchain of the transfer volume"
+ data_tests:
+ - not_null
+ - name: block_date
+ description: "The date of the transfer volume bucket"
+ data_tests:
+ - not_null
- name: tokens_robinhood_net_transfers_daily_asset
meta:
@@ -141,3 +158,16 @@
- blockchain
- block_date
- contract_address
+ columns:
+ - name: blockchain
+ description: "The blockchain of the transfer volume"
+ data_tests:
+ - not_null
+ - name: block_date
+ description: "The date of the transfer volume bucket"
+ data_tests:
+ - not_null
+ - name: contract_address
+ description: "The contract address of the asset"
+ data_tests:
+ - not_nullYou can send follow-ups to the cloud agent here.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit e493e3e. Configure here.
…-robinhood-core-models-on-sources
…ting Robinhood's transactions source exposes l1_fee, l1_gas_used, l1_gas_price, and l1_fee_scalar columns (confirmed by docs.robinhood.com/chain/gas-and-fees describing a two-part L2 execution + L1 data fee model), matching the OP-stack column shape used by base/optimism/opbnb rather than Arbitrum's gas_used_for_l1 pattern. The generic evm_l1_gas_fees macro ignores l1_fee entirely, undercounting tx_fee_raw/tx_fee_breakdown for any L1 data cost. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
While reviewing this PR I checked whether Finding: the model used the generic Fix: swapped to (Arbitrum's model is not the right template here — it uses a different column, |
Addresses bugbot review: block_month/tx_hash on gas_robinhood_fees and block_date/unique_key on tokens_robinhood_base_transfers and tokens_robinhood_transfers are MERGE unique_key columns with no not_null coverage, so a null key could silently break incremental dedup. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
blocked by prices getting into |
prices for two main assets in place, CI table writing as expected. |
|
will run databricks script right after prod build. |


Adds Robinhood gas fees and token transfer models on top of the Robinhood source definitions from CUR2-2166. This is data-incomplete until Robinhood lands in dune.blockchains/prices metadata: native token classification and gas USD fields depend on that registry row.\n\nValidation: dbt compile for targeted hourly gas and tokens selections.