flow-models/macros/evm/udf_get_evm_chainhead.sql
Jack Forgash 88df737fa2
AN-5203/Deploy flowEVM (#343)
* flow evm init

* flow evm testnet - blocks

* deploy dev udfs, update typo

* send block height as hex

* dev limit

* use stg external table

* some links

* add query to side doc

* upd external tbl to stg & testnet

* silver and evm txs

* testnet silver models pt1

* testnet events final, decode hash udf

* udf get evm chainhead

* upd resource list

* new udf. receipts pipeline. upd testnet model cols. expand readme

* receipts silver

* traces

* vault

* reorg to evm dir

* rm testnet, blocks lookback

* lookbacks, move qualify

* macro and align naming

* del testnet, reset namespace to gen

* silver_evm - receipts and txs

* core_evm fact_blocks & fact_transactions

* fix vault path in get blocks. Logs v1 (need sample)

* core_evm fact_logs

* CR updates

* del readme and add workflow

* upd vault path, batch size

* incr logic on modified to core_evm

* use local utils.udf, add blockNumber col to complete blocks check

* rm col

* correct _invocation_id

* upd nv csv

* incr batch limit due to late start

* add evm tag to model run
2024-09-05 20:43:33 -06:00

31 lines
891 B
PL/PgSQL

{% macro run_create_udf_get_evm_chainhead() %}
{% set sql %}
CREATE
OR REPLACE FUNCTION {{ target.database }}.streamline.udf_get_evm_chainhead(
network STRING DEFAULT 'mainnet'
)
RETURNS INTEGER
AS
$$
SELECT
utils.udf_hex_to_int(
live.udf_api(
'POST',
'{Service}',
{},
OBJECT_CONSTRUCT(
'method', 'eth_blockNumber',
'id', 1,
'jsonrpc', '2.0',
'params', []
),
'Vault/{{ target.name }}/flow/evm/' || lower(network)
):data:result
) :: INTEGER AS block_number
$$
{% endset %}
{% do run_query(sql) %}
{% endmacro %}