primo_database_contracts_query
    Updated 2023-08-28
    with token_json_data as
    (
    SELECT
    chainbase_utils.post('/v1/dw/query', {
    'query': 'select contract_address, symbol, name, is_erc20, is_erc1155, is_erc721 from base.token_metas'
    }) as response
    ),
    token_data as (
    select
    value:contract_address::STRING AS contract_address,
    value:symbol::STRING AS symbol,
    value:name::STRING AS name,
    value:is_erc20::INT AS is_erc20,
    value:is_erc1155::INT AS is_erc1155,
    value:is_erc721::INT AS is_erc721
    from token_json_data, LATERAL FLATTEN(input => response:data:data:result) AS results
    ),
    contract_data as (
    select
    c.address contract_address
    , coalesce(td.name, dl.project_name) contract_name
    , coalesce(dl.label_type, case when is_erc20 = 1 then 'token' when is_erc721 = 1 or is_erc1155 = 1 then 'nft' else null end) contract_type
    from base.core.dim_contracts c
    left join token_data td
    on td.contract_address = c.address
    left join base.core.dim_labels dl
    on dl.address = c.address
    )
    select *
    from contract_data
    limit 100


    Run a query to Download Data