diff --git a/.gitignore b/.gitignore
index 2f1b0d1f..7475b8e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,6 @@ __pycache__
.ipynb_checkpoints
.vscode
.env
+.venv
+shell.nix
storage_credentials.json
diff --git a/apps/legacy_app/notebooks/Analyze_user_behavior_across_different_lending_protocols.ipynb b/apps/legacy_app/notebooks/Analyze_user_behavior_across_different_lending_protocols.ipynb
index fe56f24e..4f706596 100644
--- a/apps/legacy_app/notebooks/Analyze_user_behavior_across_different_lending_protocols.ipynb
+++ b/apps/legacy_app/notebooks/Analyze_user_behavior_across_different_lending_protocols.ipynb
@@ -66,12 +66,20 @@
"outputs": [],
"source": [
"# importing necessary libraries\n",
+ "import os\n",
+ "import sys\n",
"import pandas as pd\n",
+ "sys.path.append('..')\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from matplotlib_venn import venn3\n",
- "from sqlalchemy import create_engine\n",
- "import gcsfs"
+ "import requests\n",
+ "import numpy as np\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "from collections import defaultdict, Counter\n",
+ "import re\n",
+ "import src.helpers\n",
+ "import math"
]
},
{
@@ -84,86 +92,336 @@
},
{
"cell_type": "markdown",
- "id": "99f508d9-4c05-4058-9974-ca6f6398ae88",
+ "id": "c5820bcd-27a7-4a72-b2c9-8b81dda59110",
"metadata": {},
"source": [
- "#### From Postgress"
+ "#### From GCS"
]
},
{
"cell_type": "code",
- "execution_count": 2,
- "id": "fb9b9d7d-1abc-498b-8358-7c12cb01b0f4",
+ "execution_count": 6,
+ "id": "2624ecf7-a4de-4ed6-b075-4a7b1ea5a1c3",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Processing zklend from Google Storage...\n",
+ "Processing nostra_alpha from Google Storage...\n",
+ "Processing nostra_mainnet from Google Storage...\n",
+ "Processing hashstack_v0 from Google Storage...\n",
+ "Processing hashstack_v1 from Google Storage...\n",
+ "Combined dataframe shape: (1776234, 9)\n"
+ ]
+ }
+ ],
"source": [
- "# from sqlalchemy import create_engine\n",
- "\n",
- "# # List of protocols (table names in the PostgreSQL database)\n",
- "# protocols = [\"zklend\", \"nostra_alpha\", \"nostra_mainnet\", \"hashstack_v0\", \"hashstack_v1\"]\n",
- "\n",
- "# # Database connection string\n",
- "# db_connection_string = 'postgresql://username:password@hostname:port/database'\n",
- "\n",
- "# # Load data from PostgreSQL\n",
- "# postgres_df_list = []\n",
- "# engine = create_engine(db_connection_string)\n",
+ "def load_protocol_data(protocols: list[str]) -> pd.DataFrame:\n",
+ " \"\"\"\n",
+ " Load data from Google Storage for the specified protocols and combine them into a single DataFrame.\n",
+ " \n",
+ " Parameters:\n",
+ " protocols (list[str]): A list of protocol names to load data for.\n",
+ " \n",
+ " Returns:\n",
+ " pd.DataFrame: A DataFrame containing the combined data from all specified protocols.\n",
+ " \n",
+ " \"\"\" \n",
+ " combined_protocols_df = pd.DataFrame()\n",
+ " \n",
+ " for protocol in protocols:\n",
+ " # Read from google storage\n",
+ " try:\n",
+ " url = f\"https://storage.googleapis.com/derisk-persistent-state/{protocol}_data/loans.parquet\" \n",
+ " print(f\"Processing {protocol} from Google Storage...\")\n",
+ " df_protocol = pd.read_parquet(url)\n",
+ " except:\n",
+ " print(\"Moving forward...\")\n",
+ " \n",
+ " df_protocol['Protocol'] = protocol\n",
+ " combined_protocols_df = pd.concat([combined_protocols_df, df_protocol], ignore_index=True)\n",
+ " return combined_protocols_df\n",
"\n",
- "# for protocol in protocols:\n",
- "# df = pd.read_sql_table(protocol, con=engine)\n",
- "# df['Protocol'] = protocol\n",
- "# postgres_df_list.append(df)\n",
+ "# List of protocols\n",
+ "PROTOCOLS = ['zklend', 'nostra_alpha', 'nostra_mainnet', 'hashstack_v0', 'hashstack_v1']\n",
"\n",
- "# # Combine all PostgreSQL DataFrames into one\n",
- "# df_loans_postgres = pd.concat(postgres_df_list, ignore_index=True)a"
+ "# Load the data\n",
+ "loans = load_protocol_data(PROTOCOLS)\n",
+ "print(f\"Combined dataframe shape: {loans.shape}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "6a9975f0-b5aa-49b4-bd47-b560d7c590e8",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " User | \n",
+ " Protocol | \n",
+ " Collateral (USD) | \n",
+ " Risk-adjusted collateral (USD) | \n",
+ " Debt (USD) | \n",
+ " Health factor | \n",
+ " Standardized health factor | \n",
+ " Collateral | \n",
+ " Debt | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 0x4306021e30f9577351207140f90425b3e9e102ec5a42... | \n",
+ " zklend | \n",
+ " 5744.568231 | \n",
+ " 4289.009524 | \n",
+ " 22.162648 | \n",
+ " 193.524234 | \n",
+ " 193.524234 | \n",
+ " USDC: 113.3876, USDT: 4610.7524, STRK: 904.5577 | \n",
+ " USDC: 10.0284, USDT: 10.0302, wstETH: 0.0006 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 0x30b399e06903676ada3eccd5522e0cca4c4ad0101468... | \n",
+ " zklend | \n",
+ " 37.671463 | \n",
+ " 30.137170 | \n",
+ " 0.000000 | \n",
+ " inf | \n",
+ " inf | \n",
+ " ETH: 0.0126 | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 0x2f006034f567d5c2431bc4104b2cc7a1bf8f004bd00c... | \n",
+ " zklend | \n",
+ " 102.450086 | \n",
+ " 81.960069 | \n",
+ " 0.387499 | \n",
+ " 211.510582 | \n",
+ " 211.510582 | \n",
+ " ETH: 0.0311, USDC: 6.5088, USDT: 3.0144 | \n",
+ " ETH: 0.0005 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 0x43e9ee859c0f85a6d5ab3f7ad26c50b9e9d8a8e10d0d... | \n",
+ " zklend | \n",
+ " -5.156963 | \n",
+ " -4.125570 | \n",
+ " 0.000000 | \n",
+ " inf | \n",
+ " inf | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 0x22dd5ed1e4d359eca2e772ecefa57e31bb7756772850... | \n",
+ " zklend | \n",
+ " 213.311298 | \n",
+ " 157.651127 | \n",
+ " 0.000000 | \n",
+ " inf | \n",
+ " inf | \n",
+ " wBTC: 0.0018, DAI: 23.1396, USDT: 83.3628 | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " User Protocol \\\n",
+ "0 0x4306021e30f9577351207140f90425b3e9e102ec5a42... zklend \n",
+ "1 0x30b399e06903676ada3eccd5522e0cca4c4ad0101468... zklend \n",
+ "2 0x2f006034f567d5c2431bc4104b2cc7a1bf8f004bd00c... zklend \n",
+ "3 0x43e9ee859c0f85a6d5ab3f7ad26c50b9e9d8a8e10d0d... zklend \n",
+ "4 0x22dd5ed1e4d359eca2e772ecefa57e31bb7756772850... zklend \n",
+ "\n",
+ " Collateral (USD) Risk-adjusted collateral (USD) Debt (USD) \\\n",
+ "0 5744.568231 4289.009524 22.162648 \n",
+ "1 37.671463 30.137170 0.000000 \n",
+ "2 102.450086 81.960069 0.387499 \n",
+ "3 -5.156963 -4.125570 0.000000 \n",
+ "4 213.311298 157.651127 0.000000 \n",
+ "\n",
+ " Health factor Standardized health factor \\\n",
+ "0 193.524234 193.524234 \n",
+ "1 inf inf \n",
+ "2 211.510582 211.510582 \n",
+ "3 inf inf \n",
+ "4 inf inf \n",
+ "\n",
+ " Collateral \\\n",
+ "0 USDC: 113.3876, USDT: 4610.7524, STRK: 904.5577 \n",
+ "1 ETH: 0.0126 \n",
+ "2 ETH: 0.0311, USDC: 6.5088, USDT: 3.0144 \n",
+ "3 \n",
+ "4 wBTC: 0.0018, DAI: 23.1396, USDT: 83.3628 \n",
+ "\n",
+ " Debt \n",
+ "0 USDC: 10.0284, USDT: 10.0302, wstETH: 0.0006 \n",
+ "1 \n",
+ "2 ETH: 0.0005 \n",
+ "3 \n",
+ "4 "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "loans.head()"
]
},
{
"cell_type": "markdown",
- "id": "c5820bcd-27a7-4a72-b2c9-8b81dda59110",
+ "id": "8f078115-7933-467c-978b-161a7546b1c8",
"metadata": {},
"source": [
- "#### From GCS"
+ "### List of Current prices in USD for given tokens\n",
+ "Ethereum,Wrapped-Bitcoin,USD-coin,DAI,Tether,Wrapped-Steth,Lords"
]
},
{
"cell_type": "code",
- "execution_count": 3,
- "id": "bc9bd276-f6c0-4903-8f18-85e580de6f2d",
+ "execution_count": 9,
+ "id": "5ba21cdc-3a84-429d-a1e5-2380046230f5",
"metadata": {},
"outputs": [],
"source": [
- "# Dictionary of Parquet URLs\n",
- "parquet_urls = {\n",
- " \"zklend\": \"https://storage.googleapis.com/derisk-persistent-state/zklend_data/loans.parquet\",\n",
- " \"nostra_alpha\": \"https://storage.googleapis.com/derisk-persistent-state/nostra_alpha_data/loans.parquet\",\n",
- " \"nostra_mainnet\": \"https://storage.googleapis.com/derisk-persistent-state/nostra_mainnet_data/loans.parquet\",\n",
- " \"hashstack_v0\": \"https://storage.googleapis.com/derisk-persistent-state/hashstack_v0_data/loans.parquet\",\n",
- " \"hashstack_v1\": \"https://storage.googleapis.com/derisk-persistent-state/hashstack_v1_data/loans.parquet\",\n",
- "}\n",
+ "def fetch_prices(collateral_token: str) -> float:\n",
+ " # Fetch underlying addresses and decimals\n",
+ " collateral_token_underlying_address = (\n",
+ " src.helpers.UNDERLYING_SYMBOLS_TO_UNDERLYING_ADDRESSES[collateral_token]\n",
+ " )\n",
+ " collateral_token_decimals = int(\n",
+ " math.log10(src.settings.TOKEN_SETTINGS[collateral_token].decimal_factor)\n",
+ " )\n",
+ " underlying_addresses_to_decimals = {\n",
+ " collateral_token_underlying_address: collateral_token_decimals\n",
+ " }\n",
"\n",
- "# Load data from GCS\n",
- "gcs_df_list = []\n",
- "for protocol, url in parquet_urls.items():\n",
- " fs = gcsfs.GCSFileSystem()\n",
- " gcs_path = url.replace('https://storage.googleapis.com/', '')\n",
- " with fs.open(gcs_path, 'rb') as f:\n",
- " df = pd.read_parquet(f, engine='pyarrow')\n",
- " df['Protocol'] = protocol\n",
- " gcs_df_list.append(df)\n",
+ " # Fetch prices\n",
+ " prices = src.helpers.get_prices(token_decimals=underlying_addresses_to_decimals)\n",
+ " collateral_token_price = prices[collateral_token_underlying_address]\n",
"\n",
- "# Combine all GCS DataFrames into one\n",
- "df_loans = pd.concat(gcs_df_list, ignore_index=True)"
+ " return collateral_token_price"
]
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "6a9975f0-b5aa-49b4-bd47-b560d7c590e8",
+ "execution_count": 24,
+ "id": "938f1b8f-eb9c-4508-9fa0-35eca038b3d0",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'ETH': 3664.7}\n",
+ "{'ETH': 3664.7, 'STRK': 0.6692467172063724}\n",
+ "{'ETH': 3664.7, 'STRK': 0.6692467172063724, 'USDT': 0.9979042580668577}\n",
+ "{'dai': {'usd': 1.0}, 'lords': {'usd': 0.206449}}\n",
+ "{'usd': 0.206449}\n",
+ "{'ETH': 3664.7, 'STRK': 0.6692467172063724, 'USDT': 0.9979042580668577, 'LORDS': 0.206449}\n",
+ "{'ETH': 3664.7, 'STRK': 0.6692467172063724, 'USDT': 0.9979042580668577, 'LORDS': 0.206449, 'WBTC': 96050.203262736}\n",
+ "{'dai': {'usd': 1.0}, 'lords': {'usd': 0.206449}}\n",
+ "{'usd': 1.0}\n",
+ "{'ETH': 3664.7, 'STRK': 0.6692467172063724, 'USDT': 0.9979042580668577, 'LORDS': 0.206449, 'WBTC': 96050.203262736, 'DAI': 1.0}\n",
+ "{'ETH': 3664.7, 'STRK': 0.6692467172063724, 'USDT': 0.9979042580668577, 'LORDS': 0.206449, 'WBTC': 96050.203262736, 'DAI': 1.0, 'USDC': 0.9979469343595746}\n",
+ "Some error occured\n",
+ "{'wrapped-steth': {'usd': 4347.19}}\n",
+ "{'ETH': 3664.7, 'STRK': 0.6692467172063724, 'USDT': 0.9979042580668577, 'LORDS': 0.206449, 'WBTC': 96050.203262736, 'DAI': 1.0, 'USDC': 0.9979469343595746, 'wstETH': 4347.19}\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "{'ETH': 3664.7,\n",
+ " 'STRK': 0.6692467172063724,\n",
+ " 'USDT': 0.9979042580668577,\n",
+ " 'LORDS': 0.206449,\n",
+ " 'WBTC': 96050.203262736,\n",
+ " 'DAI': 1.0,\n",
+ " 'USDC': 0.9979469343595746,\n",
+ " 'wstETH': 4347.19}"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "df_loans.head()"
+ "COLLATERAL_TOKENS = [\"ETH\", \"WBTC\", \"STRK\", \"USDC\", \"USDT\", \"DAI\", \"LORDS\", \"wstETH\"]\n",
+ "prices = {}\n",
+ "while(len(COLLATERAL_TOKENS) != 0):\n",
+ " try:\n",
+ " for token in COLLATERAL_TOKENS:\n",
+ " price = fetch_prices(token)\n",
+ " prices[token] = price\n",
+ " print(prices)\n",
+ " COLLATERAL_TOKENS.remove(token)\n",
+ " except:\n",
+ " url = 'https://api.coingecko.com/api/v3/simple/price'\n",
+ " if token == 'DAI' or token == 'LORDS':\n",
+ " token_ids = 'DAI,LORDS'\n",
+ " params = {\n",
+ " 'ids': token_ids,\n",
+ " 'vs_currencies': 'usd'\n",
+ " }\n",
+ " response = requests.get(url, params=params)\n",
+ " rem_prices = response.json()\n",
+ " print(rem_prices)\n",
+ " usd = rem_prices.get(token.lower())\n",
+ " print(usd)\n",
+ " prices[token] = usd['usd']\n",
+ " COLLATERAL_TOKENS.remove(token)\n",
+ " print(prices)\n",
+ " else:\n",
+ " token_ids = 'wrapped-steth'\n",
+ " params = {\n",
+ " 'ids': token_ids,\n",
+ " 'vs_currencies': 'usd'\n",
+ " }\n",
+ " response = requests.get(url, params=params)\n",
+ " rem_prices = response.json()\n",
+ " print(rem_prices)\n",
+ " usd = rem_prices.get('wrapped-steth')\n",
+ " prices[token] = usd['usd']\n",
+ " COLLATERAL_TOKENS.remove(token)\n",
+ " print(prices)\n",
+ " else:\n",
+ " print(\"Some error occured\")\n",
+ "prices"
]
},
{
@@ -177,13 +435,30 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "c6a72339-26b1-49e6-943f-4bea5ba8b3a3",
+ "execution_count": 25,
+ "id": "57a5bed8-fb28-4ebc-83df-332021d03643",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Protocol\n",
+ "zklend 1383629\n",
+ "nostra_mainnet 247540\n",
+ "nostra_alpha 143645\n",
+ "hashstack_v1 867\n",
+ "hashstack_v0 87\n",
+ "Name: User, dtype: int64"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# the distribution of protocols among users\n",
- "df_loans['Protocol'].value_counts()"
+ "top_protocols = loans.groupby('Protocol')['User'].nunique().sort_values(ascending=False)\n",
+ "top_protocols"
]
},
{
@@ -196,26 +471,23 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 26,
"id": "084931be-14e4-4182-91dd-fa5701265967",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
- "from collections import defaultdict, Counter\n",
- "\n",
- "liquidity_data = df_loans[df_loans['Collateral (USD)'] > 0]\n",
+ "active_loans = loans[loans['Collateral (USD)'] > 0]\n",
"\n",
"# Initialize a dictionary to store users and their associated protocols for liquidity\n",
"user_protocols_liquidity = defaultdict(set)\n",
"\n",
"# Populate the dictionary\n",
- "for _, row in liquidity_data.iterrows():\n",
+ "for _, row in active_loans.iterrows():\n",
" user = row['User']\n",
" protocol = row['Protocol']\n",
" user_protocols_liquidity[user].add(protocol)\n",
- "\n",
"# Count the number of protocols each user lends on\n",
"user_protocol_counts_liquidity = Counter([len(protocols) for protocols in user_protocols_liquidity.values()])\n",
"\n",
@@ -227,6 +499,98 @@
"protocol_count_df_liquidity = protocol_count_df_liquidity.sort_values(by='Number of Protocols')"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "e0abeedd-dd39-46f0-a5b7-c8989b53f67c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "protocol_count_df_liquidity = protocol_count_df_liquidity.reset_index(drop = True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "e989070b-821a-41f2-84ea-2c4cd19ba8d1",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Users providing liquidity:\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Number of Protocols | \n",
+ " Number of Users | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 402964 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 71145 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 4510 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 15 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Number of Protocols Number of Users\n",
+ "0 1 402964\n",
+ "1 2 71145\n",
+ "2 3 4510\n",
+ "3 4 15"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "print(\"Users providing liquidity:\\n\")\n",
+ "protocol_count_df_liquidity"
+ ]
+ },
{
"cell_type": "markdown",
"id": "db697ca0-30fe-4d21-a5fc-b01c5db05ad9",
@@ -237,14 +601,14 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 29,
"id": "2853f77c-143b-4d6a-b584-20a515fa7d09",
"metadata": {},
"outputs": [],
"source": [
"## Helper funcitons:\n",
"# Function to get unique users per protocol\n",
- "def get_unique_users(df, value_column):\n",
+ "def get_unique_users_by_protocol(df: pd.DataFrame) -> defaultdict:\n",
" protocol_users = defaultdict(set)\n",
" for protocol in df['Protocol'].unique():\n",
" users = set(df[df['Protocol'] == protocol]['User'])\n",
@@ -252,14 +616,22 @@
" return protocol_users\n",
" \n",
"# Helper function to plot Venn diagram\n",
- "def plot_venn_diagram(user_sets, title):\n",
+ "def plot_venn_diagram(user_sets: list, title: str, labels: list) -> None:\n",
" plt.figure(figsize=(10, 8))\n",
" venn3(subsets=(user_sets[0], user_sets[1], user_sets[2]), \n",
- " set_labels=('zklend', 'nostra_mainnet', 'nostra_alpha'))\n",
+ " set_labels=labels)\n",
" plt.title(title)\n",
" plt.show()"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "539348d0-d35e-4686-9e55-50bc54d6885a",
+ "metadata": {},
+ "source": [
+ "### Venn Diagram "
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -268,17 +640,15 @@
"outputs": [],
"source": [
"# Get unique users providing liquidity\n",
- "liquidity_df = df_loans[df_loans['Collateral (USD)'] > 0]\n",
- "liquidity_protocol_users = get_unique_users(liquidity_df, 'Collateral (USD)')\n",
- "\n",
+ "liquidity_df = loans[loans['Collateral (USD)'] > 0]\n",
+ "liquidity_protocol_users = get_unique_users_by_protocol(liquidity_df)\n",
"\n",
"# Prepare sets for Venn diagrams (top 3 protocols by user count)\n",
- "top_protocols = ['zklend', 'nostra_mainnet', 'nostra_alpha']\n",
- "liquidity_user_sets = [liquidity_protocol_users[protocol] for protocol in top_protocols]\n",
- "\n",
+ "top_3_protocols = top_protocols.keys()[:3].tolist()\n",
+ "liquidity_user_sets = [liquidity_protocol_users[protocol] for protocol in top_3_protocols]\n",
"\n",
"# Plot Venn diagrams\n",
- "plot_venn_diagram(liquidity_user_sets, 'Users Providing Liquidity Across Top 3 Protocols')\n",
+ "plot_venn_diagram(liquidity_user_sets, 'Users Providing Liquidity Across Top 3 Protocols', top_3_protocols)\n",
"# plot_venn_diagram(debt_user_sets, 'Users Borrowing Across Top 3 Protocols')"
]
},
@@ -292,7 +662,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": null,
"id": "ccdd4123-9a4e-4def-93a9-d8d21b637962",
"metadata": {
"scrolled": true
@@ -300,7 +670,7 @@
"outputs": [],
"source": [
"# Subset the DataFrame for users who have debt\n",
- "debt_data = df_loans[df_loans['Debt (USD)'] > 0]\n",
+ "debt_data = loans[loans['Debt (USD)'] > 0]\n",
"\n",
"# Initialize a dictionary to store users and their associated protocols for debt\n",
"user_protocols_debt = defaultdict(set)\n",
@@ -322,8 +692,8 @@
"protocol_count_df_debt = protocol_count_df_debt.sort_values(by='Number of Protocols')\n",
"\n",
"# Print the result for debt\n",
- "# print(\"Users borrowing:\")\n",
- "# print(protocol_count_df_debt)"
+ "print(\"Users borrowing:\")\n",
+ "protocol_count_df_debt"
]
},
{
@@ -342,16 +712,16 @@
"outputs": [],
"source": [
"# Get unique users having debt\n",
- "debt_df = df_loans[df_loans['Debt (USD)'] > 0]\n",
- "debt_protocol_users = get_unique_users(debt_df, 'Debt (USD)')\n",
+ "debt_df = loans[loans['Debt (USD)'] > 0]\n",
+ "debt_protocol_users = get_unique_users_by_protocol(debt_df)\n",
"\n",
"\n",
"# Prepare sets for Venn diagrams (top 3 protocols by user count)\n",
- "top_protocols = ['zklend', 'nostra_mainnet', 'nostra_alpha']\n",
- "debt_user_sets = [debt_protocol_users[protocol] for protocol in top_protocols]\n",
+ "top_3_protocols = top_protocols.keys()[:3]\n",
+ "debt_user_sets = [debt_protocol_users[protocol] for protocol in top_3_protocols]\n",
"\n",
"# Plot Venn diagrams\n",
- "plot_venn_diagram(debt_user_sets, 'Users Borrowing Across Top 3 Protocols')"
+ "plot_venn_diagram(debt_user_sets, 'Users Borrowing Across Top 3 Protocols', top_3_protocols)"
]
},
{
@@ -364,22 +734,31 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 16,
"id": "0c4a2a57-bd8e-44e0-ab0a-c969a311cb2a",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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cvvnn39Uq1YtDR06VN26ddPHH3+sDBkyJHdZSCbRv+sCAwP1zTffaPDgwfruu+90586dZKws5XBJ7gKA+Jo7d64++OADfffdd7p586aOHj2q+vXrKzg4WF26dNELL7yQ3CXiGTFnzhy9/fbbypo1q+7du6f69evbAxZhHlaJjIyUk9P9fZwLFizQ4cOH5evrq1KlSqlIkSLJXB2eFxkyZFDLli01YMAARUREaO/evcqTJ4/u3bsnFxd+Jj5vor7jfv31V3366aeqWrWqcuTIod69e+vatWsaMGCAXF1dk7nKpxvvGqQYv//+u9599121a9fOPq18+fJq2rSp7t69q/79+8vDwyMZK8SzYMeOHfruu+/UunVrRUREqGfPnjLGqEGDBgQsWMYYYw9WPXr00JQpU+Tv76+zZ88qZ86c+uCDD1SvXr3kLRLPhWzZsilr1qy6du2a/Pz8tGDBAnXu3FkuLi6KiIiQs7NzcpeIJHbgwAG1bt1agwYNUsuWLRUaGqr58+fr448/liR9+eWXcnNzS+Yqn16EK6QIxhidPXtWfn5+kv6vK817770nFxcXNWnSRAULFlSrVq348Ysn4uzsrJw5c+qTTz6RJA0dOlS9evWSJAIWLBPVfn744QfNmDFD8+bNU9myZTVs2DB99tln9nNL33nnHUmizcFSUUdNo9pVpUqV9Mcff2jZsmUaM2aMbt++reDgYILVcyosLEwZMmRQUFCQ3Nzc5OPjozZt2igiIkIff/yx0qVLp06dOilVqlTJXepTiXOu8FSL6vsb9eE/e/Zs7d271/6lYIxRo0aN1KdPH/Xu3VvHjx/nBwgeS1RgL168uL777jv5+/vL399f7du3V7ly5dSrVy/NmTNH0v32eOvWreQsF8+A69eva+/everatavKli2r+fPnq2/fvurUqZM8PDz01Vdfad68eZLE5xosE7076u7du7VlyxalTp1aZcqUUbt27dSwYUNNnjxZ3377rX2ZQYMGadeuXclVMpKYh4eHjh49qv/++0/S/30/vv766/L19dUXX3yhr7/+OjlLfKrZDGdpIwW4d++erl+/rrfffltubm4aPny48ubNa+8T/ueff6pBgwZaunSpAgICkrtcpGBRbSp6d5hdu3bphx9+0KZNmzRw4EDVqVNHr776qrp3765atWolc8VIyQ4ePKg0adIoNDRU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vtHatWslSQMGDNDw4cN17NgxTZo0SZcuXbLPnzdvXuXLly9GN1NOGsfjiv55NnXqVI0cOVJdunTRiy++qE2bNqlu3bq6efOmqlWrpn79+unChQvq27evtm/f7rAeLmPy7HByclLNmjU1efJkzZs3T02bNpV0P1zVqFFD7u7uypo1q/bu3at9+/ape/fuGj9+vL799ltlyJAhmat/dvCOQqI6deqU/v33X82YMUMTJ060Tz927Jj9R0ZcH+zRf+yOGTNGdevWpYsW4kRbQ1KJiIhQkSJFNHv2bJ04cULffvutvctVhw4dNGDAAPXp00eDBg3SunXrtGfPHvXp00eenp7Kly9fMlePZ0H0QXgWL16sM2fO6IcfflDLli31ww8/qFu3brpy5Yrq1KljD1jdu3dXkSJFFBAQkLzFI1FE9bYICwtTrVq1NH36dC1cuFBNmjSRdP96Z61atdKaNWtUokQJvf/++1q6dKlWr16tokWLJmfpzx4DJLK9e/eaZs2amfLly5tx48YZY4ypW7eu6devnzHGmIiIiBjL3L171/7/MWPGmHTp0pk5c+YkTcFIsWhrSCr37t0zxhhz4MABU7RoUVOzZk2zatUq++NfffWVsdlsxmazmWbNmpn69eubO3fuGGNib4dAfNSsWdPs2rXLfn/Lli2mQIECxsvLy8ybN88+/c6dO+bXX381L730knnttdfM9evXHdZDG3x2REZG2v+/cuVKU6NGDXP37l1z584ds3jxYuPt7W3effdd+zzHjx83a9euNfv37zfnz59PjpKfeRy5QqKJ6rJQuHBh9ejRQ3nz5tW4ceM0bdo05cqVS5kyZdKRI0d0/PhxhYSE6Ny5c9q0aZOk/xtEYOzYserevbvGjRunBg0aJNtrwdONtoakEL0bVlR3vgIFCtjPpRo8eLD9CFZwcLBGjBghSSpVqpQmTJggV1dXRURE0A0Lj+X48eMqXry4ChUqZJ+WN29etW/fXhkyZNC4cePs011dXVW7dm0FBwdr//79+vzzzyX939EN2mDKN2TIEC1YsMDhHOO///5badOmlYuLi1xdXfX6669r2rRp+u233+xHsHLkyKHAwEAVLFhQPj4+yfkSnl3Jne7wbIq+VywkJMQYc38P7/vvv2/KlCljbDab8fLyMvnz5zeZMmUyvr6+xtfX19SpU8e+F2bUqFHG29ub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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
- "import seaborn as sns\n",
- "\n",
"# Function to calculate total capital per token across protocols\n",
- "def calculate_capital(df, column_name):\n",
+ "def calculate_capital(df: pd.DataFrame, column_name: str) -> pd.Series:\n",
" capital_per_protocol = df.groupby('Protocol')[column_name].sum()\n",
" return capital_per_protocol\n",
"\n",
"# Function to plot bar chart for token capital across protocols\n",
- "def plot_capital(capital, title):\n",
+ "def plot_capital(capital: pd.Series, title: str) -> None:\n",
" plt.figure(figsize=(10, 6))\n",
- " sns.barplot(x=capital.index, y=capital.values)\n",
+ " sns.barplot(x=capital.index, y=np.log(capital.values))\n",
" plt.xlabel('Protocol')\n",
" plt.ylabel('Total Capital (USD)')\n",
" plt.title(title)\n",
@@ -388,7 +767,7 @@
"\n",
"# Calculate total staked capital per token\n",
"staked_capital = calculate_capital(liquidity_df, 'Collateral (USD)')\n",
- "plot_capital(staked_capital, 'Total Staked Capital per Token Across Protocols')\n",
+ "plot_capital(staked_capital, 'Total Staked Capital per Token Across Protocols (Logirathmic Scaling is used)')\n",
"\n",
"\n"
]
@@ -403,14 +782,25 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 17,
"id": "c66e6f79-aeb8-41e0-aa01-a17ee535d50f",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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hQoVXnhv+H+9fiHGjx+vbNmyKXHixCpWrJi2bdsW7tyxiM65el4b3LZtmxo2bKjMmTPL1dVVmTJlUteuXfXw4cMw648fP15S2K7jz5oyZYr9dS9atKj27NkTZn5IHefPn1fNmjWVLFkyZciQwb7tv/76SxUqVFDSpEnl7e0d7rWP7Jyr/3oPRuT06dPKmDFjuGAlSWnSpAk37ddff1XZsmWVPHlyubm5qWjRomHqi8rrGJlnz7kKeb/9/vvv6tatmzw9PZU0aVLVq1dP169fD7NucHCw+vfvLy8vL/tn/dGjR6N8Htez5ybdvXtXXbp0UZYsWeTq6qo0adKocuXK2r9//3O3E9k5rRGdYxaVz7OAgAD169dPOXLksL+ePXv2DPc+DggIUNeuXeXp6ankyZOrdu3aunjxYoQ1FilSRClTptTy5cuf+1yQMHDkCq8MY4xq166tTZs2qXXr1vLx8dFvv/2mHj166N9//9XIkSMlPe1e2KZNGxUrVkwff/yxJCl79uySpD179mjHjh16//33lTFjRp09e1YTJ05UuXLldPToUSVJkuSFavPz89ONGzdkjNG1a9c0duxY3bt3L8we+ajWH2Ljxo1auHChOnTooNSpUytLliz2c1HatWsnT09P9e3bV/fv35f09ItkwIABqlSpkj777DOdOHFCEydO1J49e/T777/L2dlZpUuXVnBwsLZv324/orZt2zY5ODho27Zt9sc+cOCA7t27pzJlytinffLJJ5o5c6ZatmypTp066cyZMxo3bpwOHDhg374k9e3bV4MGDVL16tVVvXp17d+/X++++26UuvKtWLFCkvTRRx9F6XVft26d/vnnH7Vs2VLp0qXTkSNHNGXKFB05ckS7du0K98XaqFEjZcmSRYMHD9auXbs0ZswY3b59W7Nnz45w+2XKlFGnTp00ZswYffHFF/YuqSH/zpw5U8mSJVO3bt2ULFkybdy4UX379pW/v7+GDh0apefwrN27d+vUqVOaMWOGXFxcVL9+fc2dOzfcD4B169apZs2aSp8+vTp37qx06dLp2LFjWrVqlTp37mxfLjAwUFWqVFGpUqU0bNgwJUmSJMpt8ciRI6pZs6YKFiyogQMHytXVVadOndLvv/9u3/4PP/ygTp06qUGDBvaw+ueff2r37t364IMPov38T58+LUlKlSpVmOkv2ua//PJL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qlq1qnbu3GkfRjfkyFtEfHx85OjoqO+//15+fn5ydXVVhQoVVLJkSaVIkULNmzdXp06dZLPZ9OOPP75wt5m5c+cqVapUkX751q5dWz/88IN++eUX1a9fXxMnTlStWrXk4+Ojli1bKn369Dp+/LiOHDmi33777bmPFdW2OHDgQG3dulU1atSQt7e3rl27pgkTJihjxowqVaqUpKc/ANOlS6d33nlHadOm1bFjxzRu3DjVqFEjygOTvIjotPkiRYpowYIF6tatm4oWLapkyZKpVq1a+vjjjzV58mS1aNFC+/btU5YsWbR48WL9/vvvGjVqlL3+8uXL66OPPtKYMWN08uRJe7fTbdu2qXz58urQoYMKFSqk5s2ba8qUKfYuo3/88YdmzZqlunXrPrc758u8hnXq1NHSpUtljAl3hOf69esaNGhQuHWyZs2qpk2bRun1c3FxUf/+/dWxY0dVqFBBjRo10tmzZzVz5kxlz579hY8q5cmTR9mzZ1f37t3177//ys3NTT///HOEga1IkSKSng4eUKVKFTk6Our9999/oce1ioODwwu/B7///nvt27dP9evXV8GCBSU9/eE9e/ZspUyZ0j4ogpubm0aOHKk2bdqoaNGi+uCDD5QiRQodOnRIDx480KxZs6L1Olopbdq06ty5s4YPH27/TD106JD9sz667eLu3bvKmDGjGjRooEKFCilZsmRav3699uzZo+HDhz933ffff1+9evVSvXr11KlTJz148EATJ05Urly5wgxsFJXPs48++kgLFy7Up59+qk2bNumdd95RUFCQjh8/roULF+q3337TW2+9JR8fHzVp0kQTJkyQn5+fSpYsqQ0bNoQ7khdi3759unXrlurUqROt1wXxVCyMSAjEiIiG3717967p2rWr8fLyMs7OziZnzpxm6NCh4Ya+PX78uClTpox9uNuQYWFv375tWrZsaVKnTm2SJUtmqlSpYo4fPx5uONqXGYo9UaJExsfHx0ycODFcXVGtX1KEQ9KGPN6ePXsirGfcuHEmT548xtnZ2aRNm9Z89tlnEQ5r/ssvvxhJplq1amGmt2nTxkgy06ZNi3D7U6ZMMUWKFDGJEyc2yZMnNwUKFDA9e/Y0ly5dsi8TFBRkBgwYYNKnT28SJ05sypUrZw4fPhzuNX6eBw8emGHDhpmiRYuaZMmSGRcXF5MzZ07TsWPH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s6ts2bKRrmOz2cKskzZtWsvrAgAAAIDQon3k6uDBg5o8ebIcHBzk6OiogIAAZcuWTUOGDFHz5s1Vv379mKhTkvT48WPNmTNH3bp1e+7RqHv37snb21vBwcF688039e233ypfvnyRLh8QEKCAgAD7fX9//5eutUiP2S+9DSQc+4Y2i+sSAAAAEMeifeTK2dlZDg5PV0uTJo3Onz8vSXJ3d9eFCxesre4Zy5Yt0507d9SiRYtIl8mdO7emT5+u5cuXa86cOQoODlbJkiV18eLFSNcZPHiw3N3d7bdMmTLFQPUAAAAAXmXRDleFCxfWnj17JElly5ZV3759NXfuXHXp0kX58+e3vMDQpk2bpmrVqsnLyyvSZUqUKKFmzZrJx8dHZcuW1ZIlS+Tp6anJkydHuo6vr6/8/Pzst5gOiQAAAABePdEOV99++63Sp08vSfrmm2+UIkUKffbZZ7p+/fpzA8zLOnfunNavX682bdpEaz1nZ2cVLlxYp06dinQZV1dXubm5hbkBAAAAQHRE+5yrt956y/7/NGnSaM2aNZYWFJkZM2YoTZo0qlGjRrTWCwoK0l9//aXq1avHUGUAAAAA8AJHripUqKA7d+6Em+7v768KFSpYUVM4wcHBmjFjhpo3by4np7B5sFmzZvL19bXfHzhwoNauXat//vlH+/fv14cffqhz585F+4gXAAAAAERHtI9cbd68OdyFgyXp0aNH2rZtmyVFPWv9+vU6f/68WrVqFW7e+fPn7QNsSNLt27fVtm1bXblyRSlSpFCRIkW0Y8cO5c2bN0ZqAwAAAAApGuHqzz//tP//6NGjunLliv1+UFCQ1qxZowwZMlhb3f979913ZYyJcN7mzZvD3B85cqRGjhwZI3UAAAAAQGSiHK58fHxks9lks9ki7P6XOHFijR071tLiAAAAACChiHK4OnPmjIwxypYtm/744w95enra57m4uChNmjRydHSMkSIBAAAAIL6Lcrjy9vaW9HRwCQAAAABAWNEe0EKSTp8+rVGjRunYsWOSpLx586pz587Knj27pcUBAAAAQEIR7aHYf/vtN+XNm1d//PGHChYsqIIFC2r37t3Kly+f1q1bFxM1AgAAAEC8F+0jV71791bXrl313XffhZveq1cvVa5c2bLiAAAAACChiPaRq2PHjql169bhprdq1UpHjx61pCgAAAAASGii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bDblypVLKVKkiMvyXyt86iNGuLq66tKlSzp79qxSp04t8/QoqWw2mzZs2CAPDw8VL15c+fLlk/T0RwgX08SLoK0hNnh4eKhq1apKmjSpZs2apfr166t169aSpCxZsujChQsKDg5WqlSp7OvQzvAyQkJR79699eOPP6pBgwZKnjy5evXqpevXr2vQoEHKly+fvvrqKzk6OqpUqVI6dOiQChQoIOl/O5nw6rDZbFq8eLE++OADLVmyRAsWLNCRI0f03nvvqW3btnry5IlmzZqlBg0aqGLFinFd7muLdx1eSuihiUPz9vZW8eLFNWLECP3555+y2Wz2IwlDhgzRypUrwyzPjxD8F9oa4lry5MklSbdu3dL9+/ftF6f28/PT8OHDNW7cONlsNvseZuBlzZs3T4sXL9bPP/+s0aNH66233lJQUJC+/fZbffbZZ5KkfPnyqXv37urbt6/y5s1rX5cj868Wm82mpUuXqlGjRpo2bZrq1q2re/fu6dKlS5KetoNu3bqpcePGKlu2rNauXRvHFb++bIZvAbyg0N0Nfv31V927d08BAQH68MMPJUkzZ87UDz/8oMSJE6tp06ZydHTUjz/+qGvXrmnfvn10l0GU0dYQn/To0UO//fabcuTIocuXL8vPz09//fWXHB0d6YYFywQFBWny5Ml69OiRunXrpl9++UUffvihBg0apMSJE6tNmzby9fXVN998E2a9wMBAPvNeUb/++qtu375t7xLYqVMn3blzR7Nnz7Yvs2rVKu3bt0/vv/++cufOHVelvtYIV3ghId2upKcXy5w3b55SpEih69evq0CBAvrxxx+VOnVqLV++XMuXL9eiRYuUP39+pU+fXgsWLLBfTJOjCPgvtDXEF6Hb4hdffKGrV6/KwcFBEydOlJOTE+0MLyV0+wrh7++v69evK1myZKpSpYqaNm2qHj166PDhwypbtqxu376tb7/9Vr17946jqhEXQtrKt99+qxUrVuj333+Xo6OjBg4cqNWrV2vVqlVKnTp1XJf5+orV4TPwyhk6dKhJly6d2bNnjzHGmClTphibzWbKlStnv/aLMU8v7nr37l37KDeMoIXooq0hPojsWkG0M7yMZy+G/mw727Vrl8mdO7c5e/asMcaYU6dOmVatWplNmzZx/arXUMj327hx40zu3LmNMcb079/fODk52a/1iLhD3wVES1BQ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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
"# Calculate total borrowed capital per token\n",
"borrowed_capital = calculate_capital(debt_df, 'Debt (USD)')\n",
- "plot_capital(borrowed_capital, 'Total Borrowed Capital Across Protocols')"
+ "plot_capital(borrowed_capital, 'Total Borrowed Capital Across Protocols (Logirathmic Scaling is used)')"
]
},
{
@@ -423,16 +813,15 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 18,
"id": "74401d69-fff8-4c41-a5ce-6f7e4b1800c5",
"metadata": {},
"outputs": [],
"source": [
- "import re\n",
"# List of tokens\n",
- "tokens = [\"ETH\", \"wBTC\", \"USDC\", \"DAI\", \"USDT\", \"wstETH\", \"LORDS\", \"STRK\", \"UNO\", \"ZEND\"]\n",
+ "tokens = [\"ETH\", \"WBTC\", \"USDC\", \"DAI\", \"USDT\", \"wstETH\", \"LORDS\", \"STRK\"]\n",
"\n",
- "def parse_token_amounts(column, protocol_column, tokens):\n",
+ "def parse_token_amounts(column: pd.Series, protocol_column: pd.Series, tokens: list) -> defaultdict:\n",
" token_amounts = defaultdict(lambda: defaultdict(float))\n",
" for entry, protocol in zip(column, protocol_column):\n",
" for token in tokens:\n",
@@ -442,16 +831,74 @@
" return token_amounts\n",
"\n",
"# Extract token amounts for collateral and debt\n",
- "collateral_amounts = parse_token_amounts(df_loans['Collateral'], df_loans['Protocol'], tokens)\n",
- "debt_amounts = parse_token_amounts(df_loans['Debt'], df_loans['Protocol'], tokens)"
+ "collateral_amounts = parse_token_amounts(loans['Collateral'], loans['Protocol'], tokens)\n",
+ "debt_amounts = parse_token_amounts(loans['Debt'], loans['Protocol'], tokens)"
]
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 19,
"id": "7ac76044-ee76-4807-b497-ad1541ec45a2",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Protocol Token Total Collateral (USD)\n",
+ "0 zklend USDC 6.481915e+06\n",
+ "1 zklend USDT 3.356178e+06\n",
+ "2 zklend STRK 1.239352e+07\n",
+ "3 zklend ETH 4.235030e+03\n",
+ "4 zklend DAI 7.715796e+04\n",
+ "5 zklend wstETH 5.272330e+01\n",
+ "6 nostra_alpha USDC 4.002109e+04\n",
+ "7 nostra_alpha ETH 3.202590e+01\n",
+ "8 nostra_alpha USDT 3.019192e+04\n",
+ "9 nostra_mainnet ETH 1.928400e+04\n",
+ "10 nostra_mainnet USDC 1.720035e+07\n",
+ "11 nostra_mainnet DAI 7.468461e+04\n",
+ "12 nostra_mainnet USDT 1.256802e+07\n",
+ "13 nostra_mainnet wstETH 5.437920e+01\n",
+ "14 nostra_mainnet STRK 5.948398e+07\n",
+ "15 nostra_mainnet LORDS 1.882704e+06\n",
+ "16 hashstack_v0 USDC 1.130584e+03\n",
+ "17 hashstack_v0 ETH 6.064000e-01\n",
+ "18 hashstack_v0 USDT 2.268058e+02\n",
+ "19 hashstack_v0 DAI 9.689930e+01\n",
+ "20 hashstack_v1 USDT 2.316824e+04\n",
+ "21 hashstack_v1 USDC 4.014684e+04\n",
+ "22 hashstack_v1 DAI 5.764160e+02\n",
+ "23 hashstack_v1 ETH 1.978970e+01\n",
+ " Protocol Token Total Debt (USD)\n",
+ "0 zklend ETH 1.299392e+03\n",
+ "1 zklend USDC 4.787483e+06\n",
+ "2 zklend USDT 2.116141e+06\n",
+ "3 zklend wstETH 2.938450e+01\n",
+ "4 zklend DAI 6.299988e+04\n",
+ "5 zklend STRK 1.945519e+06\n",
+ "6 nostra_alpha USDT 4.961984e+03\n",
+ "7 nostra_alpha USDC 8.623691e+03\n",
+ "8 nostra_alpha ETH 3.410900e+00\n",
+ "9 nostra_alpha DAI 1.949320e+03\n",
+ "10 nostra_mainnet USDT 6.838741e+06\n",
+ "11 nostra_mainnet ETH 6.265038e+03\n",
+ "12 nostra_mainnet USDC 9.499169e+06\n",
+ "13 nostra_mainnet STRK 6.207267e+06\n",
+ "14 nostra_mainnet wstETH 3.458160e+01\n",
+ "15 nostra_mainnet LORDS 4.322130e+04\n",
+ "16 nostra_mainnet DAI 5.101548e+04\n",
+ "17 hashstack_v0 ETH 1.989000e-01\n",
+ "18 hashstack_v0 USDT 1.257607e+02\n",
+ "19 hashstack_v0 USDC 8.258461e+02\n",
+ "20 hashstack_v0 DAI 1.601284e+02\n",
+ "21 hashstack_v1 USDT 3.371473e+04\n",
+ "22 hashstack_v1 ETH 1.637170e+01\n",
+ "23 hashstack_v1 USDC 5.081960e+04\n",
+ "24 hashstack_v1 DAI 6.368208e+02\n"
+ ]
+ }
+ ],
"source": [
"# agregating the data\n",
"# Convert the aggregated data to DataFrame for better readability\n",
@@ -459,17 +906,584 @@
"collateral_df = pd.DataFrame(collateral_list, columns=['Protocol', 'Token', 'Total Collateral (USD)'])\n",
"\n",
"debt_list = [(protocol, token, amount) for protocol, tokens in debt_amounts.items() for token, amount in tokens.items()]\n",
- "debt_df = pd.DataFrame(debt_list, columns=['Protocol', 'Token', 'Total Debt (USD)'])"
+ "debt_df = pd.DataFrame(debt_list, columns=['Protocol', 'Token', 'Total Debt (USD)'])\n",
+ "print(collateral_df, debt_df, sep='\\n')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b88d6fad-fb16-4514-9137-946cd2a5c443",
+ "metadata": {},
+ "source": [
+ "#### Coverting to USD denominater"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 20,
+ "id": "48b48551-98a3-455f-a9cd-55f8257b5a17",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Protocol | \n",
+ " Token | \n",
+ " Total Collateral (USD) | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " zklend | \n",
+ " USDC | \n",
+ " 6.514385e+06 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " zklend | \n",
+ " USDT | \n",
+ " 3.374467e+06 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " zklend | \n",
+ " STRK | \n",
+ " 5.308083e+06 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " zklend | \n",
+ " ETH | \n",
+ " 1.293421e+07 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " zklend | \n",
+ " DAI | \n",
+ " 7.713844e+04 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " zklend | \n",
+ " wstETH | \n",
+ " 5.272330e+01 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " nostra_alpha | \n",
+ " USDC | \n",
+ " 4.022157e+04 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " nostra_alpha | \n",
+ " ETH | \n",
+ " 9.781030e+04 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " nostra_alpha | \n",
+ " USDT | \n",
+ " 3.035645e+04 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " nostra_mainnet | \n",
+ " ETH | \n",
+ " 5.889526e+07 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " nostra_mainnet | \n",
+ " USDC | \n",
+ " 1.728651e+07 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " nostra_mainnet | \n",
+ " DAI | \n",
+ " 7.466571e+04 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " nostra_mainnet | \n",
+ " USDT | \n",
+ " 1.263651e+07 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " nostra_mainnet | \n",
+ " wstETH | \n",
+ " 5.437920e+01 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " nostra_mainnet | \n",
+ " STRK | \n",
+ " 2.547670e+07 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " nostra_mainnet | \n",
+ " LORDS | \n",
+ " 9.348570e+04 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " hashstack_v0 | \n",
+ " USDC | \n",
+ " 1.136247e+03 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " hashstack_v0 | \n",
+ " ETH | \n",
+ " 1.852006e+03 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " hashstack_v0 | \n",
+ " USDT | \n",
+ " 2.280418e+02 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " hashstack_v0 | \n",
+ " DAI | \n",
+ " 9.687478e+01 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " hashstack_v1 | \n",
+ " USDT | \n",
+ " 2.329449e+04 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " hashstack_v1 | \n",
+ " USDC | \n",
+ " 4.034794e+04 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " hashstack_v1 | \n",
+ " DAI | \n",
+ " 5.762702e+02 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " hashstack_v1 | \n",
+ " ETH | \n",
+ " 6.043972e+04 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Protocol Token Total Collateral (USD)\n",
+ "0 zklend USDC 6.514385e+06\n",
+ "1 zklend USDT 3.374467e+06\n",
+ "2 zklend STRK 5.308083e+06\n",
+ "3 zklend ETH 1.293421e+07\n",
+ "4 zklend DAI 7.713844e+04\n",
+ "5 zklend wstETH 5.272330e+01\n",
+ "6 nostra_alpha USDC 4.022157e+04\n",
+ "7 nostra_alpha ETH 9.781030e+04\n",
+ "8 nostra_alpha USDT 3.035645e+04\n",
+ "9 nostra_mainnet ETH 5.889526e+07\n",
+ "10 nostra_mainnet USDC 1.728651e+07\n",
+ "11 nostra_mainnet DAI 7.466571e+04\n",
+ "12 nostra_mainnet USDT 1.263651e+07\n",
+ "13 nostra_mainnet wstETH 5.437920e+01\n",
+ "14 nostra_mainnet STRK 2.547670e+07\n",
+ "15 nostra_mainnet LORDS 9.348570e+04\n",
+ "16 hashstack_v0 USDC 1.136247e+03\n",
+ "17 hashstack_v0 ETH 1.852006e+03\n",
+ "18 hashstack_v0 USDT 2.280418e+02\n",
+ "19 hashstack_v0 DAI 9.687478e+01\n",
+ "20 hashstack_v1 USDT 2.329449e+04\n",
+ "21 hashstack_v1 USDC 4.034794e+04\n",
+ "22 hashstack_v1 DAI 5.762702e+02\n",
+ "23 hashstack_v1 ETH 6.043972e+04"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "for token in tokens:\n",
+ " if token == 'wstETH':\n",
+ " tokens.remove(token)\n",
+ " tokens.append('wrapped-steth'.upper())\n",
+ "#print(token_ids)\n",
+ "\n",
+ "# Total Collateral (USD)\n",
+ "for token in tokens:\n",
+ " val = collateral_df[collateral_df['Token'] == token].loc[:, 'Total Collateral (USD)'] * prices[token]\n",
+ " collateral_df.loc[collateral_df['Token'] == token, 'Total Collateral (USD)'] = val\n",
+ "collateral_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "1dde9c83-bafc-4119-9a30-47edf2c816e5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Protocol | \n",
+ " Token | \n",
+ " Total Debt (USD) | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " zklend | \n",
+ " ETH | \n",
+ " 3.968472e+06 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " zklend | \n",
+ " USDC | \n",
+ " 4.811465e+06 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " zklend | \n",
+ " USDT | \n",
+ " 2.127673e+06 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " zklend | \n",
+ " wstETH | \n",
+ " 2.938450e+01 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " zklend | \n",
+ " DAI | \n",
+ " 6.298394e+04 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " zklend | \n",
+ " STRK | \n",
+ " 8.332561e+05 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " nostra_alpha | \n",
+ " USDT | \n",
+ " 4.989024e+03 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " nostra_alpha | \n",
+ " USDC | \n",
+ " 8.666890e+03 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " nostra_alpha | \n",
+ " ETH | \n",
+ " 1.041723e+04 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " nostra_alpha | \n",
+ " DAI | \n",
+ " 1.948826e+03 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " nostra_mainnet | \n",
+ " USDT | \n",
+ " 6.876009e+06 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " nostra_mainnet | \n",
+ " ETH | \n",
+ " 1.913405e+07 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " nostra_mainnet | \n",
+ " USDC | \n",
+ " 9.546754e+06 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " nostra_mainnet | \n",
+ " STRK | \n",
+ " 2.658542e+06 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " nostra_mainnet | \n",
+ " wstETH | \n",
+ " 3.458160e+01 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " nostra_mainnet | \n",
+ " LORDS | \n",
+ " 2.146155e+03 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " nostra_mainnet | \n",
+ " DAI | \n",
+ " 5.100257e+04 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " hashstack_v0 | \n",
+ " ETH | \n",
+ " 6.074605e+02 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " hashstack_v0 | \n",
+ " USDT | \n",
+ " 1.264460e+02 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " hashstack_v0 | \n",
+ " USDC | \n",
+ " 8.299830e+02 | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " hashstack_v0 | \n",
+ " DAI | \n",
+ " 1.600879e+02 | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " hashstack_v1 | \n",
+ " USDT | \n",
+ " 3.389846e+04 | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " hashstack_v1 | \n",
+ " ETH | \n",
+ " 5.000081e+04 | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " hashstack_v1 | \n",
+ " USDC | \n",
+ " 5.107417e+04 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " hashstack_v1 | \n",
+ " DAI | \n",
+ " 6.366597e+02 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Protocol Token Total Debt (USD)\n",
+ "0 zklend ETH 3.968472e+06\n",
+ "1 zklend USDC 4.811465e+06\n",
+ "2 zklend USDT 2.127673e+06\n",
+ "3 zklend wstETH 2.938450e+01\n",
+ "4 zklend DAI 6.298394e+04\n",
+ "5 zklend STRK 8.332561e+05\n",
+ "6 nostra_alpha USDT 4.989024e+03\n",
+ "7 nostra_alpha USDC 8.666890e+03\n",
+ "8 nostra_alpha ETH 1.041723e+04\n",
+ "9 nostra_alpha DAI 1.948826e+03\n",
+ "10 nostra_mainnet USDT 6.876009e+06\n",
+ "11 nostra_mainnet ETH 1.913405e+07\n",
+ "12 nostra_mainnet USDC 9.546754e+06\n",
+ "13 nostra_mainnet STRK 2.658542e+06\n",
+ "14 nostra_mainnet wstETH 3.458160e+01\n",
+ "15 nostra_mainnet LORDS 2.146155e+03\n",
+ "16 nostra_mainnet DAI 5.100257e+04\n",
+ "17 hashstack_v0 ETH 6.074605e+02\n",
+ "18 hashstack_v0 USDT 1.264460e+02\n",
+ "19 hashstack_v0 USDC 8.299830e+02\n",
+ "20 hashstack_v0 DAI 1.600879e+02\n",
+ "21 hashstack_v1 USDT 3.389846e+04\n",
+ "22 hashstack_v1 ETH 5.000081e+04\n",
+ "23 hashstack_v1 USDC 5.107417e+04\n",
+ "24 hashstack_v1 DAI 6.366597e+02"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Total Debt (USD)\n",
+ "for token in tokens:\n",
+ " val = debt_df[debt_df['Token'] == token].loc[:, 'Total Debt (USD)'] * prices[token]\n",
+ " debt_df.loc[debt_df['Token'] == token, 'Total Debt (USD)'] = val\n",
+ "debt_df"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "bdc71978-7b1c-421d-837a-96f61e54a051",
+ "metadata": {},
+ "source": [
+ "### Collateral data per protocol per token USD Equivalent"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
"id": "521fbd91-b7d6-4cfd-99aa-a203e63f3daa",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Protocol Token \n",
+ "hashstack_v0 DAI 9.687478e+01\n",
+ " ETH 1.852006e+03\n",
+ " USDC 1.136247e+03\n",
+ " USDT 2.280418e+02\n",
+ "hashstack_v1 DAI 5.762702e+02\n",
+ " ETH 6.043972e+04\n",
+ " USDC 4.034794e+04\n",
+ " USDT 2.329449e+04\n",
+ "nostra_alpha ETH 9.781030e+04\n",
+ " USDC 4.022157e+04\n",
+ " USDT 3.035645e+04\n",
+ "nostra_mainnet DAI 7.466571e+04\n",
+ " ETH 5.889526e+07\n",
+ " LORDS 9.348570e+04\n",
+ " STRK 2.547670e+07\n",
+ " USDC 1.728651e+07\n",
+ " USDT 1.263651e+07\n",
+ " wstETH 5.437920e+01\n",
+ "zklend DAI 7.713844e+04\n",
+ " ETH 1.293421e+07\n",
+ " STRK 5.308083e+06\n",
+ " USDC 6.514385e+06\n",
+ " USDT 3.374467e+06\n",
+ " wstETH 5.272330e+01\n",
+ "Name: Total Collateral (USD), dtype: float64"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "collateral_df.groupby(['Protocol','Token'])['Total Collateral (USD)'].sum()"
+ "collateral_per_protocol_token = collateral_df.groupby(['Protocol','Token'])['Total Collateral (USD)'].sum()\n",
+ "collateral_per_protocol_token"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "11ddb189-eef7-492a-b0eb-f54f295ab3ff",
+ "metadata": {},
+ "source": [
+ "### Debt data per protocol per token USD Equivalent"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "bab1ec7c-8181-45e8-bbd6-f81f49920962",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Protocol Token \n",
+ "hashstack_v0 DAI 1.600879e+02\n",
+ " ETH 6.074605e+02\n",
+ " USDC 8.299830e+02\n",
+ " USDT 1.264460e+02\n",
+ "hashstack_v1 DAI 6.366597e+02\n",
+ " ETH 5.000081e+04\n",
+ " USDC 5.107417e+04\n",
+ " USDT 3.389846e+04\n",
+ "nostra_alpha DAI 1.948826e+03\n",
+ " ETH 1.041723e+04\n",
+ " USDC 8.666890e+03\n",
+ " USDT 4.989024e+03\n",
+ "nostra_mainnet DAI 5.100257e+04\n",
+ " ETH 1.913405e+07\n",
+ " LORDS 2.146155e+03\n",
+ " STRK 2.658542e+06\n",
+ " USDC 9.546754e+06\n",
+ " USDT 6.876009e+06\n",
+ " wstETH 3.458160e+01\n",
+ "zklend DAI 6.298394e+04\n",
+ " ETH 3.968472e+06\n",
+ " STRK 8.332561e+05\n",
+ " USDC 4.811465e+06\n",
+ " USDT 2.127673e+06\n",
+ " wstETH 2.938450e+01\n",
+ "Name: Total Debt (USD), dtype: float64"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "debt_per_protocol_token = debt_df.groupby(['Protocol','Token'])['Total Debt (USD)'].sum()\n",
+ "debt_per_protocol_token"
]
},
{
@@ -482,17 +1496,90 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 24,
"id": "d654007a-8ef0-4c33-ab35-50f65b030cfd",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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Fi5cqPr160uS6tWrp7CwMA0dOlQxMTHKkyePGjdurOHDhyfr68svv9SXX34pd3d3ZcuWTRUqVNB3332nl156yRGbZjcWwzAMRxdhq+joaPn5+SkqKirZryMAADzJtlUPtXufodu32b1PAMAdt27dUkREhEJCQuTp6enocqD7vyfpyaGcww0AAAAAgAkI3AAAAAAAmIDADQAAAACACQjcAAAAAACYgMANAAAAAIAJCNwAAAAAAJiAwA0AAAAAgAkI3AAAAAAAmIDADQAAAACACdwcXQAAAAAAIKXnpz//SNe34+0dj3R9TwJGuAEAAAAANrl48aK6d++uAgUKyMPDQ4GBgapXr57Gjh0ri8Vy38fWrVs1d+5c63MXFxflzp1brVu31pkzZ5Ktp0aNGurTp0+ytmnTpsnDw0PffvvtI9zi9GGEGwAAAABgkxYtWuj27dsKCwtTwYIFdeHCBW3atEmlSpVSZGSkdb7evXsrOjpac+bMsbZlzZpVp06dkq+vr44dOybDMBQREaG33npLL7/8snbt2nXP9Y4YMUITJ07U8uXLVb9+fVO38WEQuAEAAAAA6Xb16lX9+OOP2rp1q0JDQyVJQUFBevbZZ1PMmzlzZsXGxiowMDDFNIvFYm3PnTu3OnfurF69eik6Olq+vr7J5jUMQ7169dLXX3+tDRs2qEqVKiZsmf1wSDkAAAAAIN28vb3l7e2tZcuWKTY21i59/vPPP1q6dKlcXV3l6uqabFp8fLzatm2rRYsWadu2bRk+bEuMcAMAAAAAbODm5qa5c+eqS5cumjlzpp5++mmFhobqlVdeUdmyZdPcT1RUlLy9vWUYhmJiYiRJvXr1kpeXV7L5vvzyS0nSwYMHVbx4cfttiIkY4QYAAAAA2KRFixb6+++/tWLFCtWvX19bt27V008/rblz56a5Dx8fHx04cEC//vqrJk2apKefflpjx45NMV/VqlXl7e2t9957T/Hx8XbcCvMQuAEAAAAANvP09FTdunX13nvvaefOnerQoYNGjBiR5uVdXFxUuHBhlShRQv369VPlypXVvXv3FPOVKVNGmzZt0pYtW9S6dWunCN0EbgAAAACA3ZQsWVI3btywefnBgwfru+++0759+1JMK1++vDZt2qTt27erVatWiouLe5hSTUfgBgAAAACk26VLl1SrVi19/fXX+u233xQREaGF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Ly8vRUVFqUmTJnr77bfVp08fLViwQF26dFHevHk1bdo01a9f39GlAg/l7lGPYcOGaeHChUpMTFRcXJyaN2+uAQMGyMXFRZ9++qkWLFig559/Xv/++69+//13/fnnn4x4I0OLj4/X9evX1apVK7m7u2vatGkqVKiQ9XoEO3bsUIsWLbR27VqVL1/e0eUCNknan+/+e//gwYP6+OOP9fPPP2vs2LF68cUXVatWLQ0cOFCNGjVycMUZCyPcsFnSH1GbNm3SoEGD1K9fP4WHh0uS3nrrLfn5+alXr15atWqVDh48qDFjxmjr1q166aWXCNt4YiQkJKTaXrBgQeXNm1c//vijcufOrc6dO0u6c9hWaGioOnfurBdeeOFRlgqYIilsT548WV999ZU+//xz/fHHH6pVq5bmzZun06dPKzAwUD169FD//v117tw5+fr66o8//pCrqytX9EeGNWfOHDVq1Ej+/v7q3LmzoqOj1b9/fx07dsx68b98+fLJ39+f26PCac2dO1cNGjRQfHy8XF1drUd3lCtXTr169dLzzz+voUOHqnjx4jp58iR/u6SCwA2bWSwWrV+/XvXq1dOpU6f0zTffqHXr1goLC1PVqlX17rvvqnjx4mratKlatmypr7/+Wt9//738/f0dXTpgur///luSrL8Ef/zxx+rRo4c6d+6syMhI6x9jhmHo33//1a+//qq4uDh98803eu6556yjfvcK7ICzMAxD8fHx+vHHHzVkyBDVrFlTK1eu1JIlSzR27Fg999xzio2NVa5cudS9e3dt3LhR//vf/5QpUybFx8dbD0UHMhLDMBQXF6dLly4pMjJSrVu3VocOHXTjxg01bNhQ8+bN0/fff69u3brJz8/PerQf4EwMw9Dt27cVFRWlv/76y9p2d+h+9dVXderUKeXIkUOnTp2yfnfj/3BIOdItaWT7n3/+0ahRo1SuXDl17dpV0p1DyY8ePaqePXuqXbt2cnNz07Fjx2QYhgICApQrVy4HVw+Yb8iQIZo5c6Z27dqlokWLauTIkZo2bZoaNGigX3/9VTdv3tQ333yj6tWra+/everfv7/+/PNPubm5ycvLS/v27VOmTJm4AAkeC4mJibp9+7Zq166tTz/9VNeuXVPDhg01ceJEvfnmm4qNjdUXX3yhihUrqnLlytZ9nv0fGUlq+2NUVJTKlSunxo0b65NPPpEk/fLLL/rmm2/03XffKTg4WDly5NCyZcuUKVMmrsCPDO9++3nTpk01bdq0ZNOuXr2qli1bKjIyUgcPHpSbmxu3d0wFPxsj3SwWi3bv3q3mzZtr165dKlKkiHVaWFiYSpQooenTp2vOnDm6fv26ihUrpuLFixO28cTo37+/SpYsqaZNm+rw4cM6c+aM1q9fr//97386evSonn76ab388svaunWrKlSooKlTp2rixIkaOHCg9u/fb/11mLABZ/TfQ8BdXFzk6empoKAgNW/eXA0aNNCnn36qN998U9KdP+YWL16s3377Ldk+z/6PjCS1/dHPz08fffSRtmzZop9//lmSVLlyZU2fPl2HDh3Sli1btGrVKut3OmEbGd399vONGzdq9+7dyab99ddfypYtmw4cOEDYvg8CN2xSvHhxWSwW7du3TwcOHLAeWpIpUybNmzdPZcuW1fjx461XLgSeJNmzZ9eqVavk6+urBg0a6ODBg/L29pZ0J3wsX75czz33nFq1aqVt27apfPnyatWqlbp162a9KAn/YcEZ3X018t9++01HjhxRVFSUpDv3nc+ZM6cKFiyodu3ayTAMXblyRR06dFB8fLzeeOMNR5YOPNC4ceP06quvavXq1da2cuXKyd3dXXv27JEk66G0OXPmlJeXlywWixITE/lOh9O4337+yy+/SPq/H1ZLly6t7777zvqjEvt56gjcSJP/nnng6+urNWvWqFatWpo/f75WrlxpPdfU1dVVX331lerWravQ0FBHlAs4XEBAgH744QeVKVNG+/fv18WLFyX9339Sy5YtU9WqVVWzZk3t378/2bKMgsBZJYXtgQMHqnnz5nrqqafUrVs3/fDDD9YL7MTFxSlfvnwKDQ1V/fr1deHCBW3ZskWurq5cswAZWvny5XX69GmNHDlSVatW1c6dO1W0aFH16dNHw4cP15kzZ6yB4+6RQq5DAGeSlv086fZ3dyNs3xvncOOBks7n2L17t37++WfdunVL5cuXV7169XTt2jW9+OKLunnzpoYOHapGjRoRFvBEuntk725XrlxRw4YNdfnyZa1YsULFihVLdo7U4MGDNXbsWD43cGp37/9r1qxR7969NWPGDF26dEmzZs1SQkKC+vTpoxdffFHnzp3T7Nmz5erqqty5c6tdu3ZydXVldARO4caNGzp48KA++OADHT9+XPny5VPLli31zTffqEmTJurfvz/f53B67Of2ReBGmixevFhvvfWWnnrqKfn5+WnhwoUaO3ashgwZYg3dcXFx6t27t5o3b86HEE+Uu8PGypUrde7cOQUHB6tw4cIqXLiwoqKiVLduXUVHR2v58uUpQrckLqaDx8L69eu1YsUKFSxYUP369ZN059DyESNG6OrVq3rrrbf08ssvp1iO/R/O4L8/rK5cuVLbtm3Tp59+qtjYWHXs2FFfffWVAysEHh77uf0RuJGqu8NAeHi46tatq3fffVfdu3fX2bNnFRISon79+mn8+PFydXVVdHS0qlevrhw5cmjp0qXW81WBJ8mgQYP02WefqWDBgjpz5ozKlCmjTp06qUOHDoqKilK9evV0/fp1fffddypVqpSjywXs6tSpU2rUqJEiIiLUrVs3TZ482TotKXTfuHFDr7zyijp16uTASoGH899Asn//fq1bt07vvPMOR2ngscF+bj+cVIJkVq5cKUnWi3xI0sWLF1W8eHF1795dERERqlKlirp06aIPP/xQrq6uOnr0qHx9ffXTTz9p1qxZhG08Me4+33TPnj3auHGj1q1bp4MHD2rDhg0qVqyYpk+frm+//VZ+fn764YcfdOvWLY0dO9aBVQP28d/f64ODgzVz5kw99dRT2r59uzZs2GCdVrZsWb3//vu6deuWDhw48IgrBdLmv/v0vcak7g4hhmHoqaee0uDBg61XaQYyMvbzR4/ADauTJ0+qadOmatu2raT/+6DdvHlT//zzj3bv3q2aNWuqYcOG1vtN/vTTTxo1apROnz4tb29vBQUFOax+4FEJDw+X9H8XN5swYYJmzpypEiVKqHLlypKkihUrqk+fPgoJCdGyZcsUFxengIAA7d+/X/Pnz3dY7YA9JCYmWo+COn/+vGJiYpSQkKBq1appzJgx8vDw0MyZM7V582brMmXKlNGcOXM0depUB1UNpC4pcCTt03/++Wey5/fz33kY+UNGxX7uOARuWIWEhGjFihVau3at2rdvb20vXLiwcuTIoRdeeEHVqlXT559/bg0ay5cvV1RUlHx8fBxVNvBI9e3bVx06dND27dutbdeuXdOcOXO0c+dOnTt3ztpeqlQptWjRQosXL9bZs2clST4+PlyNGU4v6QfZUaNGqU6dOqpdu7beeecd3bx5UzVr1tSoUaN0/vx5ffrpp9qyZYt1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",
+ "text/plain": [
+ "