Skip to content

Instantly share code, notes, and snippets.

@sambacha
Created April 17, 2022 23:21
Show Gist options
  • Save sambacha/a21955e8a8feec7579a607f153476547 to your computer and use it in GitHub Desktop.
Save sambacha/a21955e8a8feec7579a607f153476547 to your computer and use it in GitHub Desktop.
SushiSwap_LiquidityPairs.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/sambacha/a21955e8a8feec7579a607f153476547/sushiswap_liquiditypairs.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9x8BvaBk0kc1"
},
"source": [
"# SushiSwap - Get Liquidity Pairs\n"
]
},
{
"cell_type": "markdown",
"source": [
"```\n",
"Copyright (c) 2022 Manifold Finance, Inc.\n",
"This Source Code Form is subject to the terms of the Mozilla Public\n",
"License, v. 2.0. If a copy of the MPL was not distributed with this\n",
"file, You can obtain one at http://mozilla.org/MPL/2.0/.\n",
"```"
],
"metadata": {
"id": "xtl-jlzT0usH"
}
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "0zt7DlHQ0kc4"
},
"outputs": [],
"source": [
"import requests\n",
"import json\n",
"import pandas as pd\n",
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "x7iGcR4n0kc6"
},
"outputs": [],
"source": [
"uniswap_url = 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2'\n",
"sushiswap_url = 'https://api.thegraph.com/subgraphs/name/sushiswap/exchange'"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "y7A_Ztso0kc6"
},
"source": [
"## Top Uniswap and Sushiswap pairs by liquidity"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "CX4uAkUo0kc7"
},
"outputs": [],
"source": [
"pair_query = \"\"\"query{\n",
" pairs(first: 500, orderBy: reserveUSD, orderDirection: desc) {\n",
" id,\n",
" token0{id,symbol,decimals},\n",
" token1{id,symbol,decimals}\n",
" }\n",
"}\"\"\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "nh9uJGsQ0kc7",
"outputId": "b4bd3593-733a-41a1-9571-9223d6409802"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"200\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>token0.decimals</th>\n",
" <th>token0.id</th>\n",
" <th>token0.symbol</th>\n",
" <th>token1.decimals</th>\n",
" <th>token1.id</th>\n",
" <th>token1.symbol</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0x021313710a75a867fbb5b4dda0b5f367f05cf110</td>\n",
" <td>2</td>\n",
" <td>0x35bd8472ed2da9eed980e49b8b92ccbcf625adbd</td>\n",
" <td>ENRH</td>\n",
" <td>18</td>\n",
" <td>0xed7e17b99804d273eda67fc7d423cc9080ea8431</td>\n",
" <td>CARBO</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0x93512394a82d278b9961e3891a59c6dc1c2e4f98</td>\n",
" <td>12</td>\n",
" <td>0x72e5390edb7727e3d4e3436451dadaff675dbcc0</td>\n",
" <td>HANU</td>\n",
" <td>10</td>\n",
" <td>0xec4a1c7a4e9fdc7cc621b548a931c92bc08a679a</td>\n",
" <td>GOJ</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0x48918f57fa7210ea7b20f23da8420e68df3578fe</td>\n",
" <td>12</td>\n",
" <td>0x72e5390edb7727e3d4e3436451dadaff675dbcc0</td>\n",
" <td>HANU</td>\n",
" <td>10</td>\n",
" <td>0x8d52061af43c52204c717d0610ea8f52f955ce0b</td>\n",
" <td>MIA</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0xe6c78983b07a07e0523b57e18aa23d3ae2519e05</td>\n",
" <td>18</td>\n",
" <td>0x395c8db957d743a62ac3aaaa4574553bcf2380b3</td>\n",
" <td>UETH</td>\n",
" <td>18</td>\n",
" <td>0x598a754c5d678119e67574ff811da61d83c0e629</td>\n",
" <td>ULCK</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0x21b8065d10f73ee2e260e5b47d3344d3ced7596e</td>\n",
" <td>18</td>\n",
" <td>0x66a0f676479cee1d7373f3dc2e2952778bff5bd6</td>\n",
" <td>WISE</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id token0.decimals \\\n",
"0 0x021313710a75a867fbb5b4dda0b5f367f05cf110 2 \n",
"1 0x93512394a82d278b9961e3891a59c6dc1c2e4f98 12 \n",
"2 0x48918f57fa7210ea7b20f23da8420e68df3578fe 12 \n",
"3 0xe6c78983b07a07e0523b57e18aa23d3ae2519e05 18 \n",
"4 0x21b8065d10f73ee2e260e5b47d3344d3ced7596e 18 \n",
"\n",
" token0.id token0.symbol token1.decimals \\\n",
"0 0x35bd8472ed2da9eed980e49b8b92ccbcf625adbd ENRH 18 \n",
"1 0x72e5390edb7727e3d4e3436451dadaff675dbcc0 HANU 10 \n",
"2 0x72e5390edb7727e3d4e3436451dadaff675dbcc0 HANU 10 \n",
"3 0x395c8db957d743a62ac3aaaa4574553bcf2380b3 UETH 18 \n",
"4 0x66a0f676479cee1d7373f3dc2e2952778bff5bd6 WISE 18 \n",
"\n",
" token1.id token1.symbol \n",
"0 0xed7e17b99804d273eda67fc7d423cc9080ea8431 CARBO \n",
"1 0xec4a1c7a4e9fdc7cc621b548a931c92bc08a679a GOJ \n",
"2 0x8d52061af43c52204c717d0610ea8f52f955ce0b MIA \n",
"3 0x598a754c5d678119e67574ff811da61d83c0e629 ULCK \n",
"4 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pair_req = requests.post(uniswap_url, json={'query': pair_query})\n",
"print(pair_req.status_code)\n",
"pair_data = json.loads(pair_req.text)\n",
"pair_df_data = pair_data['data']['pairs']\n",
"pair_df_uni = pd.json_normalize(pair_df_data)\n",
"pair_df_uni.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "TW-_9X5g0kc8",
"outputId": "e4c15247-0355-4fa1-afe0-d4127450f1c7"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"200\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>token0.decimals</th>\n",
" <th>token0.id</th>\n",
" <th>token0.symbol</th>\n",
" <th>token1.decimals</th>\n",
" <th>token1.id</th>\n",
" <th>token1.symbol</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0xceff51756c56ceffca006cd410b03ffc46dd3a58</td>\n",
" <td>8</td>\n",
" <td>0x2260fac5e5542a773aa44fbcfedf7c193bc2c599</td>\n",
" <td>WBTC</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0x34d7d7aaf50ad4944b70b320acb24c95fa2def7c</td>\n",
" <td>9</td>\n",
" <td>0x383518188c0c6d7730d91b2c03a03c837814a899</td>\n",
" <td>OHM</td>\n",
" <td>18</td>\n",
" <td>0x6b175474e89094c44da98b954eedeac495271d0f</td>\n",
" <td>DAI</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0x6a091a3406e0073c3cd6340122143009adac0eda</td>\n",
" <td>18</td>\n",
" <td>0x767fe9edc9e0df98e07454847909b5e959d7ca0e</td>\n",
" <td>ILV</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0x397ff1542f962076d0bfe58ea045ffa2d347aca0</td>\n",
" <td>6</td>\n",
" <td>0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48</td>\n",
" <td>USDC</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0xe12af1218b4e9272e9628d7c7dc6354d137d024e</td>\n",
" <td>18</td>\n",
" <td>0x1a4b46696b2bb4794eb3d4c26f1c55f9170fa4c5</td>\n",
" <td>BIT</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id token0.decimals \\\n",
"0 0xceff51756c56ceffca006cd410b03ffc46dd3a58 8 \n",
"1 0x34d7d7aaf50ad4944b70b320acb24c95fa2def7c 9 \n",
"2 0x6a091a3406e0073c3cd6340122143009adac0eda 18 \n",
"3 0x397ff1542f962076d0bfe58ea045ffa2d347aca0 6 \n",
"4 0xe12af1218b4e9272e9628d7c7dc6354d137d024e 18 \n",
"\n",
" token0.id token0.symbol token1.decimals \\\n",
"0 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 WBTC 18 \n",
"1 0x383518188c0c6d7730d91b2c03a03c837814a899 OHM 18 \n",
"2 0x767fe9edc9e0df98e07454847909b5e959d7ca0e ILV 18 \n",
"3 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 USDC 18 \n",
"4 0x1a4b46696b2bb4794eb3d4c26f1c55f9170fa4c5 BIT 18 \n",
"\n",
" token1.id token1.symbol \n",
"0 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"1 0x6b175474e89094c44da98b954eedeac495271d0f DAI \n",
"2 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"3 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"4 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pair_req = requests.post(sushiswap_url, json={'query': pair_query})\n",
"print(pair_req.status_code)\n",
"pair_data = json.loads(pair_req.text)\n",
"pair_df_data = pair_data['data']['pairs']\n",
"pair_df_sushi = pd.json_normalize(pair_df_data)\n",
"pair_df_sushi.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FQffV5zJ0kc9"
},
"source": [
"## Top Uniswap and Sushiswap pairs by volume"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "C9w7iced0kc9"
},
"outputs": [],
"source": [
"\n",
"pair_query = \"\"\"query{\n",
" pairs(first: 500, orderBy: volumeUSD, orderDirection: desc) {\n",
" id,\n",
" token0{id,symbol,decimals},\n",
" token1{id,symbol,decimals}\n",
" }\n",
"}\"\"\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "5628McFk0kc-",
"outputId": "650a316a-84bb-4703-b2fb-e61d3af3476b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"200\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>token0.decimals</th>\n",
" <th>token0.id</th>\n",
" <th>token0.symbol</th>\n",
" <th>token1.decimals</th>\n",
" <th>token1.id</th>\n",
" <th>token1.symbol</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc</td>\n",
" <td>6</td>\n",
" <td>0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48</td>\n",
" <td>USDC</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>6</td>\n",
" <td>0xdac17f958d2ee523a2206206994597c13d831ec7</td>\n",
" <td>USDT</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0xa478c2975ab1ea89e8196811f51a7b7ade33eb11</td>\n",
" <td>18</td>\n",
" <td>0x6b175474e89094c44da98b954eedeac495271d0f</td>\n",
" <td>DAI</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0x23fe4ee3bd9bfd1152993a7954298bb4d426698f</td>\n",
" <td>0</td>\n",
" <td>0x05934eba98486693aaec2d00b0e9ce918e37dc3f</td>\n",
" <td>SCAMMY</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0xe5ffe183ae47f1a0e4194618d34c5b05b98953a8</td>\n",
" <td>0</td>\n",
" <td>0x3d7e683fc9c86b4d653c9e47ca12517440fad14e</td>\n",
" <td>welp</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id token0.decimals \\\n",
"0 0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc 6 \n",
"1 0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 18 \n",
"2 0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 18 \n",
"3 0x23fe4ee3bd9bfd1152993a7954298bb4d426698f 0 \n",
"4 0xe5ffe183ae47f1a0e4194618d34c5b05b98953a8 0 \n",
"\n",
" token0.id token0.symbol token1.decimals \\\n",
"0 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 USDC 18 \n",
"1 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 6 \n",
"2 0x6b175474e89094c44da98b954eedeac495271d0f DAI 18 \n",
"3 0x05934eba98486693aaec2d00b0e9ce918e37dc3f SCAMMY 18 \n",
"4 0x3d7e683fc9c86b4d653c9e47ca12517440fad14e welp 18 \n",
"\n",
" token1.id token1.symbol \n",
"0 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"1 0xdac17f958d2ee523a2206206994597c13d831ec7 USDT \n",
"2 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"3 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"4 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pair_req = requests.post(uniswap_url, json={'query': pair_query})\n",
"print(pair_req.status_code)\n",
"pair_data = json.loads(pair_req.text)\n",
"pair_df_data = pair_data['data']['pairs']\n",
"pair_df_uni_vol = pd.json_normalize(pair_df_data)\n",
"pair_df_uni_vol.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "G1S9P8b-0kc_",
"outputId": "b8355807-1245-4b21-e002-af0c44bfaa82"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"200\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>token0.decimals</th>\n",
" <th>token0.id</th>\n",
" <th>token0.symbol</th>\n",
" <th>token1.decimals</th>\n",
" <th>token1.id</th>\n",
" <th>token1.symbol</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0x397ff1542f962076d0bfe58ea045ffa2d347aca0</td>\n",
" <td>6</td>\n",
" <td>0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48</td>\n",
" <td>USDC</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0x06da0fd433c1a5d7a4faa01111c044910a184553</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>6</td>\n",
" <td>0xdac17f958d2ee523a2206206994597c13d831ec7</td>\n",
" <td>USDT</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0xc3d03e4f041fd4cd388c549ee2a29a9e5075882f</td>\n",
" <td>18</td>\n",
" <td>0x6b175474e89094c44da98b954eedeac495271d0f</td>\n",
" <td>DAI</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0x795065dcc9f64b5614c407a6efdc400da6221fb0</td>\n",
" <td>18</td>\n",
" <td>0x6b3595068778dd592e39a122f4f5a5cf09c90fe2</td>\n",
" <td>SUSHI</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0xceff51756c56ceffca006cd410b03ffc46dd3a58</td>\n",
" <td>8</td>\n",
" <td>0x2260fac5e5542a773aa44fbcfedf7c193bc2c599</td>\n",
" <td>WBTC</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id token0.decimals \\\n",
"0 0x397ff1542f962076d0bfe58ea045ffa2d347aca0 6 \n",
"1 0x06da0fd433c1a5d7a4faa01111c044910a184553 18 \n",
"2 0xc3d03e4f041fd4cd388c549ee2a29a9e5075882f 18 \n",
"3 0x795065dcc9f64b5614c407a6efdc400da6221fb0 18 \n",
"4 0xceff51756c56ceffca006cd410b03ffc46dd3a58 8 \n",
"\n",
" token0.id token0.symbol token1.decimals \\\n",
"0 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 USDC 18 \n",
"1 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 6 \n",
"2 0x6b175474e89094c44da98b954eedeac495271d0f DAI 18 \n",
"3 0x6b3595068778dd592e39a122f4f5a5cf09c90fe2 SUSHI 18 \n",
"4 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 WBTC 18 \n",
"\n",
" token1.id token1.symbol \n",
"0 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"1 0xdac17f958d2ee523a2206206994597c13d831ec7 USDT \n",
"2 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"3 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"4 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pair_req = requests.post(sushiswap_url, json={'query': pair_query})\n",
"print(pair_req.status_code)\n",
"pair_data = json.loads(pair_req.text)\n",
"pair_df_data = pair_data['data']['pairs']\n",
"pair_df_sushi_vol = pd.json_normalize(pair_df_data)\n",
"pair_df_sushi_vol.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WadmVqd70kc_"
},
"source": [
"## Merge top volume and liquidity to use only those in both"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "4RCbpmOr0kc_",
"outputId": "e0d68f99-403f-4d7c-9db7-e1627e4db3b8"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>address</th>\n",
" <th>base_decimals</th>\n",
" <th>base_address</th>\n",
" <th>base_symbol</th>\n",
" <th>quote_decimals</th>\n",
" <th>quote_address</th>\n",
" <th>quote_symbol</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0x21b8065d10f73ee2e260e5b47d3344d3ced7596e</td>\n",
" <td>18</td>\n",
" <td>0x66a0f676479cee1d7373f3dc2e2952778bff5bd6</td>\n",
" <td>WISE</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0x94b0a3d511b6ecdb17ebf877278ab030acb0a878</td>\n",
" <td>18</td>\n",
" <td>0x956f47f50a910163d8bf957cf5846d573e7f87ca</td>\n",
" <td>FEI</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc</td>\n",
" <td>6</td>\n",
" <td>0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48</td>\n",
" <td>USDC</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>6</td>\n",
" <td>0xdac17f958d2ee523a2206206994597c13d831ec7</td>\n",
" <td>USDT</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0x5fa464cefe8901d66c09b85d5fcdc55b3738c688</td>\n",
" <td>18</td>\n",
" <td>0x2e9d63788249371f1dfc918a52f8d799f4a38c94</td>\n",
" <td>TOKE</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" address base_decimals \\\n",
"0 0x21b8065d10f73ee2e260e5b47d3344d3ced7596e 18 \n",
"1 0x94b0a3d511b6ecdb17ebf877278ab030acb0a878 18 \n",
"2 0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc 6 \n",
"3 0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 18 \n",
"4 0x5fa464cefe8901d66c09b85d5fcdc55b3738c688 18 \n",
"\n",
" base_address base_symbol quote_decimals \\\n",
"0 0x66a0f676479cee1d7373f3dc2e2952778bff5bd6 WISE 18 \n",
"1 0x956f47f50a910163d8bf957cf5846d573e7f87ca FEI 18 \n",
"2 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 USDC 18 \n",
"3 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 6 \n",
"4 0x2e9d63788249371f1dfc918a52f8d799f4a38c94 TOKE 18 \n",
"\n",
" quote_address quote_symbol \n",
"0 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"1 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"2 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"3 0xdac17f958d2ee523a2206206994597c13d831ec7 USDT \n",
"4 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"uni_pairs_merged = pair_df_uni.merge(pair_df_uni_vol,on='id').drop(columns=['token0.symbol_y', 'token0.id_y', 'token0.decimals_y','token1.symbol_y', 'token1.id_y','token1.decimals_y'])\n",
"uni_pairs_merged = uni_pairs_merged.rename({'id': 'address', 'token0.id_x': 'base_address','token0.symbol_x': 'base_symbol','token0.decimals_x': 'base_decimals', 'token1.id_x': 'quote_address','token1.symbol_x': 'quote_symbol','token1.decimals_x': 'quote_decimals' }, axis=1)\n",
"# uni_pairs_merged.to_csv('uni_pairs.csv',index=False)\n",
"uni_pairs_merged.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "9YUxvrq70kdA",
"outputId": "0e9dd289-7f93-4735-a47a-85e6d7ad6045"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>address</th>\n",
" <th>base_decimals</th>\n",
" <th>base_address</th>\n",
" <th>base_symbol</th>\n",
" <th>quote_decimals</th>\n",
" <th>quote_address</th>\n",
" <th>quote_symbol</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0xceff51756c56ceffca006cd410b03ffc46dd3a58</td>\n",
" <td>8</td>\n",
" <td>0x2260fac5e5542a773aa44fbcfedf7c193bc2c599</td>\n",
" <td>WBTC</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0x34d7d7aaf50ad4944b70b320acb24c95fa2def7c</td>\n",
" <td>9</td>\n",
" <td>0x383518188c0c6d7730d91b2c03a03c837814a899</td>\n",
" <td>OHM</td>\n",
" <td>18</td>\n",
" <td>0x6b175474e89094c44da98b954eedeac495271d0f</td>\n",
" <td>DAI</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0x6a091a3406e0073c3cd6340122143009adac0eda</td>\n",
" <td>18</td>\n",
" <td>0x767fe9edc9e0df98e07454847909b5e959d7ca0e</td>\n",
" <td>ILV</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0x397ff1542f962076d0bfe58ea045ffa2d347aca0</td>\n",
" <td>6</td>\n",
" <td>0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48</td>\n",
" <td>USDC</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0xe12af1218b4e9272e9628d7c7dc6354d137d024e</td>\n",
" <td>18</td>\n",
" <td>0x1a4b46696b2bb4794eb3d4c26f1c55f9170fa4c5</td>\n",
" <td>BIT</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" address base_decimals \\\n",
"0 0xceff51756c56ceffca006cd410b03ffc46dd3a58 8 \n",
"1 0x34d7d7aaf50ad4944b70b320acb24c95fa2def7c 9 \n",
"2 0x6a091a3406e0073c3cd6340122143009adac0eda 18 \n",
"3 0x397ff1542f962076d0bfe58ea045ffa2d347aca0 6 \n",
"4 0xe12af1218b4e9272e9628d7c7dc6354d137d024e 18 \n",
"\n",
" base_address base_symbol quote_decimals \\\n",
"0 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 WBTC 18 \n",
"1 0x383518188c0c6d7730d91b2c03a03c837814a899 OHM 18 \n",
"2 0x767fe9edc9e0df98e07454847909b5e959d7ca0e ILV 18 \n",
"3 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 USDC 18 \n",
"4 0x1a4b46696b2bb4794eb3d4c26f1c55f9170fa4c5 BIT 18 \n",
"\n",
" quote_address quote_symbol \n",
"0 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"1 0x6b175474e89094c44da98b954eedeac495271d0f DAI \n",
"2 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"3 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH \n",
"4 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"sushi_pairs_merged = pair_df_sushi.merge(pair_df_sushi_vol,on='id').drop(columns=['token0.symbol_y', 'token0.id_y', 'token0.decimals_y','token1.symbol_y', 'token1.id_y','token1.decimals_y'])\n",
"sushi_pairs_merged = sushi_pairs_merged.rename({'id': 'address', 'token0.id_x': 'base_address','token0.symbol_x': 'base_symbol','token0.decimals_x': 'base_decimals', 'token1.id_x': 'quote_address','token1.symbol_x': 'quote_symbol','token1.decimals_x': 'quote_decimals' }, axis=1)\n",
"# sushi_pairs_merged.to_csv('sushi_pairs.csv',index=False)\n",
"sushi_pairs_merged.head()\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "y2MdQMXF0kdA"
},
"source": [
"## Find positional ids"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "L58cXVTv0kdB",
"outputId": "c57f811e-9064-42b9-fee7-01fe6c406ab7"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>address</th>\n",
" <th>base_address</th>\n",
" <th>base_symbol</th>\n",
" <th>base_decimals</th>\n",
" <th>quote_address</th>\n",
" <th>quote_symbol</th>\n",
" <th>quote_decimals</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc</td>\n",
" <td>A0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48</td>\n",
" <td>USDC</td>\n",
" <td>6</td>\n",
" <td>C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>0x3139ffc91b99aa94da8a2dc13f1fc36f9bdc98ee</td>\n",
" <td>8E870D67F660D95d5be530380D0eC0bd388289E1</td>\n",
" <td>USDP</td>\n",
" <td>18</td>\n",
" <td>A0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48</td>\n",
" <td>USDC</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>0x12ede161c702d1494612d19f05992f43aa6a26fb</td>\n",
" <td>06AF07097C9Eeb7fD685c692751D5C66dB49c215</td>\n",
" <td>CHAI</td>\n",
" <td>18</td>\n",
" <td>C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>0xa478c2975ab1ea89e8196811f51a7b7ade33eb11</td>\n",
" <td>6B175474E89094C44Da98b954EedeAC495271d0F</td>\n",
" <td>DAI</td>\n",
" <td>18</td>\n",
" <td>C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>0x07f068ca326a469fc1d87d85d448990c8cba7df9</td>\n",
" <td>408e41876cCCDC0F92210600ef50372656052a38</td>\n",
" <td>REN</td>\n",
" <td>18</td>\n",
" <td>A0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48</td>\n",
" <td>USDC</td>\n",
" <td>6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id address \\\n",
"0 0 0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc \n",
"1 1 0x3139ffc91b99aa94da8a2dc13f1fc36f9bdc98ee \n",
"2 2 0x12ede161c702d1494612d19f05992f43aa6a26fb \n",
"3 3 0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 \n",
"4 4 0x07f068ca326a469fc1d87d85d448990c8cba7df9 \n",
"\n",
" base_address base_symbol base_decimals \\\n",
"0 A0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 USDC 6 \n",
"1 8E870D67F660D95d5be530380D0eC0bd388289E1 USDP 18 \n",
"2 06AF07097C9Eeb7fD685c692751D5C66dB49c215 CHAI 18 \n",
"3 6B175474E89094C44Da98b954EedeAC495271d0F DAI 18 \n",
"4 408e41876cCCDC0F92210600ef50372656052a38 REN 18 \n",
"\n",
" quote_address quote_symbol quote_decimals \n",
"0 C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 18 \n",
"1 A0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 USDC 6 \n",
"2 C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 18 \n",
"3 C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 18 \n",
"4 A0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 USDC 6 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"uni_dump = pd.read_csv('../contracts/export/uniswap.v2.20211105.csv')\n",
"uni_dump['address'] = '0x'+uni_dump['address'].str.lower()\n",
"uni_dump.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "uXExNzBV0kdB",
"outputId": "38e204a4-b94e-49ee-b6ab-c746525611ac"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>address</th>\n",
" <th>base_address</th>\n",
" <th>base_symbol</th>\n",
" <th>base_decimals</th>\n",
" <th>quote_address</th>\n",
" <th>quote_symbol</th>\n",
" <th>quote_decimals</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>26828</td>\n",
" <td>0x21b8065d10f73ee2e260e5b47d3344d3ced7596e</td>\n",
" <td>0x66a0f676479cee1d7373f3dc2e2952778bff5bd6</td>\n",
" <td>WISE</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>31709</td>\n",
" <td>0x94b0a3d511b6ecdb17ebf877278ab030acb0a878</td>\n",
" <td>0x956f47f50a910163d8bf957cf5846d573e7f87ca</td>\n",
" <td>FEI</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" <td>0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc</td>\n",
" <td>0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48</td>\n",
" <td>USDC</td>\n",
" <td>6</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>144</td>\n",
" <td>0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" <td>0xdac17f958d2ee523a2206206994597c13d831ec7</td>\n",
" <td>USDT</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>50265</td>\n",
" <td>0x5fa464cefe8901d66c09b85d5fcdc55b3738c688</td>\n",
" <td>0x2e9d63788249371f1dfc918a52f8d799f4a38c94</td>\n",
" <td>TOKE</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id address \\\n",
"0 26828 0x21b8065d10f73ee2e260e5b47d3344d3ced7596e \n",
"1 31709 0x94b0a3d511b6ecdb17ebf877278ab030acb0a878 \n",
"2 0 0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc \n",
"3 144 0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 \n",
"4 50265 0x5fa464cefe8901d66c09b85d5fcdc55b3738c688 \n",
"\n",
" base_address base_symbol base_decimals \\\n",
"0 0x66a0f676479cee1d7373f3dc2e2952778bff5bd6 WISE 18 \n",
"1 0x956f47f50a910163d8bf957cf5846d573e7f87ca FEI 18 \n",
"2 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 USDC 6 \n",
"3 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 \n",
"4 0x2e9d63788249371f1dfc918a52f8d799f4a38c94 TOKE 18 \n",
"\n",
" quote_address quote_symbol quote_decimals \n",
"0 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 \n",
"1 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 \n",
"2 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 \n",
"3 0xdac17f958d2ee523a2206206994597c13d831ec7 USDT 6 \n",
"4 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"uni_dump_merge = uni_pairs_merged.merge(uni_dump,on='address').drop(columns=['base_symbol_y', 'base_address_y', 'base_decimals_y','quote_symbol_y', 'quote_address_y','quote_decimals_y'])\n",
"uni_dump_merge = uni_dump_merge.rename({'base_address_x': 'base_address','base_symbol_x': 'base_symbol','base_decimals_x': 'base_decimals', 'quote_address_x': 'quote_address','quote_symbol_x': 'quote_symbol','quote_decimals_x': 'quote_decimals' }, axis=1)\n",
"uni_dump_merge = uni_dump_merge[['id','address','base_address','base_symbol','base_decimals','quote_address','quote_symbol','quote_decimals']]\n",
"uni_dump_merge.to_csv('uni_pairs.csv',index=False)\n",
"uni_dump_merge.head()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "1y0jYub_0kdB",
"outputId": "c2fe400a-ec67-46f7-fbed-57bb4700638a"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>address</th>\n",
" <th>base_address</th>\n",
" <th>base_symbol</th>\n",
" <th>base_decimals</th>\n",
" <th>quote_address</th>\n",
" <th>quote_symbol</th>\n",
" <th>quote_decimals</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>0x680a025da7b1be2c204d7745e809919bce074026</td>\n",
" <td>6B3595068778DD592e39A122f4f5a5cF09C90fE2</td>\n",
" <td>SUSHI</td>\n",
" <td>18</td>\n",
" <td>dAC17F958D2ee523a2206206994597C13D831ec7</td>\n",
" <td>USDT</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>0x06da0fd433c1a5d7a4faa01111c044910a184553</td>\n",
" <td>C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" <td>dAC17F958D2ee523a2206206994597C13D831ec7</td>\n",
" <td>USDT</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>0x58dc5a51fe44589beb22e8ce67720b5bc5378009</td>\n",
" <td>C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" <td>D533a949740bb3306d119CC777fa900bA034cd52</td>\n",
" <td>CRV</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>0x95b54c8da12bb23f7a5f6e26c38d04acc6f81820</td>\n",
" <td>Aba8cAc6866B83Ae4eec97DD07ED254282f6aD8A</td>\n",
" <td>YAMv2</td>\n",
" <td>24</td>\n",
" <td>C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>0x611cde65dea90918c0078ac0400a72b0d25b9bb1</td>\n",
" <td>408e41876cCCDC0F92210600ef50372656052a38</td>\n",
" <td>REN</td>\n",
" <td>18</td>\n",
" <td>C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id address \\\n",
"0 0 0x680a025da7b1be2c204d7745e809919bce074026 \n",
"1 1 0x06da0fd433c1a5d7a4faa01111c044910a184553 \n",
"2 2 0x58dc5a51fe44589beb22e8ce67720b5bc5378009 \n",
"3 3 0x95b54c8da12bb23f7a5f6e26c38d04acc6f81820 \n",
"4 4 0x611cde65dea90918c0078ac0400a72b0d25b9bb1 \n",
"\n",
" base_address base_symbol base_decimals \\\n",
"0 6B3595068778DD592e39A122f4f5a5cF09C90fE2 SUSHI 18 \n",
"1 C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 18 \n",
"2 C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 18 \n",
"3 Aba8cAc6866B83Ae4eec97DD07ED254282f6aD8A YAMv2 24 \n",
"4 408e41876cCCDC0F92210600ef50372656052a38 REN 18 \n",
"\n",
" quote_address quote_symbol quote_decimals \n",
"0 dAC17F958D2ee523a2206206994597C13D831ec7 USDT 6 \n",
"1 dAC17F958D2ee523a2206206994597C13D831ec7 USDT 6 \n",
"2 D533a949740bb3306d119CC777fa900bA034cd52 CRV 18 \n",
"3 C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 18 \n",
"4 C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH 18 "
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sushi_dump = pd.read_csv('../contracts/export/sushiswap.v2.20211105.csv')\n",
"sushi_dump['address'] = '0x'+sushi_dump['address'].str.lower()\n",
"sushi_dump.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Ga8o5O6h0kdC",
"outputId": "8d51b7d3-4361-4f54-efb8-e6da45fa55b9"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>address</th>\n",
" <th>base_address</th>\n",
" <th>base_symbol</th>\n",
" <th>base_decimals</th>\n",
" <th>quote_address</th>\n",
" <th>quote_symbol</th>\n",
" <th>quote_decimals</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>61</td>\n",
" <td>0xceff51756c56ceffca006cd410b03ffc46dd3a58</td>\n",
" <td>0x2260fac5e5542a773aa44fbcfedf7c193bc2c599</td>\n",
" <td>WBTC</td>\n",
" <td>8</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>856</td>\n",
" <td>0x34d7d7aaf50ad4944b70b320acb24c95fa2def7c</td>\n",
" <td>0x383518188c0c6d7730d91b2c03a03c837814a899</td>\n",
" <td>OHM</td>\n",
" <td>9</td>\n",
" <td>0x6b175474e89094c44da98b954eedeac495271d0f</td>\n",
" <td>DAI</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>915</td>\n",
" <td>0x6a091a3406e0073c3cd6340122143009adac0eda</td>\n",
" <td>0x767fe9edc9e0df98e07454847909b5e959d7ca0e</td>\n",
" <td>ILV</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>17</td>\n",
" <td>0x397ff1542f962076d0bfe58ea045ffa2d347aca0</td>\n",
" <td>0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48</td>\n",
" <td>USDC</td>\n",
" <td>6</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1746</td>\n",
" <td>0xe12af1218b4e9272e9628d7c7dc6354d137d024e</td>\n",
" <td>0x1a4b46696b2bb4794eb3d4c26f1c55f9170fa4c5</td>\n",
" <td>BIT</td>\n",
" <td>18</td>\n",
" <td>0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2</td>\n",
" <td>WETH</td>\n",
" <td>18</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id address \\\n",
"0 61 0xceff51756c56ceffca006cd410b03ffc46dd3a58 \n",
"1 856 0x34d7d7aaf50ad4944b70b320acb24c95fa2def7c \n",
"2 915 0x6a091a3406e0073c3cd6340122143009adac0eda \n",
"3 17 0x397ff1542f962076d0bfe58ea045ffa2d347aca0 \n",
"4 1746 0xe12af1218b4e9272e9628d7c7dc6354d137d024e \n",
"\n",
" base_address base_symbol base_decimals \\\n",
"0 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 WBTC 8 \n",
"1 0x383518188c0c6d7730d91b2c03a03c837814a899 OHM 9 \n",
"2 0x767fe9edc9e0df98e07454847909b5e959d7ca0e ILV 18 \n",
"3 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 USDC 6 \n",
"4 0x1a4b46696b2bb4794eb3d4c26f1c55f9170fa4c5 BIT 18 \n",
"\n",
" quote_address quote_symbol quote_decimals \n",
"0 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 \n",
"1 0x6b175474e89094c44da98b954eedeac495271d0f DAI 18 \n",
"2 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 \n",
"3 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 \n",
"4 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 WETH 18 "
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sushi_dump_merge = sushi_pairs_merged.merge(sushi_dump,on='address').drop(columns=['base_symbol_y', 'base_address_y', 'base_decimals_y','quote_symbol_y', 'quote_address_y','quote_decimals_y'])\n",
"sushi_dump_merge = sushi_dump_merge.rename({'base_address_x': 'base_address','base_symbol_x': 'base_symbol','base_decimals_x': 'base_decimals', 'quote_address_x': 'quote_address','quote_symbol_x': 'quote_symbol','quote_decimals_x': 'quote_decimals' }, axis=1)\n",
"sushi_dump_merge = sushi_dump_merge[['id','address','base_address','base_symbol','base_decimals','quote_address','quote_symbol','quote_decimals']]\n",
"sushi_dump_merge.to_csv('sushi_pairs.csv',index=False)\n",
"sushi_dump_merge.head()\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "DWgqGZ6E0kdC"
},
"outputs": [],
"source": [
"import csv\n",
"sushi_dump_merge['address'] = sushi_dump_merge['address'].str.slice(start=2)\n",
"sushi_dump_merge['base_address'] = sushi_dump_merge['base_address'].str.slice(start=2)\n",
"sushi_dump_merge['quote_address'] = sushi_dump_merge['quote_address'].str.slice(start=2)\n",
"sushi_dump_merge['base_decimals'] = sushi_dump_merge['base_decimals'].astype('int32')\n",
"sushi_dump_merge['quote_decimals'] = sushi_dump_merge['quote_decimals'].astype('int32')\n",
"sushi_dump_merge.to_csv('sushi_pairs_sql.txt',index=False, header=False,quotechar=\"'\",quoting=csv.QUOTE_NONNUMERIC, line_terminator=',true,default),\\n (')\n",
"\n",
"\n",
"uni_dump_merge['address'] = uni_dump_merge['address'].str.slice(start=2)\n",
"uni_dump_merge['base_address'] = uni_dump_merge['base_address'].str.slice(start=2)\n",
"uni_dump_merge['quote_address'] = uni_dump_merge['quote_address'].str.slice(start=2)\n",
"uni_dump_merge['base_decimals'] = uni_dump_merge['base_decimals'].astype('int32')\n",
"uni_dump_merge['quote_decimals'] = uni_dump_merge['quote_decimals'].astype('int32')\n",
"uni_dump_merge.to_csv('uni_pairs_sql.txt',index=False, header=False,quotechar=\"'\",quoting=csv.QUOTE_NONNUMERIC, line_terminator=',true,default),\\n (')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Ufc0ERca0kdC"
},
"outputs": [],
"source": [
""
]
}
],
"metadata": {
"interpreter": {
"hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1"
},
"kernelspec": {
"display_name": "Python 3.8.10 64-bit",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
},
"orig_nbformat": 4,
"colab": {
"name": "SushiSwap_LiquidityPairs.ipynb",
"provenance": [],
"include_colab_link": true
}
},
"nbformat": 4,
"nbformat_minor": 0
}
@0xD7ba952CE8A0976e8d9852b7649bf01c30146

@sambacha hi, I am trying to understand why these tokens listed as top in volume on Uniswap are labeled unsupported on Uniswap?

welp: https://v2.info.uniswap.org/pair/0xe5ffe183ae47f1a0e4194618d34c5b05b98953a8
SCAMMY: https://v2.info.uniswap.org/pair/0x23fe4ee3bd9bfd1152993a7954298bb4d426698f

@sambacha
Copy link
Author

@sambacha hi, I am trying to understand why these tokens listed as top in volume on Uniswap are labeled unsupported on Uniswap?

welp: https://v2.info.uniswap.org/pair/0xe5ffe183ae47f1a0e4194618d34c5b05b98953a8 SCAMMY: https://v2.info.uniswap.org/pair/0x23fe4ee3bd9bfd1152993a7954298bb4d426698f

For the scammy see this reference https://github.com/manifoldfinance/defi-threat/blob/master/src/README.md#example-fake-wash-trading-on-uniswap

for welp i would have to look at my notes, i am on my phone right now

hope this helps, cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment