Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,70 +10,12 @@
)
}}

{% set somnex_start_date = "2025-08-29" %}

WITH dexs AS (
SELECT
t.evt_block_number AS block_number,
t.evt_block_time AS block_time,
t.to AS taker,
t.contract_address AS maker,
t.amount0In,
t.amount0Out,
t.amount1In,
t.amount1Out,
CASE WHEN amount0Out = UINT256 '0' THEN f.tokenb ELSE f.tokena END AS token_bought_address,
CASE WHEN amount0In = UINT256 '0' OR amount1Out = UINT256 '0' THEN f.tokenb ELSE f.tokena END AS token_sold_address,
t.contract_address AS project_contract_address,
t.evt_tx_hash AS tx_hash,
t.evt_index AS evt_index,
tokena_decimals.decimals as tokena_decimals
FROM {{ source('somnex_somnia', 'somnexammpair_evt_swap') }} t
INNER JOIN {{ source('somnex_somnia', 'somnexammfactory_call_createpair') }} f
ON f.output_pair = t.contract_address
LEFT JOIN {{ source('tokens', 'erc20') }} tokena_decimals
ON tokena_decimals.contract_address = f.tokena
AND tokena_decimals.blockchain = 'somnia'
{% if is_incremental() %}
WHERE {{ incremental_predicate('t.evt_block_time') }}
{% else %}
WHERE t.evt_block_time >= TIMESTAMP '{{somnex_start_date}}'
{% endif %}
)

SELECT
'somnia' AS blockchain,
'somnex' AS project,
'2' AS version,
CAST(DATE_TRUNC('month', dexs.block_time) AS DATE) AS block_month,
CAST(DATE_TRUNC('day', dexs.block_time) AS DATE) AS block_date,
dexs.block_time,
dexs.block_number,
-- Somnex bug: when tokenA=18 decimals (or unknown), amount1 inflated by 1e10
-- when tokenA=6 decimals, amount0 inflated by 1e10
CASE
WHEN amount0Out = UINT256 '0' AND (tokena_decimals IS NULL OR tokena_decimals = 18)
THEN amount1Out / UINT256 '10000000000'
WHEN amount0Out = UINT256 '0'
THEN amount1Out
WHEN tokena_decimals = 6
THEN amount0Out / UINT256 '10000000000'
ELSE amount0Out
END AS token_bought_amount_raw,
CASE
WHEN (amount0In = UINT256 '0' OR amount1Out = UINT256 '0') AND (tokena_decimals IS NULL OR tokena_decimals = 18)
THEN amount1In / UINT256 '10000000000'
WHEN amount0In = UINT256 '0' OR amount1Out = UINT256 '0'
THEN amount1In
WHEN tokena_decimals = 6
THEN amount0In / UINT256 '10000000000'
ELSE amount0In
END AS token_sold_amount_raw,
dexs.token_bought_address,
dexs.token_sold_address,
dexs.taker,
dexs.maker,
dexs.project_contract_address,
dexs.tx_hash,
dexs.evt_index
FROM dexs
{{
uniswap_compatible_v2_trades(
blockchain = 'somnia',
project = 'somnex',
version = '2',
Pair_evt_Swap = source('somnex_somnia', 'somnexammpair_evt_swap'),
Factory_evt_PairCreated = source('somnex_somnia', 'somnexammfactory_evt_paircreated')
)
}}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
blockchain,project,version,tx_hash,evt_index,block_number,token_bought_address,token_sold_address,token_bought_amount_raw,token_sold_amount_raw,block_date
somnia,somnex,2,0x3fc18397bb9fd1559d19cecb6821aeb7d71f82b948c88b03d679d848d0b5db4b,3,106630585,0xd5447af13a1df69add89e185155b20fb72d5e9a7,0x046ede9564a72571df6f5e44d0405360c0f4dcab,249229322563058273,364269680600,2025-09-23
somnia,somnex,2,0xc3450ce884c85537a956857db3fe5ce95276f6e9ba86a984dea01fefceb25ef3,9,106630576,0xd5447af13a1df69add89e185155b20fb72d5e9a7,0x046ede9564a72571df6f5e44d0405360c0f4dcab,99003830147132656,144699316400,2025-09-23
somnia,somnex,2,0x34e0f49e625ee187d7bce56a83a07c7d42eec93bc58fba0c22c263be39236d37,4,93172350,0x28bec7e30e6faee657a03e19bf1128aad7632a00,0xeacddc69a35e0ba239ffb57d7b63d22b0f9779be,214446121296,334684,2025-09-07
somnia,somnex,2,0x34e0f49e625ee187d7bce56a83a07c7d42eec93bc58fba0c22c263be39236d37,4,93172350,0xeacddc69a35e0ba239ffb57d7b63d22b0f9779be,0x28bec7e30e6faee657a03e19bf1128aad7632a00,2144461212968732475491,334684,2025-09-07
somnia,somnex,2,0x34e0f49e625ee187d7bce56a83a07c7d42eec93bc58fba0c22c263be39236d37,7,93172350,0x046ede9564a72571df6f5e44d0405360c0f4dcab,0xeacddc69a35e0ba239ffb57d7b63d22b0f9779be,202768295949114959,2144461212968732475491,2025-09-07
somnia,somnex,2,0xc3450ce884c85537a956857db3fe5ce95276f6e9ba86a984dea01fefceb25ef3,9,106630576,0x046ede9564a72571df6f5e44d0405360c0f4dcab,0xd5447af13a1df69add89e185155b20fb72d5e9a7,99003830147132656,1446993164000000000000,2025-09-23
somnia,somnex,2,0x3fc18397bb9fd1559d19cecb6821aeb7d71f82b948c88b03d679d848d0b5db4b,3,106630585,0x046ede9564a72571df6f5e44d0405360c0f4dcab,0xd5447af13a1df69add89e185155b20fb72d5e9a7,249229322563058273,3642696806000000000000,2025-09-23
2 changes: 1 addition & 1 deletion sources/_sector/dex/trades/somnia/_sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ sources:
- name: somnex_somnia
tables:
- name: somnexammpair_evt_swap
- name: somnexammfactory_call_createpair
- name: somnexammfactory_evt_paircreated