From ba1ba1ba15d5f165ef4f70d28b90f9d54bfaecfd Mon Sep 17 00:00:00 2001
From: jalbrekt85 <jcalbrecht85@gmail.com>
Date: Wed, 27 Nov 2024 19:07:34 -0600
Subject: [PATCH 1/8] parse csv and generate msg hash in review_votes.py

---
 .../aura_snapshot_voting/review_votes.py      | 16 +++++-
 tools/python/aura_snapshot_voting/vote.py     | 54 ++++++++++++-------
 2 files changed, 49 insertions(+), 21 deletions(-)

diff --git a/tools/python/aura_snapshot_voting/review_votes.py b/tools/python/aura_snapshot_voting/review_votes.py
index f8b830523..1ae5c87bf 100644
--- a/tools/python/aura_snapshot_voting/review_votes.py
+++ b/tools/python/aura_snapshot_voting/review_votes.py
@@ -5,6 +5,7 @@
 from pathlib import Path
 from bal_addresses.utils import to_checksum_address
 import requests
+from vote import prepare_vote_data, create_vote_payload, hash_eip712_message, _get_prop_and_determine_date_range
 
 
 def find_project_root(current_path=None):
@@ -55,6 +56,17 @@ def review_votes(week_string):
     total_allocation = vote_df["Allocation %"].str.rstrip("%").astype(float).sum()
     allocation_check = abs(total_allocation - 100) < 0.0001
 
+    try:
+        prop, _, _ = _get_prop_and_determine_date_range()
+        vote_df, vote_choices = prepare_vote_data(vote_df, prop)
+        data = create_vote_payload(vote_choices, prop)
+        hash = hash_eip712_message(data)
+        vote_prep = f"\n### Vote Preparation\n✅ Successfully simulated vote preparation.\nMessage hash: `0x{hash.hex()}`"
+        vote_check = True
+    except Exception as e:
+        vote_prep = f"\n### Vote Preparation\n❌ Error simulating vote preparation: {str(e)}"
+        vote_check = False
+
     report = f"""## vLAURA Votes Review
 
 CSV file: `{os.path.relpath(csv_file, project_root)}`
@@ -68,11 +80,13 @@ def review_votes(week_string):
 {f"- Missing labels for {len(missing_labels)} gauge(s):" if not snapshot_label_check else ""}
 {missing_labels[["Chain", "Label", "Gauge Address"]].to_string(index=False) if not snapshot_label_check else ""}
 
+{vote_prep}
+
 ### Vote Summary
 
 {vote_df[["Chain", "Label", "Gauge Address", "Allocation %"]].to_markdown(index=False)}
 
-{"### ✅ All checks passed" if (allocation_check and snapshot_label_check) else "### ❌ Some checks failed"}
+{"### ✅ All checks passed!" if (allocation_check and snapshot_label_check and vote_check) else "### ❌ Some checks failed - please review the issues above"}
     """
 
     with open("review_output.md", "w") as f:
diff --git a/tools/python/aura_snapshot_voting/vote.py b/tools/python/aura_snapshot_voting/vote.py
index 76a3d9f6f..fbd78d44d 100644
--- a/tools/python/aura_snapshot_voting/vote.py
+++ b/tools/python/aura_snapshot_voting/vote.py
@@ -116,26 +116,8 @@ def create_voting_dirs_for_year(base_path, year, week):
             f.write("")
 
 
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser(description="Vote processing script")
-    parser.add_argument(
-        "--week-string",
-        type=str,
-        help="Date that votes are are being posted. should be YYYY-W##",
-    )
-    year, week = parser.parse_args().week_string.split("-")
-
-    project_root = find_project_root()
-    base_path = project_root / "MaxiOps/vlaura_voting"
-    voting_dir = base_path / str(year) / str(week)
-    input_dir = voting_dir / "input"
-    output_dir = voting_dir / "output"
-
-    create_voting_dirs_for_year(base_path, year, week)
-
-    vote_df = pd.read_csv(glob.glob(f"{input_dir}/*.csv")[0])
-
-    prop, _, _ = _get_prop_and_determine_date_range()
+def prepare_vote_data(vote_df, prop):
+    """Prepares and validates vote data, returning the structured payload"""
     choices = prop["choices"]
     gauge_labels = fetch_json_from_url(GAUGE_MAPPING_URL)
     gauge_labels = {to_checksum_address(x["address"]): x["label"] for x in gauge_labels}
@@ -155,7 +137,13 @@ def create_voting_dirs_for_year(base_path, year, week):
     assert vote_df["share"].sum() == approx(100, abs=0.0001)
 
     vote_choices = dict(zip(vote_df["snapshot_index"], vote_df["share"]))
+    
+    return vote_df, vote_choices
+
 
+def create_vote_payload(vote_choices, prop):
+    """Creates the EIP712 structured data payload"""
+    project_root = find_project_root()
     template_path = project_root / "tools/python/aura_snapshot_voting"
     with open(f"{template_path}/eip712_template.json", "r") as f:
         data = json.load(f)
@@ -165,6 +153,32 @@ def create_voting_dirs_for_year(base_path, year, week):
     data["message"]["proposal"] = bytes.fromhex(prop["id"][2:])
     data["message"]["choice"] = format_choices(vote_choices)
 
+    return data
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="Vote processing script")
+    parser.add_argument(
+        "--week-string",
+        type=str,
+        help="Date that votes are are being posted. should be YYYY-W##",
+    )
+    year, week = parser.parse_args().week_string.split("-")
+
+    project_root = find_project_root()
+    base_path = project_root / "MaxiOps/vlaura_voting"
+    voting_dir = base_path / str(year) / str(week)
+    input_dir = voting_dir / "input"
+    output_dir = voting_dir / "output"
+
+    create_voting_dirs_for_year(base_path, year, week)
+
+    vote_df = pd.read_csv(glob.glob(f"{input_dir}/*.csv")[0])
+
+    prop, _, _ = _get_prop_and_determine_date_range()
+
+    vote_df, vote_choices = prepare_vote_data(vote_df, prop)
+    data = create_vote_payload(vote_choices, prop)
     hash = hash_eip712_message(data)
 
     print(f"voting for: \n{vote_df[['Chain', 'snapshot_label', 'share']]}")

From ba1ba1ba10b96e05ff4bf014e79f45e87af8d8ae Mon Sep 17 00:00:00 2001
From: jalbrekt85 <jcalbrecht85@gmail.com>
Date: Wed, 27 Nov 2024 19:09:42 -0600
Subject: [PATCH 2/8] =?UTF-8?q?move=20=E2=9C=85=20to=20end=20of=20line?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tools/python/aura_snapshot_voting/review_votes.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/python/aura_snapshot_voting/review_votes.py b/tools/python/aura_snapshot_voting/review_votes.py
index 1ae5c87bf..517e8d24c 100644
--- a/tools/python/aura_snapshot_voting/review_votes.py
+++ b/tools/python/aura_snapshot_voting/review_votes.py
@@ -61,7 +61,7 @@ def review_votes(week_string):
         vote_df, vote_choices = prepare_vote_data(vote_df, prop)
         data = create_vote_payload(vote_choices, prop)
         hash = hash_eip712_message(data)
-        vote_prep = f"\n### Vote Preparation\n✅ Successfully simulated vote preparation.\nMessage hash: `0x{hash.hex()}`"
+        vote_prep = f"\n### Vote Preparation\nSuccessfully simulated vote preparation ✅\nMessage hash: `0x{hash.hex()}`"
         vote_check = True
     except Exception as e:
         vote_prep = f"\n### Vote Preparation\n❌ Error simulating vote preparation: {str(e)}"

From 5327714c9cf048930b0bd5d4c84a4fa21aee64f2 Mon Sep 17 00:00:00 2001
From: jalbrekt85 <jalbrekt85@users.noreply.github.com>
Date: Thu, 28 Nov 2024 01:12:22 +0000
Subject: [PATCH 3/8] style: ci lint with `black`

---
 tools/python/aura_snapshot_voting/review_votes.py | 11 +++++++++--
 tools/python/aura_snapshot_voting/vote.py         |  2 +-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/tools/python/aura_snapshot_voting/review_votes.py b/tools/python/aura_snapshot_voting/review_votes.py
index 517e8d24c..2b47ad70f 100644
--- a/tools/python/aura_snapshot_voting/review_votes.py
+++ b/tools/python/aura_snapshot_voting/review_votes.py
@@ -5,7 +5,12 @@
 from pathlib import Path
 from bal_addresses.utils import to_checksum_address
 import requests
-from vote import prepare_vote_data, create_vote_payload, hash_eip712_message, _get_prop_and_determine_date_range
+from vote import (
+    prepare_vote_data,
+    create_vote_payload,
+    hash_eip712_message,
+    _get_prop_and_determine_date_range,
+)
 
 
 def find_project_root(current_path=None):
@@ -64,7 +69,9 @@ def review_votes(week_string):
         vote_prep = f"\n### Vote Preparation\nSuccessfully simulated vote preparation ✅\nMessage hash: `0x{hash.hex()}`"
         vote_check = True
     except Exception as e:
-        vote_prep = f"\n### Vote Preparation\n❌ Error simulating vote preparation: {str(e)}"
+        vote_prep = (
+            f"\n### Vote Preparation\n❌ Error simulating vote preparation: {str(e)}"
+        )
         vote_check = False
 
     report = f"""## vLAURA Votes Review
diff --git a/tools/python/aura_snapshot_voting/vote.py b/tools/python/aura_snapshot_voting/vote.py
index fbd78d44d..acef5ac2b 100644
--- a/tools/python/aura_snapshot_voting/vote.py
+++ b/tools/python/aura_snapshot_voting/vote.py
@@ -137,7 +137,7 @@ def prepare_vote_data(vote_df, prop):
     assert vote_df["share"].sum() == approx(100, abs=0.0001)
 
     vote_choices = dict(zip(vote_df["snapshot_index"], vote_df["share"]))
-    
+
     return vote_df, vote_choices
 
 

From ba1ba1ba1e08b6fe3b3c595d1d2041a326d24554 Mon Sep 17 00:00:00 2001
From: jalbrekt85 <jcalbrecht85@gmail.com>
Date: Tue, 3 Dec 2024 16:24:35 -0600
Subject: [PATCH 4/8] add workflow_dispatch

---
 .../workflows/review_aura_gauge_votes.yaml    | 36 ++++++++++++-------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/review_aura_gauge_votes.yaml b/.github/workflows/review_aura_gauge_votes.yaml
index 5aac0472c..b4ef3c3f4 100644
--- a/.github/workflows/review_aura_gauge_votes.yaml
+++ b/.github/workflows/review_aura_gauge_votes.yaml
@@ -4,6 +4,11 @@ on:
   pull_request:
     paths:
       - 'MaxiOps/vlaura_voting/**/input/*.csv'
+  workflow_dispatch:
+    inputs:
+      week-string:
+        description: "The week to review like YYYY-W##"
+        required: true
 
 jobs:
   review_votes:
@@ -22,21 +27,25 @@ jobs:
     - name: Determine week-string
       id: week-string
       run: |
-        # Get the path of the changed CSV file
-        CSV_PATH=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | grep '/input/.*\.csv$' | head -n 1)
-        
-        if [ -z "$CSV_PATH" ]; then
-          echo "No CSV file found in recent changes."
-          exit 1
-        fi
+        if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
+          echo "week-string=${{ github.event.inputs.week-string }}" >> $GITHUB_OUTPUT
+        else
+          # Get the path of the changed CSV file
+          CSV_PATH=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | grep '/input/.*\.csv$' | head -n 1)
+          
+          if [ -z "$CSV_PATH" ]; then
+            echo "No CSV file found in recent changes."
+            exit 1
+          fi
 
-        echo "CSV Path: $CSV_PATH"
-        
-        YEAR=$(echo $CSV_PATH | cut -d'/' -f3)
-        WEEK=$(echo $CSV_PATH | cut -d'/' -f4)
-        WEEK_STRING="${YEAR}-${WEEK}"
+          echo "CSV Path: $CSV_PATH"
+          
+          YEAR=$(echo $CSV_PATH | cut -d'/' -f3)
+          WEEK=$(echo $CSV_PATH | cut -d'/' -f4)
+          WEEK_STRING="${YEAR}-${WEEK}"
 
-        echo "week-string=$WEEK_STRING" >> $GITHUB_OUTPUT
+          echo "week-string=$WEEK_STRING" >> $GITHUB_OUTPUT
+        fi
 
     - name: Review vLAURA Votes
       run: |
@@ -47,6 +56,7 @@ jobs:
         python3 $RUN_DIR/review_votes.py --week-string "${{ steps.week-string.outputs.week-string }}"
 
     - name: Comment PR
+      if: github.event_name == 'pull_request'
       uses: actions/github-script@v7
       with:
         github-token: ${{secrets.GITHUB_TOKEN}}

From 7201e7c47a05a081f53bc6631756a7fa67ee12b9 Mon Sep 17 00:00:00 2001
From: jalbrekt85 <jcalbrecht85@gmail.com>
Date: Tue, 3 Dec 2024 16:26:43 -0600
Subject: [PATCH 5/8] sample voting data to test

---
 ...D Vote Template - November 21 2024 (1).csv | 42 +++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 MaxiOps/vlaura_voting/2024/W50/input/BD Vote Template - November 21 2024 (1) - BD Vote Template - November 21 2024 (1).csv

diff --git a/MaxiOps/vlaura_voting/2024/W50/input/BD Vote Template - November 21 2024 (1) - BD Vote Template - November 21 2024 (1).csv b/MaxiOps/vlaura_voting/2024/W50/input/BD Vote Template - November 21 2024 (1) - BD Vote Template - November 21 2024 (1).csv
new file mode 100644
index 000000000..b3b00eaf4
--- /dev/null
+++ b/MaxiOps/vlaura_voting/2024/W50/input/BD Vote Template - November 21 2024 (1) - BD Vote Template - November 21 2024 (1).csv	
@@ -0,0 +1,42 @@
+Chain,Label,Gauge Address,Allocation %,
+Mainnet,sDAI/4Pool,0xf6a7ad46b00300344c7d4739c0518db70e722dc4,10.00%,Core Liquidity
+Mainnet,GHO/USDC/USDT,0xf720e9137baa9c7612e6ca59149a5057ab320cfa,12.50%,
+Arbitrum,sFRAX/4Pool,0x62a82fe26e21a8807599374cac8024fae342ef83,5.00%,
+Arbitrum,aUSDC/USDC,0x75ba7f8733c154302cbe2e19fe3ec417e0679833,2.00%,
+Optimsim,ECLP-waUSDC-waUSDT,0x1a8F7747cA103d229d7bDFF5f89c176b95Faf301,2.00%,
+Arbitrum,aUSDC/aUSDT,0xbb034e493ebf45f874e038ae76576df9cc1137e5,5.50%,37.00%
+Mainnet,50wstETH/ACX,0xf7b0751fea697cf1a541a5f57d11058a8fb794ee,5.95%,Revenue
+Mainnet,wstETH-wETH-BPT,0x5c0f23a5c1be65fa710d385814a7fd1bda480b1c,6.93%,35.00%
+Mainnet,B-rETH-Stable,0x79ef6103a513951a3b25743db509e267685726b7,4.54%,
+Mainnet,weETH/rETH,0xC859BF9d7B8C557bBd229565124c2C09269F3aEF,3.85%,
+Mainnet,ezETH-wETH,0xa8b309a75f0d64ed632d45a003c68a30e59a1d8b,8.04%,
+Mainnet,STG/USDC,0x15C84754c7445D0DF6c613f1490cA07654347c1B,5.69%,35%
+,,,,Biz Dev
+Mainnet,tETH/wstETH,0xf697535848B535900c76f70F1e36EC3985D27862,5.00%,
+Mainnet,cbETH/wstETH,0x655A2B240151b4fAb06dfb2B6329eF72647F89dd,5.00%,
+Mainnet,sdeUSD/deUSD,0xA00DB7d9c465e95e4AA814A9340B9A161364470a,5.00%,
+Arbitrum,GHO / USDL,0x2e8A05f0216c6cC43BC123EE7dEf58901d3844D2,4.00%,
+Base,cbETH/wstETH,0xBDc908e5dF4A95909DD8cbdD5E88C4078a85f7fC,5.00%,
+Base,wETH/USDC,0xE01347229d681C69f459176A042268Cf981DFaa4,4.00%,
+,,,,28%
+,,,,TOTAL
+,,,,100.00%
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+,,,,
+Total USDC,"$100,000",,,
+APY needed,6%,,,
+Incentives per 1m,60000,,,
+Incentives per wk,"$1,154",,,
+Incentives per 6 wks,"$4,615",,,
+Total TVL to support,22,,,
\ No newline at end of file

From 260ba05547184a2f1e4f92c891bc00b2bbb2a022 Mon Sep 17 00:00:00 2001
From: jalbrekt85 <jalbrekt85@users.noreply.github.com>
Date: Tue, 3 Dec 2024 22:28:15 +0000
Subject: [PATCH 6/8] Automated processing of Payload PR (validations,
 transformations, and reports) + reformat JSON

---
 .../2024/W49/output/payload.json              | 102 +++++++++---------
 1 file changed, 51 insertions(+), 51 deletions(-)

diff --git a/MaxiOps/vlaura_voting/2024/W49/output/payload.json b/MaxiOps/vlaura_voting/2024/W49/output/payload.json
index 4d26ecf74..1433196d0 100644
--- a/MaxiOps/vlaura_voting/2024/W49/output/payload.json
+++ b/MaxiOps/vlaura_voting/2024/W49/output/payload.json
@@ -1,52 +1,52 @@
 {
-    "domain": {
-        "name": "snapshot",
-        "version": "0.1.4"
-    },
-    "types": {
-        "Vote": [
-            {
-                "name": "from",
-                "type": "address"
-            },
-            {
-                "name": "space",
-                "type": "string"
-            },
-            {
-                "name": "timestamp",
-                "type": "uint64"
-            },
-            {
-                "name": "proposal",
-                "type": "bytes32"
-            },
-            {
-                "name": "choice",
-                "type": "string"
-            },
-            {
-                "name": "reason",
-                "type": "string"
-            },
-            {
-                "name": "app",
-                "type": "string"
-            },
-            {
-                "name": "metadata",
-                "type": "string"
-            }
-        ]
-    },
-    "message": {
-        "space": "gauges.aurafinance.eth",
-        "proposal": "0x2cc46de8f63d957646a1e3132a95056e9274f9277f016b02eb588888bc942a9a",
-        "choice": "{\"95\":10.0,\"98\":12.5,\"183\":5.0,\"205\":2.0,\"275\":2.0,\"215\":5.5,\"30\":5.95,\"120\":6.93,\"144\":4.54,\"86\":3.85,\"106\":8.04,\"24\":5.69,\"117\":5.0,\"142\":5.0,\"124\":5.0,\"204\":4.0,\"320\":5.0,\"323\":4.0}",
-        "app": "snapshot",
-        "reason": "",
-        "metadata": "{}",
-        "from": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e",
-        "timestamp": 1732479974
-    }
-}
\ No newline at end of file
+  "domain": {
+    "name": "snapshot",
+    "version": "0.1.4"
+  },
+  "types": {
+    "Vote": [
+      {
+        "name": "from",
+        "type": "address"
+      },
+      {
+        "name": "space",
+        "type": "string"
+      },
+      {
+        "name": "timestamp",
+        "type": "uint64"
+      },
+      {
+        "name": "proposal",
+        "type": "bytes32"
+      },
+      {
+        "name": "choice",
+        "type": "string"
+      },
+      {
+        "name": "reason",
+        "type": "string"
+      },
+      {
+        "name": "app",
+        "type": "string"
+      },
+      {
+        "name": "metadata",
+        "type": "string"
+      }
+    ]
+  },
+  "message": {
+    "space": "gauges.aurafinance.eth",
+    "proposal": "0x2cc46de8f63d957646a1e3132a95056e9274f9277f016b02eb588888bc942a9a",
+    "choice": "{\"95\":10.0,\"98\":12.5,\"183\":5.0,\"205\":2.0,\"275\":2.0,\"215\":5.5,\"30\":5.95,\"120\":6.93,\"144\":4.54,\"86\":3.85,\"106\":8.04,\"24\":5.69,\"117\":5.0,\"142\":5.0,\"124\":5.0,\"204\":4.0,\"320\":5.0,\"323\":4.0}",
+    "app": "snapshot",
+    "reason": "",
+    "metadata": "{}",
+    "from": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e",
+    "timestamp": 1732479974
+  }
+}

From 0000000081aa69356d6fb01ff6635608c23d46cb Mon Sep 17 00:00:00 2001
From: jalbrekt85 <jcalbrecht85@gmail.com>
Date: Tue, 3 Dec 2024 16:31:55 -0600
Subject: [PATCH 7/8] rename to maxi_omni

---
 tools/python/aura_snapshot_voting/vote.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/python/aura_snapshot_voting/vote.py b/tools/python/aura_snapshot_voting/vote.py
index acef5ac2b..ba8367f1d 100644
--- a/tools/python/aura_snapshot_voting/vote.py
+++ b/tools/python/aura_snapshot_voting/vote.py
@@ -41,7 +41,7 @@
 GAUGE_SNAPSHOT_URL = "https://raw.githubusercontent.com/aurafinance/aura-contracts/main/tasks/snapshot/gauge_snapshot.json"
 
 flatbook = AddrBook("mainnet").flatbook
-vlaura_safe_addr = flatbook["multisigs/vote_incentive_recycling"]
+vlaura_safe_addr = flatbook["multisigs/maxi_omni"]
 sign_msg_lib_addr = flatbook["gnosis/sign_message_lib"]
 
 Account.enable_unaudited_hdwallet_features()

From 11111111da038309a35894ab22df7439e1d6b609 Mon Sep 17 00:00:00 2001
From: jalbrekt85 <jcalbrecht85@gmail.com>
Date: Tue, 3 Dec 2024 16:33:38 -0600
Subject: [PATCH 8/8] remove test votes

---
 ...D Vote Template - November 21 2024 (1).csv | 42 -------------------
 1 file changed, 42 deletions(-)
 delete mode 100644 MaxiOps/vlaura_voting/2024/W50/input/BD Vote Template - November 21 2024 (1) - BD Vote Template - November 21 2024 (1).csv

diff --git a/MaxiOps/vlaura_voting/2024/W50/input/BD Vote Template - November 21 2024 (1) - BD Vote Template - November 21 2024 (1).csv b/MaxiOps/vlaura_voting/2024/W50/input/BD Vote Template - November 21 2024 (1) - BD Vote Template - November 21 2024 (1).csv
deleted file mode 100644
index b3b00eaf4..000000000
--- a/MaxiOps/vlaura_voting/2024/W50/input/BD Vote Template - November 21 2024 (1) - BD Vote Template - November 21 2024 (1).csv	
+++ /dev/null
@@ -1,42 +0,0 @@
-Chain,Label,Gauge Address,Allocation %,
-Mainnet,sDAI/4Pool,0xf6a7ad46b00300344c7d4739c0518db70e722dc4,10.00%,Core Liquidity
-Mainnet,GHO/USDC/USDT,0xf720e9137baa9c7612e6ca59149a5057ab320cfa,12.50%,
-Arbitrum,sFRAX/4Pool,0x62a82fe26e21a8807599374cac8024fae342ef83,5.00%,
-Arbitrum,aUSDC/USDC,0x75ba7f8733c154302cbe2e19fe3ec417e0679833,2.00%,
-Optimsim,ECLP-waUSDC-waUSDT,0x1a8F7747cA103d229d7bDFF5f89c176b95Faf301,2.00%,
-Arbitrum,aUSDC/aUSDT,0xbb034e493ebf45f874e038ae76576df9cc1137e5,5.50%,37.00%
-Mainnet,50wstETH/ACX,0xf7b0751fea697cf1a541a5f57d11058a8fb794ee,5.95%,Revenue
-Mainnet,wstETH-wETH-BPT,0x5c0f23a5c1be65fa710d385814a7fd1bda480b1c,6.93%,35.00%
-Mainnet,B-rETH-Stable,0x79ef6103a513951a3b25743db509e267685726b7,4.54%,
-Mainnet,weETH/rETH,0xC859BF9d7B8C557bBd229565124c2C09269F3aEF,3.85%,
-Mainnet,ezETH-wETH,0xa8b309a75f0d64ed632d45a003c68a30e59a1d8b,8.04%,
-Mainnet,STG/USDC,0x15C84754c7445D0DF6c613f1490cA07654347c1B,5.69%,35%
-,,,,Biz Dev
-Mainnet,tETH/wstETH,0xf697535848B535900c76f70F1e36EC3985D27862,5.00%,
-Mainnet,cbETH/wstETH,0x655A2B240151b4fAb06dfb2B6329eF72647F89dd,5.00%,
-Mainnet,sdeUSD/deUSD,0xA00DB7d9c465e95e4AA814A9340B9A161364470a,5.00%,
-Arbitrum,GHO / USDL,0x2e8A05f0216c6cC43BC123EE7dEf58901d3844D2,4.00%,
-Base,cbETH/wstETH,0xBDc908e5dF4A95909DD8cbdD5E88C4078a85f7fC,5.00%,
-Base,wETH/USDC,0xE01347229d681C69f459176A042268Cf981DFaa4,4.00%,
-,,,,28%
-,,,,TOTAL
-,,,,100.00%
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-,,,,
-Total USDC,"$100,000",,,
-APY needed,6%,,,
-Incentives per 1m,60000,,,
-Incentives per wk,"$1,154",,,
-Incentives per 6 wks,"$4,615",,,
-Total TVL to support,22,,,
\ No newline at end of file