This commit is contained in:
Eric Laurello 2025-02-28 15:32:01 -05:00
parent ba951adccf
commit 2e5ed62712
151 changed files with 6388 additions and 0 deletions

71
.github/workflows/dbt_docs_update.yml vendored Normal file
View File

@ -0,0 +1,71 @@
name: docs_update
on:
push:
branches:
- "main"
env:
USE_VARS: "${{ vars.USE_VARS }}"
DBT_PROFILES_DIR: "${{ vars.DBT_PROFILES_DIR }}"
DBT_VERSION: "${{ vars.DBT_VERSION }}"
ACCOUNT: "${{ vars.ACCOUNT }}"
ROLE: "${{ vars.ROLE }}"
USER: "${{ vars.USER }}"
PASSWORD: "${{ secrets.PASSWORD }}"
REGION: "${{ vars.REGION }}"
DATABASE: "${{ vars.DATABASE }}"
WAREHOUSE: "${{ vars.WAREHOUSE }}"
SCHEMA: "${{ vars.SCHEMA }}"
concurrency:
group: ${{ github.workflow }}
jobs:
run_dbt_jobs:
runs-on: ubuntu-latest
environment:
name: workflow_prod
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "${{ vars.PYTHON_VERSION }}"
cache: "pip"
- name: install dependencies
run: |
pip install -r requirements.txt
dbt deps
- name: checkout docs branch
run: |
git checkout -B docs origin/main
- name: generate dbt docs
run: |
dbt ls -t prod
dbt docs generate --no-compile -t prod
- name: move files to docs directory
run: |
mkdir -p ./docs
cp target/{catalog.json,manifest.json,index.html} docs/
- name: clean up target directory
run: dbt clean
- name: check for changes
run: git status
- name: stage changed files
run: git add .
- name: commit changed files
run: |
git config user.email "abc@xyz"
git config user.name "github-actions"
git commit -am "Auto-update docs"
- name: push changes to docs
run: |
git push -f --set-upstream origin docs

67
.github/workflows/dbt_run_adhoc.yml vendored Normal file
View File

@ -0,0 +1,67 @@
name: dbt_run_adhoc
run-name: dbt_run_adhoc
on:
workflow_dispatch:
branches:
- "main"
inputs:
environment:
type: choice
description: DBT Run Environment
required: true
options:
- dev
- prod
default: dev
warehouse:
type: choice
description: Snowflake warehouse
required: true
options:
- DBT
- DBT_CLOUD
- DBT_EMERGENCY
default: DBT
dbt_command:
type: string
description: 'DBT Run Command'
required: true
env:
USE_VARS: "${{ vars.USE_VARS }}"
DBT_PROFILES_DIR: "${{ vars.DBT_PROFILES_DIR }}"
DBT_VERSION: "${{ vars.DBT_VERSION }}"
ACCOUNT: "${{ vars.ACCOUNT }}"
ROLE: "${{ vars.ROLE }}"
USER: "${{ vars.USER }}"
PASSWORD: "${{ secrets.PASSWORD }}"
REGION: "${{ vars.REGION }}"
DATABASE: "${{ vars.DATABASE }}"
WAREHOUSE: "${{ inputs.WAREHOUSE }}"
SCHEMA: "${{ vars.SCHEMA }}"
concurrency:
group: ${{ github.workflow }}
jobs:
run_dbt_jobs:
runs-on: ubuntu-latest
environment:
name: workflow_${{ inputs.environment }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "${{ vars.PYTHON_VERSION }}"
cache: "pip"
- name: install dependencies
run: |
pip install -r requirements.txt
dbt deps
- name: Run DBT Jobs
run: |
${{ inputs.dbt_command }}

View File

@ -0,0 +1,44 @@
name: dbt_run_dev_refresh
run-name: dbt_run_dev_refresh
on:
workflow_dispatch:
# schedule:
# - cron: '27 8 * * *'
env:
DBT_PROFILES_DIR: "${{ vars.DBT_PROFILES_DIR }}"
ACCOUNT: "${{ vars.ACCOUNT }}"
ROLE: "${{ vars.ROLE }}"
USER: "${{ vars.USER }}"
PASSWORD: "${{ secrets.PASSWORD }}"
REGION: "${{ vars.REGION }}"
DATABASE: "${{ vars.DATABASE }}"
WAREHOUSE: "${{ vars.WAREHOUSE }}"
SCHEMA: "${{ vars.SCHEMA }}"
concurrency:
group: ${{ github.workflow }}
jobs:
run_dbt_jobs:
runs-on: ubuntu-latest
environment:
name: workflow_prod
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "${{ vars.PYTHON_VERSION }}"
cache: "pip"
- name: install dependencies
run: |
pip install -r requirements.txt
dbt deps
- name: Run DBT Jobs
run: |
dbt run-operation run_sp_create_prod_clone

View File

@ -0,0 +1,45 @@
name: dbt_run_incremental_core
run-name: dbt_run_incremental_core
on:
workflow_dispatch:
branches:
- "main"
env:
DBT_PROFILES_DIR: "${{ vars.DBT_PROFILES_DIR }}"
ACCOUNT: "${{ vars.ACCOUNT }}"
ROLE: "${{ vars.ROLE }}"
USER: "${{ vars.USER }}"
PASSWORD: "${{ secrets.PASSWORD }}"
REGION: "${{ vars.REGION }}"
DATABASE: "${{ vars.DATABASE }}"
WAREHOUSE: "${{ vars.WAREHOUSE }}"
SCHEMA: "${{ vars.SCHEMA }}"
concurrency:
group: ${{ github.workflow }}
jobs:
run_dbt_jobs:
runs-on: ubuntu-latest
environment:
name: workflow_prod
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "${{ vars.PYTHON_VERSION }}"
cache: "pip"
- name: install dependencies
run: |
pip install -r requirements.txt
dbt deps
- name: Run DBT Jobs
run: |
dbt run -s "maya_models,tag:scheduled_core"

20
.gitignore vendored Normal file
View File

@ -0,0 +1,20 @@
target/
dbt_modules/
# newer versions of dbt use this directory instead of dbt_modules for test dependencies
dbt_packages/
logs/
.venv/
.python-version
dbt-env/
venv/
# Visual Studio Code files
*/.vscode
*.code-workspace
.history/
**/.DS_Store
.vscode/
.env
.DS_Store
.user.yml

74
README.md Normal file
View File

@ -0,0 +1,74 @@
## Profile Set Up
#### Use the following within profiles.yml
----
```yml
maya:
target: dev
outputs:
dev:
type: snowflake
account: <ACCOUNT>
role: <ROLE>
user: <USERNAME>
password: <PASSWORD>
region: <REGION>
database: maya_DEV
warehouse: <WAREHOUSE>
schema: silver
threads: 4
client_session_keep_alive: False
query_tag: <TAG>
```
### Resources:
- Learn more about dbt [in the docs](https://docs.getdbt.com/docs/introduction)
- Check out [Discourse](https://discourse.getdbt.com/) for commonly asked questions and answers
- Join the [chat](https://community.getdbt.com/) on Slack for live discussions and support
- Find [dbt events](https://events.getdbt.com) near you
- Check out [the blog](https://blog.getdbt.com/) for the latest news on dbt's development and best practices
- Check out [the blog](https://blog.getdbt.com/) for the latest news on dbt's development and best practices
## Applying Model Tags
### Database / Schema level tags
Database and schema tags are applied via the `add_database_or_schema_tags` macro. These tags are inherited by their downstream objects. To add/modify tags call the appropriate tag set function within the macro.
```
{{ set_database_tag_value('SOME_DATABASE_TAG_KEY','SOME_DATABASE_TAG_VALUE') }}
{{ set_schema_tag_value('SOME_SCHEMA_TAG_KEY','SOME_SCHEMA_TAG_VALUE') }}
```
### Model tags
To add/update a model's snowflake tags, add/modify the `meta` model property under `config`. Only table level tags are supported at this time via DBT.
```
{{ config(
...,
meta={
'database_tags':{
'table': {
'PURPOSE': 'SOME_PURPOSE'
}
}
},
...
) }}
```
By default, model tags are not pushed to snowflake on each load. You can push a tag update for a model by specifying the `UPDATE_SNOWFLAKE_TAGS` project variable during a run.
```
dbt run --var '{"UPDATE_SNOWFLAKE_TAGS":True}' -s models/core/core__fact_swaps.sql
```
### Querying for existing tags on a model in snowflake
```
select *
from table(maya.information_schema.tag_references('maya.core.fact_blocks', 'table'));
```

73
dbt_project.yml Normal file
View File

@ -0,0 +1,73 @@
# Name your project! Project names should contain only lowercase characters
# and underscores. A good package name should reflect your organization's
# name or the intended use of these models
name: "maya_models"
version: "1.0.0"
config-version: 2
require-dbt-version: ">=1.8.0"
# This setting configures which "profile" dbt uses for this project.
profile: "maya"
# These configurations specify where dbt should look for different types of files.
# The `model-paths` config, for example, states that models in this project can be
# found in the "models/" directory. You probably won't need to change these!
model-paths: ["models"]
analysis-paths: ["analysis"]
test-paths: ["tests"]
seed-paths: ["data"]
macro-paths: ["macros"]
snapshot-paths: ["snapshots"]
target-path: "target" # directory which will store compiled SQL files
clean-targets: # directories to be removed by `dbt clean`
- "target"
- "dbt_modules"
- "dbt_packages"
# Configuring models
# Full documentation: https://docs.getdbt.com/docs/configuring-models
# In this example config, we tell dbt to build all models in the example/ directory
# as tables. These settings can be overridden in the individual model files
# using the `{{ config(...) }}` macro.
models:
+copy_grants: true
+persist_docs:
relation: true
columns: true
+on_schema_change: "append_new_columns"
livequery_models:
deploy:
core:
materialized: ephemeral
data_tests:
maya_models: # replace with the name of the chain
+store_failures: true # all tests
on-run-start:
- '{{create_sps()}}'
- '{{create_udfs()}}'
dispatch:
- macro_namespace: dbt
search_order:
- maya-models
- dbt_snowflake_query_tags
- dbt
query-comment:
comment: '{{ dbt_snowflake_query_tags.get_query_comment(node) }}'
append: true # Snowflake removes prefixed comments.
vars:
"dbt_date:time_zone": GMT
OBSERV_FULL_TEST: False
START_GHA_TASKS: False
UPDATE_SNOWFLAKE_TAGS: True
UPDATE_UDFS_AND_SPS: True

0
docs/.gitkeep Normal file
View File

0
macros/.gitkeep Normal file
View File

7
macros/create_sps.sql Normal file
View File

@ -0,0 +1,7 @@
{% macro create_sps() %}
{% if target.database == 'MAYA' %}
CREATE schema IF NOT EXISTS _internal;
{{ sp_create_prod_clone('_internal') }};
{% endif %}
{% endmacro %}
{% endmacro %}

2
macros/create_udfs.sql Normal file
View File

@ -0,0 +1,2 @@
{% macro create_udfs() %}
{% endmacro %}

View File

@ -0,0 +1,33 @@
{% macro generate_schema_name(
custom_schema_name = none,
node = none
) -%}
{% set node_name = node.name %}
{% set split_name = node_name.split('__') %}
{{ split_name [0] | trim }}
{%- endmacro %}
{% macro generate_alias_name(
custom_alias_name = none,
node = none
) -%}
{% set node_name = node.name %}
{% set split_name = node_name.split('__') %}
{% if split_name | length < 2 %}
{{ split_name [0] | trim }}
{% else %}
{{ split_name [1] | trim }}
{% endif %}
{%- endmacro %}
{% macro generate_tmp_view_name(model_name) -%}
{% set node_name = model_name.name %}
{% set split_name = node_name.split('__') %}
{{ target.database ~ '.' ~ split_name[0] ~ '.' ~ split_name [1] ~ '__dbt_tmp' | trim }}
{%- endmacro %}
{% macro generate_view_name(model_name) -%}
{% set node_name = model_name.name %}
{% set split_name = node_name.split('__') %}
{{ target.database ~ '.' ~ split_name[0] ~ '.' ~ split_name [1] | trim }}
{%- endmacro %}

View File

@ -0,0 +1,11 @@
{% macro set_query_tag() -%}
{% set new_json = {"repo":project_name, "object":this.table, "profile":target.profile_name, "env":target.name, "existing_tag":get_current_query_tag() } %}
{% set new_query_tag = tojson(new_json) | as_text %}
{% if new_query_tag %}
{% set original_query_tag = get_current_query_tag() %}
{{ log("Setting query_tag to '" ~ new_query_tag ~ "'. Will reset to '" ~ original_query_tag ~ "' after materialization.") }}
{% do run_query("alter session set query_tag = '{}'".format(new_query_tag)) %}
{{ return(original_query_tag)}}
{% endif %}
{{ return(none)}}
{% endmacro %}

30
macros/dbt/get_merge.sql Normal file
View File

@ -0,0 +1,30 @@
-- incremental_strategy="merge"
{% macro get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}
{% set merge_sql = fsc_utils.get_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) %}
{{ return(merge_sql) }}
{% endmacro %}
-- incremental_strategy="delete+insert"
{% macro get_delete_insert_merge_sql(target, source, unique_key, dest_columns, incremental_predicates) -%}
{% set predicate_override = "" %}
-- get the min value of column
{% if incremental_predicates[0] == "min_value_predicate" %}
{% set min_column_name = incremental_predicates[1] %}
{% set query %}
select min({{ min_column_name }}) from {{ source }}
{% endset %}
{% set min_block = run_query(query).columns[0][0] %}
{% if min_block is not none %}
{% set predicate_override %}
round({{ target }}.{{ min_column_name }},-5) >= round({{ min_block }},-5)
{% endset %}
{% else %}
{% set predicate_override = "1=1" %}
{% endif %}
{% endif %}
{% set predicates = [predicate_override] + incremental_predicates[2:] if predicate_override else incremental_predicates %}
-- standard delete+insert from here
{% set merge_sql = dbt.get_delete_insert_merge_sql(target, source, unique_key, dest_columns, predicates) %}
{{ return(merge_sql) }}
{% endmacro %}

View File

@ -0,0 +1,4 @@
{% macro dbt_snowflake_get_tmp_relation_type(strategy, unique_key, language) %}
-- always table
{{ return('table') }}
{% endmacro %}

View File

@ -0,0 +1,10 @@
{% macro run_sp_create_prod_clone() %}
{% set clone_query %}
call maya._internal.create_prod_clone(
'maya',
'maya_dev',
'internal_dev'
);
{% endset %}
{% do run_query(clone_query) %}
{% endmacro %}

View File

@ -0,0 +1,49 @@
{% macro sp_create_prod_clone(target_schema) -%}
create or replace procedure {{ target_schema }}.create_prod_clone(source_db_name string, destination_db_name string, role_name string)
returns boolean
language javascript
execute as caller
as
$$
snowflake.execute({sqlText: `BEGIN TRANSACTION;`});
try {
snowflake.execute({sqlText: `CREATE OR REPLACE DATABASE ${DESTINATION_DB_NAME} CLONE ${SOURCE_DB_NAME}`});
snowflake.execute({sqlText: `DROP SCHEMA IF EXISTS ${DESTINATION_DB_NAME}._INTERNAL`}); /* this only needs to be in prod */
snowflake.execute({sqlText: `GRANT OWNERSHIP ON ALL SCHEMAS IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON ALL FUNCTIONS IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON ALL PROCEDURES IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON ALL VIEWS IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON ALL STAGES IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON ALL TABLES IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`});
snowflake.execute({sqlText: `REVOKE OWNERSHIP ON FUTURE FUNCTIONS IN DATABASE ${DESTINATION_DB_NAME} FROM ROLE DBT_CLOUD_MAYA;`});
snowflake.execute({sqlText: `REVOKE OWNERSHIP ON FUTURE PROCEDURES IN DATABASE ${DESTINATION_DB_NAME} FROM ROLE DBT_CLOUD_MAYA;`});
snowflake.execute({sqlText: `REVOKE OWNERSHIP ON FUTURE VIEWS IN DATABASE ${DESTINATION_DB_NAME} FROM ROLE DBT_CLOUD_MAYA;`});
snowflake.execute({sqlText: `REVOKE OWNERSHIP ON FUTURE STAGES IN DATABASE ${DESTINATION_DB_NAME} FROM ROLE DBT_CLOUD_MAYA;`});
snowflake.execute({sqlText: `REVOKE OWNERSHIP ON FUTURE TABLES IN DATABASE ${DESTINATION_DB_NAME} FROM ROLE DBT_CLOUD_MAYA;`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON FUTURE FUNCTIONS IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME};`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON FUTURE PROCEDURES IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME};`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON FUTURE VIEWS IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME};`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON FUTURE STAGES IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME};`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON FUTURE TABLES IN DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME};`});
snowflake.execute({sqlText: `GRANT OWNERSHIP ON DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`})
var existing_tags = snowflake.execute({sqlText: `SHOW TAGS IN DATABASE ${DESTINATION_DB_NAME};`});
while (existing_tags.next()) {
var schema = existing_tags.getColumnValue(4);
var tag_name = existing_tags.getColumnValue(2)
snowflake.execute({sqlText: `GRANT OWNERSHIP ON TAG ${DESTINATION_DB_NAME}.${schema}.${tag_name} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`});
}
snowflake.execute({sqlText: `COMMIT;`});
} catch (err) {
snowflake.execute({sqlText: `ROLLBACK;`});
throw(err);
}
return true
$$
{%- endmacro %}

View File

@ -0,0 +1,6 @@
{% macro add_database_or_schema_tags() %}
{{ set_database_tag_value(
'BLOCKCHAIN_NAME',
'MAYA'
) }}
{% endmacro %}

View File

@ -0,0 +1,127 @@
{% macro apply_meta_as_tags(results) %}
{% if var("UPDATE_SNOWFLAKE_TAGS") %}
{{ log('apply_meta_as_tags', info=False) }}
{{ log(results, info=False) }}
{% if execute %}
{%- set tags_by_schema = {} -%}
{% for res in results -%}
{% if res.node.meta.database_tags %}
{%- set model_database = res.node.database -%}
{%- set model_schema = res.node.schema -%}
{%- set model_schema_full = model_database+'.'+model_schema -%}
{%- set model_alias = res.node.alias -%}
{% if model_schema_full not in tags_by_schema.keys() %}
{{ log('need to fetch tags for schema '+model_schema_full, info=False) }}
{%- call statement('main', fetch_result=True) -%}
show tags in {{model_database}}.{{model_schema}}
{%- endcall -%}
{%- set _ = tags_by_schema.update({model_schema_full: load_result('main')['table'].columns.get('name').values()|list}) -%}
{{ log('Added tags to cache', info=False) }}
{% else %}
{{ log('already have tag info for schema', info=False) }}
{% endif %}
{%- set current_tags_in_schema = tags_by_schema[model_schema_full] -%}
{{ log('current_tags_in_schema:', info=False) }}
{{ log(current_tags_in_schema, info=False) }}
{{ log("========== Processing tags for "+model_schema_full+"."+model_alias+" ==========", info=False) }}
{% set line -%}
node: {{ res.node.unique_id }}; status: {{ res.status }} (message: {{ res.message }})
node full: {{ res.node}}
meta: {{ res.node.meta}}
materialized: {{ res.node.config.materialized }}
{%- endset %}
{{ log(line, info=False) }}
{%- call statement('main', fetch_result=True) -%}
select LEVEL,UPPER(TAG_NAME) as TAG_NAME,TAG_VALUE from table(information_schema.tag_references_all_columns('{{model_schema}}.{{model_alias}}', 'table'))
{%- endcall -%}
{%- set existing_tags_for_table = load_result('main')['data'] -%}
{{ log('Existing tags for table:', info=False) }}
{{ log(existing_tags_for_table, info=False) }}
{{ log('--', info=False) }}
{% for table_tag in res.node.meta.database_tags.table %}
{{ create_tag_if_missing(current_tags_in_schema,table_tag|upper) }}
{% set desired_tag_value = res.node.meta.database_tags.table[table_tag] %}
{{set_table_tag_value_if_different(model_schema,model_alias,table_tag,desired_tag_value,existing_tags_for_table)}}
{% endfor %}
{{ log("========== Finished processing tags for "+model_alias+" ==========", info=False) }}
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endmacro %}
{% macro create_tag_if_missing(all_tag_names,table_tag) %}
{% if table_tag not in all_tag_names %}
{{ log('Creating missing tag '+table_tag, info=False) }}
{%- call statement('main', fetch_result=True) -%}
create tag if not exists silver.{{table_tag}}
{%- endcall -%}
{{ log(load_result('main').data, info=False) }}
{% else %}
{{ log('Tag already exists: '+table_tag, info=False) }}
{% endif %}
{% endmacro %}
{% macro set_table_tag_value_if_different(model_schema,table_name,tag_name,desired_tag_value,existing_tags) %}
{{ log('Ensuring tag '+tag_name+' has value '+desired_tag_value+' at table level', info=False) }}
{%- set existing_tag_for_table = existing_tags|selectattr('0','equalto','TABLE')|selectattr('1','equalto',tag_name|upper)|list -%}
{{ log('Filtered tags for table:', info=False) }}
{{ log(existing_tag_for_table[0], info=False) }}
{% if existing_tag_for_table|length > 0 and existing_tag_for_table[0][2]==desired_tag_value %}
{{ log('Correct tag value already exists', info=False) }}
{% else %}
{{ log('Setting tag value for '+tag_name+' to value '+desired_tag_value, info=False) }}
{%- call statement('main', fetch_result=True) -%}
alter table {{model_schema}}.{{table_name}} set tag {{tag_name}} = '{{desired_tag_value}}'
{%- endcall -%}
{{ log(load_result('main').data, info=False) }}
{% endif %}
{% endmacro %}
{% macro set_column_tag_value_if_different(table_name,column_name,tag_name,desired_tag_value,existing_tags) %}
{{ log('Ensuring tag '+tag_name+' has value '+desired_tag_value+' at column level', info=False) }}
{%- set existing_tag_for_column = existing_tags|selectattr('0','equalto','COLUMN')|selectattr('1','equalto',tag_name|upper)|list -%}
{{ log('Filtered tags for column:', info=False) }}
{{ log(existing_tag_for_column[0], info=False) }}
{% if existing_tag_for_column|length > 0 and existing_tag_for_column[0][2]==desired_tag_value %}
{{ log('Correct tag value already exists', info=False) }}
{% else %}
{{ log('Setting tag value for '+tag_name+' to value '+desired_tag_value, info=False) }}
{%- call statement('main', fetch_result=True) -%}
alter table {{table_name}} modify column {{column_name}} set tag {{tag_name}} = '{{desired_tag_value}}'
{%- endcall -%}
{{ log(load_result('main').data, info=False) }}
{% endif %}
{% endmacro %}
{% macro set_database_tag_value(tag_name,tag_value) %}
{% set query %}
create tag if not exists silver.{{tag_name}}
{% endset %}
{% do run_query(query) %}
{% set query %}
alter database {{target.database}} set tag {{target.database}}.silver.{{tag_name}} = '{{tag_value}}'
{% endset %}
{% do run_query(query) %}
{% endmacro %}
{% macro set_schema_tag_value(target_schema,tag_name,tag_value) %}
{% set query %}
create tag if not exists silver.{{tag_name}}
{% endset %}
{% do run_query(query) %}
{% set query %}
alter schema {{target.database}}.{{target_schema}} set tag {{target.database}}.silver.{{tag_name}} = '{{tag_value}}'
{% endset %}
{% do run_query(query) %}
{% endmacro %}

View File

@ -0,0 +1,29 @@
{% test compare_model_subset(model, compare_model, compare_columns, model_condition) %}
{% set compare_cols_csv = compare_columns | join(', ') %}
with a as (
select {{compare_cols_csv}} from {{ model }}
{{ model_condition }}
),
b as (
select {{compare_cols_csv}} from {{ compare_model }}
),
a_minus_b as (
select * from a
except
select * from b
),
b_minus_a as (
select * from b
except
select * from a
),
unioned as (
select 'in_actual_not_in_expected' as which_diff, a_minus_b.* from a_minus_b
union all
select 'in_expected_not_in_actual' as which_diff, b_minus_a.* from b_minus_a
)
select * from unioned
{% endtest %}

View File

@ -0,0 +1,37 @@
{% macro sequence_gaps(
table,
partition_by,
column
) %}
{%- set partition_sql = partition_by | join(", ") -%}
{%- set previous_column = "prev_" ~ column -%}
WITH source AS (
SELECT
{{ partition_sql + "," if partition_sql }}
{{ column }},
LAG(
{{ column }},
1
) over (
{{ "PARTITION BY " ~ partition_sql if partition_sql }}
ORDER BY
{{ column }} ASC
) AS {{ previous_column }}
FROM
{{ table }}
WHERE
block_timestamp::date <= current_date - 1
)
SELECT
{{ partition_sql + "," if partition_sql }}
{{ previous_column }},
{{ column }},
{{ column }} - {{ previous_column }}
- 1 AS gap
FROM
source
WHERE
{{ column }} - {{ previous_column }} <> 1
ORDER BY
gap DESC
{% endmacro %}

428
maya mid.csv Normal file
View File

@ -0,0 +1,428 @@
TABLE_NAME,COLUMN_NAME
MIDGARD_BLOCK_LOG,__HEVO__DATABASE_NAME
MIDGARD_STAKE_EVENTS,CACAO_ADDR
MIDGARD_FEE_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_BLOCK_POOL_DEPTHS,BLOCK_TIMESTAMP
MIDGARD_REFUND_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SLASH_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_CACAO_PRICE,CACAO_PRICE_E8
MIDGARD_ACTIVE_VAULT_EVENTS,EVENT_ID
MIDGARD_SLASH_EVENTS,ASSET_E8
MIDGARD_REFUND_EVENTS,ASSET
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_SLASH_POINTS_EVENTS,BLOCK_TIMESTAMP
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,FROM_ADDR
MIDGARD_OUTBOUND_EVENTS,__HEVO__LOADED_AT
MIDGARD_REWARDS_EVENT_ENTRIES,SAVER_E8
MIDGARD_BOND_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,LAST_HEIGHT
MIDGARD_OUTBOUND_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SET_MIMIR_EVENTS,__HEVO__INGESTED_AT
MIDGARD_FAILED_DEPOSIT_MESSAGES,__HEVO__SCHEMA_NAME
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,FAILED_SWAP_REASONS
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,EVENT_ID
MIDGARD_PENDING_LIQUIDITY_EVENTS,ASSET_E8
MIDGARD_CONSTANTS,__HEVO__INGESTED_AT
MIDGARD_SET_NODE_KEYS_EVENTS,EVENT_ID
MIDGARD_SET_IP_ADDRESS_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_SLASH_POINTS_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_OUTBOUND_EVENTS,IN_TX
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,EVENT_ID
MIDGARD_SWAP_EVENTS,EVENT_ID
MIDGARD_SET_NODE_MIMIR_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SET_NODE_KEYS_EVENTS,NODE_ADDR
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_WITHDRAW_EVENTS,FROM_ADDR
MIDGARD_SET_IP_ADDRESS_EVENTS,BLOCK_TIMESTAMP
MIDGARD_SET_VERSION_EVENTS,VERSION
MIDGARD_REFUND_EVENTS,TO_ADDR
MIDGARD_STAKE_EVENTS,__HEVO__LOADED_AT
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,EVENT_ID
MIDGARD_BLOCK_POOL_DEPTHS,POOL
MIDGARD_WITHDRAW_EVENTS,_EMIT_ASSET_IN_CACAO_E8
MIDGARD_TRANSFER_EVENTS,BLOCK_TIMESTAMP
MIDGARD_CACAO_PRICE,__HEVO__SCHEMA_NAME
MIDGARD_CACAO_PRICE,__HEVO__INGESTED_AT
MIDGARD_SET_MIMIR_EVENTS,__HEVO__LOADED_AT
MIDGARD_RESERVE_EVENTS,__HEVO__INGESTED_AT
MIDGARD_CONSTANTS,__HEVO__SCHEMA_NAME
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,TX_ID
MIDGARD_INACTIVE_VAULT_EVENTS,ADD_ASGARD_ADDR
MIDGARD_CACAO_PRICE,BLOCK_TIMESTAMP
MIDGARD_NEW_NODE_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_BLOCK_LOG,__HEVO__INGESTED_AT
MIDGARD_BOND_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,COUNT
MIDGARD_BOND_EVENTS,E8
MIDGARD_RESERVE_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_SET_NODE_KEYS_EVENTS,BLOCK_TIMESTAMP
MIDGARD_GAS_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_SWAP_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_MAYANAME_CHANGE_EVENTS,CHAIN
MIDGARD_ADD_EVENTS,CACAO_E8
MIDGARD_ACTIVE_VAULT_EVENTS,BLOCK_TIMESTAMP
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SWAP_EVENTS,TO_E8
MIDGARD_MAYANAME_CHANGE_EVENTS,AFFILIATE_BPS
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,BLOCK_TIMESTAMP
MIDGARD_CONSTANTS,VALUE
MIDGARD_MAYANAME_CHANGE_EVENTS,NAME
MIDGARD_BLOCK_LOG,__HEVO__LOADED_AT
MIDGARD_BLOCK_POOL_DEPTHS,__HEVO__LOADED_AT
MIDGARD_REWARDS_EVENT_ENTRIES,__HEVO__DATABASE_NAME
MIDGARD_ADD_EVENTS,ASSET_E8
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,QUANTITY
MIDGARD_MAYANAME_CHANGE_EVENTS,BLOCK_TIMESTAMP
MIDGARD_STAKE_EVENTS,POOL
MIDGARD_MAYANAME_CHANGE_EVENTS,OWNER
MIDGARD_REWARDS_EVENT_ENTRIES,__HEVO__SCHEMA_NAME
MIDGARD_SLASH_EVENTS,BLOCK_TIMESTAMP
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,__HEVO__INGESTED_AT
MIDGARD_WITHDRAW_EVENTS,POOL
MIDGARD_STAKE_EVENTS,ASSET_TX
MIDGARD_SWAP_EVENTS,LIQ_FEE_IN_CACAO_E8
MIDGARD_BOND_EVENTS,MEMO
MIDGARD_SEND_MESSAGES,RAW_LOG
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,IN_ASSET
MIDGARD_STAKE_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_BOND_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SET_NODE_KEYS_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SLASH_LIQUIDITY_EVENTS,__HEVO__INGESTED_AT
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SET_VERSION_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,REASON
MIDGARD_REWARDS_EVENTS,EVENT_ID
MIDGARD_FEE_EVENTS,BLOCK_TIMESTAMP
MIDGARD_REFUND_EVENTS,ASSET_E8
MIDGARD_POOL_EVENTS,__HEVO__LOADED_AT
MIDGARD_REFUND_EVENTS,__HEVO__INGESTED_AT
MIDGARD_BLOCK_POOL_DEPTHS,ASSET_E8
MIDGARD_SWAP_EVENTS,TO_E8_MIN
MIDGARD_SEND_MESSAGES,FROM_ADDR
MIDGARD_STAKE_EVENTS,STAKE_UNITS
MIDGARD_ADD_EVENTS,__HEVO__LOADED_AT
MIDGARD_OUTBOUND_EVENTS,MEMO
MIDGARD_SET_IP_ADDRESS_EVENTS,__HEVO__LOADED_AT
MIDGARD_SET_MIMIR_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_SET_NODE_MIMIR_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_NEW_NODE_EVENTS,__HEVO__LOADED_AT
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,BLOCK_TIMESTAMP
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,ASSET_AMT
MIDGARD_GAS_EVENTS,TX_COUNT
MIDGARD_PENDING_LIQUIDITY_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SWAP_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SET_IP_ADDRESS_EVENTS,NODE_ADDR
MIDGARD_OUTBOUND_EVENTS,TO_ADDR
MIDGARD_SLASH_POINTS_EVENTS,SLASH_POINTS
MIDGARD_ADD_EVENTS,EVENT_ID
MIDGARD_SEND_MESSAGES,TX_ID
MIDGARD_SEND_MESSAGES,MEMO
MIDGARD_FEE_EVENTS,__HEVO__LOADED_AT
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,OUT_ASSET
MIDGARD_SWAP_EVENTS,TO_ASSET
MIDGARD_NEW_NODE_EVENTS,__HEVO__INGESTED_AT
MIDGARD_RESERVE_EVENTS,EVENT_ID
MIDGARD_WITHDRAW_EVENTS,ASYMMETRY
MIDGARD_REFUND_EVENTS,ASSET_2ND
MIDGARD_OUTBOUND_EVENTS,INTERNAL
MIDGARD_INACTIVE_VAULT_EVENTS,BLOCK_TIMESTAMP
MIDGARD_FAILED_DEPOSIT_MESSAGES,ASSET
MIDGARD_SET_IP_ADDRESS_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_REFUND_EVENTS,ASSET_2ND_E8
MIDGARD_SLASH_LIQUIDITY_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_REWARDS_EVENT_ENTRIES,__HEVO__LOADED_AT
MIDGARD_BLOCK_LOG,HEIGHT
MIDGARD_REWARDS_EVENT_ENTRIES,__HEVO__INGESTED_AT
MIDGARD_CACAO_PRICE,__HEVO__DATABASE_NAME
MIDGARD_BLOCK_POOL_DEPTHS,__HEVO__INGESTED_AT
MIDGARD_NEW_NODE_EVENTS,EVENT_ID
MIDGARD_REFUND_EVENTS,CHAIN
MIDGARD_SWAP_EVENTS,POOL
MIDGARD_OUTBOUND_EVENTS,EVENT_ID
MIDGARD_PENDING_LIQUIDITY_EVENTS,POOL
MIDGARD_STAKE_EVENTS,ASSET_E8
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,NODE_ADDR
MIDGARD_MAYANAME_CHANGE_EVENTS,REGISTRATION_FEE_E8
MIDGARD_SWAP_EVENTS,_STREAMING
MIDGARD_SLASH_LIQUIDITY_EVENTS,LP_ADDRESS
MIDGARD_WITHDRAW_EVENTS,IMP_LOSS_PROTECTION_E8
MIDGARD_SWAP_EVENTS,FROM_ADDR
MIDGARD_SET_MIMIR_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SEND_MESSAGES,__HEVO__INGESTED_AT
MIDGARD_POOL_EVENTS,BLOCK_TIMESTAMP
MIDGARD_ACTIVE_VAULT_EVENTS,ADD_ASGARD_ADDR
MIDGARD_CACAO_PRICE,__HEVO__LOADED_AT
MIDGARD_GAS_EVENTS,EVENT_ID
MIDGARD_MAYANAME_CHANGE_EVENTS,SENDER
MIDGARD_SLASH_LIQUIDITY_EVENTS,EVENT_ID
MIDGARD_POOL_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SLASH_EVENTS,ASSET
MIDGARD_REWARDS_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_PENDING_LIQUIDITY_EVENTS,ASSET_ADDR
MIDGARD_BOND_EVENTS,TX
MIDGARD_WITHDRAW_EVENTS,EMIT_CACAO_E8
MIDGARD_ADD_EVENTS,FROM_ADDR
MIDGARD_MAYANAME_CHANGE_EVENTS,MEMO
MIDGARD_SEND_MESSAGES,__HEVO__SCHEMA_NAME
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,BLOCK_TIMESTAMP
MIDGARD_REFUND_EVENTS,TX
MIDGARD_STAKE_EVENTS,CACAO_E8
MIDGARD_REFUND_EVENTS,__HEVO__LOADED_AT
MIDGARD_INACTIVE_VAULT_EVENTS,__HEVO__LOADED_AT
MIDGARD_ADD_EVENTS,TO_ADDR
MIDGARD_FAILED_DEPOSIT_MESSAGES,CODE
MIDGARD_CONSTANTS,KEY
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,__HEVO__LOADED_AT
MIDGARD_WITHDRAW_EVENTS,BASIS_POINTS
MIDGARD_OUTBOUND_EVENTS,TX
MIDGARD_MAYANAME_CHANGE_EVENTS,EXPIRE
MIDGARD_RESERVE_EVENTS,E8
MIDGARD_INACTIVE_VAULT_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_OUTBOUND_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_POOL_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SLASH_LIQUIDITY_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_GAS_EVENTS,ASSET_E8
MIDGARD_PENDING_LIQUIDITY_EVENTS,CACAO_TX
MIDGARD_ADD_EVENTS,BLOCK_TIMESTAMP
MIDGARD_WITHDRAW_EVENTS,MEMO
MIDGARD_RESERVE_EVENTS,ASSET
MIDGARD_BLOCK_LOG,__HEVO__SCHEMA_NAME
MIDGARD_FAILED_DEPOSIT_MESSAGES,TX_ID
MIDGARD_SWAP_EVENTS,LIQ_FEE_E8
MIDGARD_MAYANAME_CHANGE_EVENTS,PREFERRED_ASSET
MIDGARD_ADD_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SET_IP_ADDRESS_EVENTS,__HEVO__INGESTED_AT
MIDGARD_INACTIVE_VAULT_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_ADD_EVENTS,CHAIN
MIDGARD_SWAP_EVENTS,STREAMING_COUNT
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_POOL_EVENTS,ASSET
MIDGARD_SET_VERSION_EVENTS,BLOCK_TIMESTAMP
MIDGARD_RESERVE_EVENTS,CHAIN
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,CACAO_ADD
MIDGARD_REWARDS_EVENTS,__HEVO__INGESTED_AT
MIDGARD_PENDING_LIQUIDITY_EVENTS,__HEVO__LOADED_AT
MIDGARD_TRANSFER_EVENTS,AMOUNT_E8
MIDGARD_SWAP_EVENTS,__HEVO__INGESTED_AT
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_MAYANAME_CHANGE_EVENTS,FUND_AMOUNT_E8
MIDGARD_FAILED_DEPOSIT_MESSAGES,__HEVO__DATABASE_NAME
MIDGARD_REWARDS_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_SET_NODE_MIMIR_EVENTS,KEY
MIDGARD_BOND_EVENTS,CHAIN
MIDGARD_SLASH_LIQUIDITY_EVENTS,BOND_ADDRESS
MIDGARD_ACTIVE_VAULT_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_FEE_EVENTS,ASSET_E8
MIDGARD_TRANSFER_EVENTS,__HEVO__LOADED_AT
MIDGARD_REWARDS_EVENT_ENTRIES,CACAO_E8
MIDGARD_BLOCK_POOL_DEPTHS,CACAO_E8
MIDGARD_INACTIVE_VAULT_EVENTS,__HEVO__INGESTED_AT
MIDGARD_GAS_EVENTS,BLOCK_TIMESTAMP
MIDGARD_OUTBOUND_EVENTS,ASSET_E8
MIDGARD_REWARDS_EVENT_ENTRIES,POOL
MIDGARD_SET_NODE_KEYS_EVENTS,VALIDATOR_CONSENSUS
MIDGARD_SWAP_EVENTS,FROM_ASSET
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,NODE_ADDR
MIDGARD_BLOCK_POOL_DEPTHS,SYNTH_E8
MIDGARD_WITHDRAW_EVENTS,TO_ADDR
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,DEPOSIT_E8
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,FAILED_SWAPS
MIDGARD_MAYANAME_CHANGE_EVENTS,ADDRESS
MIDGARD_FAILED_DEPOSIT_MESSAGES,REASON
MIDGARD_BOND_EVENTS,BOND_TYPE
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,INTERVAL
MIDGARD_MAYANAME_CHANGE_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_GAS_EVENTS,__HEVO__LOADED_AT
MIDGARD_SLASH_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SWAP_EVENTS,TO_ADDR
MIDGARD_BOND_EVENTS,__HEVO__LOADED_AT
MIDGARD_MAYANAME_CHANGE_EVENTS,EVENT_ID
MIDGARD_ADD_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_SET_NODE_KEYS_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_MAYANAME_CHANGE_EVENTS,HEIGHT
MIDGARD_SWAP_EVENTS,BLOCK_TIMESTAMP
MIDGARD_ACTIVE_VAULT_EVENTS,__HEVO__LOADED_AT
MIDGARD_STAKE_EVENTS,EVENT_ID
MIDGARD_RESERVE_EVENTS,FROM_ADDR
MIDGARD_TRANSFER_EVENTS,EVENT_ID
MIDGARD_REWARDS_EVENT_ENTRIES,EVENT_ID
MIDGARD_MAYANAME_CHANGE_EVENTS,SUB_AFFILIATES
MIDGARD_ADD_EVENTS,POOL
MIDGARD_SET_IP_ADDRESS_EVENTS,IP_ADDR
MIDGARD_SET_NODE_KEYS_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_FAILED_DEPOSIT_MESSAGES,AMOUNT_E8
MIDGARD_ADD_EVENTS,ASSET
MIDGARD_SWAP_EVENTS,_DIRECTION
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,IN_E8
MIDGARD_SET_NODE_MIMIR_EVENTS,__HEVO__LOADED_AT
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,ASSET
MIDGARD_WITHDRAW_EVENTS,EVENT_ID
MIDGARD_SWAP_EVENTS,TX
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,__HEVO__LOADED_AT
MIDGARD_STAKE_EVENTS,BLOCK_TIMESTAMP
MIDGARD_FEE_EVENTS,POOL_DEDUCT
MIDGARD_GAS_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_GAS_EVENTS,__HEVO__INGESTED_AT
MIDGARD_PENDING_LIQUIDITY_EVENTS,EVENT_ID
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,CURRENT
MIDGARD_SET_NODE_MIMIR_EVENTS,ADDRESS
MIDGARD_SET_VERSION_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SLASH_LIQUIDITY_EVENTS,ASSET_E8_LOSS
MIDGARD_OUTBOUND_EVENTS,ASSET
MIDGARD_SLASH_EVENTS,__HEVO__INGESTED_AT
MIDGARD_ADD_EVENTS,TX
MIDGARD_REWARDS_EVENT_ENTRIES,BLOCK_TIMESTAMP
MIDGARD_SET_VERSION_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_RESERVE_EVENTS,ASSET_E8
MIDGARD_NEW_NODE_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_GAS_EVENTS,CACAO_E8
MIDGARD_SET_IP_ADDRESS_EVENTS,EVENT_ID
MIDGARD_SLASH_POINTS_EVENTS,REASON
MIDGARD_SWAP_EVENTS,STREAMING_QUANTITY
MIDGARD_PENDING_LIQUIDITY_EVENTS,ASSET_TX
MIDGARD_FAILED_DEPOSIT_MESSAGES,__HEVO__LOADED_AT
MIDGARD_BLOCK_LOG,HASH
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,BLOCK_TIMESTAMP
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,OUT_E8
MIDGARD_SLASH_POINTS_EVENTS,NODE_ADDRESS
MIDGARD_SLASH_LIQUIDITY_EVENTS,BLOCK_TIMESTAMP
MIDGARD_NEW_NODE_EVENTS,BLOCK_TIMESTAMP
MIDGARD_BLOCK_LOG,AGG_STATE
MIDGARD_BOND_EVENTS,FROM_ADDR
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_STAKE_EVENTS,ASSET_CHAIN
MIDGARD_FEE_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_FAILED_DEPOSIT_MESSAGES,__HEVO__INGESTED_AT
MIDGARD_SET_NODE_MIMIR_EVENTS,EVENT_ID
MIDGARD_SET_MIMIR_EVENTS,KEY
MIDGARD_POOL_EVENTS,STATUS
MIDGARD_SET_MIMIR_EVENTS,BLOCK_TIMESTAMP
MIDGARD_RESERVE_EVENTS,__HEVO__LOADED_AT
MIDGARD_MAYANAME_CHANGE_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_TRANSFER_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_FEE_EVENTS,ASSET
MIDGARD_NEW_NODE_EVENTS,NODE_ADDR
MIDGARD_POOL_EVENTS,EVENT_ID
MIDGARD_SLASH_POINTS_EVENTS,__HEVO__LOADED_AT
MIDGARD_SET_MIMIR_EVENTS,EVENT_ID
MIDGARD_CONSTANTS,__HEVO__DATABASE_NAME
MIDGARD_PENDING_LIQUIDITY_EVENTS,PENDING_TYPE
MIDGARD_STAKE_EVENTS,MEMO
MIDGARD_SET_NODE_KEYS_EVENTS,SECP256K1
MIDGARD_SLASH_EVENTS,POOL
MIDGARD_ADD_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_ADD_EVENTS,MEMO
MIDGARD_SEND_MESSAGES,__HEVO__DATABASE_NAME
MIDGARD_ACTIVE_VAULT_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SLASH_EVENTS,EVENT_ID
MIDGARD_ACTIVE_VAULT_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_FAILED_DEPOSIT_MESSAGES,EVENT_ID
MIDGARD_SWAP_EVENTS,SWAP_SLIP_BP
MIDGARD_SWAP_EVENTS,FROM_E8
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,__HEVO__LOADED_AT
MIDGARD_SET_NODE_KEYS_EVENTS,__HEVO__LOADED_AT
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,ASSET_ADD
MIDGARD_PENDING_LIQUIDITY_EVENTS,ASSET_CHAIN
MIDGARD_WITHDRAW_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_SLASH_POINTS_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_WITHDRAW_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SLASH_LIQUIDITY_EVENTS,CACAO_E10_LOSS
MIDGARD_REWARDS_EVENTS,BLOCK_TIMESTAMP
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,FORMER
MIDGARD_FEE_EVENTS,TX
MIDGARD_WITHDRAW_EVENTS,BLOCK_TIMESTAMP
MIDGARD_WITHDRAW_EVENTS,STAKE_UNITS
MIDGARD_BLOCK_LOG,TIMESTAMP
MIDGARD_OUTBOUND_EVENTS,FROM_ADDR
MIDGARD_STAKE_EVENTS,_ASSET_IN_CACAO_E8
MIDGARD_WITHDRAW_EVENTS,TX
MIDGARD_STAKE_EVENTS,CACAO_TX
MIDGARD_WITHDRAW_EVENTS,__HEVO__INGESTED_AT
MIDGARD_TRANSFER_EVENTS,FROM_ADDR
MIDGARD_SEND_MESSAGES,__HEVO__LOADED_AT
MIDGARD_SLASH_POINTS_EVENTS,__HEVO__INGESTED_AT
MIDGARD_WITHDRAW_EVENTS,ASSET
MIDGARD_SET_MIMIR_EVENTS,VALUE
MIDGARD_MAYANAME_CHANGE_EVENTS,__HEVO__LOADED_AT
MIDGARD_SLASH_LIQUIDITY_EVENTS,__HEVO__LOADED_AT
MIDGARD_REWARDS_EVENTS,__HEVO__LOADED_AT
MIDGARD_FEE_EVENTS,__HEVO__INGESTED_AT
MIDGARD_MAYANAME_CHANGE_EVENTS,__HEVO__INGESTED_AT
MIDGARD_PENDING_LIQUIDITY_EVENTS,CACAO_E8
MIDGARD_SET_NODE_KEYS_EVENTS,ED25519
MIDGARD_BOND_EVENTS,ASSET_E8
MIDGARD_SET_NODE_MIMIR_EVENTS,BLOCK_TIMESTAMP
MIDGARD_SWAP_EVENTS,CHAIN
MIDGARD_TRANSFER_EVENTS,__HEVO__INGESTED_AT
MIDGARD_GAS_EVENTS,ASSET
MIDGARD_SET_NODE_MIMIR_EVENTS,__HEVO__INGESTED_AT
MIDGARD_REWARDS_EVENTS,BOND_E8
MIDGARD_SEND_MESSAGES,AMOUNT_E8
MIDGARD_REFUND_EVENTS,FROM_ADDR
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,DEPOSIT_ASSET
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,__HEVO__LOADED_AT
MIDGARD_FAILED_DEPOSIT_MESSAGES,MEMO
MIDGARD_SEND_MESSAGES,BLOCK_TIMESTAMP
MIDGARD_RESERVE_EVENTS,BLOCK_TIMESTAMP
MIDGARD_OUTBOUND_EVENTS,BLOCK_TIMESTAMP
MIDGARD_RESERVE_EVENTS,TO_ADDR
MIDGARD_BOND_EVENTS,TO_ADDR
MIDGARD_REFUND_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_RESERVE_EVENTS,ADDR
MIDGARD_SET_VERSION_EVENTS,__HEVO__LOADED_AT
MIDGARD_PENDING_LIQUIDITY_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS,__HEVO__INGESTED_AT
MIDGARD_WITHDRAW_EVENTS,ASSET_E8
MIDGARD_SEND_MESSAGES,ASSET
MIDGARD_SET_NODE_MIMIR_EVENTS,VALUE
MIDGARD_REFUND_EVENTS,REASON
MIDGARD_BOND_EVENTS,EVENT_ID
MIDGARD_SLASH_EVENTS,__HEVO__LOADED_AT
MIDGARD_STAKE_EVENTS,ASSET_ADDR
MIDGARD_POOL_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_FAILED_DEPOSIT_MESSAGES,FROM_ADDR
MIDGARD_BOND_EVENTS,ASSET
MIDGARD_WITHDRAW_EVENTS,__HEVO__LOADED_AT
MIDGARD_CONSTANTS,__HEVO__LOADED_AT
MIDGARD_PENDING_LIQUIDITY_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_SWAP_EVENTS,MEMO
MIDGARD_PENDING_LIQUIDITY_EVENTS,CACAO_ADDR
MIDGARD_SEND_MESSAGES,TO_ADDR
MIDGARD_SET_VERSION_EVENTS,EVENT_ID
MIDGARD_REFUND_EVENTS,BLOCK_TIMESTAMP
MIDGARD_FAILED_DEPOSIT_MESSAGES,BLOCK_TIMESTAMP
MIDGARD_OUTBOUND_EVENTS,CHAIN
MIDGARD_INACTIVE_VAULT_EVENTS,EVENT_ID
MIDGARD_OUTBOUND_EVENTS,__HEVO__SCHEMA_NAME
MIDGARD_POOL_BALANCE_CHANGE_EVENTS,CACAO_AMT
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,__HEVO__INGESTED_AT
MIDGARD_SWAP_EVENTS,__HEVO__LOADED_AT
MIDGARD_RESERVE_EVENTS,MEMO
MIDGARD_STAKE_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_STAKE_EVENTS,__HEVO__INGESTED_AT
MIDGARD_WITHDRAW_EVENTS,CHAIN
MIDGARD_RESERVE_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_BLOCK_POOL_DEPTHS,__HEVO__SCHEMA_NAME
MIDGARD_TRANSFER_EVENTS,__HEVO__DATABASE_NAME
MIDGARD_MAYANAME_CHANGE_EVENTS,TX_ID
MIDGARD_PENDING_LIQUIDITY_EVENTS,BLOCK_TIMESTAMP
MIDGARD_SEND_MESSAGES,CODE
MIDGARD_SET_VERSION_EVENTS,NODE_ADDR
MIDGARD_SLASH_LIQUIDITY_EVENTS,ASSET
MIDGARD_BLOCK_POOL_DEPTHS,__HEVO__DATABASE_NAME
MIDGARD_SEND_MESSAGES,EVENT_ID
MIDGARD_FEE_EVENTS,EVENT_ID
MIDGARD_TRANSFER_EVENTS,TO_ADDR
MIDGARD_REFUND_EVENTS,MEMO
MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS,TX
MIDGARD_REFUND_EVENTS,EVENT_ID
MIDGARD_TRANSFER_EVENTS,ASSET
MIDGARD_RESERVE_EVENTS,TX
MIDGARD_WITHDRAW_EVENTS,EMIT_ASSET_E8
MIDGARD_BOND_EVENTS,BLOCK_TIMESTAMP
MIDGARD_SLASH_LIQUIDITY_EVENTS,LP_UNITS
MIDGARD_SLASH_POINTS_EVENTS,EVENT_ID
MIDGARD_REFUND_EVENTS,CODE
MIDGARD_STREAMING_SWAP_DETAILS_EVENTS,EVENT_ID
1 TABLE_NAME COLUMN_NAME
2 MIDGARD_BLOCK_LOG __HEVO__DATABASE_NAME
3 MIDGARD_STAKE_EVENTS CACAO_ADDR
4 MIDGARD_FEE_EVENTS __HEVO__SCHEMA_NAME
5 MIDGARD_BLOCK_POOL_DEPTHS BLOCK_TIMESTAMP
6 MIDGARD_REFUND_EVENTS __HEVO__DATABASE_NAME
7 MIDGARD_SLASH_EVENTS __HEVO__SCHEMA_NAME
8 MIDGARD_CACAO_PRICE CACAO_PRICE_E8
9 MIDGARD_ACTIVE_VAULT_EVENTS EVENT_ID
10 MIDGARD_SLASH_EVENTS ASSET_E8
11 MIDGARD_REFUND_EVENTS ASSET
12 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS __HEVO__SCHEMA_NAME
13 MIDGARD_SLASH_POINTS_EVENTS BLOCK_TIMESTAMP
14 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS FROM_ADDR
15 MIDGARD_OUTBOUND_EVENTS __HEVO__LOADED_AT
16 MIDGARD_REWARDS_EVENT_ENTRIES SAVER_E8
17 MIDGARD_BOND_EVENTS __HEVO__SCHEMA_NAME
18 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS LAST_HEIGHT
19 MIDGARD_OUTBOUND_EVENTS __HEVO__INGESTED_AT
20 MIDGARD_SET_MIMIR_EVENTS __HEVO__INGESTED_AT
21 MIDGARD_FAILED_DEPOSIT_MESSAGES __HEVO__SCHEMA_NAME
22 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS FAILED_SWAP_REASONS
23 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS EVENT_ID
24 MIDGARD_PENDING_LIQUIDITY_EVENTS ASSET_E8
25 MIDGARD_CONSTANTS __HEVO__INGESTED_AT
26 MIDGARD_SET_NODE_KEYS_EVENTS EVENT_ID
27 MIDGARD_SET_IP_ADDRESS_EVENTS __HEVO__SCHEMA_NAME
28 MIDGARD_SLASH_POINTS_EVENTS __HEVO__DATABASE_NAME
29 MIDGARD_OUTBOUND_EVENTS IN_TX
30 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS EVENT_ID
31 MIDGARD_SWAP_EVENTS EVENT_ID
32 MIDGARD_SET_NODE_MIMIR_EVENTS __HEVO__DATABASE_NAME
33 MIDGARD_SET_NODE_KEYS_EVENTS NODE_ADDR
34 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS __HEVO__DATABASE_NAME
35 MIDGARD_WITHDRAW_EVENTS FROM_ADDR
36 MIDGARD_SET_IP_ADDRESS_EVENTS BLOCK_TIMESTAMP
37 MIDGARD_SET_VERSION_EVENTS VERSION
38 MIDGARD_REFUND_EVENTS TO_ADDR
39 MIDGARD_STAKE_EVENTS __HEVO__LOADED_AT
40 MIDGARD_POOL_BALANCE_CHANGE_EVENTS EVENT_ID
41 MIDGARD_BLOCK_POOL_DEPTHS POOL
42 MIDGARD_WITHDRAW_EVENTS _EMIT_ASSET_IN_CACAO_E8
43 MIDGARD_TRANSFER_EVENTS BLOCK_TIMESTAMP
44 MIDGARD_CACAO_PRICE __HEVO__SCHEMA_NAME
45 MIDGARD_CACAO_PRICE __HEVO__INGESTED_AT
46 MIDGARD_SET_MIMIR_EVENTS __HEVO__LOADED_AT
47 MIDGARD_RESERVE_EVENTS __HEVO__INGESTED_AT
48 MIDGARD_CONSTANTS __HEVO__SCHEMA_NAME
49 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS TX_ID
50 MIDGARD_INACTIVE_VAULT_EVENTS ADD_ASGARD_ADDR
51 MIDGARD_CACAO_PRICE BLOCK_TIMESTAMP
52 MIDGARD_NEW_NODE_EVENTS __HEVO__DATABASE_NAME
53 MIDGARD_BLOCK_LOG __HEVO__INGESTED_AT
54 MIDGARD_BOND_EVENTS __HEVO__DATABASE_NAME
55 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS COUNT
56 MIDGARD_BOND_EVENTS E8
57 MIDGARD_RESERVE_EVENTS __HEVO__SCHEMA_NAME
58 MIDGARD_SET_NODE_KEYS_EVENTS BLOCK_TIMESTAMP
59 MIDGARD_GAS_EVENTS __HEVO__SCHEMA_NAME
60 MIDGARD_SWAP_EVENTS __HEVO__SCHEMA_NAME
61 MIDGARD_MAYANAME_CHANGE_EVENTS CHAIN
62 MIDGARD_ADD_EVENTS CACAO_E8
63 MIDGARD_ACTIVE_VAULT_EVENTS BLOCK_TIMESTAMP
64 MIDGARD_POOL_BALANCE_CHANGE_EVENTS __HEVO__DATABASE_NAME
65 MIDGARD_SWAP_EVENTS TO_E8
66 MIDGARD_MAYANAME_CHANGE_EVENTS AFFILIATE_BPS
67 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS BLOCK_TIMESTAMP
68 MIDGARD_CONSTANTS VALUE
69 MIDGARD_MAYANAME_CHANGE_EVENTS NAME
70 MIDGARD_BLOCK_LOG __HEVO__LOADED_AT
71 MIDGARD_BLOCK_POOL_DEPTHS __HEVO__LOADED_AT
72 MIDGARD_REWARDS_EVENT_ENTRIES __HEVO__DATABASE_NAME
73 MIDGARD_ADD_EVENTS ASSET_E8
74 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS QUANTITY
75 MIDGARD_MAYANAME_CHANGE_EVENTS BLOCK_TIMESTAMP
76 MIDGARD_STAKE_EVENTS POOL
77 MIDGARD_MAYANAME_CHANGE_EVENTS OWNER
78 MIDGARD_REWARDS_EVENT_ENTRIES __HEVO__SCHEMA_NAME
79 MIDGARD_SLASH_EVENTS BLOCK_TIMESTAMP
80 MIDGARD_POOL_BALANCE_CHANGE_EVENTS __HEVO__INGESTED_AT
81 MIDGARD_WITHDRAW_EVENTS POOL
82 MIDGARD_STAKE_EVENTS ASSET_TX
83 MIDGARD_SWAP_EVENTS LIQ_FEE_IN_CACAO_E8
84 MIDGARD_BOND_EVENTS MEMO
85 MIDGARD_SEND_MESSAGES RAW_LOG
86 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS IN_ASSET
87 MIDGARD_STAKE_EVENTS __HEVO__SCHEMA_NAME
88 MIDGARD_BOND_EVENTS __HEVO__INGESTED_AT
89 MIDGARD_SET_NODE_KEYS_EVENTS __HEVO__INGESTED_AT
90 MIDGARD_SLASH_LIQUIDITY_EVENTS __HEVO__INGESTED_AT
91 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS __HEVO__INGESTED_AT
92 MIDGARD_SET_VERSION_EVENTS __HEVO__SCHEMA_NAME
93 MIDGARD_POOL_BALANCE_CHANGE_EVENTS REASON
94 MIDGARD_REWARDS_EVENTS EVENT_ID
95 MIDGARD_FEE_EVENTS BLOCK_TIMESTAMP
96 MIDGARD_REFUND_EVENTS ASSET_E8
97 MIDGARD_POOL_EVENTS __HEVO__LOADED_AT
98 MIDGARD_REFUND_EVENTS __HEVO__INGESTED_AT
99 MIDGARD_BLOCK_POOL_DEPTHS ASSET_E8
100 MIDGARD_SWAP_EVENTS TO_E8_MIN
101 MIDGARD_SEND_MESSAGES FROM_ADDR
102 MIDGARD_STAKE_EVENTS STAKE_UNITS
103 MIDGARD_ADD_EVENTS __HEVO__LOADED_AT
104 MIDGARD_OUTBOUND_EVENTS MEMO
105 MIDGARD_SET_IP_ADDRESS_EVENTS __HEVO__LOADED_AT
106 MIDGARD_SET_MIMIR_EVENTS __HEVO__SCHEMA_NAME
107 MIDGARD_SET_NODE_MIMIR_EVENTS __HEVO__SCHEMA_NAME
108 MIDGARD_NEW_NODE_EVENTS __HEVO__LOADED_AT
109 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS BLOCK_TIMESTAMP
110 MIDGARD_POOL_BALANCE_CHANGE_EVENTS ASSET_AMT
111 MIDGARD_GAS_EVENTS TX_COUNT
112 MIDGARD_PENDING_LIQUIDITY_EVENTS __HEVO__INGESTED_AT
113 MIDGARD_SWAP_EVENTS __HEVO__DATABASE_NAME
114 MIDGARD_SET_IP_ADDRESS_EVENTS NODE_ADDR
115 MIDGARD_OUTBOUND_EVENTS TO_ADDR
116 MIDGARD_SLASH_POINTS_EVENTS SLASH_POINTS
117 MIDGARD_ADD_EVENTS EVENT_ID
118 MIDGARD_SEND_MESSAGES TX_ID
119 MIDGARD_SEND_MESSAGES MEMO
120 MIDGARD_FEE_EVENTS __HEVO__LOADED_AT
121 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS OUT_ASSET
122 MIDGARD_SWAP_EVENTS TO_ASSET
123 MIDGARD_NEW_NODE_EVENTS __HEVO__INGESTED_AT
124 MIDGARD_RESERVE_EVENTS EVENT_ID
125 MIDGARD_WITHDRAW_EVENTS ASYMMETRY
126 MIDGARD_REFUND_EVENTS ASSET_2ND
127 MIDGARD_OUTBOUND_EVENTS INTERNAL
128 MIDGARD_INACTIVE_VAULT_EVENTS BLOCK_TIMESTAMP
129 MIDGARD_FAILED_DEPOSIT_MESSAGES ASSET
130 MIDGARD_SET_IP_ADDRESS_EVENTS __HEVO__DATABASE_NAME
131 MIDGARD_REFUND_EVENTS ASSET_2ND_E8
132 MIDGARD_SLASH_LIQUIDITY_EVENTS __HEVO__DATABASE_NAME
133 MIDGARD_REWARDS_EVENT_ENTRIES __HEVO__LOADED_AT
134 MIDGARD_BLOCK_LOG HEIGHT
135 MIDGARD_REWARDS_EVENT_ENTRIES __HEVO__INGESTED_AT
136 MIDGARD_CACAO_PRICE __HEVO__DATABASE_NAME
137 MIDGARD_BLOCK_POOL_DEPTHS __HEVO__INGESTED_AT
138 MIDGARD_NEW_NODE_EVENTS EVENT_ID
139 MIDGARD_REFUND_EVENTS CHAIN
140 MIDGARD_SWAP_EVENTS POOL
141 MIDGARD_OUTBOUND_EVENTS EVENT_ID
142 MIDGARD_PENDING_LIQUIDITY_EVENTS POOL
143 MIDGARD_STAKE_EVENTS ASSET_E8
144 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS NODE_ADDR
145 MIDGARD_MAYANAME_CHANGE_EVENTS REGISTRATION_FEE_E8
146 MIDGARD_SWAP_EVENTS _STREAMING
147 MIDGARD_SLASH_LIQUIDITY_EVENTS LP_ADDRESS
148 MIDGARD_WITHDRAW_EVENTS IMP_LOSS_PROTECTION_E8
149 MIDGARD_SWAP_EVENTS FROM_ADDR
150 MIDGARD_SET_MIMIR_EVENTS __HEVO__DATABASE_NAME
151 MIDGARD_SEND_MESSAGES __HEVO__INGESTED_AT
152 MIDGARD_POOL_EVENTS BLOCK_TIMESTAMP
153 MIDGARD_ACTIVE_VAULT_EVENTS ADD_ASGARD_ADDR
154 MIDGARD_CACAO_PRICE __HEVO__LOADED_AT
155 MIDGARD_GAS_EVENTS EVENT_ID
156 MIDGARD_MAYANAME_CHANGE_EVENTS SENDER
157 MIDGARD_SLASH_LIQUIDITY_EVENTS EVENT_ID
158 MIDGARD_POOL_EVENTS __HEVO__DATABASE_NAME
159 MIDGARD_SLASH_EVENTS ASSET
160 MIDGARD_REWARDS_EVENTS __HEVO__DATABASE_NAME
161 MIDGARD_PENDING_LIQUIDITY_EVENTS ASSET_ADDR
162 MIDGARD_BOND_EVENTS TX
163 MIDGARD_WITHDRAW_EVENTS EMIT_CACAO_E8
164 MIDGARD_ADD_EVENTS FROM_ADDR
165 MIDGARD_MAYANAME_CHANGE_EVENTS MEMO
166 MIDGARD_SEND_MESSAGES __HEVO__SCHEMA_NAME
167 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS __HEVO__DATABASE_NAME
168 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS BLOCK_TIMESTAMP
169 MIDGARD_REFUND_EVENTS TX
170 MIDGARD_STAKE_EVENTS CACAO_E8
171 MIDGARD_REFUND_EVENTS __HEVO__LOADED_AT
172 MIDGARD_INACTIVE_VAULT_EVENTS __HEVO__LOADED_AT
173 MIDGARD_ADD_EVENTS TO_ADDR
174 MIDGARD_FAILED_DEPOSIT_MESSAGES CODE
175 MIDGARD_CONSTANTS KEY
176 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS __HEVO__LOADED_AT
177 MIDGARD_WITHDRAW_EVENTS BASIS_POINTS
178 MIDGARD_OUTBOUND_EVENTS TX
179 MIDGARD_MAYANAME_CHANGE_EVENTS EXPIRE
180 MIDGARD_RESERVE_EVENTS E8
181 MIDGARD_INACTIVE_VAULT_EVENTS __HEVO__SCHEMA_NAME
182 MIDGARD_OUTBOUND_EVENTS __HEVO__DATABASE_NAME
183 MIDGARD_POOL_EVENTS __HEVO__INGESTED_AT
184 MIDGARD_SLASH_LIQUIDITY_EVENTS __HEVO__SCHEMA_NAME
185 MIDGARD_GAS_EVENTS ASSET_E8
186 MIDGARD_PENDING_LIQUIDITY_EVENTS CACAO_TX
187 MIDGARD_ADD_EVENTS BLOCK_TIMESTAMP
188 MIDGARD_WITHDRAW_EVENTS MEMO
189 MIDGARD_RESERVE_EVENTS ASSET
190 MIDGARD_BLOCK_LOG __HEVO__SCHEMA_NAME
191 MIDGARD_FAILED_DEPOSIT_MESSAGES TX_ID
192 MIDGARD_SWAP_EVENTS LIQ_FEE_E8
193 MIDGARD_MAYANAME_CHANGE_EVENTS PREFERRED_ASSET
194 MIDGARD_ADD_EVENTS __HEVO__INGESTED_AT
195 MIDGARD_SET_IP_ADDRESS_EVENTS __HEVO__INGESTED_AT
196 MIDGARD_INACTIVE_VAULT_EVENTS __HEVO__DATABASE_NAME
197 MIDGARD_ADD_EVENTS CHAIN
198 MIDGARD_SWAP_EVENTS STREAMING_COUNT
199 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS __HEVO__DATABASE_NAME
200 MIDGARD_POOL_EVENTS ASSET
201 MIDGARD_SET_VERSION_EVENTS BLOCK_TIMESTAMP
202 MIDGARD_RESERVE_EVENTS CHAIN
203 MIDGARD_POOL_BALANCE_CHANGE_EVENTS CACAO_ADD
204 MIDGARD_REWARDS_EVENTS __HEVO__INGESTED_AT
205 MIDGARD_PENDING_LIQUIDITY_EVENTS __HEVO__LOADED_AT
206 MIDGARD_TRANSFER_EVENTS AMOUNT_E8
207 MIDGARD_SWAP_EVENTS __HEVO__INGESTED_AT
208 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS __HEVO__SCHEMA_NAME
209 MIDGARD_MAYANAME_CHANGE_EVENTS FUND_AMOUNT_E8
210 MIDGARD_FAILED_DEPOSIT_MESSAGES __HEVO__DATABASE_NAME
211 MIDGARD_REWARDS_EVENTS __HEVO__SCHEMA_NAME
212 MIDGARD_SET_NODE_MIMIR_EVENTS KEY
213 MIDGARD_BOND_EVENTS CHAIN
214 MIDGARD_SLASH_LIQUIDITY_EVENTS BOND_ADDRESS
215 MIDGARD_ACTIVE_VAULT_EVENTS __HEVO__SCHEMA_NAME
216 MIDGARD_FEE_EVENTS ASSET_E8
217 MIDGARD_TRANSFER_EVENTS __HEVO__LOADED_AT
218 MIDGARD_REWARDS_EVENT_ENTRIES CACAO_E8
219 MIDGARD_BLOCK_POOL_DEPTHS CACAO_E8
220 MIDGARD_INACTIVE_VAULT_EVENTS __HEVO__INGESTED_AT
221 MIDGARD_GAS_EVENTS BLOCK_TIMESTAMP
222 MIDGARD_OUTBOUND_EVENTS ASSET_E8
223 MIDGARD_REWARDS_EVENT_ENTRIES POOL
224 MIDGARD_SET_NODE_KEYS_EVENTS VALIDATOR_CONSENSUS
225 MIDGARD_SWAP_EVENTS FROM_ASSET
226 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS NODE_ADDR
227 MIDGARD_BLOCK_POOL_DEPTHS SYNTH_E8
228 MIDGARD_WITHDRAW_EVENTS TO_ADDR
229 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS DEPOSIT_E8
230 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS FAILED_SWAPS
231 MIDGARD_MAYANAME_CHANGE_EVENTS ADDRESS
232 MIDGARD_FAILED_DEPOSIT_MESSAGES REASON
233 MIDGARD_BOND_EVENTS BOND_TYPE
234 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS INTERVAL
235 MIDGARD_MAYANAME_CHANGE_EVENTS __HEVO__DATABASE_NAME
236 MIDGARD_GAS_EVENTS __HEVO__LOADED_AT
237 MIDGARD_SLASH_EVENTS __HEVO__DATABASE_NAME
238 MIDGARD_SWAP_EVENTS TO_ADDR
239 MIDGARD_BOND_EVENTS __HEVO__LOADED_AT
240 MIDGARD_MAYANAME_CHANGE_EVENTS EVENT_ID
241 MIDGARD_ADD_EVENTS __HEVO__SCHEMA_NAME
242 MIDGARD_SET_NODE_KEYS_EVENTS __HEVO__DATABASE_NAME
243 MIDGARD_MAYANAME_CHANGE_EVENTS HEIGHT
244 MIDGARD_SWAP_EVENTS BLOCK_TIMESTAMP
245 MIDGARD_ACTIVE_VAULT_EVENTS __HEVO__LOADED_AT
246 MIDGARD_STAKE_EVENTS EVENT_ID
247 MIDGARD_RESERVE_EVENTS FROM_ADDR
248 MIDGARD_TRANSFER_EVENTS EVENT_ID
249 MIDGARD_REWARDS_EVENT_ENTRIES EVENT_ID
250 MIDGARD_MAYANAME_CHANGE_EVENTS SUB_AFFILIATES
251 MIDGARD_ADD_EVENTS POOL
252 MIDGARD_SET_IP_ADDRESS_EVENTS IP_ADDR
253 MIDGARD_SET_NODE_KEYS_EVENTS __HEVO__SCHEMA_NAME
254 MIDGARD_POOL_BALANCE_CHANGE_EVENTS __HEVO__SCHEMA_NAME
255 MIDGARD_FAILED_DEPOSIT_MESSAGES AMOUNT_E8
256 MIDGARD_ADD_EVENTS ASSET
257 MIDGARD_SWAP_EVENTS _DIRECTION
258 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS IN_E8
259 MIDGARD_SET_NODE_MIMIR_EVENTS __HEVO__LOADED_AT
260 MIDGARD_POOL_BALANCE_CHANGE_EVENTS ASSET
261 MIDGARD_WITHDRAW_EVENTS EVENT_ID
262 MIDGARD_SWAP_EVENTS TX
263 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS __HEVO__LOADED_AT
264 MIDGARD_STAKE_EVENTS BLOCK_TIMESTAMP
265 MIDGARD_FEE_EVENTS POOL_DEDUCT
266 MIDGARD_GAS_EVENTS __HEVO__DATABASE_NAME
267 MIDGARD_GAS_EVENTS __HEVO__INGESTED_AT
268 MIDGARD_PENDING_LIQUIDITY_EVENTS EVENT_ID
269 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS CURRENT
270 MIDGARD_SET_NODE_MIMIR_EVENTS ADDRESS
271 MIDGARD_SET_VERSION_EVENTS __HEVO__INGESTED_AT
272 MIDGARD_SLASH_LIQUIDITY_EVENTS ASSET_E8_LOSS
273 MIDGARD_OUTBOUND_EVENTS ASSET
274 MIDGARD_SLASH_EVENTS __HEVO__INGESTED_AT
275 MIDGARD_ADD_EVENTS TX
276 MIDGARD_REWARDS_EVENT_ENTRIES BLOCK_TIMESTAMP
277 MIDGARD_SET_VERSION_EVENTS __HEVO__DATABASE_NAME
278 MIDGARD_RESERVE_EVENTS ASSET_E8
279 MIDGARD_NEW_NODE_EVENTS __HEVO__SCHEMA_NAME
280 MIDGARD_GAS_EVENTS CACAO_E8
281 MIDGARD_SET_IP_ADDRESS_EVENTS EVENT_ID
282 MIDGARD_SLASH_POINTS_EVENTS REASON
283 MIDGARD_SWAP_EVENTS STREAMING_QUANTITY
284 MIDGARD_PENDING_LIQUIDITY_EVENTS ASSET_TX
285 MIDGARD_FAILED_DEPOSIT_MESSAGES __HEVO__LOADED_AT
286 MIDGARD_BLOCK_LOG HASH
287 MIDGARD_POOL_BALANCE_CHANGE_EVENTS BLOCK_TIMESTAMP
288 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS OUT_E8
289 MIDGARD_SLASH_POINTS_EVENTS NODE_ADDRESS
290 MIDGARD_SLASH_LIQUIDITY_EVENTS BLOCK_TIMESTAMP
291 MIDGARD_NEW_NODE_EVENTS BLOCK_TIMESTAMP
292 MIDGARD_BLOCK_LOG AGG_STATE
293 MIDGARD_BOND_EVENTS FROM_ADDR
294 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS __HEVO__SCHEMA_NAME
295 MIDGARD_STAKE_EVENTS ASSET_CHAIN
296 MIDGARD_FEE_EVENTS __HEVO__DATABASE_NAME
297 MIDGARD_FAILED_DEPOSIT_MESSAGES __HEVO__INGESTED_AT
298 MIDGARD_SET_NODE_MIMIR_EVENTS EVENT_ID
299 MIDGARD_SET_MIMIR_EVENTS KEY
300 MIDGARD_POOL_EVENTS STATUS
301 MIDGARD_SET_MIMIR_EVENTS BLOCK_TIMESTAMP
302 MIDGARD_RESERVE_EVENTS __HEVO__LOADED_AT
303 MIDGARD_MAYANAME_CHANGE_EVENTS __HEVO__SCHEMA_NAME
304 MIDGARD_TRANSFER_EVENTS __HEVO__SCHEMA_NAME
305 MIDGARD_FEE_EVENTS ASSET
306 MIDGARD_NEW_NODE_EVENTS NODE_ADDR
307 MIDGARD_POOL_EVENTS EVENT_ID
308 MIDGARD_SLASH_POINTS_EVENTS __HEVO__LOADED_AT
309 MIDGARD_SET_MIMIR_EVENTS EVENT_ID
310 MIDGARD_CONSTANTS __HEVO__DATABASE_NAME
311 MIDGARD_PENDING_LIQUIDITY_EVENTS PENDING_TYPE
312 MIDGARD_STAKE_EVENTS MEMO
313 MIDGARD_SET_NODE_KEYS_EVENTS SECP256K1
314 MIDGARD_SLASH_EVENTS POOL
315 MIDGARD_ADD_EVENTS __HEVO__DATABASE_NAME
316 MIDGARD_ADD_EVENTS MEMO
317 MIDGARD_SEND_MESSAGES __HEVO__DATABASE_NAME
318 MIDGARD_ACTIVE_VAULT_EVENTS __HEVO__INGESTED_AT
319 MIDGARD_SLASH_EVENTS EVENT_ID
320 MIDGARD_ACTIVE_VAULT_EVENTS __HEVO__DATABASE_NAME
321 MIDGARD_FAILED_DEPOSIT_MESSAGES EVENT_ID
322 MIDGARD_SWAP_EVENTS SWAP_SLIP_BP
323 MIDGARD_SWAP_EVENTS FROM_E8
324 MIDGARD_POOL_BALANCE_CHANGE_EVENTS __HEVO__LOADED_AT
325 MIDGARD_SET_NODE_KEYS_EVENTS __HEVO__LOADED_AT
326 MIDGARD_POOL_BALANCE_CHANGE_EVENTS ASSET_ADD
327 MIDGARD_PENDING_LIQUIDITY_EVENTS ASSET_CHAIN
328 MIDGARD_WITHDRAW_EVENTS __HEVO__SCHEMA_NAME
329 MIDGARD_SLASH_POINTS_EVENTS __HEVO__SCHEMA_NAME
330 MIDGARD_WITHDRAW_EVENTS __HEVO__DATABASE_NAME
331 MIDGARD_SLASH_LIQUIDITY_EVENTS CACAO_E10_LOSS
332 MIDGARD_REWARDS_EVENTS BLOCK_TIMESTAMP
333 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS FORMER
334 MIDGARD_FEE_EVENTS TX
335 MIDGARD_WITHDRAW_EVENTS BLOCK_TIMESTAMP
336 MIDGARD_WITHDRAW_EVENTS STAKE_UNITS
337 MIDGARD_BLOCK_LOG TIMESTAMP
338 MIDGARD_OUTBOUND_EVENTS FROM_ADDR
339 MIDGARD_STAKE_EVENTS _ASSET_IN_CACAO_E8
340 MIDGARD_WITHDRAW_EVENTS TX
341 MIDGARD_STAKE_EVENTS CACAO_TX
342 MIDGARD_WITHDRAW_EVENTS __HEVO__INGESTED_AT
343 MIDGARD_TRANSFER_EVENTS FROM_ADDR
344 MIDGARD_SEND_MESSAGES __HEVO__LOADED_AT
345 MIDGARD_SLASH_POINTS_EVENTS __HEVO__INGESTED_AT
346 MIDGARD_WITHDRAW_EVENTS ASSET
347 MIDGARD_SET_MIMIR_EVENTS VALUE
348 MIDGARD_MAYANAME_CHANGE_EVENTS __HEVO__LOADED_AT
349 MIDGARD_SLASH_LIQUIDITY_EVENTS __HEVO__LOADED_AT
350 MIDGARD_REWARDS_EVENTS __HEVO__LOADED_AT
351 MIDGARD_FEE_EVENTS __HEVO__INGESTED_AT
352 MIDGARD_MAYANAME_CHANGE_EVENTS __HEVO__INGESTED_AT
353 MIDGARD_PENDING_LIQUIDITY_EVENTS CACAO_E8
354 MIDGARD_SET_NODE_KEYS_EVENTS ED25519
355 MIDGARD_BOND_EVENTS ASSET_E8
356 MIDGARD_SET_NODE_MIMIR_EVENTS BLOCK_TIMESTAMP
357 MIDGARD_SWAP_EVENTS CHAIN
358 MIDGARD_TRANSFER_EVENTS __HEVO__INGESTED_AT
359 MIDGARD_GAS_EVENTS ASSET
360 MIDGARD_SET_NODE_MIMIR_EVENTS __HEVO__INGESTED_AT
361 MIDGARD_REWARDS_EVENTS BOND_E8
362 MIDGARD_SEND_MESSAGES AMOUNT_E8
363 MIDGARD_REFUND_EVENTS FROM_ADDR
364 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS DEPOSIT_ASSET
365 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS __HEVO__LOADED_AT
366 MIDGARD_FAILED_DEPOSIT_MESSAGES MEMO
367 MIDGARD_SEND_MESSAGES BLOCK_TIMESTAMP
368 MIDGARD_RESERVE_EVENTS BLOCK_TIMESTAMP
369 MIDGARD_OUTBOUND_EVENTS BLOCK_TIMESTAMP
370 MIDGARD_RESERVE_EVENTS TO_ADDR
371 MIDGARD_BOND_EVENTS TO_ADDR
372 MIDGARD_REFUND_EVENTS __HEVO__SCHEMA_NAME
373 MIDGARD_RESERVE_EVENTS ADDR
374 MIDGARD_SET_VERSION_EVENTS __HEVO__LOADED_AT
375 MIDGARD_PENDING_LIQUIDITY_EVENTS __HEVO__SCHEMA_NAME
376 MIDGARD_UPDATE_NODE_ACCOUNT_STATUS_EVENTS __HEVO__INGESTED_AT
377 MIDGARD_WITHDRAW_EVENTS ASSET_E8
378 MIDGARD_SEND_MESSAGES ASSET
379 MIDGARD_SET_NODE_MIMIR_EVENTS VALUE
380 MIDGARD_REFUND_EVENTS REASON
381 MIDGARD_BOND_EVENTS EVENT_ID
382 MIDGARD_SLASH_EVENTS __HEVO__LOADED_AT
383 MIDGARD_STAKE_EVENTS ASSET_ADDR
384 MIDGARD_POOL_EVENTS __HEVO__SCHEMA_NAME
385 MIDGARD_FAILED_DEPOSIT_MESSAGES FROM_ADDR
386 MIDGARD_BOND_EVENTS ASSET
387 MIDGARD_WITHDRAW_EVENTS __HEVO__LOADED_AT
388 MIDGARD_CONSTANTS __HEVO__LOADED_AT
389 MIDGARD_PENDING_LIQUIDITY_EVENTS __HEVO__DATABASE_NAME
390 MIDGARD_SWAP_EVENTS MEMO
391 MIDGARD_PENDING_LIQUIDITY_EVENTS CACAO_ADDR
392 MIDGARD_SEND_MESSAGES TO_ADDR
393 MIDGARD_SET_VERSION_EVENTS EVENT_ID
394 MIDGARD_REFUND_EVENTS BLOCK_TIMESTAMP
395 MIDGARD_FAILED_DEPOSIT_MESSAGES BLOCK_TIMESTAMP
396 MIDGARD_OUTBOUND_EVENTS CHAIN
397 MIDGARD_INACTIVE_VAULT_EVENTS EVENT_ID
398 MIDGARD_OUTBOUND_EVENTS __HEVO__SCHEMA_NAME
399 MIDGARD_POOL_BALANCE_CHANGE_EVENTS CACAO_AMT
400 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS __HEVO__INGESTED_AT
401 MIDGARD_SWAP_EVENTS __HEVO__LOADED_AT
402 MIDGARD_RESERVE_EVENTS MEMO
403 MIDGARD_STAKE_EVENTS __HEVO__DATABASE_NAME
404 MIDGARD_STAKE_EVENTS __HEVO__INGESTED_AT
405 MIDGARD_WITHDRAW_EVENTS CHAIN
406 MIDGARD_RESERVE_EVENTS __HEVO__DATABASE_NAME
407 MIDGARD_BLOCK_POOL_DEPTHS __HEVO__SCHEMA_NAME
408 MIDGARD_TRANSFER_EVENTS __HEVO__DATABASE_NAME
409 MIDGARD_MAYANAME_CHANGE_EVENTS TX_ID
410 MIDGARD_PENDING_LIQUIDITY_EVENTS BLOCK_TIMESTAMP
411 MIDGARD_SEND_MESSAGES CODE
412 MIDGARD_SET_VERSION_EVENTS NODE_ADDR
413 MIDGARD_SLASH_LIQUIDITY_EVENTS ASSET
414 MIDGARD_BLOCK_POOL_DEPTHS __HEVO__DATABASE_NAME
415 MIDGARD_SEND_MESSAGES EVENT_ID
416 MIDGARD_FEE_EVENTS EVENT_ID
417 MIDGARD_TRANSFER_EVENTS TO_ADDR
418 MIDGARD_REFUND_EVENTS MEMO
419 MIDGARD_VALIDATOR_REQUEST_LEAVE_EVENTS TX
420 MIDGARD_REFUND_EVENTS EVENT_ID
421 MIDGARD_TRANSFER_EVENTS ASSET
422 MIDGARD_RESERVE_EVENTS TX
423 MIDGARD_WITHDRAW_EVENTS EMIT_ASSET_E8
424 MIDGARD_BOND_EVENTS BLOCK_TIMESTAMP
425 MIDGARD_SLASH_LIQUIDITY_EVENTS LP_UNITS
426 MIDGARD_SLASH_POINTS_EVENTS EVENT_ID
427 MIDGARD_REFUND_EVENTS CODE
428 MIDGARD_STREAMING_SWAP_DETAILS_EVENTS EVENT_ID

View File

@ -0,0 +1,17 @@
{{ config(
materialized = 'view'
) }}
SELECT
add_asgard_addr,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_active_vault_events'
) }}

View File

@ -0,0 +1,25 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
chain,
from_addr,
to_addr,
asset,
asset_e8,
memo,
cacao_e8,
pool,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_add_events'
) }}

View File

@ -0,0 +1,18 @@
{{ config(
materialized = 'view'
) }}
SELECT
HASH,
height,
TIMESTAMP,
agg_state,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT
FROM
{{ source(
'maya_midgard',
'midgard_block_log'
) }}

View File

@ -0,0 +1,19 @@
{{ config(
materialized = 'view'
) }}
SELECT
pool,
asset_e8,
cacao_e8,
synth_e8,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT
FROM
{{ source(
'maya_midgard',
'midgard_block_pool_depths'
) }}

View File

@ -0,0 +1,25 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
chain,
from_addr,
to_addr,
asset,
asset_e8,
memo,
bond_type,
e8,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT
FROM
{{ source(
'maya_midgard',
'midgard_bond_events'
) }}

View File

@ -0,0 +1,16 @@
{{ config(
materialized = 'view'
) }}
SELECT
cacao_price_e8,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_cacao_price'
) }}

View File

@ -0,0 +1,16 @@
{{ config(
materialized = 'view'
) }}
SELECT
key,
VALUE,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_constants'
) }}

View File

@ -0,0 +1,23 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx_id,
code,
memo,
asset,
amount_e8,
from_addr,
reason,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_failed_deposit_messages'
) }}

View File

@ -0,0 +1,20 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
asset,
asset_e8,
pool_deduct,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_fee_events'
) }}

View File

@ -0,0 +1,20 @@
{{ config(
materialized = 'view'
) }}
SELECT
asset,
asset_e8,
cacao_e8,
tx_count,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_gas_events'
) }}

View File

@ -0,0 +1,17 @@
{{ config(
materialized = 'view'
) }}
SELECT
add_asgard_addr,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_inactive_vault_events'
) }}

View File

@ -0,0 +1,30 @@
{{ config(
materialized = 'view'
) }}
SELECT
NAME,
chain,
address,
registration_fee_e8,
fund_amount_e8,
height,
expire,
owner,
tx_id,
memo,
sender,
preferred_asset,
affiliate_bps,
sub_affiliates,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_mayaname_change_events'
) }}

View File

@ -0,0 +1,17 @@
{{ config(
materialized = 'view'
) }}
SELECT
node_addr,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_new_node_events'
) }}

View File

@ -0,0 +1,25 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
chain,
from_addr,
to_addr,
asset,
asset_e8,
memo,
in_tx,
internal,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_outbound_events'
) }}

View File

@ -0,0 +1,25 @@
{{ config(
materialized = 'view'
) }}
SELECT
pool,
asset_tx,
asset_chain,
asset_addr,
asset_e8,
cacao_tx,
cacao_addr,
cacao_e8,
pending_type,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_pending_liquidity_events'
) }}

View File

@ -0,0 +1,22 @@
{{ config(
materialized = 'view'
) }}
SELECT
asset,
cacao_amt,
cacao_add,
asset_amt,
asset_add,
reason,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_pool_balance_change_events'
) }}

View File

@ -0,0 +1,18 @@
{{ config(
materialized = 'view'
) }}
SELECT
asset,
status,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_pool_events'
) }}

View File

@ -0,0 +1,27 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
chain,
from_addr,
to_addr,
asset,
asset_e8,
asset_2nd,
asset_2nd_e8,
memo,
code,
reason,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_refund_events'
) }}

View File

@ -0,0 +1,25 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
chain,
from_addr,
to_addr,
asset,
asset_e8,
memo,
addr,
e8,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_reserve_events'
) }}

View File

@ -0,0 +1,19 @@
{{ config(
materialized = 'view'
) }}
SELECT
pool,
cacao_e8,
saver_e8,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_rewards_event_entries'
) }}

View File

@ -0,0 +1,17 @@
{{ config(
materialized = 'view'
) }}
SELECT
bond_e8,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_rewards_events'
) }}

View File

@ -0,0 +1,24 @@
{{ config(
materialized = 'view'
) }}
SELECT
amount_e8,
asset,
from_addr,
to_addr,
memo,
tx_id,
raw_log,
code,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_send_messages'
) }}

View File

@ -0,0 +1,18 @@
{{ config(
materialized = 'view'
) }}
SELECT
node_addr,
ip_addr,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_set_ip_address_events'
) }}

View File

@ -0,0 +1,18 @@
{{ config(
materialized = 'view'
) }}
SELECT
key,
VALUE,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_set_mimir_events'
) }}

View File

@ -0,0 +1,20 @@
{{ config(
materialized = 'view'
) }}
SELECT
node_addr,
secp256k1,
ed25519,
validator_consensus,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_set_node_keys_events'
) }}

View File

@ -0,0 +1,19 @@
{{ config(
materialized = 'view'
) }}
SELECT
address,
key,
VALUE,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_set_node_mimir_events'
) }}

View File

@ -0,0 +1,18 @@
{{ config(
materialized = 'view'
) }}
SELECT
node_addr,
version,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_set_version_events'
) }}

View File

@ -0,0 +1,19 @@
{{ config(
materialized = 'view'
) }}
SELECT
pool,
asset,
asset_e8,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_slash_events'
) }}

View File

@ -0,0 +1,22 @@
{{ config(
materialized = 'view'
) }}
SELECT
bond_address,
lp_address,
asset,
lp_units,
asset_e8_loss,
cacao_e10_loss,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_slash_liquidity_events'
) }}

View File

@ -0,0 +1,19 @@
{{ config(
materialized = 'view'
) }}
SELECT
node_address,
slash_points,
reason,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_slash_points_events'
) }}

View File

@ -0,0 +1,27 @@
{{ config(
materialized = 'view'
) }}
SELECT
pool,
asset_tx,
asset_chain,
asset_addr,
asset_e8,
stake_units,
cacao_tx,
cacao_addr,
cacao_e8,
_ASSET_IN_CACAO_E8,
memo,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_stake_events'
) }}

View File

@ -0,0 +1,29 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx_id,
INTERVAL,
quantity,
COUNT,
last_height,
deposit_asset,
deposit_e8,
in_asset,
in_e8,
out_asset,
out_e8,
failed_swaps,
failed_swap_reasons,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_streaming_swap_details_events'
) }}

View File

@ -0,0 +1,34 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
chain,
from_addr,
to_addr,
from_asset,
from_e8,
to_asset,
to_e8,
memo,
pool,
to_e8_min,
swap_slip_bp,
liq_fee_e8,
liq_fee_in_cacao_e8,
_DIRECTION,
_STREAMING,
streaming_count,
streaming_quantity,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_swap_events'
) }}

View File

@ -0,0 +1,20 @@
{{ config(
materialized = 'view'
) }}
SELECT
from_addr,
to_addr,
asset,
amount_e8,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_transfer_events'
) }}

View File

@ -0,0 +1,19 @@
{{ config(
materialized = 'view'
) }}
SELECT
node_addr,
former,
"CURRENT",
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_update_node_account_status_events'
) }}

View File

@ -0,0 +1,19 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
from_addr,
node_addr,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_validator_request_leave_events'
) }}

View File

@ -0,0 +1,31 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx,
chain,
from_addr,
to_addr,
asset,
asset_e8,
emit_asset_e8,
emit_cacao_e8,
memo,
pool,
stake_units,
basis_points,
asymmetry,
imp_loss_protection_e8,
_EMIT_ASSET_IN_CACAO_E8,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
FROM
{{ source(
'maya_midgard',
'midgard_withdraw_events'
) }}

View File

@ -0,0 +1,22 @@
{{ config(
materialized = 'view'
) }}
SELECT
add_asgard_addr,
event_id,
block_timestamp,
__HEVO__DATABASE_NAME,
__HEVO__SCHEMA_NAME,
__HEVO__INGESTED_AT,
__HEVO__LOADED_AT,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__active_vault_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,16 @@
version: 2
models:
- name: silver__active_vault_events
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- EVENT_ID
- BLOCK_TIMESTAMP
- ADD_ASGARD_ADDR
columns:
- name: BLOCK_TIMESTAMP
data_tests:
- not_null
- name: ADD_ASGARD_ADDR
data_tests:
- not_null

View File

@ -0,0 +1,26 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx AS tx_id,
chain AS blockchain,
from_addr AS from_address,
to_addr AS to_address,
asset,
asset_e8,
memo,
cacao_e8,
pool AS pool_name,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__add_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,38 @@
version: 2
models:
- name: silver__add_events
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- EVENT_ID
- TX_ID
- BLOCKCHAIN
- POOL_NAME
- FROM_ADDRESS
- TO_ADDRESS
- MEMO
columns:
- name: TX_ID
data_tests:
- not_null
- name: FROM_ADDRESS
data_tests:
- not_null
- name: TO_ADDRESS
data_tests:
- not_null
- name: ASSET_E8
data_tests:
- not_null
- name: MEMO
data_tests:
- not_null
- name: cacao_E8
data_tests:
- not_null
- name: POOL_NAME
data_tests:
- not_null
- name: BLOCK_TIMESTAMP
data_tests:
- not_null

View File

@ -0,0 +1,43 @@
{{ config(
materialized = 'view'
) }}
WITH base AS (
SELECT
height,
TO_TIMESTAMP(
TIMESTAMP / 1000000000
) AS block_timestamp,
TIMESTAMP,
HASH,
agg_state,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__block_log') }}
qualify(ROW_NUMBER() over(PARTITION BY height
ORDER BY
__HEVO__LOADED_AT DESC)) = 1
)
SELECT
height,
block_timestamp,
block_timestamp :: DATE AS block_date,
HOUR(block_timestamp) AS block_hour,
week(block_timestamp) AS block_week,
MONTH(block_timestamp) AS block_month,
quarter(block_timestamp) AS block_quarter,
YEAR(block_timestamp) AS block_year,
dayofmonth(block_timestamp) AS block_DAYOFMONTH,
dayofweek(block_timestamp) AS block_DAYOFWEEK,
dayofyear(block_timestamp) AS block_DAYOFYEAR,
TIMESTAMP,
HASH,
agg_state,
_INSERTED_TIMESTAMP
FROM
base

View File

@ -0,0 +1,20 @@
version: 2
models:
- name: silver__block_log
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- HEIGHT
- TIMESTAMP
- HASH
- AGG_STATE
columns:
- name: TIMESTAMP
data_tests:
- not_null
- name: HEIGHT
data_tests:
- not_null
- name: HASH
data_tests:
- not_null

View File

@ -0,0 +1,20 @@
{{ config(
materialized = 'view'
) }}
SELECT
pool AS pool_name,
asset_e8,
cacao_e8,
synth_e8,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__block_pool_depths') }}
qualify(ROW_NUMBER() over(PARTITION BY pool, block_timestamp
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,24 @@
version: 2
models:
- name: silver__block_pool_depths
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- BLOCK_TIMESTAMP
- POOL_NAME
columns:
- name: BLOCK_TIMESTAMP
data_tests:
- not_null
- name: POOL_NAME
data_tests:
- not_null
- name: ASSET_E8
data_tests:
- not_null
- name: CACAO_E8
data_tests:
- not_null
- name: SYNTH_E8
data_tests:
- not_null

View File

@ -0,0 +1,160 @@
{{ config(
materialized = 'table',
cluster_by = ['day']
) }}
WITH all_block_id AS (
SELECT
block_timestamp,
MAX(_inserted_timestamp) AS _inserted_timestamp
FROM
{{ ref('silver__block_pool_depths') }}
GROUP BY
block_timestamp
),
avg_nodes_tbl AS (
SELECT
block_timestamp,
SUM(
CASE
WHEN current_status = 'Active' THEN 1
WHEN former_status = 'Active' THEN -1
ELSE 0
END
) AS delta
FROM
{{ ref('silver__update_node_account_status_events') }}
GROUP BY
block_timestamp
),
all_block_with_nodes AS (
SELECT
all_block_id.block_timestamp,
delta,
SUM(delta) over (
ORDER BY
all_block_id.block_timestamp ASC
) AS avg_nodes,
_inserted_timestamp AS _inserted_timestamp
FROM
all_block_id
LEFT JOIN avg_nodes_tbl
ON all_block_id.block_timestamp = avg_nodes_tbl.block_timestamp
),
all_block_with_nodes_date AS (
SELECT
b.block_timestamp :: DATE AS DAY,
AVG(avg_nodes) AS avg_nodes,
MAX(
A._inserted_timestamp
) AS _inserted_timestamp
FROM
all_block_with_nodes A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
GROUP BY
DAY
),
liquidity_fee_tbl AS (
SELECT
DATE(
b.block_timestamp
) AS DAY,
COALESCE(SUM(liq_fee_in_cacao_e8), 0) AS liquidity_fee
FROM
{{ ref('silver__swap_events') }} A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
GROUP BY
1
),
bond_earnings_tbl AS (
SELECT
DATE(
b.block_timestamp
) AS DAY,
SUM(bond_e8) AS bond_earnings
FROM
{{ ref('silver__rewards_events') }} A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
GROUP BY
DAY
),
total_pool_rewards_tbl AS (
SELECT
DATE(
b.block_timestamp
) AS DAY,
SUM(cacao_e8) AS total_pool_rewards
FROM
{{ ref('silver__rewards_event_entries') }} A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
GROUP BY
DAY
)
SELECT
all_block_with_nodes_date.day,
COALESCE((liquidity_fee_tbl.liquidity_fee / power(10, 8)), 0) AS liquidity_fee,
(
(
COALESCE(
total_pool_rewards_tbl.total_pool_rewards,
0
) + COALESCE(
bond_earnings_tbl.bond_earnings,
0
)
)
) / power(
10,
8
) AS block_rewards,
(
(
COALESCE(
total_pool_rewards_tbl.total_pool_rewards,
0
) + COALESCE(
liquidity_fee_tbl.liquidity_fee,
0
) + COALESCE(
bond_earnings_tbl.bond_earnings,
0
)
)
) / power(
10,
8
) AS earnings,
COALESCE((bond_earnings_tbl.bond_earnings / power(10, 8)), 0) AS bonding_earnings,
(
(
COALESCE(
total_pool_rewards_tbl.total_pool_rewards,
0
) + COALESCE(
liquidity_fee_tbl.liquidity_fee,
0
)
)
) / power(
10,
8
) AS liquidity_earnings,
all_block_with_nodes_date.avg_nodes + 2 AS avg_node_count,
all_block_with_nodes_date._inserted_timestamp
FROM
all_block_with_nodes_date
LEFT JOIN liquidity_fee_tbl
ON all_block_with_nodes_date.day = liquidity_fee_tbl.day
LEFT JOIN total_pool_rewards_tbl
ON all_block_with_nodes_date.day = total_pool_rewards_tbl.day
LEFT JOIN bond_earnings_tbl
ON all_block_with_nodes_date.day = bond_earnings_tbl.day

View File

@ -0,0 +1,30 @@
version: 2
models:
- name: silver__block_rewards
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- DAY
columns:
- name: DAY
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 2
- name: LIQUIDITY_FEE
data_tests:
- not_null
- name: BLOCK_REWARDS
data_tests:
- not_null
- name: EARNINGS
data_tests:
- not_null
- name: BONDING_EARNINGS
data_tests:
- not_null
- name: LIQUIDITY_EARNINGS
data_tests:
- not_null
- name: AVG_NODE_COUNT

View File

@ -0,0 +1,26 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx AS tx_id,
chain AS blockchain,
from_addr AS from_address,
to_addr AS to_address,
asset,
asset_e8,
memo,
bond_type,
e8,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__bond_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,19 @@
version: 2
models:
- name: silver__bond_events
columns:
- name: BLOCK_TIMESTAMP
data_tests:
- not_null
- name: TX_ID
data_tests:
- not_null
- name: ASSET_E8
data_tests:
- not_null
- name: BOND_TYPE
data_tests:
- not_null
- name: E8
data_tests:
- not_null

View File

@ -0,0 +1,19 @@
{{ config(
materialized = 'view'
) }}
SELECT
cacao_price_e8,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref(
'bronze__cacao_price'
) }}
qualify(ROW_NUMBER() over (PARTITION BY block_timestamp
ORDER BY
cacao_price_e8 DESC) = 1)

View File

@ -0,0 +1,10 @@
version: 2
models:
- name: silver__cacao_price
columns:
- name: CACAO_PRICE_E8
data_tests:
- not_null
- name: BLOCK_TIMESTAMP
data_tests:
- not_null

View File

@ -0,0 +1,9 @@
{{ config(
materialized = 'view'
) }}
SELECT
C.key,
C.value
FROM
{{ ref('bronze__constants') }} C

View File

@ -0,0 +1,109 @@
{{ config(
materialized = 'incremental',
unique_key = 'day',
incremental_strategy = 'merge',
cluster_by = ['day']
) }}
WITH max_daily_block AS (
SELECT
MAX(
block_id
) AS block_id,
DATE_TRUNC(
'day',
block_timestamp
) AS DAY
FROM
{{ ref('silver__prices') }} A
{% if is_incremental() %}
WHERE
block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
GROUP BY
DAY
),
daily_cacao_price AS (
SELECT
p.block_id,
DAY,
AVG(cacao_usd) AS cacao_usd
FROM
{{ ref('silver__prices') }}
p
JOIN max_daily_block mdb
ON p.block_id = mdb.block_id
{% if is_incremental() %}
WHERE
block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
GROUP BY
DAY,
p.block_id
)
SELECT
br.day,
COALESCE(
liquidity_fee,
0
) AS liquidity_fees,
COALESCE(
liquidity_fee * cacao_usd,
0
) AS liquidity_fees_usd,
block_rewards AS block_rewards,
block_rewards * cacao_usd AS block_rewards_usd,
COALESCE(
earnings,
0
) AS total_earnings,
COALESCE(
earnings * cacao_usd,
0
) AS total_earnings_usd,
bonding_earnings AS earnings_to_nodes,
bonding_earnings * cacao_usd AS earnings_to_nodes_usd,
COALESCE(
liquidity_earnings,
0
) AS earnings_to_pools,
COALESCE(
liquidity_earnings * cacao_usd,
0
) AS earnings_to_pools_usd,
avg_node_count,
br._inserted_timestamp
FROM
{{ ref('silver__block_rewards') }}
br
JOIN daily_cacao_price drp
ON br.day = drp.day
{% if is_incremental() %}
WHERE
br.day >= (
SELECT
MAX(
DAY
)
FROM
{{ this }}
)
{% endif %}

View File

@ -0,0 +1,45 @@
version: 2
models:
- name: silver__daily_earnings
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- DAY
columns:
- name: DAY
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 2
- name: LIQUIDITY_FEES
data_tests:
- not_null
- name: LIQUIDITY_FEES_USD
data_tests:
- not_null
- name: BLOCK_REWARDS
data_tests:
- not_null
- name: BLOCK_REWARDS_USD
data_tests:
- not_null
- name: TOTAL_EARNINGS
data_tests:
- not_null
- name: TOTAL_EARNINGS_USD
data_tests:
- not_null
- name: EARNINGS_TO_NODES
data_tests:
- not_null
- name: EARNINGS_TO_NODES_USD
data_tests:
- not_null
- name: EARNINGS_TO_POOLS
data_tests:
- not_null
- name: EARNINGS_TO_POOLS_USD
data_tests:
- not_null
- name: AVG_NODE_COUNT

View File

@ -0,0 +1,177 @@
{{ config(
materialized = 'incremental',
unique_key = "_unique_key",
incremental_strategy = 'merge',
cluster_by = ['day'],
incremental_predicates = ['DBT_INTERNAL_DEST.day >= (select min(day) from ' ~ generate_tmp_view_name(this) ~ ')']
) }}
WITH daily_cacao_price AS (
SELECT
pool_name,
block_timestamp :: DATE AS DAY,
AVG(cacao_usd) AS cacao_usd,
AVG(asset_usd) AS asset_usd
FROM
{{ ref('silver__prices') }}
p
{% if is_incremental() %}
WHERE
block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
GROUP BY
pool_name,
DAY
),
pool_fees AS (
SELECT
pbf.day,
pbf.pool_name,
rewards AS system_rewards,
rewards * cacao_usd AS system_rewards_usd,
asset_liquidity_fees,
asset_liquidity_fees * asset_usd AS asset_liquidity_fees_usd,
cacao_liquidity_fees,
cacao_liquidity_fees * cacao_usd AS cacao_liquidity_fees_usd
FROM
{{ ref('silver__pool_block_fees') }}
pbf
JOIN daily_cacao_price drp
ON pbf.day = drp.day
AND pbf.pool_name = drp.pool_name
{% if is_incremental() %}
WHERE
pbf.day >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
)
SELECT
pbs.day,
pbs.asset AS pool_name,
COALESCE(
system_rewards,
0
) AS system_rewards,
COALESCE(
system_rewards_usd,
0
) AS system_rewards_usd,
COALESCE(asset_depth / pow(10, 8), 0) AS asset_liquidity,
COALESCE(
asset_price,
0
) AS asset_price,
COALESCE(
asset_price_usd,
0
) AS asset_price_usd,
COALESCE(cacao_depth / pow(10, 8), 0) AS cacao_liquidity,
COALESCE(asset_price_usd / NULLIF(cacao_usd, 0), 0) AS cacao_price,
COALESCE(
cacao_usd,
0
) AS cacao_price_usd,
COALESCE(
add_liquidity_count,
0
) AS add_liquidity_count,
COALESCE(add_asset_liquidity_volume / pow(10, 8), 0) AS add_asset_liquidity,
COALESCE(add_asset_liquidity_volume / pow(10, 8) * asset_usd, 0) AS add_asset_liquidity_usd,
COALESCE(add_cacao_liquidity_volume / pow(10, 8), 0) AS add_cacao_liquidity,
COALESCE(add_cacao_liquidity_volume / pow(10, 8) * cacao_usd, 0) AS add_cacao_liquidity_usd,
COALESCE(
withdraw_count,
0
) AS withdraw_count,
COALESCE(withdraw_asset_volume / pow(10, 8), 0) AS withdraw_asset_liquidity,
COALESCE(withdraw_asset_volume / pow(10, 8) * asset_usd, 0) AS withdraw_asset_liquidity_usd,
COALESCE(withdraw_cacao_volume / pow(10, 8), 0) AS withdraw_cacao_liquidity,
COALESCE(withdraw_cacao_volume / pow(10, 8) * cacao_usd, 0) AS withdraw_cacao_liquidity_usd,
COALESCE(impermanent_loss_protection_paid / pow(10, 8), 0) AS il_protection_paid,
COALESCE(impermanent_loss_protection_paid / pow(10, 8) * cacao_usd, 0) AS il_protection_paid_usd,
COALESCE(
average_slip,
0
) AS average_slip,
COALESCE(
to_asset_average_slip,
0
) AS to_asset_average_slip,
COALESCE(
to_cacao_average_slip,
0
) AS to_cacao_average_slip,
COALESCE(
swap_count,
0
) AS swap_count,
COALESCE(
to_asset_count,
0
) AS to_asset_swap_count,
COALESCE(
to_cacao_count,
0
) AS to_cacao_swap_count,
COALESCE(swap_volume / pow(10, 8), 0) AS swap_volume_cacao,
COALESCE(swap_volume / pow(10, 8) * cacao_usd, 0) AS swap_volume_cacao_usd,
COALESCE(to_asset_volume / pow(10, 8), 0) AS to_asset_swap_volume,
COALESCE(to_cacao_volume / pow(10, 8), 0) AS to_cacao_swap_volume,
COALESCE(totalfees / pow(10, 8), 0) AS total_swap_fees_cacao,
COALESCE(totalfees / pow(10, 8) * cacao_usd, 0) AS total_swap_fees_usd,
COALESCE(to_asset_fees / pow(10, 8), 0) AS total_asset_swap_fees,
COALESCE(to_cacao_fees / pow(10, 8), 0) AS total_asset_cacao_fees,
COALESCE(
unique_member_count,
0
) AS unique_member_count,
COALESCE(
unique_swapper_count,
0
) AS unique_swapper_count,
COALESCE(
units,
0
) AS liquidity_units,
concat_ws(
'-',
pbs.day,
pbs.asset
) AS _unique_key
FROM
{{ ref('silver__pool_block_statistics') }}
pbs
LEFT JOIN daily_cacao_price drp
ON pbs.day = drp.day
AND pbs.asset = drp.pool_name
LEFT JOIN pool_fees pf
ON pbs.day = pf.day
AND pbs.asset = pf.pool_name
{% if is_incremental() %}
WHERE
pbs.day >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}

View File

@ -0,0 +1,126 @@
version: 2
models:
- name: silver__daily_pool_stats
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- DAY
- POOL_NAME
columns:
- name: DAY
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 2
- name: POOL_NAME
data_tests:
- not_null
- name: SYSTEM_REWARDS
data_tests:
- not_null
- name: SYSTEM_REWARDS_USD
data_tests:
- not_null
- name: ASSET_LIQUIDITY
data_tests:
- not_null
- name: ASSET_PRICE
data_tests:
- not_null
- name: ASSET_PRICE_USD
data_tests:
- not_null
- name: cacao_LIQUIDITY
data_tests:
- not_null
- name: cacao_PRICE
data_tests:
- not_null
- name: cacao_PRICE_USD
data_tests:
- not_null
- name: ADD_LIQUIDITY_COUNT
data_tests:
- not_null
- name: ADD_ASSET_LIQUIDITY
data_tests:
- not_null
- name: ADD_ASSET_LIQUIDITY_USD
data_tests:
- not_null
- name: ADD_cacao_LIQUIDITY_USD
data_tests:
- not_null
- name: WITHDRAW_COUNT
data_tests:
- not_null
- name: WITHDRAW_ASSET_LIQUIDITY
data_tests:
- not_null
- name: WITHDRAW_ASSET_LIQUIDITY_USD
data_tests:
- not_null
- name: WITHDRAW_cacao_LIQUIDITY
data_tests:
- not_null
- name: WITHDRAW_cacao_LIQUIDITY_USD
data_tests:
- not_null
- name: IL_PROTECTION_PAID
data_tests:
- not_null
- name: IL_PROTECTION_PAID_USD
data_tests:
- not_null
- name: AVERAGE_SLIP
data_tests:
- not_null
- name: TO_ASSET_AVERAGE_SLIP
data_tests:
- not_null
- name: TO_cacao_AVERAGE_SLIP
data_tests:
- not_null
- name: SWAP_COUNT
data_tests:
- not_null
- name: TO_ASSET_SWAP_COUNT
data_tests:
- not_null
- name: TO_cacao_SWAP_COUNT
data_tests:
- not_null
- name: SWAP_VOLUME_cacao
data_tests:
- not_null
- name: SWAP_VOLUME_cacao_USD
data_tests:
- not_null
- name: TO_ASSET_SWAP_VOLUME
data_tests:
- not_null
- name: TO_cacao_SWAP_VOLUME
data_tests:
- not_null
- name: TOTAL_SWAP_FEES_cacao
data_tests:
- not_null
- name: TOTAL_SWAP_FEES_USD
data_tests:
- not_null
- name: TOTAL_ASSET_SWAP_FEES
data_tests:
- not_null
- name: TOTAL_ASSET_cacao_FEES
data_tests:
- not_null
- name: UNIQUE_MEMBER_COUNT
data_tests:
- not_null
- name: UNIQUE_SWAPPER_COUNT
data_tests:
- not_null
- name: LIQUIDITY_UNITS
data_tests:
- not_null

View File

@ -0,0 +1,72 @@
{{ config(
materialized = 'incremental',
unique_key = "day",
incremental_strategy = 'merge',
cluster_by = ['day'],
incremental_predicates = ['DBT_INTERNAL_DEST.day >= (select min(day) from ' ~ generate_tmp_view_name(this) ~ ')']
) }}
WITH max_daily_block AS (
SELECT
MAX(block_id) AS block_id,
DATE_TRUNC(
'day',
block_timestamp
) AS DAY
FROM
{{ ref('silver__prices') }}
{% if is_incremental() %}
WHERE
block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
GROUP BY
DAY
),
daily_cacao_price AS (
SELECT
p.block_id,
DAY,
AVG(cacao_usd) AS cacao_usd
FROM
{{ ref('silver__prices') }}
p
JOIN max_daily_block mdb
ON p.block_id = mdb.block_id
{% if is_incremental() %}
WHERE
block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
GROUP BY
DAY,
p.block_id
)
SELECT
br.day,
total_value_pooled AS total_value_pooled,
total_value_pooled * cacao_usd AS total_value_pooled_usd,
total_value_bonded AS total_value_bonded,
total_value_bonded * cacao_usd AS total_value_bonded_usd,
total_value_locked AS total_value_locked,
total_value_locked * cacao_usd AS total_value_locked_usd
FROM
{{ ref('silver__total_value_locked') }}
br
JOIN daily_cacao_price drp
ON br.day = drp.day

View File

@ -0,0 +1,32 @@
version: 2
models:
- name: silver__daily_tvl
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- DAY
columns:
- name: DAY
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 2
- name: TOTAL_VALUE_POOLED
data_tests:
- not_null
- name: TOTAL_VALUE_POOLED_USD
data_tests:
- not_null
- name: TOTAL_VALUE_BONDED
data_tests:
- not_null
- name: TOTAL_VALUE_BONDED_USD
data_tests:
- not_null
- name: TOTAL_VALUE_LOCKED
data_tests:
- not_null
- name: TOTAL_VALUE_LOCKED_USD
data_tests:
- not_null

View File

@ -0,0 +1,26 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx_id,
code,
memo,
asset,
amount_e8,
from_addr AS from_address,
reason,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref(
'bronze__failed_deposit_messages'
) }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,29 @@
version: 2
models:
- name: silver__failed_deposit_messages
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- EVENT_ID
columns:
- name: AMOUNT_E8
data_tests:
- not_null
- name: ASSET
data_tests:
- not_null
- name: FROM_ADDRESS
data_tests:
- not_null
- name: MEMO
- name: CODE
- name: REASON
- name: TX_ID
data_tests:
- not_null
- name: EVENT_ID
data_tests:
- not_null
- name: BLOCK_TIMESTAMP
data_tests:
- not_null

View File

@ -0,0 +1,21 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx AS tx_id,
asset,
asset_e8,
pool_deduct,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__fee_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,19 @@
version: 2
models:
- name: silver__fee_events
columns:
- name: BLOCK_TIMESTAMP
data_tests:
- not_null
- name: TX_ID
data_tests:
- not_null
- name: ASSET
data_tests:
- not_null
- name: POOL_DEDUCT
data_tests:
- not_null
- name: ASSET_E8
data_tests:
- not_null

View File

@ -0,0 +1,21 @@
{{ config(
materialized = 'view'
) }}
SELECT
asset,
asset_e8,
cacao_e8,
tx_count,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__gas_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,25 @@
version: 2
models:
- name: silver__gas_events
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- EVENT_ID
- ASSET
- BLOCK_TIMESTAMP
columns:
- name: BLOCK_TIMESTAMP
data_tests:
- not_null
- name: ASSET
data_tests:
- not_null
- name: CACAO_E8
data_tests:
- not_null
- name: TX_COUNT
data_tests:
- not_null
- name: ASSET_E8
data_tests:
- not_null

View File

@ -0,0 +1,18 @@
{{ config(
materialized = 'view'
) }}
SELECT
add_asgard_addr AS add_asgard_address,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__inactive_vault_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,180 @@
{{ config(
materialized = 'incremental',
unique_key = '_unique_key',
incremental_strategy = 'merge',
cluster_by = ['block_timestamp::DATE']
) }}
WITH stakes AS (
SELECT
block_timestamp,
cacao_tx_id,
pool_name,
cacao_address,
cacao_e8,
asset_e8,
stake_units,
asset_tx_id,
asset_address,
asset_blockchain,
event_id,
_inserted_timestamp
FROM
{{ ref('silver__stake_events') }}
),
unstakes AS (
SELECT
block_timestamp,
tx_id,
pool_name,
from_address,
to_address,
emit_cacao_e8,
emit_asset_e8,
stake_units,
imp_loss_protection_e8,
asymmetry,
basis_points,
event_id,
_inserted_timestamp
FROM
{{ ref('silver__withdraw_events') }}
)
SELECT
b.block_timestamp,
b.height AS block_id,
cacao_tx_id AS tx_id,
'add_liquidity' AS lp_action,
se.pool_name,
cacao_address AS from_address,
NULL AS to_address,
COALESCE((cacao_e8 / pow(10, 8)), 0) AS cacao_amount,
COALESCE((cacao_e8 / pow(10, 8) * cacao_usd), 0) AS cacao_amount_usd,
COALESCE((asset_e8 / pow(10, 8)), 0) AS asset_amount,
COALESCE((asset_e8 / pow(10, 8) * asset_usd), 0) AS asset_amount_usd,
stake_units,
asset_tx_id,
asset_address,
asset_blockchain,
NULL AS il_protection,
NULL AS il_protection_usd,
NULL AS unstake_asymmetry,
NULL AS unstake_basis_points,
concat_ws(
'-',
event_id,
se.block_timestamp,
COALESCE(
tx_id,
''
),
lp_action,
se.pool_name,
COALESCE(
from_address,
''
),
COALESCE(
to_address,
''
),
COALESCE(
asset_tx_id,
''
)
) AS _unique_key,
se._inserted_timestamp
FROM
stakes se
JOIN {{ ref('silver__block_log') }}
b
ON se.block_timestamp = b.timestamp
LEFT JOIN {{ ref('silver__prices') }}
p
ON b.height = p.block_id
AND se.pool_name = p.pool_name
{% if is_incremental() %}
WHERE
b.block_timestamp >= (
SELECT
MAX(
block_timestamp - INTERVAL '1 HOUR'
)
FROM
{{ this }}
)
{% endif %}
UNION
SELECT
b.block_timestamp,
b.height AS block_id,
tx_id,
'remove_liquidity' AS lp_action,
ue.pool_name,
from_address,
to_address,
COALESCE(emit_cacao_e8 / pow(10, 8), 0) AS cacao_amount,
COALESCE(emit_cacao_e8 / pow(10, 8) * cacao_usd, 0) AS cacao_amount_usd,
COALESCE(emit_asset_e8 / pow(10, 8), 0) AS asset_amount,
COALESCE(emit_asset_e8 / pow(10, 8) * asset_usd, 0) AS asset_amount_usd,
stake_units,
NULL AS asset_tx_id,
NULL AS asset_address,
NULL AS asset_blockchain,
imp_loss_protection_e8 / pow(
10,
8
) AS il_protection,
imp_loss_protection_e8 / pow(
10,
8
) * cacao_usd AS il_protection_usd,
asymmetry AS unstake_asymmetry,
basis_points AS unstake_basis_points,
concat_ws(
'-',
event_id,
ue.block_timestamp,
COALESCE(
tx_id,
''
),
lp_action,
ue.pool_name,
COALESCE(
from_address,
''
),
COALESCE(
to_address,
''
),
COALESCE(
asset_tx_id,
''
)
) AS _unique_key,
ue._inserted_timestamp
FROM
unstakes ue
JOIN {{ ref('silver__block_log') }}
b
ON ue.block_timestamp = b.timestamp
LEFT JOIN {{ ref('silver__prices') }}
p
ON b.height = p.block_id
AND ue.pool_name = p.pool_name
{% if is_incremental() %}
WHERE
b.block_timestamp >= (
SELECT
MAX(
block_timestamp - INTERVAL '1 HOUR'
)
FROM
{{ this }}
)
{% endif %}

View File

@ -0,0 +1,33 @@
version: 2
models:
- name: silver__liquidity_actions
columns:
- name: BLOCK_TIMESTAMP
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 1
- name: BLOCK_ID
data_tests:
- not_null
- name: LP_ACTION
data_tests:
- not_null
- name: POOL_NAME
data_tests:
- not_null
- name: cacao_AMOUNT
data_tests:
- not_null
- name: cacao_AMOUNT_USD
data_tests:
- not_null:
where: BLOCK_TIMESTAMP <= SYSDATE() - interval '2 day' AND BLOCK_TIMESTAMP >= '2021-04-13'
- name: ASSET_AMOUNT
data_tests:
- not_null
- name: STAKE_UNITS
data_tests:
- not_null

View File

@ -0,0 +1,31 @@
{{ config(
materialized = 'view'
) }}
SELECT
owner,
chain,
address,
expire,
NAME,
fund_amount_e8,
registration_fee_e8,
event_id,
height,
tx_id,
memo,
sender,
preferred_asset,
affiliate_bps,
sub_affiliates,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__mayaname_change_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,18 @@
{{ config(
materialized = 'view'
) }}
SELECT
node_addr AS node_address,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__new_node_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,26 @@
{{ config(
materialized = 'view'
) }}
SELECT
tx AS tx_id,
chain AS blockchain,
from_addr AS from_address,
to_addr AS to_address,
asset,
asset_e8,
memo,
in_tx,
internal,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__outbound_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id, in_tx
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,40 @@
version: 2
models:
- name: silver__outbound_events
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- TX_ID
- BLOCKCHAIN
- FROM_ADDRESS
- TO_ADDRESS
- ASSET
- MEMO
- IN_TX
- BLOCK_TIMESTAMP
- EVENT_ID
columns:
- name: BLOCKCHAIN
data_tests:
- not_null
- name: FROM_ADDRESS
data_tests:
- not_null
- name: TO_ADDRESS
data_tests:
- not_null
- name: ASSET
data_tests:
- not_null
- name: ASSET_E8
data_tests:
- not_null
- name: MEMO
data_tests:
- not_null
- name: IN_TX
data_tests:
- not_null
- name: BLOCK_TIMESTAMP
data_tests:
- not_null

View File

@ -0,0 +1,26 @@
{{ config(
materialized = 'view'
) }}
SELECT
pool AS pool_name,
asset_tx AS asset_tx_id,
asset_chain AS asset_blockchain,
asset_addr AS asset_address,
asset_e8,
cacao_tx AS cacao_tx_ID,
cacao_addr AS cacao_address,
cacao_e8,
pending_type,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__pending_liquidity_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id, asset_addr, cacao_addr
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,28 @@
version: 2
models:
- name: silver__pending_liquidity_events
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- EVENT_ID
- ASSET_ADDRESS
- CACAO_ADDRESS
columns:
- name: POOL_NAME
data_tests:
- not_null
- name: ASSET_E8
data_tests:
- not_null
- name: CACAO_ADDRESS
data_tests:
- not_null
- name: CACAO_E8
data_tests:
- not_null
- name: PENDING_TYPE
data_tests:
- not_null
- name: BLOCK_TIMESTAMP
data_tests:
- not_null

View File

@ -0,0 +1,23 @@
{{ config(
materialized = 'view'
) }}
SELECT
asset,
cacao_amt AS cacao_amount,
cacao_add,
asset_amt AS asset_amount,
asset_add,
reason,
event_id,
block_timestamp,
DATEADD(
ms,
__HEVO__LOADED_AT,
'1970-01-01'
) AS _INSERTED_TIMESTAMP
FROM
{{ ref('bronze__pool_balance_change_events') }}
qualify(ROW_NUMBER() over(PARTITION BY event_id, asset
ORDER BY
__HEVO__LOADED_AT DESC)) = 1

View File

@ -0,0 +1,26 @@
version: 2
models:
- name: silver__pool_balance_change_events
columns:
- name: BLOCK_TIMESTAMP
data_tests:
- not_null
- name: ASSET
data_tests:
- not_null
- name: CACAO_AMOUNT
data_tests:
- not_null
- name: CACAO_ADD
data_tests:
- not_null
- name: ASSET_AMOUNT
data_tests:
- not_null
- name: ASSET_ADD
data_tests:
- not_null
- name: REASON
data_tests:
- not_null

View File

@ -0,0 +1,45 @@
{{ config(
materialized = 'incremental',
unique_key = '_unique_key',
incremental_strategy = 'merge',
cluster_by = ['block_timestamp::DATE']
) }}
SELECT
b.block_timestamp,
b.height AS block_id,
bpd.pool_name,
COALESCE(cacao_e8 / pow(10, 8), 0) AS cacao_amount,
COALESCE(cacao_e8 / pow(10, 8) * cacao_usd, 0) AS cacao_amount_usd,
COALESCE(asset_e8 / pow(10, 8), 0) AS asset_amount,
COALESCE(asset_e8 / pow(10, 8) * asset_usd, 0) AS asset_amount_usd,
COALESCE(synth_e8 / pow(10, 8), 0) AS synth_amount,
COALESCE(synth_e8 / pow(10, 8) * asset_usd, 0) AS synth_amount_usd,
concat_ws(
'-',
bpd.block_timestamp,
bpd.pool_name
) AS _unique_key,
bpd._inserted_timestamp
FROM
{{ ref('silver__block_pool_depths') }}
bpd
JOIN {{ ref('silver__block_log') }}
b
ON bpd.block_timestamp = b.timestamp
LEFT JOIN {{ ref('silver__prices') }}
p
ON b.height = p.block_id
AND bpd.pool_name = p.pool_name
{% if is_incremental() %}
WHERE
b.block_timestamp >= (
SELECT
MAX(
block_timestamp - INTERVAL '1 HOUR'
)
FROM
{{ this }}
)
{% endif %}

View File

@ -0,0 +1,40 @@
version: 2
models:
- name: silver__pool_block_balances
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- BLOCK_ID
- POOL_NAME
columns:
- name: BLOCK_TIMESTAMP
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 1
- name: BLOCK_ID
data_tests:
- not_null
- name: POOL_NAME
data_tests:
- not_null
- name: cacao_AMOUNT
data_tests:
- not_null
- name: cacao_AMOUNT_USD
data_tests:
- not_null:
where: BLOCK_TIMESTAMP <= current_date -2 AND BLOCK_TIMESTAMP >= '2021-04-13'
- name: ASSET_AMOUNT
data_tests:
- not_null
- name: ASSET_AMOUNT_USD
data_tests:
- not_null
- name: SYNTH_AMOUNT
data_tests:
- not_null
- name: SYNTH_AMOUNT_USD
data_tests:
- not_null

View File

@ -0,0 +1,200 @@
{{ config(
materialized = 'incremental',
unique_key = "_unique_key",
incremental_strategy = 'merge',
incremental_predicates = ['DBT_INTERNAL_DEST.DAY >= (select min(DAY) from ' ~ generate_tmp_view_name(this) ~ ')'],
cluster_by = ['day']
) }}
WITH all_block_id AS (
SELECT
DATE(
b.block_timestamp
) AS DAY,
pool_name,
MAX(
A._inserted_timestamp
) AS _inserted_timestamp
FROM
{{ ref('silver__block_pool_depths') }} A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
{% if is_incremental() %}
WHERE
b.block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
GROUP BY
DAY,
pool_name
),
total_pool_rewards_tbl AS (
SELECT
DATE(
b.block_timestamp
) AS DAY,
pool_name,
SUM(cacao_e8) AS rewards
FROM
{{ ref('silver__rewards_event_entries') }} A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
{% if is_incremental() %}
WHERE
b.block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
GROUP BY
DAY,
pool_name
),
total_liquidity_fees_CACAO_tbl AS (
SELECT
DATE(
b.block_timestamp
) AS DAY,
pool_name,
SUM(liq_fee_in_CACAO_e8) AS total_liquidity_fees_CACAO
FROM
{{ ref('silver__swap_events') }} A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
{% if is_incremental() %}
WHERE
b.block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
GROUP BY
DAY,
pool_name
),
liquidity_fees_asset_tbl AS (
SELECT
DATE(block_timestamp) AS DAY,
pool_name,
SUM(asset_fee) AS assetLiquidityFees
FROM
(
SELECT
b.block_timestamp,
pool_name,
CASE
WHEN to_asset = 'MAYA.CACAO' THEN 0
ELSE liq_fee_e8
END AS asset_fee
FROM
{{ ref('silver__swap_events') }} A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
{% if is_incremental() %}
WHERE
b.block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
)
GROUP BY
DAY,
pool_name
),
liquidity_fees_cacao_tbl AS (
SELECT
DATE(block_timestamp) AS DAY,
pool_name,
SUM(asset_fee) AS cacaoLiquidityFees
FROM
(
SELECT
b.block_timestamp,
pool_name,
CASE
WHEN to_asset <> 'MAYA.CACAO' THEN 0
ELSE liq_fee_e8
END AS asset_fee
FROM
{{ ref('silver__swap_events') }} A
JOIN {{ ref('silver__block_log') }}
b
ON A.block_timestamp = b.timestamp
{% if is_incremental() %}
WHERE
b.block_timestamp :: DATE >= (
SELECT
MAX(
DAY - INTERVAL '2 DAYS' --counteract clock skew
)
FROM
{{ this }}
)
{% endif %}
)
GROUP BY
DAY,
pool_name
)
SELECT
A.day,
A.pool_name,
COALESCE((rewards / power(10, 8)), 0) AS rewards,
COALESCE((total_liquidity_fees_cacao / power(10, 8)), 0) AS total_liquidity_fees_cacao,
COALESCE((assetLiquidityFees / power(10, 8)), 0) AS asset_liquidity_fees,
COALESCE((cacaoLiquidityFees / power(10, 8)), 0) AS cacao_liquidity_fees,
(
(COALESCE(total_liquidity_fees_cacao, 0) + COALESCE(rewards, 0)) / power(
10,
8
)
) AS earnings,
concat_ws(
'-',
A.day,
A.pool_name
) AS _unique_key,
_inserted_timestamp
FROM
all_block_id A
LEFT JOIN total_pool_rewards_tbl b
ON A.day = b.day
AND A.pool_name = b.pool_name
LEFT JOIN total_liquidity_fees_cacao_tbl C
ON A.day = C.day
AND A.pool_name = C.pool_name
LEFT JOIN liquidity_fees_asset_tbl d
ON A.day = d.day
AND A.pool_name = d.pool_name
LEFT JOIN liquidity_fees_cacao_tbl e
ON A.day = e.day
AND A.pool_name = e.pool_name

Some files were not shown because too many files have changed in this diff Show More