AN-3561/dim-dex-lp (#620)

* complete lp

* complete dex lp updates

* uni sushi pools filter

* dodo v1 pools

* curve seed

* curve complet

* balancer complete

* updated complete dex swaps to match pool names

* gold layer and descriptions

* yml name

* incremental logic

* group by

* overview docs
This commit is contained in:
drethereum 2023-07-27 11:49:44 -06:00 committed by GitHub
parent 4f219eaa84
commit eafbc05e18
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 1068 additions and 1516 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,3 @@
pool_address,base_token_symbol,quote_token_symbol,base_token,quote_token
0x75c23271661d9d143dcb617222bc4bec783eff34, WETH, USDC, 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x562c0b218cc9ba06d9eb42f3aef54c54cc5a4650, LINK, USDC, 0x514910771af9ca656af840dff83e8264ecf986ca, 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x0d04146b2fe5d267629a7eb341fb4388dcdbd22f, COMP, USDC, 0xc00e94cb662c3520282e6f5717214004a7f26888, 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0xca7b0632bd0e646b0f823927d3d2e61b00fe4d80, SNX, USDC, 0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f, 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0xc226118fcd120634400ce228d61e1538fb21755f, LEND, USDC, 0x80fb784b7ed66730e8b1dbd9820afd29931aab03, 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x2109f78b46a789125598f5ad2b7f243751c2934d, WBTC, USDC, 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599, 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x1b7902a66f133d899130bf44d7d879da89913b2e, YFI, USDC, 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e, 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x1a7fe5d6f0bb2d071e16bdd52c863233bbfd38e9,WETH,USDT,0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,0xdac17f958d2ee523a2206206994597c13d831ec7
0xc9f93163c99695c6526b799ebca2207fdf7d61ad,USDT,USDC,0xdac17f958d2ee523a2206206994597c13d831ec7,0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0xd4a36b0acfe2931cf922ea3d91063ddfe4aff01f,sUSD,USDT,0x57ab1ec28d129707052df4df418d58a2d46d5f51,0xdac17f958d2ee523a2206206994597c13d831ec7
0x8876819535b48b551c9e97ebc07332c7482b4b2d,DODO,USDT,0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd,0xdac17f958d2ee523a2206206994597c13d831ec7
0x9d9793e1e18cdee6cf63818315d55244f73ec006,FIN,USDT,0x054f76beed60ab6dbeb23502178c52d6c5debe40,0xdac17f958d2ee523a2206206994597c13d831ec7
0x94512fd4fb4feb63a6c0f4bedecc4a00ee260528,AAVE,USDC,0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9,0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x85f9569b69083c3e6aeffd301bb2c65606b5d575,wCRESt,USDT,0xa0afaa285ce85974c3c881256cb7f225e3a1178a,0xdac17f958d2ee523a2206206994597c13d831ec7
0x181D93EA28023bf40C8bB94796c55138719803B4,WOO,USDT,0x4691937a7508860F876c9c0a2a617E7d9E945D4B,0xdAC17F958D2ee523a2206206994597C13D831ec7
0xd48c86156D53c0F775f40883391a113fC0D690d0,ibEUR,USDT,0x96E61422b6A9bA0e068B6c5ADd4fFaBC6a4aae27,0xdAC17F958D2ee523a2206206994597C13D831ec7
0x181d93ea28023bf40c8bb94796c55138719803b4,WOO,USDT,0x4691937a7508860f876c9c0a2a617e7d9e945d4b,0xdac17f958d2ee523a2206206994597c13d831ec7
0x8876819535b48b551c9e97ebc07332c7482b4b2d,DODO,USDT,0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd,0xdac17f958d2ee523a2206206994597c13d831ec7
1 pool_address base_token_symbol quote_token_symbol base_token quote_token
2 0x75c23271661d9d143dcb617222bc4bec783eff34 0x181d93ea28023bf40c8bb94796c55138719803b4 WETH WOO USDC USDT 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0x4691937a7508860f876c9c0a2a617e7d9e945d4b 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0xdac17f958d2ee523a2206206994597c13d831ec7
3 0x562c0b218cc9ba06d9eb42f3aef54c54cc5a4650 0x8876819535b48b551c9e97ebc07332c7482b4b2d LINK DODO USDC USDT 0x514910771af9ca656af840dff83e8264ecf986ca 0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0xdac17f958d2ee523a2206206994597c13d831ec7
0x0d04146b2fe5d267629a7eb341fb4388dcdbd22f COMP USDC 0xc00e94cb662c3520282e6f5717214004a7f26888 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0xca7b0632bd0e646b0f823927d3d2e61b00fe4d80 SNX USDC 0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0xc226118fcd120634400ce228d61e1538fb21755f LEND USDC 0x80fb784b7ed66730e8b1dbd9820afd29931aab03 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x2109f78b46a789125598f5ad2b7f243751c2934d WBTC USDC 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x1b7902a66f133d899130bf44d7d879da89913b2e YFI USDC 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x1a7fe5d6f0bb2d071e16bdd52c863233bbfd38e9 WETH USDT 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0xdac17f958d2ee523a2206206994597c13d831ec7
0xc9f93163c99695c6526b799ebca2207fdf7d61ad USDT USDC 0xdac17f958d2ee523a2206206994597c13d831ec7 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0xd4a36b0acfe2931cf922ea3d91063ddfe4aff01f sUSD USDT 0x57ab1ec28d129707052df4df418d58a2d46d5f51 0xdac17f958d2ee523a2206206994597c13d831ec7
0x8876819535b48b551c9e97ebc07332c7482b4b2d DODO USDT 0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd 0xdac17f958d2ee523a2206206994597c13d831ec7
0x9d9793e1e18cdee6cf63818315d55244f73ec006 FIN USDT 0x054f76beed60ab6dbeb23502178c52d6c5debe40 0xdac17f958d2ee523a2206206994597c13d831ec7
0x94512fd4fb4feb63a6c0f4bedecc4a00ee260528 AAVE USDC 0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0x85f9569b69083c3e6aeffd301bb2c65606b5d575 wCRESt USDT 0xa0afaa285ce85974c3c881256cb7f225e3a1178a 0xdac17f958d2ee523a2206206994597c13d831ec7
0x181D93EA28023bf40C8bB94796c55138719803B4 WOO USDT 0x4691937a7508860F876c9c0a2a617E7d9E945D4B 0xdAC17F958D2ee523a2206206994597C13D831ec7
0xd48c86156D53c0F775f40883391a113fC0D690d0 ibEUR USDT 0x96E61422b6A9bA0e068B6c5ADd4fFaBC6a4aae27 0xdAC17F958D2ee523a2206206994597C13D831ec7

View File

@ -0,0 +1,15 @@
POOL_ADDRESS,TOKEN_ADDRESS,TOKEN_INDEX,TOKEN_TYPE,TOKEN_SYMBOL,TOKEN_DECIMALS,TOKEN_NAME,POOL_NAME,POOL_ID,_INSERTED_TIMESTAMP,DEPLOYER_ADDRESS,TX_HASH,BLOCK_NUMBER,BLOCK_TIMESTAMP,_CALL_ID
0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c,0xdac17f958d2ee523a2206206994597c13d831ec7,2,coins,USDT,6,Tether USD,Curve.fi Pool: cDAI-cUSDC-USDT,0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c0xdac17f958d2ee523a2206206994597c13d831ec7,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x230a00553d373fe696304795818d35e8d9fded6e9a3c5907bb46709c0e3b3e64,9456293,2020-02-10T04:45:58Z,9456293-13-CREATE_ORIGIN
0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c,0x5d3a536e4d6dbd6114cc1ead35777bab948e3643,0,coins,cDAI,8,Compound Dai,Curve.fi Pool: cDAI-cUSDC-USDT,0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c0x5d3a536e4d6dbd6114cc1ead35777bab948e3643,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x230a00553d373fe696304795818d35e8d9fded6e9a3c5907bb46709c0e3b3e64,9456293,2020-02-10T04:45:58Z,9456293-13-CREATE_ORIGIN
0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c,0x39aa39c021dfbae8fac545936693ac917d5e7563,1,coins,cUSDC,8,Compound USD Coin,Curve.fi Pool: cDAI-cUSDC-USDT,0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c0x39aa39c021dfbae8fac545936693ac917d5e7563,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x230a00553d373fe696304795818d35e8d9fded6e9a3c5907bb46709c0e3b3e64,9456293,2020-02-10T04:45:58Z,9456293-13-CREATE_ORIGIN
0x7fc77b5c7614e1533320ea6ddc2eb61fa00a9714,0xfe18be6b3bd88a2d2a7f928d00292e7a9963cfc6,2,coins,sBTC,18,Synth sBTC,Curve.fi Pool: renBTC-WBTC-sBTC,0x7fc77b5c7614e1533320ea6ddc2eb61fa00a97140xfe18be6b3bd88a2d2a7f928d00292e7a9963cfc6,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x6d1ef1e56febb5fdacedd5470aeb7ecbfe767963934821b62de9ad28da81179a,10276641,2020-06-16T011:57:02Z,10276641-42-CREATE_ORIGIN
0x7fc77b5c7614e1533320ea6ddc2eb61fa00a9714,0xeb4c2781e4eba804ce9a9803c67d0893436bb27d,0,coins,renBTC,8,renBTC,Curve.fi Pool: renBTC-WBTC-sBTC,0x7fc77b5c7614e1533320ea6ddc2eb61fa00a97140xeb4c2781e4eba804ce9a9803c67d0893436bb27d,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x6d1ef1e56febb5fdacedd5470aeb7ecbfe767963934821b62de9ad28da81179a,10276641,2020-06-16T011:57:02Z,10276641-42-CREATE_ORIGIN
0x7fc77b5c7614e1533320ea6ddc2eb61fa00a9714,0x2260fac5e5542a773aa44fbcfedf7c193bc2c599,1,coins,WBTC,8,Wrapped BTC,Curve.fi Pool: renBTC-WBTC-sBTC,0x7fc77b5c7614e1533320ea6ddc2eb61fa00a97140x2260fac5e5542a773aa44fbcfedf7c193bc2c599,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x6d1ef1e56febb5fdacedd5470aeb7ecbfe767963934821b62de9ad28da81179a,10276641,2020-06-16T011:57:02Z,10276641-42-CREATE_ORIGIN
0x93054188d876f558f4a66b2ef1d97d16edf0895b,0xeb4c2781e4eba804ce9a9803c67d0893436bb27d,0,coins,renBTC,8,renBTC,Curve.fi Pool: renBTC-WBTC,0x93054188d876f558f4a66b2ef1d97d16edf0895b0xeb4c2781e4eba804ce9a9803c67d0893436bb27d,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x12422cd099f0b6a09fb6fb53e66ee1ec6a1bd8377718b5025c5998176cd27935,10151385,2020-05-28T01:50:43Z,10151385-5-CREATE_ORIGIN
0x93054188d876f558f4a66b2ef1d97d16edf0895b,0x2260fac5e5542a773aa44fbcfedf7c193bc2c599,1,coins,WBTC,8,Wrapped BTC,Curve.fi Pool: renBTC-WBTC,0x93054188d876f558f4a66b2ef1d97d16edf0895b0x2260fac5e5542a773aa44fbcfedf7c193bc2c599,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x12422cd099f0b6a09fb6fb53e66ee1ec6a1bd8377718b5025c5998176cd27935,10151385,2020-05-28T01:50:43Z,10151385-5-CREATE_ORIGIN
0xa2b47e3d5c44877cca798226b7b8118f9bfb7a56,0x5d3a536e4d6dbd6114cc1ead35777bab948e3643,0,coins,cDAI,8,Compound Dai,Curve.fi Pool: cDAI-cUSDC,0xa2b47e3d5c44877cca798226b7b8118f9bfb7a560x5d3a536e4d6dbd6114cc1ead35777bab948e3643,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x39f6f83e7b1b7dab4afa05020c0b3b4b1cbc64bfd583af46122d26ef87f2d3f9,9554040,2020-02-25T05:48:31Z,9554040-22-CREATE_ORIGIN
0xa2b47e3d5c44877cca798226b7b8118f9bfb7a56,0x39aa39c021dfbae8fac545936693ac917d5e7563,1,coins,cUSDC,8,Compound USD Coin,Curve.fi Pool: cDAI-cUSDC,0xa2b47e3d5c44877cca798226b7b8118f9bfb7a560x39aa39c021dfbae8fac545936693ac917d5e7563,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x39f6f83e7b1b7dab4afa05020c0b3b4b1cbc64bfd583af46122d26ef87f2d3f9,9554040,2020-02-25T05:48:31Z,9554040-22-CREATE_ORIGIN
0xa5407eae9ba41422680e2e00537571bcc53efbfd,0xdac17f958d2ee523a2206206994597c13d831ec7,2,coins,USDT,6,Tether USD,Curve.fi Pool: DAI-USDC-USDT-sUSD,0xa5407eae9ba41422680e2e00537571bcc53efbfd0xdac17f958d2ee523a2206206994597c13d831ec7,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x51aca4a03a395de8855fa2ca59b7febe520c2a223e69c502066162f7c1a95ec2,9906598,2020-04-20T02:14:04Z,9906598-78-CREATE_ORIGIN
0xa5407eae9ba41422680e2e00537571bcc53efbfd,0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48,1,coins,USDC,6,USD Coin,Curve.fi Pool: DAI-USDC-USDT-sUSD,0xa5407eae9ba41422680e2e00537571bcc53efbfd0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x51aca4a03a395de8855fa2ca59b7febe520c2a223e69c502066162f7c1a95ec2,9906598,2020-04-20T02:14:04Z,9906598-78-CREATE_ORIGIN
0xa5407eae9ba41422680e2e00537571bcc53efbfd,0x6b175474e89094c44da98b954eedeac495271d0f,0,coins,DAI,18,Dai Stablecoin,Curve.fi Pool: DAI-USDC-USDT-sUSD,0xa5407eae9ba41422680e2e00537571bcc53efbfd0x6b175474e89094c44da98b954eedeac495271d0f,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x51aca4a03a395de8855fa2ca59b7febe520c2a223e69c502066162f7c1a95ec2,9906598,2020-04-20T02:14:04Z,9906598-78-CREATE_ORIGIN
0xa5407eae9ba41422680e2e00537571bcc53efbfd,0x57ab1ec28d129707052df4df418d58a2d46d5f51,3,coins,sUSD,18,Synth sUSD,Curve.fi Pool: DAI-USDC-USDT-sUSD,0xa5407eae9ba41422680e2e00537571bcc53efbfd0x57ab1ec28d129707052df4df418d58a2d46d5f51,2020-01-01T00:00:00Z,0xc447fcaf1def19a583f97b3620627bf69c05b5fb,0x51aca4a03a395de8855fa2ca59b7febe520c2a223e69c502066162f7c1a95ec2,9906598,2020-04-20T02:14:04Z,9906598-78-CREATE_ORIGIN
1 POOL_ADDRESS TOKEN_ADDRESS TOKEN_INDEX TOKEN_TYPE TOKEN_SYMBOL TOKEN_DECIMALS TOKEN_NAME POOL_NAME POOL_ID _INSERTED_TIMESTAMP DEPLOYER_ADDRESS TX_HASH BLOCK_NUMBER BLOCK_TIMESTAMP _CALL_ID
2 0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c 0xdac17f958d2ee523a2206206994597c13d831ec7 2 coins USDT 6 Tether USD Curve.fi Pool: cDAI-cUSDC-USDT 0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c0xdac17f958d2ee523a2206206994597c13d831ec7 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x230a00553d373fe696304795818d35e8d9fded6e9a3c5907bb46709c0e3b3e64 9456293 2020-02-10T04:45:58Z 9456293-13-CREATE_ORIGIN
3 0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c 0x5d3a536e4d6dbd6114cc1ead35777bab948e3643 0 coins cDAI 8 Compound Dai Curve.fi Pool: cDAI-cUSDC-USDT 0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c0x5d3a536e4d6dbd6114cc1ead35777bab948e3643 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x230a00553d373fe696304795818d35e8d9fded6e9a3c5907bb46709c0e3b3e64 9456293 2020-02-10T04:45:58Z 9456293-13-CREATE_ORIGIN
4 0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c 0x39aa39c021dfbae8fac545936693ac917d5e7563 1 coins cUSDC 8 Compound USD Coin Curve.fi Pool: cDAI-cUSDC-USDT 0x52ea46506b9cc5ef470c5bf89f17dc28bb35d85c0x39aa39c021dfbae8fac545936693ac917d5e7563 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x230a00553d373fe696304795818d35e8d9fded6e9a3c5907bb46709c0e3b3e64 9456293 2020-02-10T04:45:58Z 9456293-13-CREATE_ORIGIN
5 0x7fc77b5c7614e1533320ea6ddc2eb61fa00a9714 0xfe18be6b3bd88a2d2a7f928d00292e7a9963cfc6 2 coins sBTC 18 Synth sBTC Curve.fi Pool: renBTC-WBTC-sBTC 0x7fc77b5c7614e1533320ea6ddc2eb61fa00a97140xfe18be6b3bd88a2d2a7f928d00292e7a9963cfc6 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x6d1ef1e56febb5fdacedd5470aeb7ecbfe767963934821b62de9ad28da81179a 10276641 2020-06-16T011:57:02Z 10276641-42-CREATE_ORIGIN
6 0x7fc77b5c7614e1533320ea6ddc2eb61fa00a9714 0xeb4c2781e4eba804ce9a9803c67d0893436bb27d 0 coins renBTC 8 renBTC Curve.fi Pool: renBTC-WBTC-sBTC 0x7fc77b5c7614e1533320ea6ddc2eb61fa00a97140xeb4c2781e4eba804ce9a9803c67d0893436bb27d 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x6d1ef1e56febb5fdacedd5470aeb7ecbfe767963934821b62de9ad28da81179a 10276641 2020-06-16T011:57:02Z 10276641-42-CREATE_ORIGIN
7 0x7fc77b5c7614e1533320ea6ddc2eb61fa00a9714 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 1 coins WBTC 8 Wrapped BTC Curve.fi Pool: renBTC-WBTC-sBTC 0x7fc77b5c7614e1533320ea6ddc2eb61fa00a97140x2260fac5e5542a773aa44fbcfedf7c193bc2c599 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x6d1ef1e56febb5fdacedd5470aeb7ecbfe767963934821b62de9ad28da81179a 10276641 2020-06-16T011:57:02Z 10276641-42-CREATE_ORIGIN
8 0x93054188d876f558f4a66b2ef1d97d16edf0895b 0xeb4c2781e4eba804ce9a9803c67d0893436bb27d 0 coins renBTC 8 renBTC Curve.fi Pool: renBTC-WBTC 0x93054188d876f558f4a66b2ef1d97d16edf0895b0xeb4c2781e4eba804ce9a9803c67d0893436bb27d 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x12422cd099f0b6a09fb6fb53e66ee1ec6a1bd8377718b5025c5998176cd27935 10151385 2020-05-28T01:50:43Z 10151385-5-CREATE_ORIGIN
9 0x93054188d876f558f4a66b2ef1d97d16edf0895b 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 1 coins WBTC 8 Wrapped BTC Curve.fi Pool: renBTC-WBTC 0x93054188d876f558f4a66b2ef1d97d16edf0895b0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x12422cd099f0b6a09fb6fb53e66ee1ec6a1bd8377718b5025c5998176cd27935 10151385 2020-05-28T01:50:43Z 10151385-5-CREATE_ORIGIN
10 0xa2b47e3d5c44877cca798226b7b8118f9bfb7a56 0x5d3a536e4d6dbd6114cc1ead35777bab948e3643 0 coins cDAI 8 Compound Dai Curve.fi Pool: cDAI-cUSDC 0xa2b47e3d5c44877cca798226b7b8118f9bfb7a560x5d3a536e4d6dbd6114cc1ead35777bab948e3643 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x39f6f83e7b1b7dab4afa05020c0b3b4b1cbc64bfd583af46122d26ef87f2d3f9 9554040 2020-02-25T05:48:31Z 9554040-22-CREATE_ORIGIN
11 0xa2b47e3d5c44877cca798226b7b8118f9bfb7a56 0x39aa39c021dfbae8fac545936693ac917d5e7563 1 coins cUSDC 8 Compound USD Coin Curve.fi Pool: cDAI-cUSDC 0xa2b47e3d5c44877cca798226b7b8118f9bfb7a560x39aa39c021dfbae8fac545936693ac917d5e7563 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x39f6f83e7b1b7dab4afa05020c0b3b4b1cbc64bfd583af46122d26ef87f2d3f9 9554040 2020-02-25T05:48:31Z 9554040-22-CREATE_ORIGIN
12 0xa5407eae9ba41422680e2e00537571bcc53efbfd 0xdac17f958d2ee523a2206206994597c13d831ec7 2 coins USDT 6 Tether USD Curve.fi Pool: DAI-USDC-USDT-sUSD 0xa5407eae9ba41422680e2e00537571bcc53efbfd0xdac17f958d2ee523a2206206994597c13d831ec7 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x51aca4a03a395de8855fa2ca59b7febe520c2a223e69c502066162f7c1a95ec2 9906598 2020-04-20T02:14:04Z 9906598-78-CREATE_ORIGIN
13 0xa5407eae9ba41422680e2e00537571bcc53efbfd 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 1 coins USDC 6 USD Coin Curve.fi Pool: DAI-USDC-USDT-sUSD 0xa5407eae9ba41422680e2e00537571bcc53efbfd0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x51aca4a03a395de8855fa2ca59b7febe520c2a223e69c502066162f7c1a95ec2 9906598 2020-04-20T02:14:04Z 9906598-78-CREATE_ORIGIN
14 0xa5407eae9ba41422680e2e00537571bcc53efbfd 0x6b175474e89094c44da98b954eedeac495271d0f 0 coins DAI 18 Dai Stablecoin Curve.fi Pool: DAI-USDC-USDT-sUSD 0xa5407eae9ba41422680e2e00537571bcc53efbfd0x6b175474e89094c44da98b954eedeac495271d0f 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x51aca4a03a395de8855fa2ca59b7febe520c2a223e69c502066162f7c1a95ec2 9906598 2020-04-20T02:14:04Z 9906598-78-CREATE_ORIGIN
15 0xa5407eae9ba41422680e2e00537571bcc53efbfd 0x57ab1ec28d129707052df4df418d58a2d46d5f51 3 coins sUSD 18 Synth sUSD Curve.fi Pool: DAI-USDC-USDT-sUSD 0xa5407eae9ba41422680e2e00537571bcc53efbfd0x57ab1ec28d129707052df4df418d58a2d46d5f51 2020-01-01T00:00:00Z 0xc447fcaf1def19a583f97b3620627bf69c05b5fb 0x51aca4a03a395de8855fa2ca59b7febe520c2a223e69c502066162f7c1a95ec2 9906598 2020-04-20T02:14:04Z 9906598-78-CREATE_ORIGIN

View File

@ -0,0 +1,6 @@
{% docs dex_lp_deprecation %}
Deprecating soon: This table will be upgraded to include liquidity pools for all applicable dexes. Please migrate queries to `defi.dim_dex_liquidity_pools`. This table will be deprecated on 08/17/2023.
{% enddocs %}

View File

@ -0,0 +1,5 @@
{% docs eth_dex_creation_block %}
The block number of when this pool was created.
{% enddocs %}

View File

@ -1,5 +1,5 @@
{% docs eth_dex_creation_time %}
When this pool was created, where possible.
The block timestamp of when this pool was created.
{% enddocs %}

View File

@ -1,5 +1,5 @@
{% docs eth_dex_creation_tx %}
The transaction where this contract was created, where possible.
The transaction where this contract was created.
{% enddocs %}

View File

@ -1,5 +1,5 @@
{% docs eth_dex_factory_address %}
The address that created or deployed this pool, where possible.
The address that created or deployed this pool, where available.
{% enddocs %}

View File

@ -0,0 +1,15 @@
{% docs eth_dex_lp_decimals %}
The # of decimals for the token included in the liquidity pool, as a JSON object, where available.
Query example to access the key:value pairing within the object:
SELECT
DISTINCT pool_address AS unique_pools,
tokens :token0 :: STRING AS token0,
symbols: token0 :: STRING AS token0_symbol,
decimals: token0 :: STRING AS token0_decimal
FROM ethereum.defi.dim_dex_liquidity_pools
WHERE token0_decimal = 6
;
{% enddocs %}

View File

@ -0,0 +1,15 @@
{% docs eth_dex_lp_symbols %}
The symbol for the token included in the liquidity pool, as a JSON object, where available.
Query example to access the key:value pairing within the object:
SELECT
DISTINCT pool_address AS unique_pools,
tokens :token0 :: STRING AS token0,
symbols: token0 :: STRING AS token0_symbol,
decimals: token0 :: STRING AS token0_decimal
FROM ethereum.defi.dim_dex_liquidity_pools
WHERE token0_symbol = 'WETH'
;
{% enddocs %}

View File

@ -1,5 +1,5 @@
{% docs eth_dex_lp_table_doc %}
This table contains details on different Liquidity Pools on the Ethereum blockchain, including the tokens within each pool as well as platform and contract creation info where possible.
This table contains details on decentralized exchange (DEX) liquidity pools (LP) on the Ethereum blockchain, including the tokens, symbols and decimals within each pool alongside the following protocols: BALANCER, CURVE, DODO, FRAXSWAP, KYBERSWAP, MAVERICK, PANCAKESWAP, SHIBASWAP, SUSHISWAP, UNISWAP .
{% enddocs %}

View File

@ -0,0 +1,15 @@
{% docs eth_dex_lp_tokens %}
The address for the token included in the liquidity pool, as a JSON object.
Query example to access the key:value pairing within the object:
SELECT
DISTINCT pool_address AS unique_pools,
tokens :token0 :: STRING AS token0,
symbols: token0 :: STRING AS token0_symbol,
decimals: token0 :: STRING AS token0_decimal
FROM ethereum.defi.dim_dex_liquidity_pools
WHERE token0 = '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'
;
{% enddocs %}

View File

@ -1,5 +1,5 @@
{% docs eth_dex_platform %}
This field denotes which application the liquidity pool belongs to.
The protocol or platform that the liquidity pool belongs to or swap occurred on.
{% enddocs %}

View File

@ -1,5 +1,5 @@
{% docs eth_dex_pool_name %}
The name of the liquidity pool, where possible.
The name of the liquidity pool, where available. In some cases, the pool name is a concatenation of symbols or token addresses.
{% enddocs %}

View File

@ -1,5 +0,0 @@
{% docs eth_dex_tokens %}
This field contains the tokens within the liquidity pool as a JSON objects.
{% enddocs %}

View File

@ -52,6 +52,7 @@ There is more information on how to use dbt docs in the last section of this doc
- [ez_token_transfers](https://flipsidecrypto.github.io/ethereum-models/#!/model/model.ethereum_models.core__ez_token_transfers)
### DeFi Tables (ethereum.defi)
- [dim_dex_liquidity_pools](https://flipsidecrypto.github.io/ethereum-models/#!/model/model.ethereum_models.defi__dim_dex_liquidity_pools)
- [ez_liquid_staking_deposits](https://flipsidecrypto.github.io/ethereum-models/#!/model/model.ethereum_models.defi__ez_liquid_staking_deposits)
- [ez_liquid_staking_withdrawals](https://flipsidecrypto.github.io/ethereum-models/#!/model/model.ethereum_models.defi__ez_liquid_staking_withdrawals)

View File

@ -0,0 +1,27 @@
{{ config(
materialized = 'view',
persist_docs ={ "relation": true,
"columns": true },
meta={
'database_tags':{
'table': {
'PROTOCOL': 'BALANCER, CURVE, DODO, FRAXSWAP, KYBERSWAP, MAVERICK, PANCAKESWAP, SHIBASWAP, SUSHISWAP, UNISWAP',
'PURPOSE': 'DEX, LIQUIDITY, POOLS, LP, SWAPS',
}
}
}
) }}
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
FROM
{{ ref('silver_dex__complete_dex_liquidity_pools') }}

View File

@ -0,0 +1,27 @@
version: 2
models:
- name: defi__dim_dex_liquidity_pools
description: '{{ doc("eth_dex_lp_table_doc") }}'
columns:
- name: CREATION_BLOCK
description: '{{ doc("eth_dex_creation_block") }}'
- name: CREATION_TIME
description: '{{ doc("eth_dex_creation_time") }}'
- name: CREATION_TX
description: '{{ doc("eth_dex_creation_tx") }}'
- name: FACTORY_ADDRESS
description: '{{ doc("eth_dex_factory_address") }}'
- name: PLATFORM
description: '{{ doc("eth_dex_platform") }}'
- name: POOL_ADDRESS
description: '{{ doc("eth_dex_pool_address") }}'
- name: POOL_NAME
description: '{{ doc("eth_dex_pool_name") }}'
- name: TOKENS
description: '{{ doc("eth_dex_lp_tokens") }}'
- name: SYMBOLS
description: '{{ doc("eth_dex_lp_symbols") }}'
- name: DECIMALS
description: '{{ doc("eth_dex_lp_decimals") }}'

View File

@ -1,30 +1,5 @@
version: 2
models:
- name: core__dim_dex_liquidity_pools
description: '{{ doc("eth_dex_lp_table_doc") }}'
description: '{{ doc("dex_lp_deprecation") }}'
columns:
- name: CREATION_TIME
description: '{{ doc("eth_dex_creation_time") }}'
- name: CREATION_TX
description: '{{ doc("eth_dex_creation_tx") }}'
- name: FACTORY_ADDRESS
description: '{{ doc("eth_dex_factory_address") }}'
- name: POOL_NAME
description: '{{ doc("eth_dex_pool_name") }}'
- name: POOL_ADDRESS
description: '{{ doc("eth_dex_pool_address") }}'
- name: TOKEN0
description: '{{ doc("eth_dex_token0") }}'
- name: TOKEN1
description: '{{ doc("eth_dex_token1") }}'
- name: PLATFORM
description: '{{ doc("eth_dex_platform") }}'
- name: TOKENS
description: '{{ doc("eth_dex_platform") }}'

View File

@ -1,34 +1,72 @@
{{ config(
materialized = 'incremental',
unique_key = "pool_address",
full_refresh = false
unique_key = "pool_address"
) }}
WITH pool_creation AS (
-- full_refresh = false
WITH pools_registered AS (
SELECT
tx_hash,
topics [1] :: STRING AS pool_id,
SUBSTR(topics [1] :: STRING,1,42) AS contract_address,
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,
_log_id,
_inserted_timestamp,
ROW_NUMBER() OVER (ORDER BY contract_address) AS row_num
ROW_NUMBER() OVER (ORDER BY pool_address) AS row_num
FROM
{{ ref('silver__logs') }}
WHERE
topics[0]::STRING = '0x3c13bc30b8e878c53fd2a36b679409c073afd75950be43d8858768e956fbc20e'
topics[0]::STRING = '0x3c13bc30b8e878c53fd2a36b679409c073afd75950be43d8858768e956fbc20e' --PoolRegistered
AND contract_address = '0xba12222222228d8ba445958a75a0704d566bf2c8'
{% if is_incremental() %}
AND contract_address NOT IN (
SELECT
DISTINCT pool_address
FROM
{{ this }}
)
AND _inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 2
FROM
{{ this }}
)
{% endif %}
),
tokens_registered AS (
SELECT
block_number,
block_timestamp,
event_index,
tx_hash,
contract_address,
decoded_flat :poolId :: STRING AS pool_id,
decoded_flat :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_flat :assetManagers AS asset_managers,
_log_id,
_inserted_timestamp
FROM ethereum.silver.decoded_logs
WHERE
topics[0]::STRING = '0xf5847d3f2197b16cdcd2098ec95d0905cd1abdaf415f07bb7cef2bba8ac5dec4' --TokensRegistered
AND contract_address = '0xba12222222228d8ba445958a75a0704d566bf2c8'
AND tx_hash IN (
SELECT
tx_hash
FROM
pools_registered
)
),
function_sigs AS (
SELECT
@ -47,12 +85,12 @@ SELECT
inputs_pools AS (
SELECT
contract_address,
pool_address,
block_number,
function_sig,
(ROW_NUMBER() OVER (PARTITION BY contract_address
(ROW_NUMBER() OVER (PARTITION BY pool_address
ORDER BY block_number)) - 1 AS function_input
FROM pool_creation
FROM pools_registered
JOIN function_sigs ON 1=1
),
@ -72,13 +110,13 @@ FROM (
CONCAT('[', LISTAGG(read_input, ','), ']') AS batch_read
FROM (
SELECT
contract_address,
pool_address,
block_number,
function_sig,
function_input,
CONCAT(
'[\'',
contract_address,
pool_address,
'\',',
block_number,
',\'',
@ -89,7 +127,7 @@ FROM (
) AS read_input,
row_num
FROM inputs_pools
LEFT JOIN pool_creation USING(contract_address)
LEFT JOIN pools_registered USING(pool_address)
) ready_reads_pools
WHERE row_num BETWEEN {{ item * 50 + 1 }} AND {{ (item + 1) * 50}}
) batch_reads_pools
@ -113,7 +151,7 @@ SELECT
read_id,
'-'
) AS read_id_object,
read_id_object [0] :: STRING AS contract_address,
read_id_object [0] :: STRING AS pool_address,
read_id_object [1] :: STRING AS block_number,
read_id_object [2] :: STRING AS function_sig,
read_id_object [3] :: STRING AS function_input,
@ -128,7 +166,7 @@ FROM
pool_details AS (
SELECT
contract_address AS pool_address,
pool_address,
function_sig,
function_name,
read_result,
@ -142,7 +180,9 @@ FINAL AS (
SELECT
pool_address,
MIN(CASE WHEN function_name = 'symbol' THEN TRY_HEX_DECODE_STRING(segmented_output [2] :: STRING) END) AS pool_symbol,
MIN(CASE WHEN function_name = 'symbol' THEN utils.udf_hex_to_string(segmented_output [2] :: STRING) END) AS pool_symbol2,
MIN(CASE WHEN function_name = 'name' THEN TRY_HEX_DECODE_STRING(segmented_output [2] :: STRING) END) AS pool_name,
MIN(CASE WHEN function_name = 'name' THEN utils.udf_hex_to_string(segmented_output [2] :: STRING) END) AS pool_name2,
MIN(CASE
WHEN read_result::STRING = '0x' THEN NULL
ELSE utils.udf_hex_to_int(LEFT(read_result::STRING,66))
@ -153,11 +193,30 @@ GROUP BY 1
)
SELECT
pool_address,
pool_symbol,
pool_name,
pool_decimals,
_inserted_timestamp
FROM FINAL
WHERE pool_name IS NOT NULL
AND pool_symbol IS NOT NULL
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_symbol2,
f.pool_name,
f.pool_name2,
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

View File

@ -1,8 +1,8 @@
{{ config(
materialized = 'incremental',
unique_key = "pool_id",
full_refresh = false
unique_key = "pool_id"
) }}
-- full_refresh = false
WITH contract_deployments AS (
@ -12,6 +12,7 @@ SELECT
block_timestamp,
from_address AS deployer_address,
to_address AS contract_address,
_call_id,
_inserted_timestamp,
ROW_NUMBER() OVER (ORDER BY contract_address) AS row_num
FROM
@ -180,7 +181,7 @@ FROM inputs_pool_details
pool_token_reads AS (
{% for item in range(10) %}
{% for item in range(20) %}
(
SELECT
ethereum.streamline.udf_json_rpc_read_calls(
@ -214,7 +215,7 @@ FROM (
FROM all_inputs
LEFT JOIN contract_deployments USING(contract_address)
) ready_reads_pools
WHERE row_num BETWEEN {{ item * 500 + 1 }} AND {{ (item + 1) * 500}}
WHERE row_num BETWEEN {{ item * 250 + 1 }} AND {{ (item + 1) * 250}}
) batch_reads_pools
JOIN {{ source(
'streamline_crosschain',
@ -288,9 +289,9 @@ SELECT
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 TRY_HEX_DECODE_STRING(RTRIM(p.segmented_output [2] :: STRING, 0)) END) AS pool_symbol,
MIN(CASE WHEN p.function_name = 'name' THEN CONCAT(TRY_HEX_DECODE_STRING(p.segmented_output [2] :: STRING),
TRY_HEX_DECODE_STRING(segmented_output [3] :: STRING)) END) AS pool_name,
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(p.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))
@ -314,6 +315,10 @@ 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 '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'
@ -333,56 +338,84 @@ SELECT
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.address
LEFT JOIN {{ ref('silver__contracts') }} c
ON a.token_address = c.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
),
pool_backfill AS (
SELECT
block_number,
block_timestamp :: TIMESTAMP AS block_timestamp,
tx_hash,
deployer_address,
pool_address,
token_address,
token_index :: INTEGER AS token_id,
token_index :: STRING AS token_id,
token_type,
token_symbol AS pool_symbol,
pool_name,
token_decimals :: INTEGER AS pool_decimals,
pool_id,
_inserted_timestamp
FROM {{ ref('silver__curve_pools_20230308') }}
WHERE pool_address NOT IN (
SELECT pool_address
FROM FINAL
)
)
SELECT
pool_address,
token_address,
token_id,
token_type,
pool_symbol,
pool_name,
pool_decimals,
pool_id,
_inserted_timestamp
FROM FINAL
UNION
SELECT
pool_address,
token_address,
token_id,
token_type,
pool_symbol,
pool_name,
pool_decimals,
CONCAT(
pool_id,
'-',
token_id,
'-',
COALESCE(token_type,'null')
token_type
) AS pool_id,
_call_id,
_inserted_timestamp :: TIMESTAMP AS _inserted_timestamp
FROM {{ ref('silver_dex__curve_pools_traces_backfill') }}
WHERE pool_address NOT IN (
SELECT pool_address
FROM FINAL
)
),
final_pools AS (
SELECT
block_number,
block_timestamp,
tx_hash,
deployer_address,
pool_address,
token_address,
token_id,
token_type,
pool_symbol,
pool_name,
pool_decimals,
pool_id,
_call_id,
_inserted_timestamp
FROM pool_backfill
FROM FINAL
UNION
SELECT
block_number,
block_timestamp,
tx_hash,
deployer_address,
pool_address,
token_address,
token_id,
token_type,
pool_symbol,
pool_name,
pool_decimals,
pool_id,
_call_id,
_inserted_timestamp
FROM pool_backfill
)
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY pool_address ORDER BY token_address ASC) AS token_num
FROM final_pools

View File

@ -8,33 +8,14 @@ WITH pool_meta AS (
SELECT
DISTINCT pool_address,
CASE
WHEN pool_name IS NULL AND pool_symbol IS NULL THEN CONCAT('Curve.fi Pool: ',SUBSTRING(pool_address, 1, 5),'...',SUBSTRING(pool_address, 39, 42))
WHEN pool_name IS NULL THEN CONCAT('Curve.fi Pool: ',replace(regexp_replace(agg_symbol, '[^[:alnum:],]', '', 1, 0), ',', '-'))
ELSE pool_name
END AS pool_name,
token_address,
pool_symbol AS symbol,
token_id::INTEGER AS token_id,
token_type::STRING AS token_type
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') }}
LEFT JOIN (
SELECT
pool_address,
array_agg(DISTINCT pool_symbol)::STRING AS agg_symbol
FROM {{ ref('silver_dex__curve_pools') }}
GROUP BY 1
) USING(pool_address)
),
pools AS (
SELECT
DISTINCT pool_address,
pool_name
FROM pool_meta
QUALIFY (ROW_NUMBER() OVER (PARTITION BY pool_address ORDER BY pool_name ASC)) = 1
QUALIFY (ROW_NUMBER() OVER (PARTITION BY pool_address ORDER BY pool_name ASC)) = 1
),
curve_base AS (
@ -70,9 +51,9 @@ curve_base AS (
_log_id,
_inserted_timestamp
FROM
{{ ref('silver__logs') }}
INNER JOIN pools
ON pools.pool_address = contract_address
{{ ref('silver__logs') }} l
INNER JOIN pool_meta m
ON m.pool_address = l.contract_address
WHERE
topics [0] :: STRING IN (
'0x8b3e96f2b889fa771c53c981b40daf005f63f637f1869f707052d15a3dd97140',

View File

@ -0,0 +1,100 @@
{{ config(
materialized = 'incremental',
unique_key = "pool_address"
) }}
WITH pool_events 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(segmented_data [0] :: STRING, 25, 40)) AS newBorn,
CONCAT('0x', SUBSTR(segmented_data [1] :: STRING, 25, 40)) AS baseToken,
CONCAT('0x', SUBSTR(segmented_data [2] :: STRING, 25, 40)) AS quoteToken,
_log_id,
_inserted_timestamp
FROM
{{ ref ('silver__logs') }}
WHERE
contract_address IN (
'0xbd337924f000dceb119153d4d3b1744b22364d25',
'0xe1b5d7a770cb1b40c859a52696e7e3dd1c57b0ba',
'0x3a97247df274a17c59a3bd12735ea3fcdfb49950'
) --DODOZoo
AND topics [0] :: STRING = '0x5c428a2e12ecaa744a080b25b4cda8b86359c82d726575d7d747e07708071f93' --DODOBirth
{% if is_incremental() %}
AND _inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
pool_calls AS (
SELECT
block_number,
block_timestamp,
tx_hash,
from_address AS deployer_address,
to_address AS pool_address,
base_token,
quote_token,
base_token_symbol,
quote_token_symbol,
_call_id,
_inserted_timestamp
FROM
{{ ref('silver__traces') }} t
INNER JOIN {{ref('silver__dodo_v1_pools')}} s ON t.to_address = s.pool_address
WHERE
from_address IN (
'0x5e5a7b76462e4bdf83aa98795644281bdba80b88',
'0x17dbfa501f2f376d092fa69d3223a09bba4efdf7'
) --DODO deployer contracts
AND TYPE ILIKE 'create%'
AND tx_status = 'SUCCESS'
AND trace_status = 'SUCCESS'
AND block_timestamp :: DATE >= '2020-08-07'
{% if is_incremental() %}
AND _inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
)
SELECT
block_number,
block_timestamp,
tx_hash,
event_index,
contract_address,
newBorn AS pool_address,
baseToken AS base_token,
quoteToken AS quote_token,
_log_id AS _id,
_inserted_timestamp
FROM
pool_events
UNION ALL
SELECT
block_number,
block_timestamp,
tx_hash,
NULL AS event_index,
deployer_address AS contract_address,
pool_address,
base_token,
quote_token,
_call_id AS _id,
_inserted_timestamp
FROM
pool_calls

View File

@ -0,0 +1,17 @@
version: 2
models:
- name: silver_dex__dodo_v1_pools
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- POOL_ADDRESS
columns:
- name: POOL_ADDRESS
tests:
- not_null
- name: _INSERTED_TIMESTAMP
tests:
- dbt_expectations.expect_column_values_to_be_in_type_list:
column_type_list:
- TIMESTAMP_LTZ
- TIMESTAMP_NTZ

View File

@ -8,11 +8,9 @@ WITH pools AS (
SELECT
pool_address,
base_token_symbol,
quote_token_symbol,
base_token,
quote_token
FROM {{ ref('silver__dodo_v1_pools') }}
FROM {{ ref('silver_dex__dodo_v1_pools') }}
),
proxies AS (
SELECT

View File

@ -49,6 +49,7 @@ SELECT
block_timestamp,
tx_hash,
event_index,
factory_address,
token0,
token1,
pool_address,

View File

@ -11,6 +11,7 @@ WITH contract_deployments AS (
block_timestamp,
from_address AS deployer_address,
to_address AS contract_address,
_call_id,
_inserted_timestamp
FROM
{{ ref('silver__traces') }}
@ -49,5 +50,6 @@ SELECT
block_timestamp,
deployer_address,
contract_address AS pool_address,
_call_id,
_inserted_timestamp
FROM contract_deployments

View File

@ -52,6 +52,7 @@ SELECT
block_timestamp,
tx_hash,
event_index,
contract_address,
token0,
token1,
pool_address,

View File

@ -58,6 +58,7 @@ SELECT
block_timestamp,
tx_hash,
event_index,
contract_address,
token0,
token1,
pool_address,

View File

@ -49,6 +49,7 @@ SELECT
block_timestamp,
tx_hash,
event_index,
contract_address,
token0,
token1,
swapFeeUnits AS swap_fee_units,

View File

@ -46,6 +46,7 @@ SELECT
block_timestamp,
tx_hash,
event_index,
contract_address,
token0,
token1,
pool_address,

View File

@ -10,6 +10,7 @@ WITH created_pools AS (
block_number,
block_timestamp,
tx_hash,
contract_address,
regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data,
CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS token0_address,
CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS token1_address,
@ -50,6 +51,7 @@ FINAL AS (
block_number,
block_timestamp,
tx_hash,
contract_address,
token0_address,
token1_address,
fee :: INTEGER AS fee,
@ -58,6 +60,7 @@ FINAL AS (
) :: FLOAT AS fee_percent,
tickSpacing AS tick_spacing,
pool_address,
_log_id,
_inserted_timestamp
FROM
created_pools

View File

@ -46,6 +46,7 @@ SELECT
block_timestamp,
tx_hash,
event_index,
contract_address,
token0,
token1,
pool_address,

View File

@ -0,0 +1,529 @@
{{ config(
materialized = 'incremental',
unique_key = "_id",
cluster_by = ['block_timestamp::DATE']
) }}
WITH contracts AS (
SELECT
address,
symbol,
decimals,
_inserted_timestamp
FROM
{{ ref('silver__contracts') }}
),
balancer AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
pool_name,
'balancer' AS platform,
_log_id AS _id,
_inserted_timestamp,
token0,
token1,
token2,
token3,
token4,
token5,
token6,
token7
FROM
{{ ref('silver_dex__balancer_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
curve AS (
SELECT
block_number,
block_timestamp,
tx_hash,
deployer_address AS contract_address,
pool_address,
pool_name,
'curve' AS platform,
_call_id AS _id,
_inserted_timestamp,
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
FROM
{{ ref('silver_dex__curve_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
GROUP BY all
),
dodo_v1 AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
base_token AS token0,
quote_token AS token1,
'dodo-v1' AS platform,
_id,
_inserted_timestamp
FROM
{{ ref('silver_dex__dodo_v1_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
dodo_v2 AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
base_token AS token0,
quote_token AS token1,
'dodo-v2' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__dodo_v2_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
frax AS (
SELECT
block_number,
block_timestamp,
tx_hash,
factory_address AS contract_address,
pool_address,
token0,
token1,
'fraxswap' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__fraxswap_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
kyberswap_v1_dynamic AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
token0,
token1,
'kyberswap-v1' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__kyberswap_v1_dynamic_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
kyberswap_v1_static AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
token0,
token1,
'kyberswap-v1' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__kyberswap_v1_static_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
kyberswap_v2_elastic AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
token0,
token1,
'kyberswap-v2' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__kyberswap_v2_elastic_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
maverick AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
tokenA AS token0,
tokenB AS token1,
'maverick' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__maverick_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
shibaswap AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
token0,
token1,
'shibaswap' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__shibaswap_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
pancakeswap_v2_amm AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
token0,
token1,
'pancakeswap-v2' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__pancakeswap_v2_amm_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
pancakeswap_v3 AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
NULL AS pool_name,
fee,
tick_spacing,
token0_address AS token0,
token1_address AS token1,
'pancakeswap-v3' AS platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__pancakeswap_v3_pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
uni_sushi_v2_v3 AS (
SELECT
creation_block AS block_number,
creation_time AS block_timestamp,
creation_tx AS tx_hash,
factory_address AS contract_address,
pool_address,
pool_name,
fee,
tickSpacing AS tick_spacing,
token0,
token1,
platform,
_log_id AS _id,
_inserted_timestamp
FROM
{{ ref('silver_dex__pools') }}
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) :: DATE - 1
FROM
{{ this }}
)
{% endif %}
),
all_pools_standard AS (
SELECT *
FROM dodo_v1
UNION ALL
SELECT *
FROM dodo_v2
UNION ALL
SELECT *
FROM frax
UNION ALL
SELECT *
FROM kyberswap_v1_dynamic
UNION ALL
SELECT *
FROM kyberswap_v1_static
UNION ALL
SELECT *
FROM kyberswap_v2_elastic
UNION ALL
SELECT *
FROM maverick
UNION ALL
SELECT *
FROM shibaswap
UNION ALL
SELECT *
FROM pancakeswap_v2_amm
),
all_pools_v3 AS (
SELECT *
FROM uni_sushi_v2_v3
UNION ALL
SELECT *
FROM pancakeswap_v3
),
all_pools_other AS (
SELECT *
FROM balancer
UNION ALL
SELECT *
FROM curve
),
FINAL AS (
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
CONCAT(
COALESCE(c0.symbol,CONCAT(SUBSTRING(token0, 1, 5),'...',SUBSTRING(token0, 39, 42))),
'-',
COALESCE(c1.symbol,CONCAT(SUBSTRING(token1, 1, 5),'...',SUBSTRING(token1, 39, 42)))
) AS pool_name,
OBJECT_CONSTRUCT('token0',token0,'token1',token1) AS tokens,
OBJECT_CONSTRUCT('token0',c0.symbol,'token1',c1.symbol) AS symbols,
OBJECT_CONSTRUCT('token0',c0.decimals,'token1',c1.decimals) AS decimals,
platform,
_id,
p._inserted_timestamp
FROM all_pools_standard p
LEFT JOIN contracts c0
ON c0.address = p.token0
LEFT JOIN contracts c1
ON c1.address = p.token1
UNION ALL
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
CASE
WHEN pool_name IS NULL AND platform = 'sushiswap'
THEN CONCAT(COALESCE(c0.symbol,CONCAT(SUBSTRING(token0, 1, 5),'...',SUBSTRING(token0, 39, 42))),'-',COALESCE(c1.symbol,CONCAT(SUBSTRING(token1, 1, 5),'...',SUBSTRING(token1, 39, 42))),' SLP')
WHEN pool_name IS NULL AND platform = 'uniswap-v2'
THEN CONCAT(COALESCE(c0.symbol,CONCAT(SUBSTRING(token0, 1, 5),'...',SUBSTRING(token0, 39, 42))),'-',COALESCE(c1.symbol,CONCAT(SUBSTRING(token1, 1, 5),'...',SUBSTRING(token1, 39, 42))),' UNI-V2 LP')
WHEN pool_name IS NULL AND platform = 'uniswap-v3'
THEN CONCAT(COALESCE(c0.symbol,CONCAT(SUBSTRING(token0, 1, 5),'...',SUBSTRING(token0, 39, 42))),'-',COALESCE(c1.symbol,CONCAT(SUBSTRING(token1, 1, 5),'...',SUBSTRING(token1, 39, 42))),' ',COALESCE(fee,0),' ',COALESCE(tick_spacing,0),' UNI-V3 LP')
WHEN pool_name IS NULL AND platform = 'pancakeswap-v3'
THEN CONCAT(COALESCE(c0.symbol,CONCAT(SUBSTRING(token0, 1, 5),'...',SUBSTRING(token0, 39, 42))),'-',COALESCE(c1.symbol,CONCAT(SUBSTRING(token1, 1, 5),'...',SUBSTRING(token1, 39, 42))),' ',COALESCE(fee,0),' ',COALESCE(tick_spacing,0),' PCS-V3 LP')
ELSE pool_name
END AS pool_name,
OBJECT_CONSTRUCT('token0',token0,'token1',token1) AS tokens,
OBJECT_CONSTRUCT('token0',c0.symbol,'token1',c1.symbol) AS symbols,
OBJECT_CONSTRUCT('token0',c0.decimals,'token1',c1.decimals) AS decimals,
platform,
_id,
p._inserted_timestamp
FROM all_pools_v3 p
LEFT JOIN contracts c0
ON c0.address = p.token0
LEFT JOIN contracts c1
ON c1.address = p.token1
UNION ALL
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
pool_address,
CONCAT(
COALESCE(c0.symbol, SUBSTRING(token0, 1, 5) || '...' || SUBSTRING(token0, 39, 42)),
CASE WHEN token1 IS NOT NULL THEN '-' || COALESCE(c1.symbol, SUBSTRING(token1, 1, 5) || '...' || SUBSTRING(token1, 39, 42)) ELSE '' END,
CASE WHEN token2 IS NOT NULL THEN '-' || COALESCE(c2.symbol, SUBSTRING(token2, 1, 5) || '...' || SUBSTRING(token2, 39, 42)) ELSE '' END,
CASE WHEN token3 IS NOT NULL THEN '-' || COALESCE(c3.symbol, SUBSTRING(token3, 1, 5) || '...' || SUBSTRING(token3, 39, 42)) ELSE '' END,
CASE WHEN token4 IS NOT NULL THEN '-' || COALESCE(c4.symbol, SUBSTRING(token4, 1, 5) || '...' || SUBSTRING(token4, 39, 42)) ELSE '' END,
CASE WHEN token5 IS NOT NULL THEN '-' || COALESCE(c5.symbol, SUBSTRING(token5, 1, 5) || '...' || SUBSTRING(token5, 39, 42)) ELSE '' END,
CASE WHEN token6 IS NOT NULL THEN '-' || COALESCE(c6.symbol, SUBSTRING(token6, 1, 5) || '...' || SUBSTRING(token6, 39, 42)) ELSE '' END,
CASE WHEN token7 IS NOT NULL THEN '-' || COALESCE(c7.symbol, SUBSTRING(token7, 1, 5) || '...' || SUBSTRING(token7, 39, 42)) ELSE '' END
) AS pool_name,
OBJECT_CONSTRUCT('token0', token0, 'token1', token1, 'token2', token2, 'token3', token3, 'token4', token4, 'token5', token5, 'token6', token6, 'token7', token7) AS tokens,
OBJECT_CONSTRUCT('token0', c0.symbol, 'token1', c1.symbol, 'token2', c2.symbol, 'token3', c3.symbol, 'token4', c4.symbol, 'token5', c5.symbol, 'token6', c6.symbol, 'token7', c7.symbol) AS symbols,
OBJECT_CONSTRUCT('token0', c0.decimals, 'token1', c1.decimals, 'token2', c2.decimals, 'token3', c3.decimals, 'token4', c4.decimals, 'token5', c5.decimals, 'token6', c6.decimals, 'token7', c7.decimals) AS decimals,
platform,
_id,
p._inserted_timestamp
FROM all_pools_other p
LEFT JOIN contracts c0
ON c0.address = p.token0
LEFT JOIN contracts c1
ON c1.address = p.token1
LEFT JOIN contracts c2
ON c2.address = p.token2
LEFT JOIN contracts c3
ON c3.address = p.token3
LEFT JOIN contracts c4
ON c4.address = p.token4
LEFT JOIN contracts c5
ON c5.address = p.token5
LEFT JOIN contracts c6
ON c6.address = p.token6
LEFT JOIN contracts c7
ON c7.address = p.token7
)
SELECT
block_number,
block_timestamp,
tx_hash,
platform,
contract_address,
pool_address,
pool_name,
tokens,
symbols,
decimals,
_id,
_inserted_timestamp
FROM FINAL

View File

@ -0,0 +1,46 @@
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
- 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: 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

View File

@ -10,8 +10,7 @@ WITH contracts AS (
address,
symbol,
NAME,
decimals,
contract_metadata
decimals
FROM
{{ ref('silver__contracts') }}
),
@ -48,15 +47,7 @@ univ3_swaps AS (
origin_from_address,
origin_to_address,
pool_address AS contract_address,
CONCAT(
c1.symbol,
'-',
c2.symbol,
' ',
fee,
' ',
tick_spacing
) AS pool_name,
NULL AS pool_name,
'Swap' AS event_name,
amount0_unadj / pow(10, COALESCE(c1.decimals, 18)) AS amount0_adjusted,
amount1_unadj / pow(10, COALESCE(c2.decimals, 18)) AS amount1_adjusted,
@ -189,10 +180,7 @@ uni_sushi_v2_swaps AS (
token_out,
c1.symbol AS symbol_in,
c2.symbol AS symbol_out,
CASE
WHEN pool_name IS NULL THEN CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out))
ELSE pool_name
END AS pool_name,
NULL AS pool_name,
sender,
tx_to,
event_index,
@ -245,7 +233,7 @@ curve_swaps AS (
c2.symbol,
s.symbol_out
) AS token_symbol_out,
pool_name,
NULL AS pool_name,
c1.decimals AS decimals_in,
CASE
WHEN decimals_in IS NOT NULL THEN s.tokens_sold / pow(
@ -296,7 +284,7 @@ balancer_swaps AS (
origin_from_address,
origin_to_address,
contract_address,
pool_name,
NULL AS pool_name,
event_name,
c1.decimals AS decimals_in,
c1.symbol AS symbol_in,
@ -439,7 +427,7 @@ fraxswap_swaps AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -490,7 +478,7 @@ shibaswap_swaps AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -541,7 +529,7 @@ dodo_v1_swaps AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -592,7 +580,7 @@ dodo_v2_swaps AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -643,7 +631,17 @@ hashflow_swaps AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
CONCAT(
LEAST(
COALESCE(c1.symbol, CONCAT(SUBSTRING(c1.address, 1, 5), '...', SUBSTRING(c1.address, 39, 42))),
COALESCE(c2.symbol, CONCAT(SUBSTRING(c2.address, 1, 5), '...', SUBSTRING(c2.address, 39, 42)))
),
'-',
GREATEST(
COALESCE(c1.symbol, CONCAT(SUBSTRING(c1.address, 1, 5), '...', SUBSTRING(c1.address, 39, 42))),
COALESCE(c2.symbol, CONCAT(SUBSTRING(c2.address, 1, 5), '...', SUBSTRING(c2.address, 39, 42)))
)
) AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -694,7 +692,7 @@ maverick_swaps AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -745,7 +743,7 @@ kyberswap_v1_dynamic AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -796,7 +794,7 @@ kyberswap_v1_static AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -847,7 +845,7 @@ kyberswap_v2_elastic AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -898,7 +896,7 @@ pancakeswap_v2_amm_swaps AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
NULL AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -949,7 +947,17 @@ pancakeswap_v2_mm_swaps AS (
platform,
token_in,
token_out,
CONCAT(LEAST(symbol_in, symbol_out), '-', GREATEST(symbol_in, symbol_out)) AS pool_name,
CONCAT(
LEAST(
COALESCE(c1.symbol, CONCAT(SUBSTRING(c1.address, 1, 5), '...', SUBSTRING(c1.address, 39, 42))),
COALESCE(c2.symbol, CONCAT(SUBSTRING(c2.address, 1, 5), '...', SUBSTRING(c2.address, 39, 42)))
),
'-',
GREATEST(
COALESCE(c1.symbol, CONCAT(SUBSTRING(c1.address, 1, 5), '...', SUBSTRING(c1.address, 39, 42))),
COALESCE(c2.symbol, CONCAT(SUBSTRING(c2.address, 1, 5), '...', SUBSTRING(c2.address, 39, 42)))
)
) AS pool_name,
_log_id,
_inserted_timestamp
FROM
@ -979,15 +987,7 @@ pancakeswap_v3_swaps AS (
origin_from_address,
origin_to_address,
pool_address AS contract_address,
CONCAT(
c1.symbol,
'-',
c2.symbol,
' ',
fee,
' ',
tick_spacing
) AS pool_name,
NULL AS pool_name,
'Swap' AS event_name,
amount0 AS amount0_unadj,
amount1 AS amount1_unadj,
@ -1668,14 +1668,17 @@ FINAL AS (
all_dex_custom C
)
SELECT
block_number,
block_timestamp,
tx_hash,
f.block_number,
f.block_timestamp,
f.tx_hash,
origin_function_signature,
origin_from_address,
origin_to_address,
contract_address,
pool_name,
f.contract_address,
CASE
WHEN f.pool_name IS NULL THEN p.pool_name
ELSE f.pool_name
END AS pool_name,
event_name,
amount_in_unadj,
amount_in,
@ -1696,12 +1699,14 @@ SELECT
sender,
tx_to,
event_index,
platform,
f.platform,
token_in,
token_out,
symbol_in,
symbol_out,
_log_id,
_inserted_timestamp
f._log_id,
f._inserted_timestamp
FROM
FINAL
FINAL f
LEFT JOIN {{ ref('silver_dex__complete_dex_liquidity_pools') }} p
ON f.contract_address = p.pool_address

View File

@ -206,6 +206,12 @@ SELECT
FROM
all_pools
WHERE
pool_address IS NOT NULL qualify(ROW_NUMBER() over(PARTITION BY pool_address
pool_address IS NOT NULL
AND platform IN (
'uniswap-v2',
'uniswap-v3',
'sushiswap'
)
qualify(ROW_NUMBER() over(PARTITION BY pool_address
ORDER BY
model_weight ASC)) = 1