@@ -17,7 +17,6 @@ CREATE TABLE dex.trades (
1717 exchange_contract_address bytea NOT NULL ,
1818 tx_hash bytea NOT NULL ,
1919 tx_from bytea NOT NULL ,
20- tx_to bytea ,
2120 trace_address integer [],
2221 evt_index integer ,
2322 trade_id integer
@@ -47,7 +46,6 @@ WITH rows AS (
4746 exchange_contract_address,
4847 tx_hash,
4948 tx_from,
50- tx_to,
5149 trace_address,
5250 evt_index,
5351 trade_id
@@ -75,7 +73,6 @@ WITH rows AS (
7573 exchange_contract_address,
7674 tx_hash,
7775 tx." from" as tx_from,
78- tx." to" as tx_to,
7976 trace_address,
8077 evt_index,
8178 row_number() OVER (PARTITION BY tx_hash, evt_index, trace_address) AS trade_id
@@ -178,7 +175,6 @@ WITH rows AS (
178175
179176 -- Kyber: trade from ETH - Token
180177 SELECT
181-
182178 evt_block_time AS block_time,
183179 ' Kyber' AS project,
184180 ' 1' AS version,
@@ -331,7 +327,7 @@ WITH rows AS (
331327 -- 0x v2.1
332328 SELECT
333329 evt_block_time AS block_time,
334- ' 0x Native ' AS project,
330+ ' 0x' AS project,
335331 ' 2.1' AS version,
336332 ' DEX' AS category,
337333 " takerAddress" AS trader_a,
@@ -349,75 +345,12 @@ WITH rows AS (
349345
350346 UNION ALL
351347
352- -- 0x v3
348+ -- 0x v3 (0x api volume)
353349 SELECT
354- evt_block_time AS block_time,
355- ' 0x Native ' AS project,
350+ block_time,
351+ ' 0x' AS project,
356352 ' 3' AS version,
357353 ' DEX' AS category,
358- " takerAddress" AS trader_a,
359- " makerAddress" AS trader_b,
360- " takerAssetFilledAmount" AS token_a_amount_raw,
361- " makerAssetFilledAmount" AS token_b_amount_raw,
362- NULL ::numeric AS usd_amount,
363- substring (" takerAssetData" for 20 from 17 ) AS token_a_address,
364- substring (" makerAssetData" for 20 from 17 ) AS token_b_address,
365- contract_address AS exchange_contract_address,
366- evt_tx_hash AS tx_hash,
367- NULL ::integer [] AS trace_address,
368- evt_index
369- FROM zeroex_v3." Exchange_evt_Fill"
370-
371- UNION ALL
372-
373- -- 0x v4 limit orders
374- SELECT
375- evt_block_time AS block_time,
376- ' 0x Native' AS project,
377- ' 4' AS version,
378- ' DEX' AS category,
379- taker AS trader_a,
380- maker AS trader_b,
381- " takerTokenFilledAmount" AS token_a_amount_raw,
382- " makerTokenFilledAmount" AS token_b_amount_raw,
383- NULL ::numeric AS usd_amount,
384- " takerToken" AS token_a_address,
385- " makerToken" AS token_b_address,
386- contract_address AS exchange_contract_address,
387- evt_tx_hash AS tx_hash,
388- NULL ::integer [] AS trace_address,
389- evt_index
390- FROM zeroex." ExchangeProxy_evt_LimitOrderFilled"
391-
392- UNION ALL
393-
394- -- 0x v4 rfq orders
395- SELECT
396- evt_block_time AS block_time,
397- ' 0x Native' AS project,
398- ' 4' AS version,
399- ' DEX' AS category,
400- taker AS trader_a,
401- maker AS trader_b,
402- " takerTokenFilledAmount" AS token_a_amount_raw,
403- " makerTokenFilledAmount" AS token_b_amount_raw,
404- NULL ::numeric AS usd_amount,
405- " takerToken" AS token_a_address,
406- " makerToken" AS token_b_address,
407- contract_address AS exchange_contract_address,
408- evt_tx_hash AS tx_hash,
409- NULL ::integer [] AS trace_address,
410- evt_index
411- FROM zeroex." ExchangeProxy_evt_RfqOrderFilled"
412-
413- UNION ALL
414-
415- -- 0x api
416- SELECT
417- block_time,
418- ' 0x API' AS project,
419- NULL AS version,
420- ' Aggregator' AS category,
421354 " taker" AS trader_a,
422355 " maker" AS trader_b,
423356 " taker_token_amount_raw" AS token_a_amount_raw,
@@ -432,7 +365,7 @@ WITH rows AS (
432365 FROM zeroex." view_0x_api_fills"
433366 where swap_flag is TRUE
434367
435- UNION ALL
368+ UNION
436369
437370 -- Matcha
438371 SELECT
@@ -653,23 +586,23 @@ WITH rows AS (
653586
654587 -- 1inch Limit Orders (0x)
655588 SELECT
656- evt_block_time as block_time,
589+ block_time,
657590 ' 1inch' AS project,
658591 ' 1' AS version,
659592 ' Aggregator' AS category,
660- " takerAddress " AS trader_a,
661- " makerAddress " AS trader_b,
662- " takerAssetFilledAmount " AS token_a_amount_raw,
663- " makerAssetFilledAmount " AS token_b_amount_raw,
593+ " taker " AS trader_a,
594+ " maker " AS trader_b,
595+ " taker_token_amount_raw " AS token_a_amount_raw,
596+ " maker_token_amount_raw " AS token_b_amount_raw,
664597 NULL ::numeric AS usd_amount,
665- substring ( " takerAssetData " for 20 from 17 ) AS token_a_address,
666- substring ( " makerAssetData " for 20 from 17 ) AS token_b_address,
598+ taker_token AS token_a_address,
599+ maker_token AS token_b_address,
667600 contract_address AS exchange_contract_address,
668- evt_tx_hash ,
601+ tx_hash ,
669602 NULL ::integer [] AS trace_address,
670603 evt_index
671- FROM zeroex_v2. " Exchange2.1_evt_Fill "
672- WHERE " feeRecipientAddress " = ' \x 55662e225a3376759c24331a9aed764f8f0c9fbb'
604+ FROM zeroex. " view_0x_api_fills "
605+ WHERE affiliate_address = ' \x 55662e225a3376759c24331a9aed764f8f0c9fbb'
673606
674607 UNION ALL
675608
@@ -712,8 +645,12 @@ WITH rows AS (
712645 result AS token_a_amount_raw,
713646 amount AS token_b_amount_raw,
714647 NULL ::numeric AS usd_amount,
715- dst AS token_a_address,
716- src AS token_b_address,
648+ CASE WHEN dst = ' \x EeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE' OR dst = ' \x 0000000000000000000000000000000000000000' THEN
649+ ' \x c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2' ::bytea ELSE dst
650+ END AS token_a_address,
651+ CASE WHEN src = ' \x EeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE' OR src = ' \x 0000000000000000000000000000000000000000' THEN
652+ ' \x c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2' ::bytea ELSE src
653+ END AS token_b_address,
717654 contract_address AS exchange_contract_address,
718655 evt_tx_hash AS tx_hash,
719656 NULL ::integer [] AS trace_address,
@@ -722,6 +659,31 @@ WITH rows AS (
722659
723660 UNION ALL
724661
662+ -- 1inch LP
663+ SELECT
664+ evt_block_time,
665+ ' 1inch LP' AS project,
666+ ' 1' AS version,
667+ ' DEX' AS category,
668+ sender AS trader_a,
669+ NULL ::bytea AS trader_b,
670+ result AS token_a_amount_raw,
671+ amount AS token_b_amount_raw,
672+ NULL ::numeric AS usd_amount,
673+ CASE WHEN " dstToken" = ' \x EeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE' OR " dstToken" = ' \x 0000000000000000000000000000000000000000' THEN
674+ ' \x c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2' ::bytea ELSE " dstToken"
675+ END AS token_a_address,
676+ CASE WHEN " srcToken" = ' \x EeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE' OR " srcToken" = ' \x 0000000000000000000000000000000000000000' THEN
677+ ' \x c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2' ::bytea ELSE " srcToken"
678+ END AS token_b_address,
679+ contract_address AS exchange_contract_address,
680+ evt_tx_hash AS tx_hash,
681+ NULL ::integer [] AS trace_address,
682+ evt_index
683+ FROM onelp." Mooniswap_evt_Swapped"
684+
685+ UNION ALL
686+
725687 -- Curve
726688 SELECT
727689 block_time,
@@ -908,7 +870,7 @@ WITH rows AS (
908870 WHERE dexs .block_time >= start_ts
909871 AND dexs .block_time < end_ts
910872
911- UNION ALL
873+ UNION
912874
913875 -- synthetix has their own usd-prices
914876 SELECT
@@ -930,7 +892,6 @@ WITH rows AS (
930892 exchange_contract_address,
931893 tx_hash,
932894 tx." from" as tx_from,
933- tx." to" as tx_to,
934895 NULL AS trace_address,
935896 evt_index,
936897 trade_id
@@ -958,7 +919,6 @@ $function$;
958919CREATE UNIQUE INDEX IF NOT EXISTS dex_trades_tr_addr_uniq_idx ON dex .trades (tx_hash, trace_address, trade_id);
959920CREATE UNIQUE INDEX IF NOT EXISTS dex_trades_evt_index_uniq_idx ON dex .trades (tx_hash, evt_index, trade_id);
960921CREATE INDEX IF NOT EXISTS dex_trades_tx_from_idx ON dex .trades (tx_from);
961- CREATE INDEX IF NOT EXISTS dex_trades_tx_to_idx ON dex .trades (tx_to);
962922CREATE INDEX IF NOT EXISTS dex_trades_project_idx ON dex .trades (project);
963923CREATE INDEX IF NOT EXISTS dex_trades_block_time_idx ON dex .trades USING BRIN (block_time);
964924CREATE INDEX IF NOT EXISTS dex_trades_token_a_idx ON dex .trades (token_a_address);
0 commit comments