diff --git a/data/silver_bridge__ccip_chain_seed.csv b/data/silver_bridge__ccip_chain_seed.csv deleted file mode 100644 index a3c6554..0000000 --- a/data/silver_bridge__ccip_chain_seed.csv +++ /dev/null @@ -1,75 +0,0 @@ -chain_name,chain_selector -apechain,14894068710063348487 -arbitrum,4949039107694359620 -l3x,3162193654116181371 -treasure,1010349088906777999 -areon,1939936305787790600 -astar-zkevm,1540201334317828111 -avalanche,6433500567565415381 -dexalot,5463201557265485081 -base,15971525489660198786 -berachain,1294465214383781161 -bsc,11344663589394136015 -opbnb,465944652040885897 -bitcichain,4874388048629246000 -bitlayer,7937294810946806131 -bittorrent,3776006016387883143 -blast,4411394078118774322 -bob,3849287863852499584 -botanix,4560701533377838164 -bsquared,5406759801798337480 -celo,1346049177634351622 -coinex_smart_chain,1761333065194157300 -core,1224752112135636129 -corn,9043146809313071210 -cronos,1456215246176062136 -cronos-zkevm,8788096068760390840 -ethereum,5009297550715157269 -fantom,3768048213127883732 -filecoin,4561443241176882990 -fraxtal,1462016016387883143 -gnosis,465200170687744372 -hashkey,7613811247471741961 -hedera,3229138320728879060 -immutable-zkevm,1237925231416731909 -ink,3461204551265785888 -kava,7550000543357438061 -kroma,3719320017875267166 -moonriver,1355020143337428062 -lens,5608378062013572713 -linea,4627098889531055414 -mantle,1556008542357238666 -merlin,241851231317828981 -metis,8805746078405598895 -mind,11690709103138290329 -mode,7264351850409363825 -morph,18164309074156128038 -near,2039744413822257700 -neonlink,8239338020728974000 -optimism,3734403246176062136 -plume,3208172210661564830 -astar-polkadot,6422105447186081193 -centrifuge,8175830712062617656 -darwinia,8866418665544333000 -moonbeam,1252863800116739621 -polygon,4051577828743386545 -polygon-zkevm,4348158687435793198 -private-testnet-mica,4489326297382772450 -ronin,6916147374840168594 -rootstock,11964252391146578476 -scroll,13204309965629103672 -sei,9027416829622342829 -shibarium,3993510008929295315 -soneium,12505351618335765396 -sonic,1673871237479749969 -taiko,16468599424800719238 -telos-evm,1477345371608778000 -treasure,5214452172935136222 -unichain,1923510103922296319 -velas,374210358663784372 -wemix,5142893604156789321 -worldchain,2049429975587534727 -xlayer,3016212468291539606 -zircuit,17198166215261833993 -zklink_nova,4350319965322101699 -zksync,1562403441176082196 \ No newline at end of file diff --git a/data/silver_bridge__meson_chain_id_seed.csv b/data/silver_bridge__meson_chain_id_seed.csv deleted file mode 100644 index f27fa1c..0000000 --- a/data/silver_bridge__meson_chain_id_seed.csv +++ /dev/null @@ -1,41 +0,0 @@ -chain,short_coin_type -Aptos,0x027d -Arbitrum,0x2329 -Aurora,0x0a0a -Avalanche,0x2328 -Base,0x2105 -Bitcoin,0x0000 -BNB Chain,0x02ca -Celo,0xce10 -Coinweb,0x08ae -Conflux,0x01f7 -Crypto Chain,0x018a -EOS,0x00c2 -Ethereum,0x003c -Evmos,0x11bc -Fantom,0x03ef -Flow,0x021b -Gnosis,0x02bc -Harmony,0x03ff -Linea,0xe708 -Manta,0x0263 -Mantle,0x1388 -Metis,0x0440 -Moonbeam,0x0504 -Moonriver,0x0505 -Nautilus,0x56ce -Near,0x018d -opBNB,0x00cc -Optimism,0x0266 -Polygon POS,0x03c6 -Polygon zkEVM,0x044d -Scroll,0x2750 -SKALE Europa,0x9296 -SKALE Nebula,0xb4b1 -Solana,0x01f5 -Sui,0x0310 -Terra,0x014a -Thorchain,0x03a3 -Tron,0x00c3 -zkSync Era,0x0324 -zkFair,0xa70e \ No newline at end of file diff --git a/data/silver_bridge__standard_dst_chain_seed.csv b/data/silver_bridge__standard_dst_chain_seed.csv deleted file mode 100644 index c5d8777..0000000 --- a/data/silver_bridge__standard_dst_chain_seed.csv +++ /dev/null @@ -1,98 +0,0 @@ -destination_chain,standard_destination_chain -acala,acala -algorand,algorand -aptos,aptos -arbitrum,arbitrum -arbitrum nova,arbitrum nova -arbitrum one,arbitrum -archway,archway -astar,astar -aurora,aurora -aurora mainnet,aurora -avalanche,avalanche -avalanche c-chain,avalanche -base,base -bnb,bsc -bnb chain,bsc -bnb smart chain mainnet,bsc -boba bnb mainnet,boba -boba network,boba -bsc,bsc -canto,canto -carbon,carbon -celo,celo -celo mainnet,celo -coinweb,coinweb -conflux,conflux -conflux espace,conflux -crab network,crab -crescent,crescent -cronos mainnet,cronos -crypto chain,crypto -dfk chain,dfk -dogechain mainnet,dogechain -eos,eos -ethereum,ethereum -ethereum mainnet,ethereum -evmos,evmos -fantom,fantom -fantom opera,fantom -filecoin,filecoin -fuse,fuse -gnosis,gnosis -harmony mainnet shard 0,harmony -huobi eco chain mainnet,huobi eco -injective,injective -juno,juno -karura,karura -kava,kava -klaytn,klaytn -klaytn mainnet cypress,klaytn -kujira,kujira -linea,linea -manta,manta -mantle,mantle -metis,metis -metis andromeda mainnet,metis -moonbeam,moonbeam -moonriver,moonriver -nautilus,nautilus -near,near -neutron,neutron -oasis,oasis -okxchain mainnet,okxchain -ontology mainnet,ontology -op mainnet,optimism -opbnb,opbnb -optimism,optimism -osmosis,osmosis -polygon,polygon -polygon mainnet,polygon -polygon pos,polygon -polygon zkevm,polygon zkevm -ronin,ronin -scroll,scroll -secret-snip,secret -sei,sei -skale europa,skale europa -skale nebula,skale nebula -solana,solana -stargaze,stargaze -starknet,starknet -sui,sui -telos evm mainnet,telos -terra,terra -terra-2,terra2 -terra2,terra2 -tezos,tezos -tron,tron -umee,umee -waves,waves -xpla,xpla -xrpl,xrpl -zkfair,zkfair -zksync era,zksync era -zksync era mainnet,zksync era -zksync lite,zksync lite -zora,zora -zzz,zzz diff --git a/dbt_project.yml b/dbt_project.yml index 128ad71..19a8383 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -106,6 +106,8 @@ models: +enabled: false bridge: +enabled: true + dex: + +enabled: true scores_package: +enabled: true diff --git a/models/gold/defi/defi__dim_dex_liquidity_pools.sql b/models/gold/defi/defi__dim_dex_liquidity_pools.sql deleted file mode 100644 index 1671d71..0000000 --- a/models/gold/defi/defi__dim_dex_liquidity_pools.sql +++ /dev/null @@ -1,42 +0,0 @@ -{{ config( - materialized = 'view', - persist_docs ={ "relation": true, - "columns": true }, - meta={ - 'database_tags':{ - 'table': { - 'PROTOCOL': 'CURVE, BALANCER, SUSHI, HONEYSWAP, SWAPR', - 'PURPOSE': 'DEX, LIQUIDITY, POOLS, LP, SWAPS', - } - } - }, - tags = ['gold','defi','dex','curated'] -) }} - -SELECT - block_number AS creation_block, - block_timestamp AS creation_time, - tx_hash AS creation_tx, - platform, - contract_address AS factory_address, - pool_address, - pool_name, - tokens, - symbols, - decimals, - COALESCE ( - complete_dex_liquidity_pools_id, - {{ dbt_utils.generate_surrogate_key( - ['pool_address'] - ) }} - ) AS dim_dex_liquidity_pools_id, - COALESCE( - inserted_timestamp, - '2000-01-01' - ) AS inserted_timestamp, - COALESCE( - modified_timestamp, - '2000-01-01' - ) AS modified_timestamp -FROM - {{ ref('silver_dex__complete_dex_liquidity_pools') }} \ No newline at end of file diff --git a/models/gold/defi/defi__ez_bridge_activity.sql b/models/gold/defi/defi__ez_bridge_activity.sql deleted file mode 100644 index e6c54d4..0000000 --- a/models/gold/defi/defi__ez_bridge_activity.sql +++ /dev/null @@ -1,64 +0,0 @@ -{{ config( - materialized = 'view', - persist_docs ={ "relation": true, - "columns": true }, - meta ={ - 'database_tags':{ - 'table':{ - 'PROTOCOL': 'CELER, HOP, MESON, CCIP', - 'PURPOSE': 'BRIDGE' - } } }, - tags = ['gold','defi','bridge','curated','ez'] -) }} - -SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - sender, - receiver, - destination_chain_receiver, - COALESCE( - c.standardized_name, - b.destination_chain - ) AS destination_chain, - destination_chain_id, - token_address, - token_symbol, - amount_unadj, - amount, - ROUND( - CASE - WHEN amount_usd < 1e+15 THEN amount_usd - ELSE NULL - END, - 2 - ) AS amount_usd, - token_is_verified, - COALESCE ( - complete_bridge_activity_id, - {{ dbt_utils.generate_surrogate_key( - ['_id'] - ) }} - ) AS ez_bridge_activity_id, - COALESCE( - inserted_timestamp, - '2000-01-01' - ) AS inserted_timestamp, - COALESCE( - modified_timestamp, - '2000-01-01' - ) AS modified_timestamp -FROM - {{ ref('silver_bridge__complete_bridge_activity') }} - b - LEFT JOIN {{ ref('silver_bridge__standard_chain_seed') }} C - ON b.destination_chain = C.variation - diff --git a/models/gold/defi/defi__ez_dex_swaps.sql b/models/gold/defi/defi__ez_dex_swaps.sql deleted file mode 100644 index eedec43..0000000 --- a/models/gold/defi/defi__ez_dex_swaps.sql +++ /dev/null @@ -1,80 +0,0 @@ -{{ config( - materialized = 'view', - persist_docs ={ "relation": true, - "columns": true }, - meta={ - 'database_tags':{ - 'table': { - 'PROTOCOL': 'CURVE, BALANCER, SUSHI, HONEYSWAP, SWAPR', - 'PURPOSE': 'DEX, SWAPS' - } - } - }, - tags = ['gold','defi','dex','curated','ez'] -) }} - -SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - pool_name, - event_name, - amount_in_unadj, - amount_in, - ROUND( - CASE - WHEN token_in <> '0xe91d153e0b41518a2ce8dd3d7944fa863463a97d' or not token_in_is_verified - AND ( - amount_out_usd IS NULL - OR ABS((amount_in_usd - amount_out_usd) / NULLIF(amount_out_usd, 0)) > 0.75 - OR ABS((amount_in_usd - amount_out_usd) / NULLIF(amount_in_usd, 0)) > 0.75 - ) THEN NULL - ELSE amount_in_usd - END, - 2 - ) AS amount_in_usd, - amount_out_unadj, - amount_out, - ROUND( - CASE - WHEN token_out <> '0xe91d153e0b41518a2ce8dd3d7944fa863463a97d' or not token_out_is_verified - AND ( - amount_in_usd IS NULL - OR ABS((amount_out_usd - amount_in_usd) / NULLIF(amount_in_usd, 0)) > 0.75 - OR ABS((amount_out_usd - amount_in_usd) / NULLIF(amount_out_usd, 0)) > 0.75 - ) THEN NULL - ELSE amount_out_usd - END, - 2 - ) AS amount_out_usd, - sender, - tx_to, - event_index, - platform, - protocol, - version as protocol_version, - token_in, - token_in_is_verified, - token_out, - token_out_is_verified, - symbol_in, - symbol_out, - COALESCE ( - complete_dex_swaps_id, - {{ dbt_utils.generate_surrogate_key( - ['tx_hash','event_index'] - ) }} - ) AS ez_dex_swaps_id, - COALESCE( - inserted_timestamp, - '2000-01-01' - ) AS inserted_timestamp, - COALESCE( - modified_timestamp, - '2000-01-01' - ) AS modified_timestamp -FROM {{ ref('silver_dex__complete_dex_swaps') }} \ No newline at end of file diff --git a/models/silver/defi/bridge/ccip/silver_bridge__ccip_send_requested.sql b/models/silver/defi/bridge/ccip/silver_bridge__ccip_send_requested.sql deleted file mode 100644 index 5f535eb..0000000 --- a/models/silver/defi/bridge/ccip/silver_bridge__ccip_send_requested.sql +++ /dev/null @@ -1,146 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = "block_number", - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_bridge','defi','bridge','curated'] -) }} - -WITH on_ramp_set AS ( - - SELECT - block_timestamp, - tx_hash, - event_name, - TRY_TO_NUMBER( - decoded_log :destChainSelector :: STRING - ) AS destChainSelector, - chain_name, - decoded_log :onRamp :: STRING AS onRampAddress, - modified_timestamp - FROM - {{ ref('core__ez_decoded_event_logs') }} - INNER JOIN {{ ref('silver_bridge__ccip_chain_seed') }} - ON destChainSelector = chain_selector - WHERE - contract_address = LOWER('0x4aAD6071085df840abD9Baf1697d5D5992bDadce') -- ccip router - AND topic_0 = '0x1f7d0ec248b80e5c0dde0ee531c4fc8fdb6ce9a2b3d90f560c74acd6a7202f23' -- onrampset - AND tx_succeeded - AND event_removed = FALSE - -{% if is_incremental() %} -AND modified_timestamp >= ( - SELECT - MAX(modified_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND modified_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -), -ccip_sent AS ( - SELECT - l.block_number, - l.block_timestamp, - l.tx_hash, - l.origin_function_signature, - l.origin_from_address, - l.origin_to_address, - contract_address, - l.event_name, - l.event_index, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - CONCAT( - '0x', - segmented_data [13] :: STRING - ) AS message_id, - l.decoded_log, - decoded_log :message :feeToken :: STRING AS fee_token, - TRY_TO_NUMBER( - decoded_log :message :feeTokenAmount :: STRING - ) AS fee_token_amount, - TRY_TO_NUMBER( - decoded_log :message :gasLimit :: STRING - ) AS gas_limit, - TRY_TO_NUMBER( - decoded_log :message :nonce :: STRING - ) AS nonce, - decoded_log :message :receiver :: STRING AS receiver, - decoded_log :message :sender :: STRING AS sender, - TRY_TO_NUMBER( - decoded_log :message :sequenceNumber :: STRING - ) AS sequence_number, - TRY_TO_NUMBER( - decoded_log :message :sourceChainSelector :: STRING - ) AS source_chain_selector, - destChainSelector AS dest_chain_selector, - chain_name, - decoded_log :message :tokenAmounts AS token_amounts, - ARRAY_SIZE( - decoded_log :message :tokenAmounts - ) AS token_amounts_count, - CONCAT( - l.tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - l.modified_timestamp - FROM - {{ ref('core__ez_decoded_event_logs') }} - l - INNER JOIN on_ramp_set - ON onRampAddress = contract_address - WHERE - topic_0 = '0xd0c3c799bf9e2639de44391e7f524d229b2b55f5b1ea94b2bf7da42f7243dddd' -- CCIPSendRequested - AND tx_succeeded - AND event_removed = FALSE - -{% if is_incremental() %} -AND l.modified_timestamp >= ( - SELECT - MAX(modified_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND l.modified_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - C.block_number, - C.block_timestamp, - C.origin_function_signature, - C.origin_from_address, - C.origin_to_address, - C.tx_hash, - C.event_name, - C.event_index, - 'chainlink-ccip' AS platform, - 'v1' AS version, - C.contract_address AS bridge_address, - C.message_id, - C.nonce, - C.receiver, - C.sender, - C.receiver AS destination_chain_receiver, - C.sequence_number, - C.source_chain_selector, - C.dest_chain_selector AS destination_chain_id, - C.chain_name AS destination_chain, - C.gas_limit, - C.fee_token, - -- Divide the fee evenly by the number of tokens in the array - C.fee_token_amount / C.token_amounts_count AS fee_token_amount_per_token, - C.token_amounts_count, - TRY_TO_NUMBER( - tokens.value :amount :: STRING - ) AS amount_unadj, - tokens.value :token :: STRING AS token_address, - C._log_id, - C.modified_timestamp -FROM - ccip_sent C, - LATERAL FLATTEN( - input => C.token_amounts - ) AS tokens -WHERE - token_amounts_count > 0 \ No newline at end of file diff --git a/models/silver/defi/bridge/ccip/silver_bridge__ccip_send_requested.yml b/models/silver/defi/bridge/ccip/silver_bridge__ccip_send_requested.yml deleted file mode 100644 index 1c4635a..0000000 --- a/models/silver/defi/bridge/ccip/silver_bridge__ccip_send_requested.yml +++ /dev/null @@ -1,70 +0,0 @@ -version: 2 -models: - - name: silver_bridge__ccip_send_requested - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _LOG_ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - name: BLOCK_TIMESTAMP - tests: - - not_null - - name: ORIGIN_FUNCTION_SIGNATURE - tests: - - not_null - - name: ORIGIN_FROM_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: ORIGIN_TO_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: EVENT_INDEX - tests: - - not_null - - name: EVENT_NAME - tests: - - not_null - - name: BRIDGE_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: SENDER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: RECEIVER - tests: - - not_null - - name: DESTINATION_CHAIN_RECEIVER - tests: - - not_null - - name: AMOUNT_UNADJ - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - DECIMAL - - FLOAT - - NUMBER - - name: TOKEN_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: MODIFIED_TIMESTAMP - tests: - - not_null \ No newline at end of file diff --git a/models/silver/defi/bridge/celer/silver_bridge__celer_cbridge_send.sql b/models/silver/defi/bridge/celer/silver_bridge__celer_cbridge_send.sql deleted file mode 100644 index c803104..0000000 --- a/models/silver/defi/bridge/celer/silver_bridge__celer_cbridge_send.sql +++ /dev/null @@ -1,95 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = "block_number", - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_bridge','defi','bridge','curated'] -) }} - -WITH base_evt AS ( - - SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - 'celer_cbridge' AS NAME, - event_index, - topics [0] :: STRING AS topic_0, - event_name, - TRY_TO_NUMBER( - decoded_log :"amount" :: STRING - ) AS amount, - TRY_TO_NUMBER( - decoded_log :"dstChainId" :: STRING - ) AS dstChainId, - TRY_TO_NUMBER( - decoded_log :"maxSlippage" :: STRING - ) AS maxSlippage, - TRY_TO_NUMBER( - decoded_log :"nonce" :: STRING - ) AS nonce, - decoded_log :"receiver" :: STRING AS receiver, - decoded_log :"sender" :: STRING AS sender, - decoded_log :"token" :: STRING AS token, - decoded_log :"transferId" :: STRING AS transferId, - decoded_log, - event_removed, - IFF( - tx_succeeded, - 'SUCCESS', - 'FAIL' - ) AS tx_status, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__ez_decoded_event_logs') }} - WHERE - topics [0] :: STRING = '0x89d8051e597ab4178a863a5190407b98abfeff406aa8db90c59af76612e58f01' - AND contract_address = '0x3795c36e7d12a8c252a20c5a7b455f7c57b60283' - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND block_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - block_number, - block_timestamp, - origin_function_signature, - origin_from_address, - origin_to_address, - tx_hash, - event_index, - topic_0, - event_name, - event_removed, - tx_status, - contract_address AS bridge_address, - NAME AS platform, - sender, - receiver, - receiver AS destination_chain_receiver, - amount, - dstChainId AS destination_chain_id, - maxSlippage AS max_slippage, - nonce, - token AS token_address, - transferId AS transfer_id, - _log_id, - _inserted_timestamp -FROM - base_evt diff --git a/models/silver/defi/bridge/celer/silver_bridge__celer_cbridge_send.yml b/models/silver/defi/bridge/celer/silver_bridge__celer_cbridge_send.yml deleted file mode 100644 index 6b0a093..0000000 --- a/models/silver/defi/bridge/celer/silver_bridge__celer_cbridge_send.yml +++ /dev/null @@ -1,70 +0,0 @@ -version: 2 -models: - - name: silver_bridge__celer_cbridge_send - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _LOG_ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - name: BLOCK_TIMESTAMP - tests: - - not_null - - name: ORIGIN_FUNCTION_SIGNATURE - tests: - - not_null - - name: ORIGIN_FROM_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: ORIGIN_TO_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: EVENT_INDEX - tests: - - not_null - - name: EVENT_NAME - tests: - - not_null - - name: BRIDGE_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: SENDER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: RECEIVER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: DESTINATION_CHAIN_RECEIVER - tests: - - not_null - - name: AMOUNT - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - DECIMAL - - FLOAT - - NUMBER - - name: TOKEN_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: _INSERTED_TIMESTAMP diff --git a/models/silver/defi/bridge/hop/silver_bridge__hop_ammwrapper.sql b/models/silver/defi/bridge/hop/silver_bridge__hop_ammwrapper.sql deleted file mode 100644 index 7b6b74d..0000000 --- a/models/silver/defi/bridge/hop/silver_bridge__hop_ammwrapper.sql +++ /dev/null @@ -1,121 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = "block_number", - tags = ['silver_bridge','defi','bridge','curated'] -) }} - -WITH base_contracts AS ( - - SELECT - contract_address, - MAX(block_number) AS block_number - FROM - {{ ref('core__fact_event_logs') }} - WHERE - topics [0] :: STRING = '0xe35dddd4ea75d7e9b3fe93af4f4e40e778c3da4074c9d93e7c6536f1e803c1eb' - AND tx_succeeded - -{% if is_incremental() %} -AND modified_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND contract_address NOT IN ( - SELECT - DISTINCT contract_address - FROM - {{ this }} -) -AND modified_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -GROUP BY - 1 -), -function_sigs AS ( - SELECT - '0xe9cdfe51' AS function_sig, - 'ammWrapper' AS function_name -), -inputs AS ( - SELECT - contract_address, - block_number, - function_sig, - function_name, - 0 AS function_input, - CONCAT( - function_sig, - LPAD( - function_input, - 64, - 0 - ) - ) AS DATA - FROM - base_contracts - JOIN function_sigs - ON 1 = 1 -), -contract_reads AS ( - SELECT - contract_address, - block_number, - function_sig, - function_name, - function_input, - DATA, - utils.udf_json_rpc_call( - 'eth_call', - [{ 'to': contract_address, 'from': null, 'data': data }, utils.udf_int_to_hex(block_number) ] - ) AS rpc_request, - live.udf_api( - 'POST', - CONCAT( - '{service}', - '/', - '{Authentication}' - ),{}, - rpc_request, - 'Vault/prod/gnosis/quicknode/mainnet' - ) AS read_output, - SYSDATE() AS _inserted_timestamp - FROM - inputs -), -reads_flat AS ( - SELECT - read_output, - read_output :data :id :: STRING AS read_id, - read_output :data :result :: STRING AS read_result, - SPLIT( - read_id, - '-' - ) AS read_id_object, - function_sig, - function_name, - function_input, - DATA, - contract_address, - block_number, - _inserted_timestamp - FROM - contract_reads -) -SELECT - read_output, - read_id, - read_result, - read_id_object, - function_sig, - function_name, - function_input, - DATA, - block_number, - contract_address, - CONCAT('0x', SUBSTR(read_result, 27, 40)) AS amm_wrapper_address, - _inserted_timestamp -FROM - reads_flat diff --git a/models/silver/defi/bridge/hop/silver_bridge__hop_ammwrapper.yml b/models/silver/defi/bridge/hop/silver_bridge__hop_ammwrapper.yml deleted file mode 100644 index 0184c2c..0000000 --- a/models/silver/defi/bridge/hop/silver_bridge__hop_ammwrapper.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: 2 -models: - - name: silver_bridge__hop_ammwrapper - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - CONTRACT_ADDRESS - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - name: AMM_WRAPPER_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ \ No newline at end of file diff --git a/models/silver/defi/bridge/hop/silver_bridge__hop_l2canonicaltoken.sql b/models/silver/defi/bridge/hop/silver_bridge__hop_l2canonicaltoken.sql deleted file mode 100644 index ce86800..0000000 --- a/models/silver/defi/bridge/hop/silver_bridge__hop_l2canonicaltoken.sql +++ /dev/null @@ -1,119 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = "block_number", - tags = ['silver_bridge','defi','bridge','curated'] -) }} - -WITH base_contracts AS ( - - SELECT - contract_address, - amm_wrapper_address, - block_number - FROM - {{ ref('silver_bridge__hop_ammwrapper') }} - -{% if is_incremental() %} -WHERE - amm_wrapper_address NOT IN ( - SELECT - DISTINCT amm_wrapper_address - FROM - {{ this }} - ) -{% endif %} -), -function_sigs AS ( - SELECT - '0x1ee1bf67' AS function_sig, - 'l2CanonicalToken' AS function_name -), -inputs AS ( - SELECT - amm_wrapper_address, - block_number, - function_sig, - function_name, - 0 AS function_input, - CONCAT( - function_sig, - LPAD( - function_input, - 64, - 0 - ) - ) AS DATA - FROM - base_contracts - JOIN function_sigs - ON 1 = 1 -), -contract_reads AS ( - SELECT - amm_wrapper_address, - block_number, - function_sig, - function_name, - function_input, - DATA, - utils.udf_json_rpc_call( - 'eth_call', - [{ 'to': amm_wrapper_address, 'from': null, 'data': data }, utils.udf_int_to_hex(block_number) ] - ) AS rpc_request, - live.udf_api( - 'POST', - CONCAT( - '{service}', - '/', - '{Authentication}' - ),{}, - rpc_request, - 'Vault/prod/gnosis/quicknode/mainnet' - ) AS read_output, - SYSDATE() AS _inserted_timestamp - FROM - inputs -), -reads_flat AS ( - SELECT - read_output, - read_output :data :id :: STRING AS read_id, - read_output :data :result :: STRING AS read_result, - SPLIT( - read_id, - '-' - ) AS read_id_object, - function_sig, - function_name, - function_input, - DATA, - amm_wrapper_address, - block_number, - _inserted_timestamp - FROM - contract_reads -) -SELECT - read_output, - read_id, - read_result, - read_id_object, - function_sig, - function_name, - function_input, - DATA, - block_number, - contract_address, - amm_wrapper_address, - CASE - WHEN contract_address = '0x6f03052743cd99ce1b29265e377e320cd24eb632' THEN '0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc' - ELSE CONCAT('0x', SUBSTR(read_result, 27, 40)) - END AS token_address, - _inserted_timestamp -FROM - reads_flat - LEFT JOIN base_contracts USING(amm_wrapper_address) -WHERE - token_address <> '0x' - AND token_address IS NOT NULL diff --git a/models/silver/defi/bridge/hop/silver_bridge__hop_l2canonicaltoken.yml b/models/silver/defi/bridge/hop/silver_bridge__hop_l2canonicaltoken.yml deleted file mode 100644 index 0047e44..0000000 --- a/models/silver/defi/bridge/hop/silver_bridge__hop_l2canonicaltoken.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: 2 -models: - - name: silver_bridge__hop_l2canonicaltoken - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - CONTRACT_ADDRESS - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - name: TOKEN_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ \ No newline at end of file diff --git a/models/silver/defi/bridge/hop/silver_bridge__hop_transfersent.sql b/models/silver/defi/bridge/hop/silver_bridge__hop_transfersent.sql deleted file mode 100644 index cf00922..0000000 --- a/models/silver/defi/bridge/hop/silver_bridge__hop_transfersent.sql +++ /dev/null @@ -1,115 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = "block_number", - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_bridge','defi','bridge','curated'] -) }} - -WITH base_evt AS ( - - SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - 'hop' AS NAME, - event_index, - topics [0] :: STRING AS topic_0, - event_name, - TRY_TO_NUMBER( - decoded_log :"amount" :: STRING - ) AS amount, - TRY_TO_NUMBER( - decoded_log :"amountOutMin" :: STRING - ) AS amountOutMin, - TRY_TO_NUMBER( - decoded_log :"bonderFee" :: STRING - ) AS bonderFee, - TRY_TO_NUMBER( - decoded_log :"chainId" :: STRING - ) AS chainId, - TRY_TO_TIMESTAMP( - decoded_log :"deadline" :: STRING - ) AS deadline, - TRY_TO_TIMESTAMP( - decoded_log :"index" :: STRING - ) AS INDEX, - decoded_log :"recipient" :: STRING AS recipient, - decoded_log :"transferId" :: STRING AS transferId, - decoded_log :"transferNonce" :: STRING AS transferNonce, - decoded_log, - event_removed, - IFF( - tx_succeeded, - 'SUCCESS', - 'FAIL' - ) AS tx_status, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__ez_decoded_event_logs') }} - WHERE - topics [0] :: STRING = '0xe35dddd4ea75d7e9b3fe93af4f4e40e778c3da4074c9d93e7c6536f1e803c1eb' - AND origin_to_address IS NOT NULL - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND block_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -), -hop_tokens AS ( - SELECT - block_number, - contract_address, - amm_wrapper_address, - token_address, - _inserted_timestamp - FROM - {{ ref('silver_bridge__hop_l2canonicaltoken') }} -) -SELECT - block_number, - block_timestamp, - origin_function_signature, - origin_from_address, - origin_to_address, - tx_hash, - event_index, - topic_0, - event_name, - event_removed, - tx_status, - contract_address AS bridge_address, - amm_wrapper_address, - NAME AS platform, - origin_from_address AS sender, - recipient AS receiver, - receiver AS destination_chain_receiver, - chainId AS destination_chain_id, - token_address, - amount, - amountOutMin AS amount_out_min, - bonderFee AS bonder_fee, - deadline, - INDEX, - transferId AS transfer_id, - transferNonce AS transfer_nonce, - _log_id, - _inserted_timestamp -FROM - base_evt b - LEFT JOIN hop_tokens h USING(contract_address) diff --git a/models/silver/defi/bridge/hop/silver_bridge__hop_transfersent.yml b/models/silver/defi/bridge/hop/silver_bridge__hop_transfersent.yml deleted file mode 100644 index 0dfe9f2..0000000 --- a/models/silver/defi/bridge/hop/silver_bridge__hop_transfersent.yml +++ /dev/null @@ -1,74 +0,0 @@ -version: 2 -models: - - name: silver_bridge__hop_transfersent - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _LOG_ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - name: BLOCK_TIMESTAMP - tests: - - not_null - - name: ORIGIN_FUNCTION_SIGNATURE - tests: - - not_null - - name: ORIGIN_FROM_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: ORIGIN_TO_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: EVENT_INDEX - tests: - - not_null - - name: EVENT_NAME - tests: - - not_null - - name: BRIDGE_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: SENDER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: RECEIVER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: DESTINATION_CHAIN_RECEIVER - tests: - - not_null - - name: AMOUNT - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - DECIMAL - - FLOAT - - NUMBER - - name: TOKEN_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: _INSERTED_TIMESTAMP - tests: - - dbt_expectations.expect_row_values_to_have_recent_data: - datepart: day - interval: 3 diff --git a/models/silver/defi/bridge/meson/silver_bridge__meson_transfers.sql b/models/silver/defi/bridge/meson/silver_bridge__meson_transfers.sql deleted file mode 100644 index e0426c3..0000000 --- a/models/silver/defi/bridge/meson/silver_bridge__meson_transfers.sql +++ /dev/null @@ -1,184 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = "block_number", - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_bridge','defi','bridge','curated'] -) }} - -WITH token_transfers AS ( - - SELECT - block_number, - block_timestamp, - origin_function_signature, - origin_from_address, - origin_to_address, - tx_hash, - event_index, - contract_address, - from_address, - to_address, - raw_amount, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__ez_token_transfers') }} - WHERE - from_address <> '0x0000000000000000000000000000000000000000' - AND to_address = '0x25ab3efd52e6470681ce037cd546dc60726948d3' - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -), -native_transfers AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - origin_from_address, - origin_to_address, - origin_function_signature, - from_address, - to_address, - amount_precise_raw, - CONCAT( - tx_hash :: STRING, - '-', - trace_index :: STRING - ) AS _call_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__ez_native_transfers') }} - WHERE - to_address = '0x25ab3efd52e6470681ce037cd546dc60726948d3' - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -{% endif %} -), -all_transfers AS ( - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - 'Transfer' AS event_name, - to_address AS bridge_address, - from_address AS sender, - to_address AS receiver, - raw_amount AS amount_unadj, - contract_address AS token_address, - {{ dbt_utils.generate_surrogate_key( - ['_log_id'] - ) }} AS _id, - _inserted_timestamp - FROM - token_transfers - UNION ALL - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - NULL AS event_index, - NULL AS event_name, - to_address AS bridge_address, - from_address AS sender, - to_address AS receiver, - amount_precise_raw AS amount_unadj, - '0xe91d153e0b41518a2ce8dd3d7944fa863463a97d' AS token_address, - {{ dbt_utils.generate_surrogate_key( - ['_call_id'] - ) }} AS _id, - _inserted_timestamp - FROM - native_transfers -), -dst_info AS ( - SELECT - block_number, - tx_hash, - topics [1] :: STRING AS encoded_data, - SUBSTR(RIGHT(encoded_data, 12), 1, 4) AS destination_chain_id, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__fact_event_logs') }} - WHERE - contract_address = '0x25ab3efd52e6470681ce037cd546dc60726948d3' - AND topics [0] :: STRING = '0x5ce4019f772fda6cb703b26bce3ec3006eb36b73f1d3a0eb441213317d9f5e9d' - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '16 hours' - FROM - {{ this }} -) -{% endif %} -) -SELECT - t.block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - t.tx_hash, - event_index, - event_name, - 'meson' AS platform, - bridge_address, - sender, - receiver, - CASE - WHEN origin_from_address = '0x0000000000000000000000000000000000000000' THEN sender - ELSE origin_from_address - END AS destination_chain_receiver, - amount_unadj, - destination_chain_id, - COALESCE(LOWER(chain), 'other') AS destination_chain, - token_address, - _id, - t._inserted_timestamp -FROM - all_transfers t - INNER JOIN dst_info d - ON t.tx_hash = d.tx_hash - AND t.block_number = d.block_number - LEFT JOIN {{ ref('silver_bridge__meson_chain_id_seed') }} - s - ON d.destination_chain_id :: STRING = RIGHT( - s.short_coin_type, - 4 - ) :: STRING -WHERE - origin_to_address IS NOT NULL qualify (ROW_NUMBER() over (PARTITION BY _id -ORDER BY - t._inserted_timestamp DESC)) = 1 diff --git a/models/silver/defi/bridge/meson/silver_bridge__meson_transfers.yml b/models/silver/defi/bridge/meson/silver_bridge__meson_transfers.yml deleted file mode 100644 index 045a3ab..0000000 --- a/models/silver/defi/bridge/meson/silver_bridge__meson_transfers.yml +++ /dev/null @@ -1,47 +0,0 @@ -version: 2 -models: - - name: silver_bridge__meson_transfers - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - name: BLOCK_TIMESTAMP - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_LTZ - - TIMESTAMP_NTZ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: TOKEN_ADDRESS - tests: - - not_null - - name: SENDER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: DESTINATION_CHAIN_RECEIVER - tests: - - not_null - - name: BRIDGE_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: AMOUNT_UNADJ - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - DECIMAL - - FLOAT - - NUMBER diff --git a/models/silver/defi/bridge/silver_bridge__complete_bridge_activity.sql b/models/silver/defi/bridge/silver_bridge__complete_bridge_activity.sql deleted file mode 100644 index 8b2efcf..0000000 --- a/models/silver/defi/bridge/silver_bridge__complete_bridge_activity.sql +++ /dev/null @@ -1,604 +0,0 @@ --- depends_on: {{ ref('silver__complete_token_prices') }} --- depends_on: {{ ref('price__ez_asset_metadata') }} -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = ['block_number','platform','version'], - cluster_by = ['block_timestamp::DATE','platform'], - post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION ON EQUALITY(tx_hash, origin_from_address, origin_to_address, origin_function_signature, bridge_address, sender, receiver, destination_chain_receiver, destination_chain_id, destination_chain, token_address, token_symbol), SUBSTRING(origin_function_signature, bridge_address, sender, receiver, destination_chain_receiver, destination_chain, token_address, token_symbol)", - tags = ['silver_bridge','defi','bridge','curated','heal'] -) }} - -WITH celer_cbridge AS ( - - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - 'v1' AS version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id :: STRING AS destination_chain_id, - NULL AS destination_chain, - token_address, - amount AS amount_unadj, - _log_id AS _id, - _inserted_timestamp - FROM - {{ ref('silver_bridge__celer_cbridge_send') }} - -{% if is_incremental() and 'celer_cbridge' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -ccip AS ( - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - 'v1' AS version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id :: STRING AS destination_chain_id, - destination_chain, - token_address, - amount_unadj, - _log_id AS _id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('silver_bridge__ccip_send_requested') }} - -{% if is_incremental() and 'ccip' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -hop AS ( - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - 'v1' AS version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id :: STRING AS destination_chain_id, - NULL AS destination_chain, - token_address, - amount AS amount_unadj, - _log_id AS _id, - _inserted_timestamp - FROM - {{ ref('silver_bridge__hop_transfersent') }} - -{% if is_incremental() and 'hop' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -layerzero_v2 AS ( - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id :: STRING AS destination_chain_id, - destination_chain, - token_address, - amount_unadj, - _log_id AS _id, - inserted_timestamp AS _inserted_timestamp - FROM - {{ ref('silver_bridge__layerzero_v2') }} - -{% if is_incremental() and 'layerzero_v2' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -meson AS ( - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - 'v1' AS version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id :: STRING AS destination_chain_id, - destination_chain, - token_address, - amount_unadj, - _id, - _inserted_timestamp - FROM - {{ ref('silver_bridge__meson_transfers') }} - -{% if is_incremental() and 'meson' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -stargate_v2 AS ( - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id :: STRING AS destination_chain_id, - destination_chain, - token_address, - amount_unadj, - _log_id AS _id, - inserted_timestamp AS _inserted_timestamp - FROM - {{ ref('silver_bridge__stargate_v2') }} - -{% if is_incremental() and 'stargate_v2' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -all_protocols AS ( - SELECT - * - FROM - celer_cbridge - UNION ALL - SELECT - * - FROM - ccip - UNION ALL - SELECT - * - FROM - hop - UNION ALL - SELECT - * - FROM - layerzero_v2 - UNION ALL - SELECT - * - FROM - meson - UNION ALL - SELECT - * - FROM - stargate_v2 -), -complete_bridge_activity AS ( - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - version, - sender, - receiver, - destination_chain_receiver, - CASE - WHEN CONCAT( - platform, - '-', - version - ) IN ( - 'meson-v1', - 'chainlink-ccip-v1', - 'stargate-v2', - 'layerzero-v2' - ) THEN destination_chain_id :: STRING - WHEN d.chain_id IS NULL THEN destination_chain_id :: STRING - ELSE d.chain_id :: STRING - END AS destination_chain_id, - CASE - WHEN CONCAT( - platform, - '-', - version - ) IN ( - 'meson-v1', - 'chainlink-ccip-v1', - 'stargate-v2', - 'layerzero-v2' - ) THEN LOWER(destination_chain) - WHEN d.chain IS NULL THEN LOWER(destination_chain) - ELSE LOWER( - d.chain - ) - END AS destination_chain, - b.token_address, - C.token_symbol AS token_symbol, - C.token_decimals AS token_decimals, - amount_unadj, - CASE - WHEN C.token_decimals IS NOT NULL THEN (amount_unadj / pow(10, C.token_decimals)) - ELSE amount_unadj - END AS amount, - CASE - WHEN C.token_decimals IS NOT NULL THEN ROUND( - amount * p.price, - 2 - ) - ELSE NULL - END AS amount_usd, - p.is_verified AS token_is_verified, - _id, - b._inserted_timestamp - FROM - all_protocols b - LEFT JOIN {{ ref('silver__contracts') }} C - ON b.token_address = C.contract_address - LEFT JOIN {{ ref('price__ez_prices_hourly') }} - p - ON b.token_address = p.token_address - AND DATE_TRUNC( - 'hour', - block_timestamp - ) = p.hour - LEFT JOIN {{ source( - 'external_gold_defillama', - 'dim_chains' - ) }} - d - ON d.chain_id :: STRING = b.destination_chain_id :: STRING - OR LOWER( - d.chain - ) = LOWER( - b.destination_chain - ) -), - -{% if is_incremental() and var( - 'HEAL_MODEL' -) %} -heal_model AS ( - SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id, - destination_chain, - t0.token_address, - C.token_symbol AS token_symbol, - C.token_decimals AS token_decimals, - amount_unadj, - CASE - WHEN C.token_decimals IS NOT NULL THEN (amount_unadj / pow(10, C.token_decimals)) - ELSE amount_unadj - END AS amount_heal, - CASE - WHEN C.token_decimals IS NOT NULL THEN amount_heal * p.price - ELSE NULL - END AS amount_usd_heal, - p.is_verified AS token_is_verified, - _id, - t0._inserted_timestamp - FROM - {{ this }} - t0 - LEFT JOIN {{ ref('silver__contracts') }} C - ON t0.token_address = C.contract_address - LEFT JOIN {{ ref('price__ez_prices_hourly') }} - p - ON t0.token_address = p.token_address - AND DATE_TRUNC( - 'hour', - block_timestamp - ) = p.hour - WHERE - CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t1.block_number, - '-', - t1.platform, - '-', - t1.version - ) - FROM - {{ this }} - t1 - WHERE - t1.token_decimals IS NULL - AND t1._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t1.token_address) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t2.block_number, - '-', - t2.platform, - '-', - t2.version - ) - FROM - {{ this }} - t2 - WHERE - t2.amount_usd IS NULL - AND t2._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__complete_token_prices') }} - p - WHERE - p._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND p.price IS NOT NULL - AND p.token_address = t2.token_address - AND p.hour = DATE_TRUNC( - 'hour', - t2.block_timestamp - ) - ) - GROUP BY - 1 - ) - ), - newly_verified_tokens as ( - select token_address - from {{ ref('price__ez_asset_metadata') }} - where ifnull(is_verified_modified_timestamp, '1970-01-01' :: TIMESTAMP) > dateadd('day', -10, SYSDATE()) - ), - heal_newly_verified_tokens as ( - SELECT - t0.block_number, - t0.block_timestamp, - t0.origin_from_address, - t0.origin_to_address, - t0.origin_function_signature, - t0.tx_hash, - t0.event_index, - t0.bridge_address, - t0.event_name, - t0.platform, - t0.version, - t0.sender, - t0.receiver, - t0.destination_chain_receiver, - t0.destination_chain_id, - t0.destination_chain, - t0.token_address, - t0.token_symbol, - t0.token_decimals, - t0.amount_unadj, - t0.amount, - CASE - WHEN t0.token_decimals IS NOT NULL THEN t0.amount * p.price - ELSE NULL - END AS amount_usd_heal, - p.is_verified AS token_is_verified, - t0._id, - t0._inserted_timestamp - from {{ this }} t0 - join newly_verified_tokens nv - on t0.token_address = nv.token_address - left join {{ ref('price__ez_prices_hourly')}} p - on t0.token_address = p.token_address - and date_trunc('hour', t0.block_timestamp) = p.hour - ), - {% endif %} - - FINAL AS ( - SELECT - * - FROM - complete_bridge_activity - -{% if is_incremental() and var( - 'HEAL_MODEL' -) %} -UNION ALL -SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id, - destination_chain, - token_address, - token_symbol, - token_decimals, - amount_unadj, - amount_heal AS amount, - amount_usd_heal AS amount_usd, - token_is_verified, - _id, - _inserted_timestamp -FROM - heal_model -UNION ALL -SELECT - * -FROM - heal_newly_verified_tokens -{% endif %} -) -SELECT - block_number, - block_timestamp, - origin_from_address, - origin_to_address, - origin_function_signature, - tx_hash, - event_index, - bridge_address, - event_name, - platform, - version, - sender, - receiver, - destination_chain_receiver, - destination_chain_id, - destination_chain, - token_address, - token_symbol, - token_decimals, - amount_unadj, - amount, - amount_usd, - ifnull(token_is_verified, false) as token_is_verified, - _id, - _inserted_timestamp, - {{ dbt_utils.generate_surrogate_key( - ['_id'] - ) }} AS complete_bridge_activity_id, - SYSDATE() AS inserted_timestamp, - SYSDATE() AS modified_timestamp, - '{{ invocation_id }}' AS _invocation_id -FROM - FINAL -WHERE - destination_chain <> 'gnosis' qualify (ROW_NUMBER() over (PARTITION BY _id -ORDER BY - _inserted_timestamp DESC)) = 1 diff --git a/models/silver/defi/bridge/silver_bridge__complete_bridge_activity.yml b/models/silver/defi/bridge/silver_bridge__complete_bridge_activity.yml deleted file mode 100644 index 33a65fb..0000000 --- a/models/silver/defi/bridge/silver_bridge__complete_bridge_activity.yml +++ /dev/null @@ -1,81 +0,0 @@ -version: 2 -models: - - name: silver_bridge__complete_bridge_activity - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - name: BLOCK_TIMESTAMP - tests: - - not_null - - name: ORIGIN_FUNCTION_SIGNATURE - tests: - - not_null - - name: ORIGIN_FROM_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: ORIGIN_TO_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: EVENT_INDEX - tests: - - not_null: - where: VERSION <> 'v1-native' AND PLATFORM NOT IN ('wormhole','meson') - - name: EVENT_NAME - tests: - - not_null: - where: VERSION <> 'v1-native' AND PLATFORM NOT IN ('wormhole','meson') - - name: BRIDGE_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: DESTINATION_CHAIN - - name: DESTINATION_CHAIN_RECEIVER - tests: - - not_null - - name: PLATFORM - - not_null - - name: VERSION - - not_null - - name: SENDER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: RECEIVER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: AMOUNT_UNADJ - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - DECIMAL - - FLOAT - - NUMBER - - name: TOKEN_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: _INSERTED_TIMESTAMP - tests: - - dbt_expectations.expect_row_values_to_have_recent_data: - datepart: day - interval: 3 diff --git a/models/silver/defi/dex/balancer/silver_dex__balancer_pools.sql b/models/silver/defi/dex/balancer/silver_dex__balancer_pools.sql deleted file mode 100644 index ac179f1..0000000 --- a/models/silver/defi/dex/balancer/silver_dex__balancer_pools.sql +++ /dev/null @@ -1,249 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'pool_address', - full_refresh = false, - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pools_registered AS ( - - SELECT - block_number, - block_timestamp, - event_index, - tx_hash, - contract_address, - topics [1] :: STRING AS pool_id, - SUBSTR( - topics [1] :: STRING, - 1, - 42 - ) AS pool_address, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp, - ROW_NUMBER() over ( - ORDER BY - pool_address - ) AS row_num - FROM - {{ ref('core__fact_event_logs') }} - WHERE - topics [0] :: STRING = '0x3c13bc30b8e878c53fd2a36b679409c073afd75950be43d8858768e956fbc20e' --PoolRegistered - AND contract_address = '0xba12222222228d8ba445958a75a0704d566bf2c8' - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND block_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -), -tokens_registered AS ( - SELECT - block_number, - block_timestamp, - event_index, - tx_hash, - contract_address, - decoded_log :poolId :: STRING AS pool_id, - decoded_log :tokens AS tokens, - tokens [0] :: STRING AS token0, - tokens [1] :: STRING AS token1, - tokens [2] :: STRING AS token2, - tokens [3] :: STRING AS token3, - tokens [4] :: STRING AS token4, - tokens [5] :: STRING AS token5, - tokens [6] :: STRING AS token6, - tokens [7] :: STRING AS token7, - decoded_log :assetManagers AS asset_managers, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__ez_decoded_event_logs') }} - WHERE - topics [0] :: STRING = '0xf5847d3f2197b16cdcd2098ec95d0905cd1abdaf415f07bb7cef2bba8ac5dec4' --TokensRegistered - AND contract_address = '0xba12222222228d8ba445958a75a0704d566bf2c8' - AND tx_hash IN ( - SELECT - tx_hash - FROM - pools_registered - ) - AND tx_succeeded -), -function_sigs AS ( - SELECT - '0x06fdde03' AS function_sig, - 'name' AS function_name - UNION ALL - SELECT - '0x95d89b41' AS function_sig, - 'symbol' AS function_name - UNION ALL - SELECT - '0x313ce567' AS function_sig, - 'decimals' AS function_name -), -inputs_pools AS ( - SELECT - pool_address, - block_number, - function_sig - FROM - pools_registered - JOIN function_sigs - ON 1 = 1 -), -build_rpc_requests AS ( - SELECT - pool_address, - block_number, - function_sig, - RPAD( - function_sig, - 64, - '0' - ) AS input, - utils.udf_json_rpc_call( - 'eth_call', - [{'to': pool_address, 'from': null, 'data': input}, utils.udf_int_to_hex(block_number)], - concat_ws( - '-', - pool_address, - input, - block_number - ) - ) AS rpc_request, - row_num, - CEIL( - row_num / 250 - ) AS batch_no - FROM - inputs_pools - LEFT JOIN pools_registered USING(pool_address) -), -pool_token_reads AS ({% for item in range(10) %} - ( -SELECT - live.udf_api('POST', CONCAT('{service}', '/', '{Authentication}'),{}, batch_rpc_request, 'Vault/prod/gnosis/quicknode/mainnet') AS read_output, SYSDATE() AS _inserted_timestamp -FROM - ( -SELECT - ARRAY_AGG(rpc_request) batch_rpc_request -FROM - build_rpc_requests -WHERE - batch_no = {{ item }} + 1 - AND batch_no IN ( -SELECT - DISTINCT batch_no -FROM - build_rpc_requests))) {% if not loop.last %} - UNION ALL - {% endif %} -{% endfor %}), -reads_adjusted AS ( - SELECT - VALUE :id :: STRING AS read_id, - VALUE :result :: STRING AS read_result, - SPLIT( - read_id, - '-' - ) AS read_id_object, - read_id_object [0] :: STRING AS pool_address, - LEFT( - read_id_object [1] :: STRING, - 10 - ) AS function_sig, - read_id_object [2] :: STRING AS block_number, - _inserted_timestamp - FROM - pool_token_reads, - LATERAL FLATTEN( - input => read_output :data - ) -), -pool_details AS ( - SELECT - pool_address, - function_sig, - function_name, - read_result, - regexp_substr_all(SUBSTR(read_result, 3, len(read_result)), '.{64}') AS segmented_output, - _inserted_timestamp - FROM - reads_adjusted - LEFT JOIN function_sigs USING(function_sig) -), -FINAL AS ( - SELECT - pool_address, - MIN( - CASE - WHEN function_name = 'symbol' THEN utils.udf_hex_to_string( - segmented_output [2] :: STRING - ) - END - ) AS pool_symbol, - MIN( - CASE - WHEN function_name = 'name' THEN utils.udf_hex_to_string( - segmented_output [2] :: STRING - ) - END - ) AS pool_name, - MIN( - CASE - WHEN read_result :: STRING = '0x' THEN NULL - ELSE utils.udf_hex_to_int(LEFT(read_result :: STRING, 66)) - END - ) :: INTEGER AS pool_decimals, - MAX(_inserted_timestamp) AS _inserted_timestamp - FROM - pool_details - GROUP BY - 1 -) -SELECT - p.block_number, - p.block_timestamp, - p.event_index, - p.tx_hash, - p.contract_address, - p.pool_id, - f.pool_address, - f.pool_symbol, - f.pool_name, - f.pool_decimals, - t.token0, - t.token1, - t.token2, - t.token3, - t.token4, - t.token5, - t.token6, - t.token7, - t.asset_managers, - p._log_id, - f._inserted_timestamp -FROM - FINAL f - LEFT JOIN pools_registered p - ON f.pool_address = p.pool_address - LEFT JOIN tokens_registered t - ON p.pool_id = t.pool_id -WHERE - t.token0 IS NOT NULL diff --git a/models/silver/defi/dex/balancer/silver_dex__balancer_pools.yml b/models/silver/defi/dex/balancer/silver_dex__balancer_pools.yml deleted file mode 100644 index 8657119..0000000 --- a/models/silver/defi/dex/balancer/silver_dex__balancer_pools.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: 2 -models: - - name: silver_dex__balancer_pools - - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - POOL_ADDRESS - - - - \ No newline at end of file diff --git a/models/silver/defi/dex/balancer/silver_dex__balancer_swaps.sql b/models/silver/defi/dex/balancer/silver_dex__balancer_swaps.sql deleted file mode 100644 index df7d474..0000000 --- a/models/silver/defi/dex/balancer/silver_dex__balancer_swaps.sql +++ /dev/null @@ -1,97 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'block_number', - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pools AS ( - - SELECT - pool_name, - pool_address - FROM - {{ ref('silver_dex__balancer_pools') }} -), -swaps_base AS ( - SELECT - tx_hash, - block_number, - block_timestamp, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - 'Swap' AS event_name, - event_index, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [0] :: STRING - ) - ) AS amount_in_unadj, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [1] :: STRING - ) - ) AS amount_out_unadj, - topics [1] :: STRING AS pool_id, - CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS token_in, - CONCAT('0x', SUBSTR(topics [3] :: STRING, 27, 40)) AS token_out, - SUBSTR( - topics [1] :: STRING, - 1, - 42 - ) AS pool_address, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp, - 'balancer' AS platform, - origin_from_address AS sender, - origin_from_address AS tx_to - FROM - {{ ref('core__fact_event_logs') }} - WHERE - topics [0] :: STRING = '0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b' - AND contract_address = '0xba12222222228d8ba445958a75a0704d566bf2c8' - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - tx_hash, - block_number, - block_timestamp, - origin_function_signature, - origin_from_address, - origin_to_address, - event_index, - amount_in_unadj, - amount_out_unadj, - token_in, - token_out, - sender, - tx_to, - pool_id, - s.pool_address AS contract_address, - pool_name, - event_name, - platform, - _log_id, - _inserted_timestamp -FROM - swaps_base s - INNER JOIN pools p - ON p.pool_address = s.pool_address diff --git a/models/silver/defi/dex/balancer/silver_dex__balancer_swaps.yml b/models/silver/defi/dex/balancer/silver_dex__balancer_swaps.yml deleted file mode 100644 index 0cf331f..0000000 --- a/models/silver/defi/dex/balancer/silver_dex__balancer_swaps.yml +++ /dev/null @@ -1,66 +0,0 @@ -version: 2 -models: - - name: silver_dex__balancer_swaps - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _log_id - columns: - - name: AMOUNT_IN_UNADJ - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - decimal - - float - - number - - name: AMOUNT_OUT_UNADJ - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - decimal - - float - - number - - name: TOKEN_IN - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: TOKEN_OUT - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: BLOCK_TIMESTAMP - tests: - - not_null - - dbt_expectations.expect_row_values_to_have_recent_data: - datepart: day - interval: 1 - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_LTZ - - TIMESTAMP_NTZ - - name: EVENT_INDEX - tests: - - not_null - - name: CONTRACT_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: POOL_NAME - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - varchar - - name: SENDER - tests: - - not_null - - name: TX_TO - tests: - - not_null - - name: TX_HASH - tests: - - not_null \ No newline at end of file diff --git a/models/silver/defi/dex/curve/silver_dex__curve_pools.sql b/models/silver/defi/dex/curve/silver_dex__curve_pools.sql deleted file mode 100644 index a4292cc..0000000 --- a/models/silver/defi/dex/curve/silver_dex__curve_pools.sql +++ /dev/null @@ -1,440 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'pool_address', - full_refresh = false, - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH contract_deployments AS ( - - SELECT - tx_hash, - block_number, - block_timestamp, - from_address AS deployer_address, - to_address AS contract_address, - concat_ws( - '-', - block_number, - tx_position, - CONCAT( - TYPE, - '_', - trace_address - ) - ) AS _call_id, - modified_timestamp AS _inserted_timestamp, - ROW_NUMBER() over ( - ORDER BY - contract_address - ) AS row_num - FROM - {{ ref( - 'core__fact_traces' - ) }} - WHERE - -- curve contract deployers - from_address IN ( - '0x7eeac6cddbd1d0b8af061742d41877d7f707289a', - '0xcbaf0a32f5a16b326f00607421857f68fc72e508', - '0xd25fcbb7b6021cf83122fcd65be88a045d5f961c', - '0xd19baeadc667cf2015e395f2b08668ef120f41f5' - ) - AND TYPE ILIKE 'create%' - AND tx_succeeded - AND trace_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} - -qualify(ROW_NUMBER() over(PARTITION BY to_address -ORDER BY - block_timestamp ASC)) = 1 -), -function_sigs AS ( - SELECT - '0x87cb4f57' AS function_sig, - 'base_coins' AS function_name - UNION ALL - SELECT - '0xb9947eb0' AS function_sig, - 'underlying_coins' AS function_name - UNION ALL - SELECT - '0xc6610657' AS function_sig, - 'coins' AS function_name - UNION ALL - SELECT - '0x06fdde03' AS function_sig, - 'name' AS function_name - UNION ALL - SELECT - '0x95d89b41' AS function_sig, - 'symbol' AS function_name - UNION ALL - SELECT - '0x313ce567' AS function_sig, - 'decimals' AS function_name -), -function_inputs AS ( - SELECT - SEQ4() AS function_input - FROM - TABLE(GENERATOR(rowcount => 8)) -), -inputs_coins AS ( - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - (ROW_NUMBER() over (PARTITION BY contract_address - ORDER BY - block_number)) - 1 AS function_input - FROM - contract_deployments - JOIN function_sigs - ON 1 = 1 - JOIN function_inputs - ON 1 = 1 - WHERE - function_name = 'coins' -), -inputs_base_coins AS ( - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - (ROW_NUMBER() over (PARTITION BY contract_address - ORDER BY - block_number)) - 1 AS function_input - FROM - contract_deployments - JOIN function_sigs - ON 1 = 1 - JOIN function_inputs - ON 1 = 1 - WHERE - function_name = 'base_coins' -), -inputs_underlying_coins AS ( - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - (ROW_NUMBER() over (PARTITION BY contract_address - ORDER BY - block_number)) - 1 AS function_input - FROM - contract_deployments - JOIN function_sigs - ON 1 = 1 - JOIN function_inputs - ON 1 = 1 - WHERE - function_name = 'underlying_coins' -), -inputs_pool_details AS ( - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - NULL AS function_input - FROM - contract_deployments - JOIN function_sigs - ON 1 = 1 - WHERE - function_name IN ( - 'name', - 'symbol', - 'decimals' - ) -), -all_inputs AS ( - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - function_input - FROM - inputs_coins - UNION ALL - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - function_input - FROM - inputs_base_coins - UNION ALL - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - function_input - FROM - inputs_underlying_coins - UNION ALL - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - function_input - FROM - inputs_pool_details -), -build_rpc_requests AS ( - SELECT - deployer_address, - contract_address, - block_number, - function_sig, - function_input, - CONCAT( - function_sig, - LPAD(IFNULL(function_input, 0), 64, '0') - ) AS input, - utils.udf_json_rpc_call( - 'eth_call', - [{'to': contract_address, 'from': null, 'data':input }, utils.udf_int_to_hex(block_number)], - concat_ws( - '-', - contract_address, - input, - block_number - ) - ) AS rpc_request, - row_num, - CEIL( - row_num / 50 - ) AS batch_no - FROM - all_inputs - LEFT JOIN contract_deployments USING(contract_address) -), -pool_token_reads AS ( - -{% if is_incremental() %} -{% for item in range(6) %} - ( - SELECT - live.udf_api('POST','{service}/{Authentication}',{}, batch_rpc_request, 'Vault/prod/gnosis/quicknode/mainnet') AS read_output, SYSDATE() AS _inserted_timestamp - FROM - ( - SELECT - ARRAY_AGG(rpc_request) batch_rpc_request - FROM - build_rpc_requests - WHERE - batch_no = {{ item }} + 1 - AND batch_no IN ( - SELECT - DISTINCT batch_no - FROM - build_rpc_requests))) {% if not loop.last %} - UNION ALL - {% endif %} - {% endfor %} -{% else %} - {% for item in range(60) %} - ( - SELECT - live.udf_api('POST','{service}/{Authentication}',{}, batch_rpc_request, 'Vault/prod/gnosis/quicknode/mainnet') AS read_output, SYSDATE() AS _inserted_timestamp - FROM - ( - SELECT - ARRAY_AGG(rpc_request) batch_rpc_request - FROM - build_rpc_requests - WHERE - batch_no = {{ item }} + 1 - AND batch_no IN ( - SELECT - DISTINCT batch_no - FROM - build_rpc_requests))) {% if not loop.last %} - UNION ALL - {% endif %} - {% endfor %} -{% endif %}), -reads_adjusted AS ( - SELECT - VALUE :id :: STRING AS read_id, - VALUE :result :: STRING AS read_result, - SPLIT( - read_id, - '-' - ) AS read_id_object, - read_id_object [0] :: STRING AS contract_address, - read_id_object [2] :: STRING AS block_number, - LEFT( - read_id_object [1] :: STRING, - 10 - ) AS function_sig, - RIGHT( - read_id_object [1], - LENGTH( - read_id_object [1] - 10 - ) - ) :: INT AS function_input, - _inserted_timestamp - FROM - pool_token_reads, - LATERAL FLATTEN( - input => read_output :data - ) -), -tokens AS ( - SELECT - contract_address, - function_sig, - function_name, - function_input, - read_result, - regexp_substr_all(SUBSTR(read_result, 3, len(read_result)), '.{64}') [0] AS segmented_token_address, - _inserted_timestamp - FROM - reads_adjusted - LEFT JOIN function_sigs USING(function_sig) - WHERE - function_name IN ( - 'coins', - 'base_coins', - 'underlying_coins' - ) - AND read_result IS NOT NULL -), -pool_details AS ( - SELECT - contract_address, - function_sig, - function_name, - function_input, - read_result, - regexp_substr_all(SUBSTR(read_result, 3, len(read_result)), '.{64}') AS segmented_output, - _inserted_timestamp - FROM - reads_adjusted - LEFT JOIN function_sigs USING(function_sig) - WHERE - function_name IN ( - 'name', - 'symbol', - 'decimals' - ) - AND read_result IS NOT NULL -), -all_pools AS ( - SELECT - t.contract_address AS pool_address, - CONCAT('0x', SUBSTRING(t.segmented_token_address, 25, 40)) AS token_address, - function_input AS token_id, - function_name AS token_type, - MIN( - CASE - WHEN p.function_name = 'symbol' THEN utils.udf_hex_to_string(RTRIM(p.segmented_output [2] :: STRING, 0)) - END - ) AS pool_symbol, - MIN( - CASE - WHEN p.function_name = 'name' THEN CONCAT( - utils.udf_hex_to_string( - p.segmented_output [2] :: STRING - ), - utils.udf_hex_to_string( - segmented_output [3] :: STRING - ) - ) - END - ) AS pool_name, - MIN( - CASE - WHEN p.read_result :: STRING = '0x' THEN NULL - ELSE utils.udf_hex_to_int(LEFT(p.read_result :: STRING, 66)) - END - ) :: INTEGER AS pool_decimals, - CONCAT( - t.contract_address, - '-', - CONCAT('0x', SUBSTRING(t.segmented_token_address, 25, 40)), - '-', - function_input, - '-', - function_name - ) AS pool_id, - MAX( - t._inserted_timestamp - ) AS _inserted_timestamp - FROM - tokens t - LEFT JOIN pool_details p USING(contract_address) - WHERE - token_address IS NOT NULL - AND token_address <> '0x0000000000000000000000000000000000000000' - GROUP BY - 1, - 2, - 3, - 4 -), -FINAL AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - deployer_address, - pool_address, - CASE - WHEN token_address = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' THEN '0xe91d153e0b41518a2ce8dd3d7944fa863463a97d' - ELSE token_address - END AS token_address, - token_id, - token_type, - CASE - WHEN token_address = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' THEN 'WXDAI' - WHEN pool_symbol IS NULL THEN C.token_symbol - ELSE pool_symbol - END AS pool_symbol, - pool_name, - CASE - WHEN token_address = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' THEN '18' - WHEN pool_decimals IS NULL THEN C.token_decimals - ELSE pool_decimals - END AS pool_decimals, - pool_id, - _call_id, - A._inserted_timestamp - FROM - all_pools A - LEFT JOIN {{ ref('silver__contracts') }} C - ON A.token_address = C.contract_address - LEFT JOIN contract_deployments d - ON A.pool_address = d.contract_address qualify(ROW_NUMBER() over(PARTITION BY pool_address, token_address - ORDER BY - A._inserted_timestamp DESC)) = 1 -) -SELECT - *, - ROW_NUMBER() over ( - PARTITION BY pool_address - ORDER BY - token_address ASC - ) AS token_num -FROM - FINAL diff --git a/models/silver/defi/dex/curve/silver_dex__curve_pools.yml b/models/silver/defi/dex/curve/silver_dex__curve_pools.yml deleted file mode 100644 index 1ba35ef..0000000 --- a/models/silver/defi/dex/curve/silver_dex__curve_pools.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: 2 -models: - - name: silver_dex__curve_pools - - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - POOL_ID - columns: - - name: POOL_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - varchar - - name: TOKEN_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - varchar - - name: POOL_SYMBOL - - name: POOL_NAME - - name: POOL_DECIMALS - - name: _INSERTED_TIMESTAMP \ No newline at end of file diff --git a/models/silver/defi/dex/curve/silver_dex__curve_swaps.sql b/models/silver/defi/dex/curve/silver_dex__curve_swaps.sql deleted file mode 100644 index 076bcfc..0000000 --- a/models/silver/defi/dex/curve/silver_dex__curve_swaps.sql +++ /dev/null @@ -1,259 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'block_number', - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pool_meta AS ( - - SELECT - DISTINCT pool_address, - pool_name, - token_address, - pool_symbol AS symbol, - token_id :: INTEGER AS token_id, - token_type :: STRING AS token_type - FROM - {{ ref('silver_dex__curve_pools') }} -), -pools AS ( - SELECT - DISTINCT pool_address, - pool_name - FROM - pool_meta qualify (ROW_NUMBER() over (PARTITION BY pool_address - ORDER BY - pool_name ASC nulls last)) = 1 -), -curve_base AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - event_index, - CASE - WHEN topics [0] :: STRING = '0xd013ca23e77a65003c2c659c5442c00c805371b7fc1ebd4c206c41d1536bd90b' THEN 'TokenExchangeUnderlying' - ELSE 'TokenExchange' - END AS event_name, - contract_address AS pool_address, - pool_name, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS sender, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [0] :: STRING - ) - ) AS sold_id, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [1] :: STRING - ) - ) AS tokens_sold, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [2] :: STRING - ) - ) AS bought_id, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [3] :: STRING - ) - ) AS tokens_bought, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__fact_event_logs') }} - l - INNER JOIN pools p - ON p.pool_address = l.contract_address - WHERE - topics [0] :: STRING IN ( - '0x8b3e96f2b889fa771c53c981b40daf005f63f637f1869f707052d15a3dd97140', - --TokenExchange - '0xb2e76ae99761dc136e598d4a629bb347eccb9532a5f8bbd72e18467c3c34cc98', - --TokenExchange - '0xd013ca23e77a65003c2c659c5442c00c805371b7fc1ebd4c206c41d1536bd90b' --TokenExchangeUnderlying - ) - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -), -token_exchange AS ( - SELECT - _log_id, - MAX( - CASE - WHEN sold_id = token_id THEN token_address - END - ) AS token_in, - MAX( - CASE - WHEN bought_id = token_id THEN token_address - END - ) AS token_out, - MAX( - CASE - WHEN sold_id = token_id THEN symbol - END - ) AS symbol_in, - MAX( - CASE - WHEN bought_id = token_id THEN symbol - END - ) AS symbol_out - FROM - curve_base t - LEFT JOIN pool_meta p - ON p.pool_address = t.pool_address - AND ( - p.token_id = t.sold_id - OR p.token_id = t.bought_id - ) - WHERE - token_type = 'coins' - GROUP BY - 1 -), -token_transfers AS ( - SELECT - tx_hash, - contract_address AS token_address, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - DATA :: STRING - ) - ) AS amount, - CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS from_address, - CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS to_address - FROM - {{ ref('core__fact_event_logs') }} - WHERE - topics [0] :: STRING = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' - AND tx_hash IN ( - SELECT - DISTINCT tx_hash - FROM - curve_base - ) - AND CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) <> '0x0000000000000000000000000000000000000000' - AND tx_succeeded - -{% if is_incremental() %} -AND modified_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND modified_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -), -from_transfers AS ( - SELECT - DISTINCT tx_hash, - token_address, - from_address, - amount - FROM - token_transfers -), -to_transfers AS ( - SELECT - DISTINCT tx_hash, - token_address, - to_address, - amount - FROM - token_transfers -), -ready_pool_info AS ( - SELECT - s.block_number, - s.block_timestamp, - s.tx_hash, - s.origin_function_signature, - s.origin_from_address, - s.origin_from_address AS tx_to, - s.origin_to_address, - event_index, - event_name, - pool_address, - pool_address AS contract_address, - pool_name, - sender, - sold_id, - tokens_sold, - COALESCE( - sold.token_address, - e.token_in - ) AS token_in, - e.symbol_in AS symbol_in, - bought_id, - tokens_bought, - COALESCE( - bought.token_address, - e.token_out - ) AS token_out, - e.symbol_out AS symbol_out, - s._log_id, - _inserted_timestamp - FROM - curve_base s - LEFT JOIN token_exchange e - ON s._log_id = e._log_id - LEFT JOIN from_transfers sold - ON tokens_sold = sold.amount - AND s.tx_hash = sold.tx_hash - LEFT JOIN to_transfers bought - ON tokens_bought = bought.amount - AND s.tx_hash = bought.tx_hash - WHERE - tokens_sold <> 0 qualify(ROW_NUMBER() over(PARTITION BY s._log_id - ORDER BY - _inserted_timestamp DESC)) = 1 -) -SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - tx_to, - origin_to_address, - event_index, - event_name, - pool_address, - contract_address, - pool_name, - sender, - sold_id, - tokens_sold, - token_in, - symbol_in, - bought_id, - tokens_bought, - token_out, - symbol_out, - _log_id, - _inserted_timestamp, - 'curve' AS platform -FROM - ready_pool_info diff --git a/models/silver/defi/dex/curve/silver_dex__curve_swaps.yml b/models/silver/defi/dex/curve/silver_dex__curve_swaps.yml deleted file mode 100644 index 906b6c4..0000000 --- a/models/silver/defi/dex/curve/silver_dex__curve_swaps.yml +++ /dev/null @@ -1,54 +0,0 @@ -version: 2 -models: - - name: silver_dex__curve_swaps - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _log_id - columns: - - name: TOKENS_SOLD - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - decimal - - float - - number - - name: TOKENS_BOUGHT - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - decimal - - float - - number - - name: BLOCK_TIMESTAMP - tests: - - not_null - - dbt_expectations.expect_row_values_to_have_recent_data: - datepart: day - interval: 1 - - name: EVENT_INDEX - tests: - - not_null - - name: POOL_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: POOL_NAME - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - varchar - - name: SENDER - tests: - - not_null - - name: TX_TO - tests: - - not_null - - name: TOKEN_IN - - name: TOKEN_OUT - - name: TX_HASH - tests: - - not_null \ No newline at end of file diff --git a/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_pools.sql b/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_pools.sql deleted file mode 100644 index 57a3119..0000000 --- a/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_pools.sql +++ /dev/null @@ -1,61 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'pool_address', - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pool_creation AS ( - - SELECT - block_number, - block_timestamp, - tx_hash, - event_index, - contract_address, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS token0, - CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS token1, - CONCAT('0x', SUBSTR(segmented_data [0] :: STRING, 25, 40)) AS pool_address, - utils.udf_hex_to_int( - segmented_data [1] :: STRING - ) :: INT AS pool_id, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref ('core__fact_event_logs') }} - WHERE - contract_address = LOWER('0xA818b4F111Ccac7AA31D0BCc0806d64F2E0737D7') - AND topics [0] :: STRING = '0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9' --PairCreated - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - block_number, - block_timestamp, - tx_hash, - event_index, - contract_address, - token0, - token1, - pool_address, - pool_id, - _log_id, - _inserted_timestamp -FROM - pool_creation qualify(ROW_NUMBER() over (PARTITION BY pool_address -ORDER BY - _inserted_timestamp DESC)) = 1 diff --git a/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_pools.yml b/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_pools.yml deleted file mode 100644 index d61d17f..0000000 --- a/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_pools.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: 2 -models: - - name: silver_dex__honeyswap_pools - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - POOL_ADDRESS - columns: - - name: POOL_ADDRESS - tests: - - not_null - - name: TOKEN0 - tests: - - not_null - - name: TOKEN1 - tests: - - not_null - - name: _INSERTED_TIMESTAMP - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_NTZ - - TIMESTAMP_LTZ \ No newline at end of file diff --git a/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_swaps.sql b/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_swaps.sql deleted file mode 100644 index 9d2aa5f..0000000 --- a/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_swaps.sql +++ /dev/null @@ -1,123 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'block_number', - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pools AS ( - - SELECT - pool_address, - token0, - token1 - FROM - {{ ref('silver_dex__honeyswap_pools') }} -), -swaps_base AS ( - SELECT - block_number, - origin_function_signature, - origin_from_address, - origin_to_address, - block_timestamp, - tx_hash, - event_index, - contract_address, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [0] :: STRING - ) :: INTEGER - ) AS amount0In, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [1] :: STRING - ) :: INTEGER - ) AS amount1In, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [2] :: STRING - ) :: INTEGER - ) AS amount0Out, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [3] :: STRING - ) :: INTEGER - ) AS amount1Out, - CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS sender, - CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS tx_to, - token0, - token1, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__fact_event_logs') }} - INNER JOIN pools p - ON p.pool_address = contract_address - WHERE - topics [0] :: STRING = '0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822' - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - block_number, - block_timestamp, - origin_function_signature, - origin_from_address, - origin_to_address, - tx_hash, - event_index, - contract_address, - sender, - tx_to, - amount0In, - amount1In, - amount0Out, - amount1Out, - token0, - token1, - CASE - WHEN amount0In <> 0 - AND amount1In <> 0 - AND amount0Out <> 0 THEN amount1In - WHEN amount0In <> 0 THEN amount0In - WHEN amount1In <> 0 THEN amount1In - END AS amount_in_unadj, - CASE - WHEN amount0Out <> 0 THEN amount0Out - WHEN amount1Out <> 0 THEN amount1Out - END AS amount_out_unadj, - CASE - WHEN amount0In <> 0 - AND amount1In <> 0 - AND amount0Out <> 0 THEN token1 - WHEN amount0In <> 0 THEN token0 - WHEN amount1In <> 0 THEN token1 - END AS token_in, - CASE - WHEN amount0Out <> 0 THEN token0 - WHEN amount1Out <> 0 THEN token1 - END AS token_out, - 'Swap' AS event_name, - 'honeyswap' AS platform, - _log_id, - _inserted_timestamp -FROM - swaps_base -WHERE - token_in <> token_out diff --git a/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_swaps.yml b/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_swaps.yml deleted file mode 100644 index 9cbf485..0000000 --- a/models/silver/defi/dex/honeyswap/silver_dex__honeyswap_swaps.yml +++ /dev/null @@ -1,116 +0,0 @@ -version: 2 -models: - - name: silver_dex__honeyswap_swaps - - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _LOG_ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: BLOCK_TIMESTAMP - tests: - - not_null - - dbt_expectations.expect_row_values_to_have_recent_data: - datepart: day - interval: 2 - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_NTZ - - TIMESTAMP_LTZ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: CONTRACT_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: AMOUNT_IN_UNADJ - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_IN - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_OUT_UNADJ - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_OUT - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: TOKEN_IN - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - - name: TOKEN_OUT - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: SYMBOL_IN - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: SYMBOL_OUT - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: TX_TO - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: PLATFORM - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: EVENT_INDEX - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: _LOG_ID - tests: - - not_null - - name: ORIGIN_FUNCTION_SIGNATURE - tests: - - not_null - - name: ORIGIN_FROM_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: ORIGIN_TO_ADDRESS - tests: - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - diff --git a/models/silver/defi/dex/silver_dex__complete_dex_liquidity_pools.sql b/models/silver/defi/dex/silver_dex__complete_dex_liquidity_pools.sql deleted file mode 100644 index 36cc01c..0000000 --- a/models/silver/defi/dex/silver_dex__complete_dex_liquidity_pools.sql +++ /dev/null @@ -1,922 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = ['block_number','platform','version'], - cluster_by = ['block_timestamp::DATE','platform'], - post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION ON EQUALITY(tx_hash, contract_address, pool_address, pool_name, tokens, symbols), SUBSTRING(pool_address, pool_name, tokens, symbols)", - tags = ['silver_dex','defi','dex','curated','heal'] -) }} - -WITH contracts AS ( - - SELECT - contract_address, - token_symbol, - token_decimals, - _inserted_timestamp - FROM - {{ ref('silver__contracts') }} -), -balancer AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - contract_address, - pool_address, - pool_name, - NULL AS fee, - NULL AS tick_spacing, - token0, - token1, - token2, - token3, - token4, - token5, - token6, - token7, - 'balancer' AS platform, - 'v1' AS version, - _log_id AS _id, - _inserted_timestamp - FROM - {{ ref('silver_dex__balancer_pools') }} - -{% if is_incremental() and 'balancer' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -curve AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - deployer_address AS contract_address, - pool_address, - pool_name, - NULL AS fee, - NULL AS tick_spacing, - MAX( - CASE - WHEN token_num = 1 THEN token_address - END - ) AS token0, - MAX( - CASE - WHEN token_num = 2 THEN token_address - END - ) AS token1, - MAX( - CASE - WHEN token_num = 3 THEN token_address - END - ) AS token2, - MAX( - CASE - WHEN token_num = 4 THEN token_address - END - ) AS token3, - MAX( - CASE - WHEN token_num = 5 THEN token_address - END - ) AS token4, - MAX( - CASE - WHEN token_num = 6 THEN token_address - END - ) AS token5, - MAX( - CASE - WHEN token_num = 7 THEN token_address - END - ) AS token6, - MAX( - CASE - WHEN token_num = 8 THEN token_address - END - ) AS token7, - 'curve' AS platform, - 'v1' AS version, - _call_id AS _id, - _inserted_timestamp - FROM - {{ ref('silver_dex__curve_pools') }} - -{% if is_incremental() and 'curve' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -GROUP BY - ALL -), -honeyswap AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - contract_address, - pool_address, - NULL AS pool_name, - NULL AS fee, - NULL AS tick_spacing, - token0, - token1, - NULL AS token2, - NULL AS token3, - NULL AS token4, - NULL AS token5, - NULL AS token6, - NULL AS token7, - 'honeyswap' AS platform, - 'v1' AS version, - _log_id AS _id, - _inserted_timestamp - FROM - {{ ref('silver_dex__honeyswap_pools') }} - -{% if is_incremental() and 'honeyswap' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -swapr AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - contract_address, - pool_address, - NULL AS pool_name, - NULL AS fee, - NULL AS tick_spacing, - token0, - token1, - NULL AS token2, - NULL AS token3, - NULL AS token4, - NULL AS token5, - NULL AS token6, - NULL AS token7, - 'swapr' AS platform, - 'v1' AS version, - _log_id AS _id, - _inserted_timestamp - FROM - {{ ref('silver_dex__swapr_pools') }} - -{% if is_incremental() and 'swapr' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -sushi AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - contract_address, - pool_address, - NULL AS pool_name, - NULL AS fee, - NULL AS tick_spacing, - token0, - token1, - NULL AS token2, - NULL AS token3, - NULL AS token4, - NULL AS token5, - NULL AS token6, - NULL AS token7, - 'sushiswap' AS platform, - 'v1' AS version, - _log_id AS _id, - _inserted_timestamp - FROM - {{ ref('silver_dex__sushi_pools') }} - -{% if is_incremental() and 'sushi' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -all_pools AS ( - SELECT - * - FROM - honeyswap - UNION ALL - SELECT - * - FROM - swapr - UNION ALL - SELECT - * - FROM - sushi - UNION ALL - SELECT - * - FROM - balancer - UNION ALL - SELECT - * - FROM - curve -), ---when pool_name is null and balancer,curve -complete_lps AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - p.contract_address, - pool_address, - CASE - WHEN pool_name IS NOT NULL THEN pool_name - WHEN pool_name IS NULL - AND platform IN ( - 'balancer', - 'curve' - ) THEN CONCAT( - COALESCE(c0.token_symbol, SUBSTRING(token0, 1, 5) || '...' || SUBSTRING(token0, 39, 42)), - CASE - WHEN token1 IS NOT NULL THEN '-' || COALESCE(c1.token_symbol, SUBSTRING(token1, 1, 5) || '...' || SUBSTRING(token1, 39, 42)) - ELSE '' - END, - CASE - WHEN token2 IS NOT NULL THEN '-' || COALESCE(c2.token_symbol, SUBSTRING(token2, 1, 5) || '...' || SUBSTRING(token2, 39, 42)) - ELSE '' - END, - CASE - WHEN token3 IS NOT NULL THEN '-' || COALESCE(c3.token_symbol, SUBSTRING(token3, 1, 5) || '...' || SUBSTRING(token3, 39, 42)) - ELSE '' - END, - CASE - WHEN token4 IS NOT NULL THEN '-' || COALESCE(c4.token_symbol, SUBSTRING(token4, 1, 5) || '...' || SUBSTRING(token4, 39, 42)) - ELSE '' - END, - CASE - WHEN token5 IS NOT NULL THEN '-' || COALESCE(c5.token_symbol, SUBSTRING(token5, 1, 5) || '...' || SUBSTRING(token5, 39, 42)) - ELSE '' - END, - CASE - WHEN token6 IS NOT NULL THEN '-' || COALESCE(c6.token_symbol, SUBSTRING(token6, 1, 5) || '...' || SUBSTRING(token6, 39, 42)) - ELSE '' - END, - CASE - WHEN token7 IS NOT NULL THEN '-' || COALESCE(c7.token_symbol, SUBSTRING(token7, 1, 5) || '...' || SUBSTRING(token7, 39, 42)) - ELSE '' - END - ) - ELSE CONCAT( - COALESCE( - c0.token_symbol, - CONCAT(SUBSTRING(token0, 1, 5), '...', SUBSTRING(token0, 39, 42)) - ), - '-', - COALESCE( - c1.token_symbol, - CONCAT(SUBSTRING(token1, 1, 5), '...', SUBSTRING(token1, 39, 42)) - ) - ) - END AS pool_name, - fee, - tick_spacing, - token0, - token1, - token2, - token3, - token4, - token5, - token6, - token7, - OBJECT_CONSTRUCT( - 'token0', - token0, - 'token1', - token1, - 'token2', - token2, - 'token3', - token3, - 'token4', - token4, - 'token5', - token5, - 'token6', - token6, - 'token7', - token7 - ) AS tokens, - OBJECT_CONSTRUCT( - 'token0', - c0.token_symbol, - 'token1', - c1.token_symbol, - 'token2', - c2.token_symbol, - 'token3', - c3.token_symbol, - 'token4', - c4.token_symbol, - 'token5', - c5.token_symbol, - 'token6', - c6.token_symbol, - 'token7', - c7.token_symbol - ) AS symbols, - OBJECT_CONSTRUCT( - 'token0', - c0.token_decimals, - 'token1', - c1.token_decimals, - 'token2', - c2.token_decimals, - 'token3', - c3.token_decimals, - 'token4', - c4.token_decimals, - 'token5', - c5.token_decimals, - 'token6', - c6.token_decimals, - 'token7', - c7.token_decimals - ) AS decimals, - platform, - version, - _id, - p._inserted_timestamp - FROM - all_pools p - LEFT JOIN contracts c0 - ON c0.contract_address = p.token0 - LEFT JOIN contracts c1 - ON c1.contract_address = p.token1 - LEFT JOIN contracts c2 - ON c2.contract_address = p.token2 - LEFT JOIN contracts c3 - ON c3.contract_address = p.token3 - LEFT JOIN contracts c4 - ON c4.contract_address = p.token4 - LEFT JOIN contracts c5 - ON c5.contract_address = p.token5 - LEFT JOIN contracts c6 - ON c6.contract_address = p.token6 - LEFT JOIN contracts c7 - ON c7.contract_address = p.token7 -), - -{% if is_incremental() and var( - 'HEAL_MODEL' -) %} -heal_model AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - t0.contract_address, - pool_address, - CASE - WHEN pool_name IS NOT NULL THEN pool_name - WHEN pool_name IS NULL - AND platform IN ( - 'balancer', - 'curve' - ) THEN CONCAT( - COALESCE(c0.token_symbol, SUBSTRING(token0, 1, 5) || '...' || SUBSTRING(token0, 39, 42)), - CASE - WHEN token1 IS NOT NULL THEN '-' || COALESCE(c1.token_symbol, SUBSTRING(token1, 1, 5) || '...' || SUBSTRING(token1, 39, 42)) - ELSE '' - END, - CASE - WHEN token2 IS NOT NULL THEN '-' || COALESCE(c2.token_symbol, SUBSTRING(token2, 1, 5) || '...' || SUBSTRING(token2, 39, 42)) - ELSE '' - END, - CASE - WHEN token3 IS NOT NULL THEN '-' || COALESCE(c3.token_symbol, SUBSTRING(token3, 1, 5) || '...' || SUBSTRING(token3, 39, 42)) - ELSE '' - END, - CASE - WHEN token4 IS NOT NULL THEN '-' || COALESCE(c4.token_symbol, SUBSTRING(token4, 1, 5) || '...' || SUBSTRING(token4, 39, 42)) - ELSE '' - END, - CASE - WHEN token5 IS NOT NULL THEN '-' || COALESCE(c5.token_symbol, SUBSTRING(token5, 1, 5) || '...' || SUBSTRING(token5, 39, 42)) - ELSE '' - END, - CASE - WHEN token6 IS NOT NULL THEN '-' || COALESCE(c6.token_symbol, SUBSTRING(token6, 1, 5) || '...' || SUBSTRING(token6, 39, 42)) - ELSE '' - END, - CASE - WHEN token7 IS NOT NULL THEN '-' || COALESCE(c7.token_symbol, SUBSTRING(token7, 1, 5) || '...' || SUBSTRING(token7, 39, 42)) - ELSE '' - END - ) - ELSE CONCAT( - COALESCE( - c0.token_symbol, - CONCAT(SUBSTRING(token0, 1, 5), '...', SUBSTRING(token0, 39, 42)) - ), - '-', - COALESCE( - c1.token_symbol, - CONCAT(SUBSTRING(token1, 1, 5), '...', SUBSTRING(token1, 39, 42)) - ) - ) - END AS pool_name_heal, - fee, - tick_spacing, - token0, - token1, - token2, - token3, - token4, - token5, - token6, - token7, - tokens, - OBJECT_CONSTRUCT( - 'token0', - c0.token_symbol, - 'token1', - c1.token_symbol, - 'token2', - c2.token_symbol, - 'token3', - c3.token_symbol, - 'token4', - c4.token_symbol, - 'token5', - c5.token_symbol, - 'token6', - c6.token_symbol, - 'token7', - c7.token_symbol - ) AS symbols_heal, - OBJECT_CONSTRUCT( - 'token0', - c0.token_decimals, - 'token1', - c1.token_decimals, - 'token2', - c2.token_decimals, - 'token3', - c3.token_decimals, - 'token4', - c4.token_decimals, - 'token5', - c5.token_decimals, - 'token6', - c6.token_decimals, - 'token7', - c7.token_decimals - ) AS decimals_heal, - platform, - version, - _id, - t0._inserted_timestamp - FROM - {{ this }} - t0 - LEFT JOIN contracts c0 - ON c0.contract_address = t0.token0 - LEFT JOIN contracts c1 - ON c1.contract_address = t0.token1 - LEFT JOIN contracts c2 - ON c2.contract_address = t0.token2 - LEFT JOIN contracts c3 - ON c3.contract_address = t0.token3 - LEFT JOIN contracts c4 - ON c4.contract_address = t0.token4 - LEFT JOIN contracts c5 - ON c5.contract_address = t0.token5 - LEFT JOIN contracts c6 - ON c6.contract_address = t0.token6 - LEFT JOIN contracts c7 - ON c7.contract_address = t0.token7 - WHERE - CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t1.block_number, - '-', - t1.platform, - '-', - t1.version - ) - FROM - {{ this }} - t1 - WHERE - t1.decimals :token0 :: INT IS NULL - AND t1._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t1.tokens :token0 :: STRING) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t2.block_number, - '-', - t2.platform, - '-', - t2.version - ) - FROM - {{ this }} - t2 - WHERE - t2.decimals :token1 :: INT IS NULL - AND t2._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t2.tokens :token1 :: STRING) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t3.block_number, - '-', - t3.platform, - '-', - t3.version - ) - FROM - {{ this }} - t3 - WHERE - t3.decimals :token2 :: INT IS NULL - AND t3._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t3.tokens :token2 :: STRING) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t4.block_number, - '-', - t4.platform, - '-', - t4.version - ) - FROM - {{ this }} - t4 - WHERE - t4.decimals :token3 :: INT IS NULL - AND t4._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t4.tokens :token3 :: STRING) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t5.block_number, - '-', - t5.platform, - '-', - t5.version - ) - FROM - {{ this }} - t5 - WHERE - t5.decimals :token4 :: INT IS NULL - AND t5._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t5.tokens :token4 :: STRING) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t6.block_number, - '-', - t6.platform, - '-', - t6.version - ) - FROM - {{ this }} - t6 - WHERE - t6.decimals :token5 :: INT IS NULL - AND t6._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t6.tokens :token5 :: STRING) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t7.block_number, - '-', - t7.platform, - '-', - t7.version - ) - FROM - {{ this }} - t7 - WHERE - t7.decimals :token6 :: INT IS NULL - AND t7._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t7.tokens :token6 :: STRING) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t8.block_number, - '-', - t8.platform, - '-', - t8.version - ) - FROM - {{ this }} - t8 - WHERE - t8.decimals :token7 :: INT IS NULL - AND t8._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t8.tokens :token7 :: STRING) - GROUP BY - 1 - ) - ), - {% endif %} - - FINAL AS ( - SELECT - * - FROM - complete_lps - -{% if is_incremental() and var( - 'HEAL_MODEL' -) %} -UNION ALL -SELECT - block_number, - block_timestamp, - tx_hash, - contract_address, - pool_address, - pool_name_heal AS pool_name, - fee, - tick_spacing, - token0, - token1, - token2, - token3, - token4, - token5, - token6, - token7, - tokens, - symbols_heal AS symbols, - decimals_heal AS decimals, - platform, - version, - _id, - _inserted_timestamp -FROM - heal_model -{% endif %} -) -SELECT - block_number, - block_timestamp, - tx_hash, - platform, - version, - contract_address, - pool_address, - pool_name, - tokens, - symbols, - decimals, - fee, - tick_spacing, - token0, - token1, - token2, - token3, - token4, - token5, - token6, - token7, - _id, - _inserted_timestamp, - {{ dbt_utils.generate_surrogate_key( - ['pool_address'] - ) }} AS complete_dex_liquidity_pools_id, - SYSDATE() AS inserted_timestamp, - SYSDATE() AS modified_timestamp, - '{{ invocation_id }}' AS _invocation_id -FROM - FINAL diff --git a/models/silver/defi/dex/silver_dex__complete_dex_liquidity_pools.yml b/models/silver/defi/dex/silver_dex__complete_dex_liquidity_pools.yml deleted file mode 100644 index e996dc6..0000000 --- a/models/silver/defi/dex/silver_dex__complete_dex_liquidity_pools.yml +++ /dev/null @@ -1,44 +0,0 @@ -version: 2 -models: - - name: silver_dex__complete_dex_liquidity_pools - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: BLOCK_TIMESTAMP - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_LTZ - - TIMESTAMP_NTZ - - name: TX_HASH - tests: - - not_null - - name: CONTRACT_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: POOL_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: PLATFORM - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: _ID - tests: - - not_null \ No newline at end of file diff --git a/models/silver/defi/dex/silver_dex__complete_dex_swaps.sql b/models/silver/defi/dex/silver_dex__complete_dex_swaps.sql deleted file mode 100644 index 4df7d58..0000000 --- a/models/silver/defi/dex/silver_dex__complete_dex_swaps.sql +++ /dev/null @@ -1,731 +0,0 @@ --- depends_on: {{ ref('silver__complete_token_prices') }} --- depends_on: {{ ref('price__ez_asset_metadata') }} -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = ['block_number','platform','version'], - cluster_by = ['block_timestamp::DATE','platform'], - post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION ON EQUALITY(tx_hash, origin_function_signature, origin_from_address, origin_to_address, contract_address, pool_name, event_name, sender, tx_to, token_in, token_out, symbol_in, symbol_out), SUBSTRING(origin_function_signature, pool_name, event_name, sender, tx_to, token_in, token_out, symbol_in, symbol_out)", - tags = ['silver_dex','defi','dex','curated','heal'] -) }} - -WITH sushi AS ( - - SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - event_name, - amount_in_unadj, - amount_out_unadj, - token_in, - token_out, - sender, - tx_to, - event_index, - platform, - 'sushiswap' as protocol, - 'v1' AS version, - _log_id, - _inserted_timestamp - FROM - {{ ref('silver_dex__sushi_swaps') }} - -{% if is_incremental() and 'sushi' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -curve AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - event_name, - tokens_sold AS amount_in_unadj, - tokens_bought AS amount_out_unadj, - token_in, - token_out, - sender, - tx_to, - event_index, - platform, - 'curve' as protocol, - 'v1' AS version, - _log_id, - _inserted_timestamp - FROM - {{ ref('silver_dex__curve_swaps') }} - -{% if is_incremental() and 'curve' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -balancer AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - event_name, - amount_in_unadj, - amount_out_unadj, - token_in, - token_out, - sender, - tx_to, - event_index, - platform, - 'balancer' as protocol, - 'v1' AS version, - _log_id, - _inserted_timestamp - FROM - {{ ref('silver_dex__balancer_swaps') }} - -{% if is_incremental() and 'balancer' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -honeyswap AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - event_name, - amount_in_unadj, - amount_out_unadj, - token_in, - token_out, - sender, - tx_to, - event_index, - platform, - 'honeyswap' as protocol, - 'v1' AS version, - _log_id, - _inserted_timestamp - FROM - {{ ref('silver_dex__honeyswap_swaps') }} - -{% if is_incremental() and 'honeyswap' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -swapr AS ( - SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - event_name, - amount_in_unadj, - amount_out_unadj, - token_in, - token_out, - sender, - tx_to, - event_index, - platform, - 'swapr' as protocol, - 'v1' AS version, - _log_id, - _inserted_timestamp - FROM - {{ ref('silver_dex__swapr_swaps') }} - -{% if is_incremental() and 'swapr' not in var('HEAL_MODELS') %} -WHERE - _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) -{% endif %} -), -all_dex AS ( - SELECT - * - FROM - balancer - UNION ALL - SELECT - * - FROM - sushi - UNION ALL - SELECT - * - FROM - curve - UNION ALL - SELECT - * - FROM - honeyswap - UNION ALL - SELECT - * - FROM - swapr -), -complete_dex_swaps AS ( - SELECT - s.block_number, - s.block_timestamp, - s.tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - s.contract_address, - event_name, - token_in, - p1.is_verified as token_in_is_verified, - c1.token_decimals AS decimals_in, - c1.token_symbol AS symbol_in, - amount_in_unadj, - CASE - WHEN decimals_in IS NULL THEN amount_in_unadj - ELSE (amount_in_unadj / pow(10, decimals_in)) - END AS amount_in, - CASE - WHEN decimals_in IS NOT NULL THEN amount_in * p1.price - ELSE NULL - END AS amount_in_usd, - token_out, - p2.is_verified as token_out_is_verified, - c2.token_decimals AS decimals_out, - c2.token_symbol AS symbol_out, - amount_out_unadj, - CASE - WHEN decimals_out IS NULL THEN amount_out_unadj - ELSE (amount_out_unadj / pow(10, decimals_out)) - END AS amount_out, - CASE - WHEN decimals_out IS NOT NULL THEN amount_out * p2.price - ELSE NULL - END AS amount_out_usd, - CASE - WHEN lp.pool_name IS NULL THEN CONCAT( - LEAST( - COALESCE( - symbol_in, - CONCAT(SUBSTRING(token_in, 1, 5), '...', SUBSTRING(token_in, 39, 42)) - ), - COALESCE( - symbol_out, - CONCAT(SUBSTRING(token_out, 1, 5), '...', SUBSTRING(token_out, 39, 42)) - ) - ), - '-', - GREATEST( - COALESCE( - symbol_in, - CONCAT(SUBSTRING(token_in, 1, 5), '...', SUBSTRING(token_in, 39, 42)) - ), - COALESCE( - symbol_out, - CONCAT(SUBSTRING(token_out, 1, 5), '...', SUBSTRING(token_out, 39, 42)) - ) - ) - ) - ELSE lp.pool_name - END AS pool_name, - sender, - tx_to, - event_index, - s.platform, - s.protocol, - s.version, - s._log_id, - s._inserted_timestamp - FROM - all_dex s - LEFT JOIN {{ ref('silver__contracts') }} - c1 - ON s.token_in = c1.contract_address - LEFT JOIN {{ ref('silver__contracts') }} - c2 - ON s.token_out = c2.contract_address - LEFT JOIN {{ ref('price__ez_prices_hourly') }} - p1 - ON s.token_in = p1.token_address - AND DATE_TRUNC( - 'hour', - block_timestamp - ) = p1.hour - LEFT JOIN {{ ref('price__ez_prices_hourly') }} - p2 - ON s.token_out = p2.token_address - AND DATE_TRUNC( - 'hour', - block_timestamp - ) = p2.hour - LEFT JOIN {{ ref('silver_dex__complete_dex_liquidity_pools') }} - lp - ON s.contract_address = lp.pool_address -), - -{% if is_incremental() and var( - 'HEAL_MODEL' -) %} -heal_model AS ( - SELECT - t0.block_number, - t0.block_timestamp, - t0.tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - t0.contract_address, - event_name, - token_in, - p1.is_verified as token_in_is_verified, - c1.token_decimals AS decimals_in, - c1.token_symbol AS symbol_in, - amount_in_unadj, - CASE - WHEN c1.token_decimals IS NULL THEN amount_in_unadj - ELSE (amount_in_unadj / pow(10, c1.token_decimals)) - END AS amount_in_heal, - CASE - WHEN c1.token_decimals IS NOT NULL THEN amount_in_heal * p1.price - ELSE NULL - END AS amount_in_usd_heal, - token_out, - p2.is_verified as token_out_is_verified, - c2.token_decimals AS decimals_out, - c2.token_symbol AS symbol_out, - amount_out_unadj, - CASE - WHEN c2.token_decimals IS NULL THEN amount_out_unadj - ELSE (amount_out_unadj / pow(10, c2.token_decimals)) - END AS amount_out_heal, - CASE - WHEN c2.token_decimals IS NOT NULL THEN amount_out_heal * p2.price - ELSE NULL - END AS amount_out_usd_heal, - CASE - WHEN lp.pool_name IS NULL THEN CONCAT( - LEAST( - COALESCE( - c1.token_symbol, - CONCAT(SUBSTRING(token_in, 1, 5), '...', SUBSTRING(token_in, 39, 42)) - ), - COALESCE( - c2.token_symbol, - CONCAT(SUBSTRING(token_out, 1, 5), '...', SUBSTRING(token_out, 39, 42)) - ) - ), - '-', - GREATEST( - COALESCE( - c1.token_symbol, - CONCAT(SUBSTRING(token_in, 1, 5), '...', SUBSTRING(token_in, 39, 42)) - ), - COALESCE( - c2.token_symbol, - CONCAT(SUBSTRING(token_out, 1, 5), '...', SUBSTRING(token_out, 39, 42)) - ) - ) - ) - ELSE lp.pool_name - END AS pool_name_heal, - sender, - tx_to, - event_index, - t0.platform, - t0.protocol, - t0.version, - t0._log_id, - t0._inserted_timestamp - FROM - {{ this }} - t0 - LEFT JOIN {{ ref('silver__contracts') }} - c1 - ON t0.token_in = c1.contract_address - LEFT JOIN {{ ref('silver__contracts') }} - c2 - ON t0.token_out = c2.contract_address - LEFT JOIN {{ ref('price__ez_prices_hourly') }} - p1 - ON t0.token_in = p1.token_address - AND DATE_TRUNC( - 'hour', - block_timestamp - ) = p1.hour - LEFT JOIN {{ ref('price__ez_prices_hourly') }} - p2 - ON t0.token_out = p2.token_address - AND DATE_TRUNC( - 'hour', - block_timestamp - ) = p2.hour - LEFT JOIN {{ ref('silver_dex__complete_dex_liquidity_pools') }} - lp - ON t0.contract_address = lp.pool_address - WHERE - CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t1.block_number, - '-', - t1.platform, - '-', - t1.version - ) - FROM - {{ this }} - t1 - WHERE - t1.decimals_in IS NULL - AND t1._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t1.token_in) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t2.block_number, - '-', - t2.platform, - '-', - t2.version - ) - FROM - {{ this }} - t2 - WHERE - t2.decimals_out IS NULL - AND t2._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__contracts') }} C - WHERE - C._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND C.token_decimals IS NOT NULL - AND C.contract_address = t2.token_out) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t3.block_number, - '-', - t3.platform, - '-', - t3.version - ) - FROM - {{ this }} - t3 - WHERE - t3.amount_in_usd IS NULL - AND t3._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__complete_token_prices') }} - p - WHERE - p._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND p.price IS NOT NULL - AND p.token_address = t3.token_in - AND p.hour = DATE_TRUNC( - 'hour', - t3.block_timestamp - ) - ) - GROUP BY - 1 - ) - OR CONCAT( - t0.block_number, - '-', - t0.platform, - '-', - t0.version - ) IN ( - SELECT - CONCAT( - t4.block_number, - '-', - t4.platform, - '-', - t4.version - ) - FROM - {{ this }} - t4 - WHERE - t4.amount_out_usd IS NULL - AND t4._inserted_timestamp < ( - SELECT - MAX( - _inserted_timestamp - ) - INTERVAL '{{ var("LOOKBACK", "4 hours") }}' - FROM - {{ this }} - ) - AND EXISTS ( - SELECT - 1 - FROM - {{ ref('silver__complete_token_prices') }} - p - WHERE - p._inserted_timestamp > DATEADD('DAY', -14, SYSDATE()) - AND p.price IS NOT NULL - AND p.token_address = t4.token_out - AND p.hour = DATE_TRUNC( - 'hour', - t4.block_timestamp - ) - ) - GROUP BY - 1 - ) - ), newly_verified_tokens as ( - select token_address - from {{ ref('price__ez_asset_metadata') }} - where ifnull(is_verified_modified_timestamp, '1970-01-01' :: TIMESTAMP) > dateadd('day', -10, SYSDATE()) - ), - heal_newly_verified_tokens as ( - select - t0.block_number, - t0.block_timestamp, - t0.tx_hash, - t0.origin_function_signature, - t0.origin_from_address, - t0.origin_to_address, - t0.contract_address, - t0.event_name, - t0.token_in, - p1.is_verified AS token_in_is_verified, - t0.decimals_in, - t0.symbol_in, - t0.amount_in_unadj, - t0.amount_in, - CASE - WHEN decimals_in IS NOT NULL THEN amount_in * p1.price - ELSE NULL - END AS amount_in_usd_heal, - token_out, - p2.is_verified AS token_out_is_verified, - t0.decimals_out, - t0.symbol_out, - t0.amount_out_unadj, - t0.amount_out, - CASE - WHEN decimals_out IS NOT NULL THEN amount_out * p2.price - ELSE NULL - END AS amount_out_usd_heal, - t0.pool_name, - t0.sender, - t0.tx_to, - t0.event_index, - t0.platform, - t0.protocol, - t0.version, - t0._log_id, - t0._inserted_timestamp - from {{ this }} t0 - join newly_verified_tokens nv - on (t0.token_in = nv.token_address or t0.token_out = nv.token_address) - left join {{ ref('price__ez_prices_hourly')}} p1 - on t0.token_in = p1.token_address - and date_trunc('hour', t0.block_timestamp) = p1.hour - left join {{ ref('price__ez_prices_hourly')}} p2 - on t0.token_out = p2.token_address - and date_trunc('hour', t0.block_timestamp) = p2.hour - ), - {% endif %} - - FINAL AS ( - SELECT - * - FROM - complete_dex_swaps - -{% if is_incremental() and var( - 'HEAL_MODEL' -) %} -UNION ALL -SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - event_name, - token_in, - token_in_is_verified, - decimals_in, - symbol_in, - amount_in_unadj, - amount_in_heal AS amount_in, - amount_in_usd_heal AS amount_in_usd, - token_out, - token_out_is_verified, - decimals_out, - symbol_out, - amount_out_unadj, - amount_out_heal AS amount_out, - amount_out_usd_heal AS amount_out_usd, - pool_name_heal AS pool_name, - sender, - tx_to, - event_index, - platform, - protocol, - version, - _log_id, - _inserted_timestamp -FROM - heal_model -UNION ALL -SELECT - * -FROM - heal_newly_verified_tokens -{% endif %} -) -SELECT - block_number, - block_timestamp, - tx_hash, - origin_function_signature, - origin_from_address, - origin_to_address, - contract_address, - pool_name, - event_name, - amount_in_unadj, - amount_in, - amount_in_usd, - amount_out_unadj, - amount_out, - amount_out_usd, - sender, - tx_to, - event_index, - platform, - protocol, - version, - token_in, - ifnull(token_in_is_verified, false) as token_in_is_verified, - token_out, - ifnull(token_out_is_verified, false) as token_out_is_verified, - symbol_in, - symbol_out, - decimals_in, - decimals_out, - _log_id, - _inserted_timestamp, - {{ dbt_utils.generate_surrogate_key( - ['tx_hash','event_index'] - ) }} AS complete_dex_swaps_id, - SYSDATE() AS inserted_timestamp, - SYSDATE() AS modified_timestamp, - '{{ invocation_id }}' AS _invocation_id -FROM - FINAL qualify (ROW_NUMBER() over (PARTITION BY _log_id -ORDER BY - _inserted_timestamp DESC)) = 1 diff --git a/models/silver/defi/dex/silver_dex__complete_dex_swaps.yml b/models/silver/defi/dex/silver_dex__complete_dex_swaps.yml deleted file mode 100644 index b95616a..0000000 --- a/models/silver/defi/dex/silver_dex__complete_dex_swaps.yml +++ /dev/null @@ -1,129 +0,0 @@ -version: 2 -models: - - name: silver_dex__complete_dex_swaps - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _LOG_ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: BLOCK_TIMESTAMP - tests: - - not_null - - dbt_expectations.expect_row_values_to_have_recent_data: - datepart: day - interval: 1 - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_LTZ - - TIMESTAMP_NTZ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: CONTRACT_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: EVENT_NAME - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - not_null - - name: AMOUNT_IN - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_OUT - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_IN_USD - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_OUT_USD - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: TOKEN_IN - tests: - - not_null: - where: PLATFORM <> 'curve' - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: TOKEN_OUT - tests: - - not_null: - where: PLATFORM <> 'curve' - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: SYMBOL_IN - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: SYMBOL_OUT - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: SENDER - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: TX_TO - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - enabled: False - - name: PLATFORM - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: EVENT_INDEX - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: _LOG_ID - tests: - - not_null - - name: ORIGIN_FUNCTION_SIGNATURE - tests: - - not_null - - name: ORIGIN_FROM_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: ORIGIN_TO_ADDRESS - tests: - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - diff --git a/models/silver/defi/dex/sushi/silver_dex__sushi_pools.sql b/models/silver/defi/dex/sushi/silver_dex__sushi_pools.sql deleted file mode 100644 index 9b53a27..0000000 --- a/models/silver/defi/dex/sushi/silver_dex__sushi_pools.sql +++ /dev/null @@ -1,61 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'pool_address', - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pool_creation AS ( - - SELECT - block_number, - block_timestamp, - tx_hash, - event_index, - contract_address, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS token0, - CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS token1, - CONCAT('0x', SUBSTR(segmented_data [0] :: STRING, 25, 40)) AS pool_address, - utils.udf_hex_to_int( - segmented_data [1] :: STRING - ) :: INT AS pool_id, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref ('core__fact_event_logs') }} - WHERE - contract_address = LOWER('0xc35DADB65012eC5796536bD9864eD8773aBc74C4') - AND topics [0] :: STRING = '0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9' --PairCreated - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - block_number, - block_timestamp, - tx_hash, - event_index, - contract_address, - token0, - token1, - pool_address, - pool_id, - _log_id, - _inserted_timestamp -FROM - pool_creation qualify(ROW_NUMBER() over (PARTITION BY pool_address -ORDER BY - _inserted_timestamp DESC)) = 1 diff --git a/models/silver/defi/dex/sushi/silver_dex__sushi_pools.yml b/models/silver/defi/dex/sushi/silver_dex__sushi_pools.yml deleted file mode 100644 index 9a604f4..0000000 --- a/models/silver/defi/dex/sushi/silver_dex__sushi_pools.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: 2 -models: - - name: silver_dex__sushi_pools - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - POOL_ADDRESS - columns: - - name: POOL_ADDRESS - tests: - - not_null - - name: TOKEN0 - tests: - - not_null - - name: TOKEN1 - tests: - - not_null - - name: _INSERTED_TIMESTAMP - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_NTZ - - TIMESTAMP_LTZ \ No newline at end of file diff --git a/models/silver/defi/dex/sushi/silver_dex__sushi_swaps.sql b/models/silver/defi/dex/sushi/silver_dex__sushi_swaps.sql deleted file mode 100644 index e766ae8..0000000 --- a/models/silver/defi/dex/sushi/silver_dex__sushi_swaps.sql +++ /dev/null @@ -1,123 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'block_number', - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pools AS ( - - SELECT - pool_address, - token0, - token1 - FROM - {{ ref('silver_dex__sushi_pools') }} -), -swaps_base AS ( - SELECT - block_number, - origin_function_signature, - origin_from_address, - origin_to_address, - block_timestamp, - tx_hash, - event_index, - contract_address, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [0] :: STRING - ) :: INTEGER - ) AS amount0In, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [1] :: STRING - ) :: INTEGER - ) AS amount1In, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [2] :: STRING - ) :: INTEGER - ) AS amount0Out, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [3] :: STRING - ) :: INTEGER - ) AS amount1Out, - CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS sender, - CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS tx_to, - token0, - token1, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__fact_event_logs') }} - INNER JOIN pools p - ON p.pool_address = contract_address - WHERE - topics [0] :: STRING = '0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822' - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - block_number, - block_timestamp, - origin_function_signature, - origin_from_address, - origin_to_address, - tx_hash, - event_index, - contract_address, - sender, - tx_to, - amount0In, - amount1In, - amount0Out, - amount1Out, - token0, - token1, - CASE - WHEN amount0In <> 0 - AND amount1In <> 0 - AND amount0Out <> 0 THEN amount1In - WHEN amount0In <> 0 THEN amount0In - WHEN amount1In <> 0 THEN amount1In - END AS amount_in_unadj, - CASE - WHEN amount0Out <> 0 THEN amount0Out - WHEN amount1Out <> 0 THEN amount1Out - END AS amount_out_unadj, - CASE - WHEN amount0In <> 0 - AND amount1In <> 0 - AND amount0Out <> 0 THEN token1 - WHEN amount0In <> 0 THEN token0 - WHEN amount1In <> 0 THEN token1 - END AS token_in, - CASE - WHEN amount0Out <> 0 THEN token0 - WHEN amount1Out <> 0 THEN token1 - END AS token_out, - 'Swap' AS event_name, - 'sushiswap' AS platform, - _log_id, - _inserted_timestamp -FROM - swaps_base -WHERE - token_in <> token_out diff --git a/models/silver/defi/dex/sushi/silver_dex__sushi_swaps.yml b/models/silver/defi/dex/sushi/silver_dex__sushi_swaps.yml deleted file mode 100644 index 0d43194..0000000 --- a/models/silver/defi/dex/sushi/silver_dex__sushi_swaps.yml +++ /dev/null @@ -1,116 +0,0 @@ -version: 2 -models: - - name: silver_dex__sushi_swaps - - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _LOG_ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: BLOCK_TIMESTAMP - tests: - - not_null - - dbt_expectations.expect_row_values_to_have_recent_data: - datepart: day - interval: 2 - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_NTZ - - TIMESTAMP_LTZ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: CONTRACT_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: AMOUNT_IN_UNADJ - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_IN - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_OUT_UNADJ - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_OUT - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: TOKEN_IN - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - - name: TOKEN_OUT - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: SYMBOL_IN - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: SYMBOL_OUT - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: TX_TO - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: PLATFORM - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: EVENT_INDEX - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: _LOG_ID - tests: - - not_null - - name: ORIGIN_FUNCTION_SIGNATURE - tests: - - not_null - - name: ORIGIN_FROM_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: ORIGIN_TO_ADDRESS - tests: - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - diff --git a/models/silver/defi/dex/swapr/silver_dex__swapr_pools.sql b/models/silver/defi/dex/swapr/silver_dex__swapr_pools.sql deleted file mode 100644 index 3752f6e..0000000 --- a/models/silver/defi/dex/swapr/silver_dex__swapr_pools.sql +++ /dev/null @@ -1,61 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'pool_address', - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pool_creation AS ( - - SELECT - block_number, - block_timestamp, - tx_hash, - event_index, - contract_address, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS token0, - CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS token1, - CONCAT('0x', SUBSTR(segmented_data [0] :: STRING, 25, 40)) AS pool_address, - utils.udf_hex_to_int( - segmented_data [1] :: STRING - ) :: INT AS pool_id, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref ('core__fact_event_logs') }} - WHERE - contract_address = LOWER('0x5D48C95AdfFD4B40c1AAADc4e08fc44117E02179') - AND topics [0] :: STRING = '0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9' --PairCreated - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - block_number, - block_timestamp, - tx_hash, - event_index, - contract_address, - token0, - token1, - pool_address, - pool_id, - _log_id, - _inserted_timestamp -FROM - pool_creation qualify(ROW_NUMBER() over (PARTITION BY pool_address -ORDER BY - _inserted_timestamp DESC)) = 1 diff --git a/models/silver/defi/dex/swapr/silver_dex__swapr_pools.yml b/models/silver/defi/dex/swapr/silver_dex__swapr_pools.yml deleted file mode 100644 index daf80fe..0000000 --- a/models/silver/defi/dex/swapr/silver_dex__swapr_pools.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: 2 -models: - - name: silver_dex__swapr_pools - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - POOL_ADDRESS - columns: - - name: POOL_ADDRESS - tests: - - not_null - - name: TOKEN0 - tests: - - not_null - - name: TOKEN1 - tests: - - not_null - - name: _INSERTED_TIMESTAMP - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_NTZ - - TIMESTAMP_LTZ \ No newline at end of file diff --git a/models/silver/defi/dex/swapr/silver_dex__swapr_swaps.sql b/models/silver/defi/dex/swapr/silver_dex__swapr_swaps.sql deleted file mode 100644 index c18a35c..0000000 --- a/models/silver/defi/dex/swapr/silver_dex__swapr_swaps.sql +++ /dev/null @@ -1,123 +0,0 @@ -{{ config( - materialized = 'incremental', - incremental_strategy = 'delete+insert', - unique_key = 'block_number', - cluster_by = ['block_timestamp::DATE'], - tags = ['silver_dex','defi','dex','curated'] -) }} - -WITH pools AS ( - - SELECT - pool_address, - token0, - token1 - FROM - {{ ref('silver_dex__swapr_pools') }} -), -swaps_base AS ( - SELECT - block_number, - origin_function_signature, - origin_from_address, - origin_to_address, - block_timestamp, - tx_hash, - event_index, - contract_address, - regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [0] :: STRING - ) :: INTEGER - ) AS amount0In, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [1] :: STRING - ) :: INTEGER - ) AS amount1In, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [2] :: STRING - ) :: INTEGER - ) AS amount0Out, - TRY_TO_NUMBER( - utils.udf_hex_to_int( - segmented_data [3] :: STRING - ) :: INTEGER - ) AS amount1Out, - CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS sender, - CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS tx_to, - token0, - token1, - CONCAT( - tx_hash :: STRING, - '-', - event_index :: STRING - ) AS _log_id, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__fact_event_logs') }} - INNER JOIN pools p - ON p.pool_address = contract_address - WHERE - topics [0] :: STRING = '0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822' - AND tx_succeeded - -{% if is_incremental() %} -AND _inserted_timestamp >= ( - SELECT - MAX(_inserted_timestamp) - INTERVAL '12 hours' - FROM - {{ this }} -) -AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day' -{% endif %} -) -SELECT - block_number, - block_timestamp, - origin_function_signature, - origin_from_address, - origin_to_address, - tx_hash, - event_index, - contract_address, - sender, - tx_to, - amount0In, - amount1In, - amount0Out, - amount1Out, - token0, - token1, - CASE - WHEN amount0In <> 0 - AND amount1In <> 0 - AND amount0Out <> 0 THEN amount1In - WHEN amount0In <> 0 THEN amount0In - WHEN amount1In <> 0 THEN amount1In - END AS amount_in_unadj, - CASE - WHEN amount0Out <> 0 THEN amount0Out - WHEN amount1Out <> 0 THEN amount1Out - END AS amount_out_unadj, - CASE - WHEN amount0In <> 0 - AND amount1In <> 0 - AND amount0Out <> 0 THEN token1 - WHEN amount0In <> 0 THEN token0 - WHEN amount1In <> 0 THEN token1 - END AS token_in, - CASE - WHEN amount0Out <> 0 THEN token0 - WHEN amount1Out <> 0 THEN token1 - END AS token_out, - 'Swap' AS event_name, - 'swapr' AS platform, - _log_id, - _inserted_timestamp -FROM - swaps_base -WHERE - token_in <> token_out diff --git a/models/silver/defi/dex/swapr/silver_dex__swapr_swaps.yml b/models/silver/defi/dex/swapr/silver_dex__swapr_swaps.yml deleted file mode 100644 index 4cf8d48..0000000 --- a/models/silver/defi/dex/swapr/silver_dex__swapr_swaps.yml +++ /dev/null @@ -1,116 +0,0 @@ -version: 2 -models: - - name: silver_dex__swapr_swaps - - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - _LOG_ID - columns: - - name: BLOCK_NUMBER - tests: - - not_null - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: BLOCK_TIMESTAMP - tests: - - not_null - - dbt_expectations.expect_row_values_to_have_recent_data: - datepart: day - interval: 2 - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - TIMESTAMP_NTZ - - TIMESTAMP_LTZ - - name: TX_HASH - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: CONTRACT_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: AMOUNT_IN_UNADJ - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_IN - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_OUT_UNADJ - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: AMOUNT_OUT - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: TOKEN_IN - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - - name: TOKEN_OUT - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: SYMBOL_IN - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: SYMBOL_OUT - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: TX_TO - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: PLATFORM - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - STRING - - VARCHAR - - name: EVENT_INDEX - tests: - - dbt_expectations.expect_column_values_to_be_in_type_list: - column_type_list: - - NUMBER - - FLOAT - - name: _LOG_ID - tests: - - not_null - - name: ORIGIN_FUNCTION_SIGNATURE - tests: - - not_null - - name: ORIGIN_FROM_ADDRESS - tests: - - not_null - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - - name: ORIGIN_TO_ADDRESS - tests: - - dbt_expectations.expect_column_values_to_match_regex: - regex: 0[xX][0-9a-fA-F]+ - diff --git a/packages.yml b/packages.yml index 3f2b3d2..9343f0b 100644 --- a/packages.yml +++ b/packages.yml @@ -1,3 +1,3 @@ packages: - git: https://github.com/FlipsideCrypto/fsc-evm.git - revision: v4.8.2 \ No newline at end of file + revision: v4.9.2 \ No newline at end of file