yearn-treasury 0.0.15__cp311-cp311-win_amd64.whl → 0.1.3__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of yearn-treasury might be problematic. Click here for more details.
- yearn_treasury/__init__.py +12 -0
- yearn_treasury/_db.cp311-win_amd64.pyd +0 -0
- yearn_treasury/_db.py +39 -10
- yearn_treasury/_ens.cp311-win_amd64.pyd +0 -0
- yearn_treasury/_ens.py +14 -0
- yearn_treasury/_logging.cp311-win_amd64.pyd +0 -0
- yearn_treasury/_logging.py +43 -0
- yearn_treasury/{addresses.yaml → address_labels.yaml} +10 -0
- yearn_treasury/budget/__init__.cp311-win_amd64.pyd +0 -0
- yearn_treasury/budget/__init__.py +2 -2
- yearn_treasury/budget/_request.cp311-win_amd64.pyd +0 -0
- yearn_treasury/budget/_request.py +8 -0
- yearn_treasury/budget/_requests.cp311-win_amd64.pyd +0 -0
- yearn_treasury/budget/_requests.py +45 -14
- yearn_treasury/constants.py +27 -7
- yearn_treasury/main.py +71 -29
- yearn_treasury/rules/__init__.py +14 -0
- yearn_treasury/rules/constants.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/cost_of_revenue/gas.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/cost_of_revenue/gas.py +9 -1
- yearn_treasury/rules/expense/__init__.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/expense/general.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/expense/infrastructure.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/expense/infrastructure.py +7 -0
- yearn_treasury/rules/expense/people.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/expense/people.py +43 -0
- yearn_treasury/rules/expense/security.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/expense/security.py +17 -0
- yearn_treasury/rules/ignore/__init__.py +2 -0
- yearn_treasury/rules/ignore/general.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/general.py +3 -2
- yearn_treasury/rules/ignore/maker.py +40 -28
- yearn_treasury/rules/ignore/passthru.py +310 -0
- yearn_treasury/rules/ignore/swaps/__init__.py +14 -0
- yearn_treasury/rules/ignore/swaps/aave.py +39 -18
- yearn_treasury/rules/ignore/swaps/auctions.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/auctions.py +31 -0
- yearn_treasury/rules/ignore/swaps/compound.py +32 -22
- yearn_treasury/rules/ignore/swaps/conversion_factory.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/conversion_factory.py +21 -0
- yearn_treasury/rules/ignore/swaps/cowswap.py +87 -0
- yearn_treasury/rules/ignore/swaps/curve.py +170 -0
- yearn_treasury/rules/ignore/swaps/gearbox.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/gearbox.py +37 -0
- yearn_treasury/rules/ignore/swaps/iearn.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/iearn.py +43 -0
- yearn_treasury/rules/ignore/swaps/otc.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/otc.py +58 -0
- yearn_treasury/rules/ignore/swaps/pooltogether.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/pooltogether.py +23 -0
- yearn_treasury/rules/ignore/swaps/synthetix.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/synthetix.py +10 -0
- yearn_treasury/rules/ignore/swaps/uniswap.py +29 -6
- yearn_treasury/rules/ignore/swaps/unwrapper.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/unwrapper.py +17 -0
- yearn_treasury/rules/ignore/swaps/vaults.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/vaults.py +264 -0
- yearn_treasury/rules/ignore/swaps/woofy.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/woofy.py +80 -0
- yearn_treasury/rules/ignore/swaps/yfi.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/yfi.py +111 -0
- yearn_treasury/rules/ignore/swaps/yla.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/swaps/yla.py +28 -0
- yearn_treasury/rules/ignore/unit.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/unit.py +40 -0
- yearn_treasury/rules/ignore/weth.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/ignore/weth.py +12 -4
- yearn_treasury/rules/ignore/ygov.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_expense/__init__.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_expense/__init__.py +1 -0
- yearn_treasury/rules/other_expense/boost.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_expense/bugs.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_expense/donations.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_expense/donations.py +43 -0
- yearn_treasury/rules/other_expense/dyfi.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_expense/events.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_expense/events.py +6 -0
- yearn_treasury/rules/other_expense/match_on_to_address.yaml +3 -2
- yearn_treasury/rules/other_expense/misc.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_expense/misc.py +22 -0
- yearn_treasury/rules/other_expense/revshare.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_income/__init__.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_income/__init__.py +2 -77
- yearn_treasury/rules/other_income/airdrops.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_income/airdrops.py +30 -0
- yearn_treasury/rules/other_income/match_on_hash.yaml +2 -0
- yearn_treasury/rules/other_income/misc.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/other_income/misc.py +80 -0
- yearn_treasury/rules/revenue/bribes.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/revenue/farming.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/revenue/keepcoins.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/revenue/seasolver.cp311-win_amd64.pyd +0 -0
- yearn_treasury/rules/revenue/vaults.py +25 -22
- yearn_treasury/rules/revenue/yteams.cp311-win_amd64.pyd +0 -0
- yearn_treasury/shitcoins.py +93 -2
- yearn_treasury/vaults.cp311-win_amd64.pyd +0 -0
- yearn_treasury/vaults.py +17 -4
- yearn_treasury/wallets.yaml +54 -0
- yearn_treasury/yteams.py +208 -0
- {yearn_treasury-0.0.15.dist-info → yearn_treasury-0.1.3.dist-info}/METADATA +21 -8
- yearn_treasury-0.1.3.dist-info/RECORD +128 -0
- yearn_treasury-0.1.3.dist-info/top_level.txt +2 -0
- yearn_treasury__mypyc.cp311-win_amd64.pyd +0 -0
- 3ddd27aee2f79379b6d9__mypyc.cp311-win_amd64.pyd +0 -0
- yearn_treasury-0.0.15.dist-info/RECORD +0 -85
- yearn_treasury-0.0.15.dist-info/top_level.txt +0 -2
- {yearn_treasury-0.0.15.dist-info → yearn_treasury-0.1.3.dist-info}/WHEEL +0 -0
- {yearn_treasury-0.0.15.dist-info → yearn_treasury-0.1.3.dist-info}/entry_points.txt +0 -0
yearn_treasury/yteams.py
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# This is a loose copy of an old script and will not likely be refactored into something pretty
|
|
2
|
+
import os
|
|
3
|
+
from datetime import datetime, timedelta, timezone
|
|
4
|
+
from decimal import Decimal
|
|
5
|
+
from functools import lru_cache
|
|
6
|
+
from logging import getLogger
|
|
7
|
+
from typing import Any, Dict, Final, List, Set, Tuple
|
|
8
|
+
|
|
9
|
+
import a_sync
|
|
10
|
+
from brownie import chain
|
|
11
|
+
from eth_portfolio.structs import TokenTransfer
|
|
12
|
+
from eth_portfolio._ydb.token_transfers import InboundTokenTransfers
|
|
13
|
+
from pandas import DataFrame, MultiIndex
|
|
14
|
+
from y import Contract, Network, get_block_at_timestamp
|
|
15
|
+
from y.exceptions import ContractNotVerified
|
|
16
|
+
|
|
17
|
+
from yearn_treasury.constants import ZERO_ADDRESS
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
DATA_FOLDER: Final = os.path.join(".", "data")
|
|
21
|
+
OUTPUT_FILE: Final = os.path.join(DATA_FOLDER, f"teams_revenue_{chain.id}.csv")
|
|
22
|
+
NUMBER_OF_MONTHS_TO_INCLUDE_IN_REPORT: Final = 36
|
|
23
|
+
|
|
24
|
+
if not os.path.exists(DATA_FOLDER):
|
|
25
|
+
os.makedirs(DATA_FOLDER)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# TODO: maybe move this into constants for reuse
|
|
29
|
+
yteams_addresses = {
|
|
30
|
+
Network.Mainnet: {
|
|
31
|
+
"v3": {
|
|
32
|
+
"ms": "0x33333333D5eFb92f19a5F94a43456b3cec2797AE",
|
|
33
|
+
"splits": {"0x2A12CAA2c13Af03c117D836CA3811a5Ca946133B": 12.5},
|
|
34
|
+
},
|
|
35
|
+
"dinobots": {
|
|
36
|
+
"ms": "0x2C01B4AD51a67E2d8F02208F54dF9aC4c0B778B6",
|
|
37
|
+
"splits": {"0xC4f238633A85A854C4702d2c66264771D1fa7904": 17.5},
|
|
38
|
+
},
|
|
39
|
+
"ylockers": {
|
|
40
|
+
"ms": "0x4444AAAACDBa5580282365e25b16309Bd770ce4a",
|
|
41
|
+
"splits": {
|
|
42
|
+
"0xac580302548FCCBBf00020de20C3A8AA516821AD": 2.5,
|
|
43
|
+
"0x794f80E899c772de9E326eC83cCfD8D94e208B49": 6.25,
|
|
44
|
+
"0x5FF0f87b05806ce89967638CA727Af8309d92A89": 12.5,
|
|
45
|
+
"0x5A7575368797695BefD785f546C6b8B7e9D37f8c": 15.625,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
# "ylockers others": {"ms": "0x4444AAAACDBa5580282365e25b16309Bd770ce4a","splits":{"0x5FF0f87b05806ce89967638CA727Af8309d92A89":12.5, "0x5A7575368797695BefD785f546C6b8B7e9D37f8c":15.625}},
|
|
49
|
+
"yaudit": {
|
|
50
|
+
"ms": "0x8973B848775a87a0D5bcf262C555859b87E6F7dA",
|
|
51
|
+
"splits": {
|
|
52
|
+
"0xd7A1DBe236A38528D54317415a530b2326068373": 35,
|
|
53
|
+
"0xF104F38592287e25868BD8C3dcCCa1a311916f88": 35,
|
|
54
|
+
"0x1a9D272C3b7fE427639702A332D51348213B0bC1": 20,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
"yeth": {
|
|
58
|
+
"ms": "0xeEEEEeeeEe274C3CCe13f77C85d8eBd9F7fd4479",
|
|
59
|
+
"splits": {"0x14EFe6390C6758E3fE4379A14e3B329274b1b072": 25},
|
|
60
|
+
},
|
|
61
|
+
"yfarm": {
|
|
62
|
+
"ms": "0x55157997cb324a374cCd7c40914ff879Fd9D515C",
|
|
63
|
+
"splits": {"0x0B3cCe59E038373F6008D9266B6D6eB4d21689b1": 50},
|
|
64
|
+
},
|
|
65
|
+
"sms": {
|
|
66
|
+
"ms": "0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7",
|
|
67
|
+
"splits": {"0xd6748776CF06a80EbE36cd83D325B31bb916bf54": 25},
|
|
68
|
+
},
|
|
69
|
+
}
|
|
70
|
+
}[Network(chain.id)]
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
logger: Final = getLogger(__name__)
|
|
74
|
+
|
|
75
|
+
_not_verified: Final[Set[str]] = set()
|
|
76
|
+
_warned: Final[Set[TokenTransfer]] = set()
|
|
77
|
+
|
|
78
|
+
_known_tokens_without_prices: Final = frozenset({"SAFE", "vCOW"})
|
|
79
|
+
"""When there is a PriceError for these tokens, no logs will be emitted."""
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@lru_cache(maxsize=None)
|
|
83
|
+
def transfers_for(wallet: str) -> InboundTokenTransfers:
|
|
84
|
+
return InboundTokenTransfers(wallet, 0, load_prices=True) # type: ignore [arg-type]
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
async def calculate_teams_revenue_expenses() -> None:
|
|
88
|
+
logger.info("Starting process to calculate teams revenues and expenses")
|
|
89
|
+
timestamps = get_timestamps_for_report()
|
|
90
|
+
|
|
91
|
+
async def get_coros_for_timestamp(dt: datetime) -> Dict[str, Dict[str, Decimal]]:
|
|
92
|
+
return await a_sync.gather(
|
|
93
|
+
{
|
|
94
|
+
label: total(label, wallet_info, dt)
|
|
95
|
+
for label, wallet_info in yteams_addresses.items()
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
all_data = await a_sync.gather({dt: get_coros_for_timestamp(dt) for dt in timestamps})
|
|
100
|
+
|
|
101
|
+
result = {
|
|
102
|
+
(dt, teams, movement): values
|
|
103
|
+
for dt, data in all_data.items()
|
|
104
|
+
for teams, info in data.items()
|
|
105
|
+
for movement, values in info.items()
|
|
106
|
+
}
|
|
107
|
+
df = DataFrame.from_dict(result, orient="index")
|
|
108
|
+
print("------------")
|
|
109
|
+
# print(df.index)
|
|
110
|
+
# print(df.head(10))
|
|
111
|
+
df.index = MultiIndex.from_tuples(df.index)
|
|
112
|
+
print("********")
|
|
113
|
+
# print(df.index)
|
|
114
|
+
df.reset_index(inplace=True)
|
|
115
|
+
df.columns = ["datetime", "team", "label", "value"]
|
|
116
|
+
df.to_csv(OUTPUT_FILE)
|
|
117
|
+
logger.info(
|
|
118
|
+
f"Finished processing yteams calculations and saved file to {os.path.abspath(OUTPUT_FILE)}"
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def get_timestamps_for_report() -> List[datetime]:
|
|
123
|
+
now = datetime.now(tz=timezone.utc)
|
|
124
|
+
prev_month_end = datetime(
|
|
125
|
+
year=now.year,
|
|
126
|
+
month=now.month,
|
|
127
|
+
day=1,
|
|
128
|
+
hour=0,
|
|
129
|
+
minute=0,
|
|
130
|
+
second=0,
|
|
131
|
+
microsecond=0,
|
|
132
|
+
tzinfo=timezone.utc,
|
|
133
|
+
) - timedelta(microseconds=1)
|
|
134
|
+
datetimes = []
|
|
135
|
+
print("Exporting report for timestamps:")
|
|
136
|
+
for _ in range(NUMBER_OF_MONTHS_TO_INCLUDE_IN_REPORT):
|
|
137
|
+
print(f" - {prev_month_end}")
|
|
138
|
+
datetimes.append(prev_month_end)
|
|
139
|
+
prev_month_end -= timedelta(days=prev_month_end.day)
|
|
140
|
+
return datetimes
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
async def total(label: str, wallet_info: Dict[str, Any], timestamp: datetime) -> Dict[str, Decimal]:
|
|
144
|
+
rev = await sum_revenue_transfers.sum(wallet_info["splits"].items(), timestamp=timestamp)
|
|
145
|
+
grants = await sum_grants_received(wallet_info["ms"], timestamp)
|
|
146
|
+
if rev > 10_000_000:
|
|
147
|
+
raise ValueError(rev)
|
|
148
|
+
if grants > 10_000_000:
|
|
149
|
+
raise ValueError(grants)
|
|
150
|
+
net = rev - grants
|
|
151
|
+
if label == "yaudit":
|
|
152
|
+
logger.info("--- %s thru %s ---", label, timestamp)
|
|
153
|
+
logger.info("inbound %s", rev)
|
|
154
|
+
logger.info("grants -%s", grants)
|
|
155
|
+
logger.info("net %s", net)
|
|
156
|
+
return {"revenue": rev, "grants": grants, "total": net}
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
@a_sync.a_sync(default="async")
|
|
160
|
+
async def sum_revenue_transfers(params: Tuple[str, Decimal], timestamp: datetime) -> Decimal:
|
|
161
|
+
wallet, rev_share = params
|
|
162
|
+
block = await get_block_at_timestamp(timestamp)
|
|
163
|
+
total = Decimal(0)
|
|
164
|
+
async for transfer in transfers_for(wallet).yield_thru_block(block):
|
|
165
|
+
transfer = await transfer
|
|
166
|
+
if transfer is None:
|
|
167
|
+
# failed to decode, probably shitcoin
|
|
168
|
+
continue
|
|
169
|
+
if not transfer.value:
|
|
170
|
+
# zero value transfer
|
|
171
|
+
continue
|
|
172
|
+
if transfer.price:
|
|
173
|
+
total += transfer.value * transfer.price
|
|
174
|
+
elif transfer not in _warned and transfer.token not in _known_tokens_without_prices:
|
|
175
|
+
logger.warning(f"BAD: {transfer}")
|
|
176
|
+
_warned.add(transfer)
|
|
177
|
+
return round(total * Decimal((100 - rev_share) / 100), 8)
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
async def sum_grants_received(wallet: str, timestamp: datetime) -> Decimal:
|
|
181
|
+
grants = Decimal(0)
|
|
182
|
+
block = await get_block_at_timestamp(timestamp)
|
|
183
|
+
async for transfer in transfers_for(wallet).yield_thru_block(block):
|
|
184
|
+
transfer = await transfer
|
|
185
|
+
if transfer is None:
|
|
186
|
+
# failed to decode, probably shitcoin
|
|
187
|
+
continue
|
|
188
|
+
if not transfer.value:
|
|
189
|
+
# zero value transfer
|
|
190
|
+
continue
|
|
191
|
+
if transfer.price:
|
|
192
|
+
if transfer.from_address != ZERO_ADDRESS:
|
|
193
|
+
try:
|
|
194
|
+
contract = await Contract.coroutine(transfer.from_address)
|
|
195
|
+
if (
|
|
196
|
+
hasattr(contract, "recipient") and await contract.recipient == wallet
|
|
197
|
+
) or transfer.from_address == "0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52":
|
|
198
|
+
grants += transfer.value * transfer.price
|
|
199
|
+
except ContractNotVerified as e:
|
|
200
|
+
if str(e) not in _not_verified:
|
|
201
|
+
_not_verified.add(str(e))
|
|
202
|
+
logger.debug(f"{e.__class__.__name__}: {e}")
|
|
203
|
+
except Exception as e:
|
|
204
|
+
logger.warning(f"{e.__class__.__name__}: {e}")
|
|
205
|
+
elif transfer not in _warned and transfer.token not in _known_tokens_without_prices:
|
|
206
|
+
logger.warning(f"BAD: {transfer}")
|
|
207
|
+
_warned.add(transfer)
|
|
208
|
+
return round(grants, 8)
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: yearn_treasury
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: This WIP library runs the eth-portfolio and dao-treasury exporters for the Yearn Finance treasury.
|
|
5
5
|
Classifier: Development Status :: 3 - Alpha
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
7
7
|
Classifier: Intended Audience :: Science/Research
|
|
8
8
|
Classifier: Intended Audience :: End Users/Desktop
|
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
11
10
|
Classifier: Programming Language :: Python :: 3.10
|
|
12
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -16,7 +15,8 @@ Classifier: Operating System :: OS Independent
|
|
|
16
15
|
Classifier: Topic :: Software Development :: Libraries
|
|
17
16
|
Requires-Python: >=3.10,<3.13
|
|
18
17
|
Description-Content-Type: text/markdown
|
|
19
|
-
Requires-Dist: dao-treasury
|
|
18
|
+
Requires-Dist: dao-treasury==0.1.4
|
|
19
|
+
Requires-Dist: faster-async-lru<3,>=2.0.5
|
|
20
20
|
Dynamic: classifier
|
|
21
21
|
Dynamic: description
|
|
22
22
|
Dynamic: description-content-type
|
|
@@ -24,7 +24,7 @@ Dynamic: requires-dist
|
|
|
24
24
|
Dynamic: requires-python
|
|
25
25
|
Dynamic: summary
|
|
26
26
|
|
|
27
|
-
This WIP library runs the [dao-treasury](https://github.com/BobTheBuidler/dao-treasury) exporter for the Yearn Finance treasury.
|
|
27
|
+
This WIP library runs the [dao-treasury](https://github.com/BobTheBuidler/dao-treasury) exporter for the [Yearn Finance](https://yearn.fi/) treasury.
|
|
28
28
|
|
|
29
29
|
## Installation
|
|
30
30
|
|
|
@@ -40,10 +40,17 @@ This WIP library runs the [dao-treasury](https://github.com/BobTheBuidler/dao-tr
|
|
|
40
40
|
poetry install
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
## Requirements
|
|
44
|
+
- Python 3.10 or higher.
|
|
45
|
+
- At least 16GB of RAM.
|
|
46
|
+
- All dependencies installed as specified in the project’s pyproject.toml file.
|
|
47
|
+
|
|
43
48
|
## Prerequisites
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
You
|
|
50
|
+
- First, you will need to bring your own archive node. This can be one you run yourself, or one from one of the common providers (Tenderly, Alchemy, QuickNode, etc.). Your archive node must have tracing enabled (free-tier Alchemy nodes do not support this option).
|
|
51
|
+
- You must configure a [brownie network](https://eth-brownie.readthedocs.io/en/stable/network-management.html) to use your RPC.
|
|
52
|
+
- You will need an auth token for [Etherscan](https://etherscan.io/)'s API. Follow their [guide](https://docs.etherscan.io/etherscan-v2/getting-an-api-key) to get your key, and set env var `ETHERSCAN_TOKEN` with its value.
|
|
53
|
+
- You'll also need [Docker](https://www.docker.com/get-started/) installed on your system. If on MacOS, you will need to leave Docker Desktop open while Yearn Treasury is running.
|
|
47
54
|
|
|
48
55
|
## Usage
|
|
49
56
|
|
|
@@ -51,12 +58,12 @@ Run the treasury export tool:
|
|
|
51
58
|
|
|
52
59
|
```bash
|
|
53
60
|
# For pip installations:
|
|
54
|
-
yearn-treasury
|
|
61
|
+
yearn-treasury --network mainnet --interval 12h
|
|
55
62
|
```
|
|
56
63
|
|
|
57
64
|
For local development (from source installation), use:
|
|
58
65
|
```bash
|
|
59
|
-
poetry run yearn-treasury
|
|
66
|
+
poetry run yearn-treasury --network mainnet --interval 12h
|
|
60
67
|
```
|
|
61
68
|
|
|
62
69
|
**CLI Options:**
|
|
@@ -71,3 +78,9 @@ After running the command, the export script will run continuously until you clo
|
|
|
71
78
|
To access the dashboard, open your browser and navigate to [http://localhost:3004](http://localhost:3004) for the [dao-treasury](https://github.com/BobTheBuidler/dao-treasury) dashboard.
|
|
72
79
|
|
|
73
80
|
Enjoy!
|
|
81
|
+
|
|
82
|
+
## Screenshots
|
|
83
|
+
|
|
84
|
+
#### [Transactions Dashboard](https://bobthebuidler.github.io/yearn-treasury/transactions.html)
|
|
85
|
+
|
|
86
|
+

|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
yearn_treasury__mypyc.cp311-win_amd64.pyd,sha256=r1en-jPyprB1cmkpDRJJhuoq-NBKNftYdXzWc6GcTJ0,420352
|
|
2
|
+
yearn_treasury/__init__.py,sha256=1G3sqPVtNq0SsOCLXjZ8NOMiRYfdQZuRezMEpyrNjmU,426
|
|
3
|
+
yearn_treasury/_db.cp311-win_amd64.pyd,sha256=O_EXFObUpjMcf2CrQd0bwNvK11Vy2Af_yjpT7ytVlxg,10752
|
|
4
|
+
yearn_treasury/_db.py,sha256=aXJFlC59l2fphjca1naNFOPoEhZldO_YK6CKFcXG3Gw,1828
|
|
5
|
+
yearn_treasury/_ens.cp311-win_amd64.pyd,sha256=8Fvde3HyNDEh_cW6zIZybrZnKnlzi3AN0W6w7VLZUPY,10752
|
|
6
|
+
yearn_treasury/_ens.py,sha256=oBn-R1n8dLnM93xsq08p1jYPZRQez9ISVVXS0nJNuSc,1068
|
|
7
|
+
yearn_treasury/_logging.cp311-win_amd64.pyd,sha256=lJu2BjYeeRrhELzywaevEUg9JEw1Fy10Ar56qHFCIkA,10752
|
|
8
|
+
yearn_treasury/_logging.py,sha256=I4nWIxBC1ApCnSCS2vVztF-kl6LoGf0_yVxeBYF07Pw,1829
|
|
9
|
+
yearn_treasury/address_labels.yaml,sha256=R8XC7ATHxLxfR8g1Rl4YDXyOyO8w5a08iw-9_y50XuU,1529
|
|
10
|
+
yearn_treasury/constants.py,sha256=5D9YTbz7ii3G2O3M_a-czCanmQhwid8JAqoq_uLRMsU,3911
|
|
11
|
+
yearn_treasury/main.py,sha256=4ZWK926ujBOScRJ5QANMK8JMje6FEDAOXgNSLs8WlWc,6653
|
|
12
|
+
yearn_treasury/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
13
|
+
yearn_treasury/shitcoins.py,sha256=sQCvILXy47RvtZ-8n0lSay9WX4j78gV6hmO5mhX1g5I,7764
|
|
14
|
+
yearn_treasury/vaults.cp311-win_amd64.pyd,sha256=OaEWtdiNvhb68ZBbn9LLnW7v6pbZWGthIvxFP9Lb8vs,10752
|
|
15
|
+
yearn_treasury/vaults.py,sha256=xv7am1RxU_O4RuWbgV0-1IqIOA1rwsvoaV5jiSnxpPA,1745
|
|
16
|
+
yearn_treasury/wallets.yaml,sha256=VP2A4S-W6R6k1yWDHM_ptrhNlO-dwXZhrJg0Bm8qz0w,1137
|
|
17
|
+
yearn_treasury/yteams.py,sha256=8YWXEueHT4MajTVmRRIPYFmQs6AIR0zUSdS2x9usCts,8201
|
|
18
|
+
yearn_treasury/budget/__init__.cp311-win_amd64.pyd,sha256=wMsfvn3bf5gfEHt8EYVnXiM4s3n9fkd1qULJCNzk7TU,10752
|
|
19
|
+
yearn_treasury/budget/__init__.py,sha256=LY4Isom1ARgNwIpaz9W0ZUcbxHfzw3hC0eLVjLwHdFs,264
|
|
20
|
+
yearn_treasury/budget/_request.cp311-win_amd64.pyd,sha256=3clDJ8bo7pt7yycxea-rM_HkhgjysjkbXUezhhkcVhk,10752
|
|
21
|
+
yearn_treasury/budget/_request.py,sha256=3yw_HKHBy8ePqQytGFLSao9TOoYTHsXqPnap6odrNjk,1054
|
|
22
|
+
yearn_treasury/budget/_requests.cp311-win_amd64.pyd,sha256=7viCcbVeBJ4RiX5qxTjld_o0ztubGKCpL63Vr7GAFd4,10752
|
|
23
|
+
yearn_treasury/budget/_requests.py,sha256=xhjf-Uj_1y2KMijrVrS_ZtSkLJUdww3W8LA7B2SNMKg,3541
|
|
24
|
+
yearn_treasury/rules/__init__.py,sha256=MUwQaDL-f-S3AB_YS3H4k_6Y1VFgPjNsIIVXpL-9Gko,591
|
|
25
|
+
yearn_treasury/rules/constants.cp311-win_amd64.pyd,sha256=nJM4Ul4DD1RgtjtCqqGE7vGpyWeh68vcfpUzjpRWhZs,10752
|
|
26
|
+
yearn_treasury/rules/constants.py,sha256=LYme6yibxVEZR5CxTZkD0GOyjHO8HspPyDtQnwlOSzE,563
|
|
27
|
+
yearn_treasury/rules/cost_of_revenue/__init__.py,sha256=rWPI3t4FRk_QCkdA5fDmgEKRU3p9JACoQbn184AxGD8,56
|
|
28
|
+
yearn_treasury/rules/cost_of_revenue/gas.cp311-win_amd64.pyd,sha256=NLsAZpGrrnmSXL0yAjzKz9X5giM6v4v6InjOlMi8AUM,10752
|
|
29
|
+
yearn_treasury/rules/cost_of_revenue/gas.py,sha256=WUJ6SN-xSwLveYjwPGbjmMh-V4XB7qLslYDrx792gFY,2290
|
|
30
|
+
yearn_treasury/rules/cost_of_revenue/match_on_hash.yaml,sha256=Z7r1CIDzNsSoLWpmUUbXonqE4Vzo0-u8RzISDQGJmNk,562
|
|
31
|
+
yearn_treasury/rules/expense/__init__.cp311-win_amd64.pyd,sha256=uGREH__9jCGqEzCRU0KREWG67xHO-V-OMp1lqrdAEbc,10752
|
|
32
|
+
yearn_treasury/rules/expense/__init__.py,sha256=3YzO4g2TOCNg4oWGd7nfWkl18J1A6nmqQF7zezLND8E,215
|
|
33
|
+
yearn_treasury/rules/expense/general.cp311-win_amd64.pyd,sha256=AHTj8OlTxmLhHLoUNvh70FismaJnU8i2ymnSPLJ6fRI,10752
|
|
34
|
+
yearn_treasury/rules/expense/general.py,sha256=Ale0ignb0wDN8RyyhMND3j7SUc4bLi39kmSVP-wsmus,377
|
|
35
|
+
yearn_treasury/rules/expense/infrastructure.cp311-win_amd64.pyd,sha256=dornlX6WUZ5zy5yNfEgAyy1ZPr5EM4L5Gf8pWsw1GsE,10752
|
|
36
|
+
yearn_treasury/rules/expense/infrastructure.py,sha256=rU-HJLFnk-AvwQFRrwNuP1xWaYZMd16LiD97HXqJ9VA,1677
|
|
37
|
+
yearn_treasury/rules/expense/match_on_hash.yaml,sha256=XVYA55_0qW8X99VOM7ojD6ttqW4fgnljXiQlaFU0c7Q,2770
|
|
38
|
+
yearn_treasury/rules/expense/match_on_to_address.yaml,sha256=zq0AB0TD2k87jQ39ZtUZNSyspuvzJy80fvcDh102zMI,213
|
|
39
|
+
yearn_treasury/rules/expense/people.cp311-win_amd64.pyd,sha256=D3tJxnPWOqfcyh0sTnVpecLVIrR7VN8UsTgaRwkpRHY,10752
|
|
40
|
+
yearn_treasury/rules/expense/people.py,sha256=JKPAiCKHSBX2pqEZdWRt0yytI3kGcstskUz50K23EvE,3604
|
|
41
|
+
yearn_treasury/rules/expense/security.cp311-win_amd64.pyd,sha256=4LviI1yBgqA4HbIAobMOlng3bQGUGZllSg5axMOuvVw,10752
|
|
42
|
+
yearn_treasury/rules/expense/security.py,sha256=uQVMejp_fptKHLeuaR7X9-Yh8Tgh125_qEGG7nzwi9s,4737
|
|
43
|
+
yearn_treasury/rules/ignore/__init__.py,sha256=8Wuwv6JO4VeMx8U4trNo3ZP5z3ZBIgQk9eFbZxvskPQ,396
|
|
44
|
+
yearn_treasury/rules/ignore/general.cp311-win_amd64.pyd,sha256=eM2kDnwNDGLtyPPBTy1qoF3RgYBNsgXtpgQE5WDBQbk,10752
|
|
45
|
+
yearn_treasury/rules/ignore/general.py,sha256=DJEvcZUgfsPlJADu_dmXrWGiUguuiXG2Tid7tKKMDjE,452
|
|
46
|
+
yearn_treasury/rules/ignore/maker.py,sha256=Ll89KDgmBt3DcOxjk2GwfNROp3U4GKO0BM1UmXl1s0s,3549
|
|
47
|
+
yearn_treasury/rules/ignore/passthru.py,sha256=TLy98IufuImGKiJahU7CD6plwTf0a76vBQQzc5M8SJc,12338
|
|
48
|
+
yearn_treasury/rules/ignore/staking.py,sha256=RamaHJyGSmQZHzUEBIKemPIbeAMiUN4toW36AuxakiA,3793
|
|
49
|
+
yearn_treasury/rules/ignore/unit.cp311-win_amd64.pyd,sha256=XVJJO74YeCXgpxNHwmUTLLtkqQECL7G9YWVMCAytXxI,10752
|
|
50
|
+
yearn_treasury/rules/ignore/unit.py,sha256=yAKzDrjbCBYyHGzNHAuF2U1r4Ru_59QXjRy4uVFDf38,1294
|
|
51
|
+
yearn_treasury/rules/ignore/weth.cp311-win_amd64.pyd,sha256=MIqO9ZO1TrlgAI9eGMBJ2aNfOszQaNf2tDaMZL6cT5I,10752
|
|
52
|
+
yearn_treasury/rules/ignore/weth.py,sha256=896V7Z5L553t0D02FZaj2c-y3QO-vN5ESWlIQzscfC4,1512
|
|
53
|
+
yearn_treasury/rules/ignore/ygov.cp311-win_amd64.pyd,sha256=bo8hZFFXJ1HuiUNr9pBNutZzgYG5XlzCODSMHxBSP2c,10752
|
|
54
|
+
yearn_treasury/rules/ignore/ygov.py,sha256=XioDvPA0wLtwvJ_Rdf1QRUa-ZhFvrZP7Jc0IFwfsfTM,422
|
|
55
|
+
yearn_treasury/rules/ignore/swaps/__init__.py,sha256=EMtAV7n-EIIEnghH_0JJen--EbLb2L1aV6Z0nAyIOfA,1136
|
|
56
|
+
yearn_treasury/rules/ignore/swaps/_skip_tokens.py,sha256=_ZtBUDgYmuAeqggA6QwiX1gUwaaPocXQWbkoHnI3s9o,161
|
|
57
|
+
yearn_treasury/rules/ignore/swaps/aave.py,sha256=JztS0Thqil5p15BO_ts-7MEqLHZ_lIQWjpNivRsgZS8,2890
|
|
58
|
+
yearn_treasury/rules/ignore/swaps/auctions.cp311-win_amd64.pyd,sha256=qheBFZwcD8Rux-UtgpMwOsDm1z4znXU_ba6-2odmtAM,10752
|
|
59
|
+
yearn_treasury/rules/ignore/swaps/auctions.py,sha256=yKfPC-xhU95llOuR5ssNqg9_Q0nPGa4xOIn5YkmMEAQ,1068
|
|
60
|
+
yearn_treasury/rules/ignore/swaps/compound.py,sha256=guuz5LgpiLbToF0cS71mGv78AioSlvYNkKCiq7liwf8,2648
|
|
61
|
+
yearn_treasury/rules/ignore/swaps/conversion_factory.cp311-win_amd64.pyd,sha256=kfznU6rjpODu5mSMHL0i23ZeHKwdcgGuWuyAKZi0WOU,10752
|
|
62
|
+
yearn_treasury/rules/ignore/swaps/conversion_factory.py,sha256=eHD3koaUX9moWbRVNsenrwA-ABk7_SM2Q1-r9oZscKI,930
|
|
63
|
+
yearn_treasury/rules/ignore/swaps/cowswap.py,sha256=oqhiA2MsNCW5fhvgNCSr0II2zQjdcEdgEn80pnHE1uE,4145
|
|
64
|
+
yearn_treasury/rules/ignore/swaps/curve.py,sha256=tpXnTgNSrcvZAkk0xy4WPnssonKKnTJdirIjdCcZwWo,7440
|
|
65
|
+
yearn_treasury/rules/ignore/swaps/gearbox.cp311-win_amd64.pyd,sha256=l_w8xhDH2Dww-P9CbiaOQZhiY08ldEm8rZPSdP4ekZ4,10752
|
|
66
|
+
yearn_treasury/rules/ignore/swaps/gearbox.py,sha256=mFxtrSPCQUi-U-tO7bRgdzLbG7DHISRaGWJplaLwJgY,1141
|
|
67
|
+
yearn_treasury/rules/ignore/swaps/iearn.cp311-win_amd64.pyd,sha256=fRZd4af444gMk_PE_hh322zG-N8hxMNTqCCK5CWhUm4,10752
|
|
68
|
+
yearn_treasury/rules/ignore/swaps/iearn.py,sha256=pdYpS5Py7vvMR7EpSTs9DQADeAyWo4E-gmRVOqfpjtU,1578
|
|
69
|
+
yearn_treasury/rules/ignore/swaps/otc.cp311-win_amd64.pyd,sha256=PFSBBrPwffgrGOAw9UeV5mTpQC2TgeM2viL8OWvahjc,10752
|
|
70
|
+
yearn_treasury/rules/ignore/swaps/otc.py,sha256=v0ztjqmxyO0GpebeaTAR-ycoOGd6_0zjTNljcj9eXWQ,2692
|
|
71
|
+
yearn_treasury/rules/ignore/swaps/pooltogether.cp311-win_amd64.pyd,sha256=KPpTbCD3CcbzJ5ZeNcevjIwF3pyVCbX7bqEnXILodqw,10752
|
|
72
|
+
yearn_treasury/rules/ignore/swaps/pooltogether.py,sha256=T42OdErDLoPV_hEEsxDz-Pa2pvIDvyRzMQnIprzRvw4,834
|
|
73
|
+
yearn_treasury/rules/ignore/swaps/synthetix.cp311-win_amd64.pyd,sha256=NYEl8iazke--3LUoPoD5AYGpF6PtJlPa3joMvSAt17w,10752
|
|
74
|
+
yearn_treasury/rules/ignore/swaps/synthetix.py,sha256=USI34Jrfdjc9hKAvyy77m0JpXu0jvPJ-GTWTUNn_Te8,378
|
|
75
|
+
yearn_treasury/rules/ignore/swaps/uniswap.py,sha256=p6LqtiQRIFXBGw5hmY6Cppg286hAHLPW1xAF6OHpXug,13428
|
|
76
|
+
yearn_treasury/rules/ignore/swaps/unwrapper.cp311-win_amd64.pyd,sha256=q6OlTy8pXJ0bS4bds56gBRKIV1fpLWLCVU6y9FQRLWU,10752
|
|
77
|
+
yearn_treasury/rules/ignore/swaps/unwrapper.py,sha256=FRVEq0jn7EWSp7Q_MvdJFLDXl-P2ujlVZXa1mqSvO0w,477
|
|
78
|
+
yearn_treasury/rules/ignore/swaps/vaults.cp311-win_amd64.pyd,sha256=t-aM-vSzIRvG7zZtsXcbq0aTSzbuBYJp8oRmclCYK2A,10752
|
|
79
|
+
yearn_treasury/rules/ignore/swaps/vaults.py,sha256=n1eyPZdphw8FQSVsUgki2UMpmG892iHpo4n6p265pB4,10908
|
|
80
|
+
yearn_treasury/rules/ignore/swaps/woofy.cp311-win_amd64.pyd,sha256=0tZAClRQuXT452IGbh3CKUN9U1Hk8Rs7xiz1krg57y8,10752
|
|
81
|
+
yearn_treasury/rules/ignore/swaps/woofy.py,sha256=PWqrX7eH-IhD0PyhL-_zWEstDWNeC619gcnuFKp866U,3198
|
|
82
|
+
yearn_treasury/rules/ignore/swaps/yfi.cp311-win_amd64.pyd,sha256=IuccEP4Hx7WnSKjnnsiVytHSbdvX2EJE7-EJ8lfxaiE,10752
|
|
83
|
+
yearn_treasury/rules/ignore/swaps/yfi.py,sha256=kpWI0nqIKpAEWkXqNjr14lUCThkFS2p7GBAh2fTK78o,4862
|
|
84
|
+
yearn_treasury/rules/ignore/swaps/yla.cp311-win_amd64.pyd,sha256=vz73pPO2BCTq-B8Uuv8nT7zZSxL5lVklr4GYgpOeaL8,10752
|
|
85
|
+
yearn_treasury/rules/ignore/swaps/yla.py,sha256=I2_18sZBsIsYEhPCexX0EayNaPoRqzmMr6yylGNq1AU,916
|
|
86
|
+
yearn_treasury/rules/other_expense/__init__.cp311-win_amd64.pyd,sha256=CIR8kpUoLuWMAdaMTSFsWB7svigW2rgpo2y6Qhv8PFQ,10752
|
|
87
|
+
yearn_treasury/rules/other_expense/__init__.py,sha256=K1lsFhNu4p7STAnuk_Bywbu45me5rBOTPRnuCJdcM8o,397
|
|
88
|
+
yearn_treasury/rules/other_expense/boost.cp311-win_amd64.pyd,sha256=RFhzVSsf555CR-ny6_nWbNWJWM6Iy5dEVgkMfTSGRfU,10752
|
|
89
|
+
yearn_treasury/rules/other_expense/boost.py,sha256=Ptd1Y-FI_pdNtQNavt4BMDw725kbvADirCva1ig4TQg,2741
|
|
90
|
+
yearn_treasury/rules/other_expense/bugs.cp311-win_amd64.pyd,sha256=rGIhvgiuT2IizlIPsjf4oUNqs1NqPYboE06Sme623BM,10752
|
|
91
|
+
yearn_treasury/rules/other_expense/bugs.py,sha256=fxmOni4vM1D5hOkUVeQ-aIpIax015cF9W_Dt5zLvS1U,3095
|
|
92
|
+
yearn_treasury/rules/other_expense/donations.cp311-win_amd64.pyd,sha256=aJr0Ru10wzz4jO2UYyLe_hI8rDMSJiMCSj7pgjE88Ko,10752
|
|
93
|
+
yearn_treasury/rules/other_expense/donations.py,sha256=RP6SU_q4TwQP48x_AnU6lefRWPgPPhPJ6Kv6NGovAPI,1309
|
|
94
|
+
yearn_treasury/rules/other_expense/dyfi.cp311-win_amd64.pyd,sha256=MpBs1u41tqviXUhaa7ZIIHsJQIswBG_4CGj7deVndlc,10752
|
|
95
|
+
yearn_treasury/rules/other_expense/dyfi.py,sha256=xDTJlEywuYffKTBOdBlI0XeC4ZJw9wr4XWqgRc02mZg,948
|
|
96
|
+
yearn_treasury/rules/other_expense/events.cp311-win_amd64.pyd,sha256=ooRRJjbQPf_LX-B_aL0cTmpn9vQL2b7Q6EtS3COVrtI,10752
|
|
97
|
+
yearn_treasury/rules/other_expense/events.py,sha256=LkNWmplmaLrre1IuaMBtCAmnaghZ7odIN5lIIJCYwy8,509
|
|
98
|
+
yearn_treasury/rules/other_expense/match_on_hash.yaml,sha256=t5uQPm5ShPJ54ehAQXotcLym-ttyvvqUy-Qr3HmkazY,2568
|
|
99
|
+
yearn_treasury/rules/other_expense/match_on_to_address.yaml,sha256=-vO99x1ULbHYtkdRjP8-9BFIZxAhAm6bxbpZuME5vg8,222
|
|
100
|
+
yearn_treasury/rules/other_expense/misc.cp311-win_amd64.pyd,sha256=SPOsGZIlMYZdBqvKACxzEF5k9GPhdDhYdZAFhEq9Ejs,10752
|
|
101
|
+
yearn_treasury/rules/other_expense/misc.py,sha256=3zWC5xp3ACF4ODD1nJyGPqrjhX82RoYBBYNSkODWHTU,1703
|
|
102
|
+
yearn_treasury/rules/other_expense/revshare.cp311-win_amd64.pyd,sha256=3hAi1D4dT1Ij5WPjGvKSZOCgSz08CEAVysd_kBl3gwk,10752
|
|
103
|
+
yearn_treasury/rules/other_expense/revshare.py,sha256=PPihhs6TjeTCiRtWAAE-RO2rFIKmPA3f6--UYXi6p2I,531
|
|
104
|
+
yearn_treasury/rules/other_income/__init__.cp311-win_amd64.pyd,sha256=TgS5rw_YKoKnmfWEe-nHk89TaA4I4oCYZ0OjDBIsJ1Y,10752
|
|
105
|
+
yearn_treasury/rules/other_income/__init__.py,sha256=TgUNNtZrU4tMilawg6mLoiNCQpPHlRFITCNJWlHQCW8,112
|
|
106
|
+
yearn_treasury/rules/other_income/airdrops.cp311-win_amd64.pyd,sha256=T9iNh5HPY8f3AqLBwySyecGH8YW73RZnwE-QvSngo3k,10752
|
|
107
|
+
yearn_treasury/rules/other_income/airdrops.py,sha256=5uAccRiPiraKziHOTJ3f7JVbsWtMNDiHA9lYaz-2rcI,1214
|
|
108
|
+
yearn_treasury/rules/other_income/match_on_hash.yaml,sha256=r1BVF0OJSUO9PVvU2hssNJQ7MFv-uX-au_-5Aq_hSwg,1179
|
|
109
|
+
yearn_treasury/rules/other_income/misc.cp311-win_amd64.pyd,sha256=uvie8beW5Pj2T6BjuBQo8wNi5oZ70V2nRU07tkYZOtM,10752
|
|
110
|
+
yearn_treasury/rules/other_income/misc.py,sha256=sTMy4xoXDzhxIh4ls5J4AaTx0nwYh7AjKnvPj3tKBtU,2614
|
|
111
|
+
yearn_treasury/rules/revenue/__init__.py,sha256=OsK33eSraGuaE2dcfMsmShUWSH0BQnACIVHsZ_2G6Ok,313
|
|
112
|
+
yearn_treasury/rules/revenue/bribes.cp311-win_amd64.pyd,sha256=-6BFKA5Lf4dLbBL8BBjMzPEIC1Xk60QnctNWV9a1sl4,10752
|
|
113
|
+
yearn_treasury/rules/revenue/bribes.py,sha256=oS5oWXNv8ScOH5ypKTdM4-bn9lF5XQ7p-gVSZZYk0Js,603
|
|
114
|
+
yearn_treasury/rules/revenue/farming.cp311-win_amd64.pyd,sha256=GvnEosSQXYwZMGyWK32wB7o_m4jFMNjTqg2wDox8lYI,10752
|
|
115
|
+
yearn_treasury/rules/revenue/farming.py,sha256=sACJwLdQb8TpWU4v7lAwuSuRY_BkXja1QmeO_z036rQ,1895
|
|
116
|
+
yearn_treasury/rules/revenue/keepcoins.cp311-win_amd64.pyd,sha256=f1cN8HqawVnqEoRl5YU2HnF1O49qED82OOgCHmxzUHo,10752
|
|
117
|
+
yearn_treasury/rules/revenue/keepcoins.py,sha256=DYs0GzewhkO9LkgmAscqQUSQxi80R18vN-_8Gg_CMxk,2037
|
|
118
|
+
yearn_treasury/rules/revenue/match_on_hash.yaml,sha256=RjfnJygGXNFTFzXO7ClX_EpXovu2QUrDQ9Dw4EbRAFs,167
|
|
119
|
+
yearn_treasury/rules/revenue/seasolver.cp311-win_amd64.pyd,sha256=HCEtkOLtiriy5uagp1lHA8GPn511ynyAwJKc9ZTVLrw,10752
|
|
120
|
+
yearn_treasury/rules/revenue/seasolver.py,sha256=w2OrfbmIKzuR6FlRhUYXAlO2Z076_vO8gTlzcLyQrUg,782
|
|
121
|
+
yearn_treasury/rules/revenue/vaults.py,sha256=h1gaSTTGJGFUgW2POe8zkbB3_iI2HWvY89E5b5xOXXg,5507
|
|
122
|
+
yearn_treasury/rules/revenue/yteams.cp311-win_amd64.pyd,sha256=vqvZ-s8onqxy7oXcqjKtMGeDNy5dClnnrflDewaqrPo,10752
|
|
123
|
+
yearn_treasury/rules/revenue/yteams.py,sha256=K3QgNf8kz5mU97IU6rtXRV8gz0Gr69XhzyyyYo92BmE,637
|
|
124
|
+
yearn_treasury-0.1.3.dist-info/METADATA,sha256=BlGI5HXtuJg-Z5F9FyK5tNHAsRz8B1ulaLC9rXhoT3Y,3744
|
|
125
|
+
yearn_treasury-0.1.3.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
|
|
126
|
+
yearn_treasury-0.1.3.dist-info/entry_points.txt,sha256=SNx2hP429dAQDEjY93mQADPgbPbdSRKoF8mUUtvH3g8,60
|
|
127
|
+
yearn_treasury-0.1.3.dist-info/top_level.txt,sha256=m6UZasCg7vJZr-GyXS_TRPPIzcC2n18kr8ZKdr4qu4Q,37
|
|
128
|
+
yearn_treasury-0.1.3.dist-info/RECORD,,
|
|
Binary file
|
|
Binary file
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
3ddd27aee2f79379b6d9__mypyc.cp311-win_amd64.pyd,sha256=b--cr3WjB3FJqyFHqUtMSArolKkIxpAqVvCgOUO_KwM,225280
|
|
2
|
-
yearn_treasury/__init__.py,sha256=4YhAUAg86ochbQM0Lt01Oi-npqI5qoNcyNg24oXjVKY,122
|
|
3
|
-
yearn_treasury/_db.py,sha256=sVOSdEYtKrd6cDWMYtEtfCuYgi7_Rbsaw2HeJSyf45Q,916
|
|
4
|
-
yearn_treasury/_ens.cp311-win_amd64.pyd,sha256=HaGLgPW56do2yuPEIg4Dr3M9n7Sa6C45ssw97gyPT6c,10752
|
|
5
|
-
yearn_treasury/_ens.py,sha256=gLRPQ4WcA_sYp9tMZOo6gV4I4u3uYEa_iDLU6OZMyS0,541
|
|
6
|
-
yearn_treasury/addresses.yaml,sha256=9waThZzuHq6T9eafo20kWu3baPrd69ZnYwOqLDCm33s,1120
|
|
7
|
-
yearn_treasury/constants.py,sha256=R_x6KxdiXF_O_3FGGp_61mUHVCP2SUjhg92UV4if7e4,3002
|
|
8
|
-
yearn_treasury/main.py,sha256=9-pog7INFO7pTuW8v9FvVTtw5gWoW7Ni9Q5FU-6S330,4469
|
|
9
|
-
yearn_treasury/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
10
|
-
yearn_treasury/shitcoins.py,sha256=YO50RoeeClgVBbeed-9Ud8QDiRWTOKfJp1XSCdDjk9M,2615
|
|
11
|
-
yearn_treasury/vaults.cp311-win_amd64.pyd,sha256=qPmQnkDsPyQXAAg8BiKwgyGZKUzd2DQylHx47VE_KAQ,10752
|
|
12
|
-
yearn_treasury/vaults.py,sha256=VQExTUzKtJsmSUobLBfwUSx4gtjepVbf8Mpji_eICSc,1274
|
|
13
|
-
yearn_treasury/budget/__init__.cp311-win_amd64.pyd,sha256=5QBVjUBt-PbkAVgkqJWs2xpw7LWH-uKzvFLIFIF1miw,10752
|
|
14
|
-
yearn_treasury/budget/__init__.py,sha256=zWHguc1rbmSc5pYyTVUDrp8Go7FcZLKU7kIcDa9w8P8,250
|
|
15
|
-
yearn_treasury/budget/_request.cp311-win_amd64.pyd,sha256=LBDc8rxnzlYkh2Q6UV-w-scA1eE53mnpxWt8772Prpg,10752
|
|
16
|
-
yearn_treasury/budget/_request.py,sha256=ZAxsN-9WnvwD4MFIfgEbCp6B4bSyi5KDf-d99X4t2ug,795
|
|
17
|
-
yearn_treasury/budget/_requests.cp311-win_amd64.pyd,sha256=xoAKw7oVnpDZiqFEK2WuD7AfzR7k25TS7_2JDy0eSBQ,10752
|
|
18
|
-
yearn_treasury/budget/_requests.py,sha256=xuhWwJOwkWSN2vMXAwTnKRji7An7PgQI_xjQKTs-D9E,2630
|
|
19
|
-
yearn_treasury/rules/__init__.py,sha256=Nu7nzPUl1hutAMfTAqlAm1V1a8qO2wFoornMBbTH_SA,282
|
|
20
|
-
yearn_treasury/rules/constants.cp311-win_amd64.pyd,sha256=syB13U5KLHJ_7vR95V8fuGQv19YdteXKMHoIVCNzYXI,10752
|
|
21
|
-
yearn_treasury/rules/constants.py,sha256=LYme6yibxVEZR5CxTZkD0GOyjHO8HspPyDtQnwlOSzE,563
|
|
22
|
-
yearn_treasury/rules/cost_of_revenue/__init__.py,sha256=rWPI3t4FRk_QCkdA5fDmgEKRU3p9JACoQbn184AxGD8,56
|
|
23
|
-
yearn_treasury/rules/cost_of_revenue/gas.cp311-win_amd64.pyd,sha256=zFB2Z9CJelhFxbZ0NFk9xTHpRnR4Gsi3e-e-REqg77E,10752
|
|
24
|
-
yearn_treasury/rules/cost_of_revenue/gas.py,sha256=SKhYHRVaEuzD--nNLGrpyA5-5TRg8NBqP1Q4_paDAd4,2015
|
|
25
|
-
yearn_treasury/rules/cost_of_revenue/match_on_hash.yaml,sha256=Z7r1CIDzNsSoLWpmUUbXonqE4Vzo0-u8RzISDQGJmNk,562
|
|
26
|
-
yearn_treasury/rules/expense/__init__.cp311-win_amd64.pyd,sha256=gBzyWo3EyDS3RrH7N2_tLWGTp2JG80Hp-bUxuteiOJA,10752
|
|
27
|
-
yearn_treasury/rules/expense/__init__.py,sha256=3YzO4g2TOCNg4oWGd7nfWkl18J1A6nmqQF7zezLND8E,215
|
|
28
|
-
yearn_treasury/rules/expense/general.cp311-win_amd64.pyd,sha256=DT4u7rnqxGh5bmPtMETZ4HQb5Xi4tkQWlUqXBk2g0Dk,10752
|
|
29
|
-
yearn_treasury/rules/expense/general.py,sha256=Ale0ignb0wDN8RyyhMND3j7SUc4bLi39kmSVP-wsmus,377
|
|
30
|
-
yearn_treasury/rules/expense/infrastructure.cp311-win_amd64.pyd,sha256=mZuHaZzsdqqU-xZu62F1oZsTM2uQVH4yEgf95lUaIEY,10752
|
|
31
|
-
yearn_treasury/rules/expense/infrastructure.py,sha256=VArqShD8d6nV9X-X223O5E_qc_j0dOKcEbich7-zFaQ,1480
|
|
32
|
-
yearn_treasury/rules/expense/match_on_hash.yaml,sha256=XVYA55_0qW8X99VOM7ojD6ttqW4fgnljXiQlaFU0c7Q,2770
|
|
33
|
-
yearn_treasury/rules/expense/match_on_to_address.yaml,sha256=zq0AB0TD2k87jQ39ZtUZNSyspuvzJy80fvcDh102zMI,213
|
|
34
|
-
yearn_treasury/rules/expense/people.cp311-win_amd64.pyd,sha256=E-9bJwDcaGhzqngD99KrOqnqKXS4EDnThZ8l_tk_9TY,10752
|
|
35
|
-
yearn_treasury/rules/expense/people.py,sha256=7kfHD8NzJPjvDZUfMTeQ82j5_4MgMrrlK3LAZXbl2t8,1988
|
|
36
|
-
yearn_treasury/rules/expense/security.cp311-win_amd64.pyd,sha256=vpmGtW6bjOFvCcm8Nk6puQZzAT9dSLN10ZJDcJ-BK8k,10752
|
|
37
|
-
yearn_treasury/rules/expense/security.py,sha256=Uvt2glQEEgrD7NWauS4SerFtrD_4CKiKmgu92Grl2Tw,4209
|
|
38
|
-
yearn_treasury/rules/ignore/__init__.py,sha256=EGKNN73mjx4wAuUCwsBQlUnfvHIyM68gbmvkDOSiZyU,296
|
|
39
|
-
yearn_treasury/rules/ignore/general.py,sha256=6bh1ZzPFDoDO_spknOGcf2R5QpAxnI5gf8P-_Foq0zI,432
|
|
40
|
-
yearn_treasury/rules/ignore/maker.py,sha256=u-p2dlOBEA2lMAmhXayHm-rcjt_zAgQ5V6JRKpNQUlM,2674
|
|
41
|
-
yearn_treasury/rules/ignore/staking.py,sha256=RamaHJyGSmQZHzUEBIKemPIbeAMiUN4toW36AuxakiA,3793
|
|
42
|
-
yearn_treasury/rules/ignore/weth.py,sha256=gxvklgspVWzxdzxD-S5u7Ux0jOMLPzIOb0uRYVOlqjs,1256
|
|
43
|
-
yearn_treasury/rules/ignore/ygov.py,sha256=XioDvPA0wLtwvJ_Rdf1QRUa-ZhFvrZP7Jc0IFwfsfTM,422
|
|
44
|
-
yearn_treasury/rules/ignore/swaps/__init__.py,sha256=jqagRIYHEk00x6lVS-Lqf8j_K7DnXWyN9sfVNN8lTYA,336
|
|
45
|
-
yearn_treasury/rules/ignore/swaps/_skip_tokens.py,sha256=_ZtBUDgYmuAeqggA6QwiX1gUwaaPocXQWbkoHnI3s9o,161
|
|
46
|
-
yearn_treasury/rules/ignore/swaps/aave.py,sha256=7K2D2m6xaqdR3QxSOS0eoA-tWfD3yQCQeA-fo8NXWFQ,1659
|
|
47
|
-
yearn_treasury/rules/ignore/swaps/compound.py,sha256=Mk_dCzagrFXmIL6K-1OLItsWROv390frjIg2JvOe49Y,1648
|
|
48
|
-
yearn_treasury/rules/ignore/swaps/uniswap.py,sha256=qE_PKBfp7s0vdC6DOTE9bI-QGwPb9N0numYOu-F_GQ8,11998
|
|
49
|
-
yearn_treasury/rules/other_expense/__init__.cp311-win_amd64.pyd,sha256=TNS_fudZFUxkQHO6YdJ-M-31KLzmHHSODcc1BoWTtDo,10752
|
|
50
|
-
yearn_treasury/rules/other_expense/__init__.py,sha256=q2R0-RfcOcTPr90KNwoKg9j2nJbZJh50jzXiIL9N5lY,337
|
|
51
|
-
yearn_treasury/rules/other_expense/boost.cp311-win_amd64.pyd,sha256=tylkDZ_a7q8iMMDHzvxtZMnEBE0dcr4biheLxs9iruk,10752
|
|
52
|
-
yearn_treasury/rules/other_expense/boost.py,sha256=Ptd1Y-FI_pdNtQNavt4BMDw725kbvADirCva1ig4TQg,2741
|
|
53
|
-
yearn_treasury/rules/other_expense/bugs.cp311-win_amd64.pyd,sha256=ngiZh_Hp_kBkGTdU7qROMNakbLE5_uGW6aVrTHF4bUw,10752
|
|
54
|
-
yearn_treasury/rules/other_expense/bugs.py,sha256=fxmOni4vM1D5hOkUVeQ-aIpIax015cF9W_Dt5zLvS1U,3095
|
|
55
|
-
yearn_treasury/rules/other_expense/dyfi.cp311-win_amd64.pyd,sha256=WZHVKDrWEnywkpIOdKDFDxMgK1R1TyumH4loHUbARJA,10752
|
|
56
|
-
yearn_treasury/rules/other_expense/dyfi.py,sha256=xDTJlEywuYffKTBOdBlI0XeC4ZJw9wr4XWqgRc02mZg,948
|
|
57
|
-
yearn_treasury/rules/other_expense/events.cp311-win_amd64.pyd,sha256=UK5wr30BlDGRzlJnQQzy5xKeFvOSGrwW8R5ZWUA0Ntw,10752
|
|
58
|
-
yearn_treasury/rules/other_expense/events.py,sha256=EOLb5KUe7iRQx1J3xJ2MIEuork2mzrVvzgafqFLzM0Q,378
|
|
59
|
-
yearn_treasury/rules/other_expense/match_on_hash.yaml,sha256=t5uQPm5ShPJ54ehAQXotcLym-ttyvvqUy-Qr3HmkazY,2568
|
|
60
|
-
yearn_treasury/rules/other_expense/match_on_to_address.yaml,sha256=U8-elNBy2s15GhpCK2bM1bPEuF9rOhOKvgRvvkJJQHI,213
|
|
61
|
-
yearn_treasury/rules/other_expense/misc.cp311-win_amd64.pyd,sha256=BoVgae7PY-w8-nHge7Ro5muG_lK2GjnUOyS57dgxHpE,10752
|
|
62
|
-
yearn_treasury/rules/other_expense/misc.py,sha256=WwhLnf4EqYgMaiBa-GYiR2v8ih6EufcT8XRbZV788mk,807
|
|
63
|
-
yearn_treasury/rules/other_expense/revshare.cp311-win_amd64.pyd,sha256=ukJ6jgAJXqRVs536KMZQ5kTbiZtBob3CasHwr7wzP3I,10752
|
|
64
|
-
yearn_treasury/rules/other_expense/revshare.py,sha256=PPihhs6TjeTCiRtWAAE-RO2rFIKmPA3f6--UYXi6p2I,531
|
|
65
|
-
yearn_treasury/rules/other_income/__init__.cp311-win_amd64.pyd,sha256=UtAZk6riErxFNPmG8RgcrLmJQjf3J9FiSbm_BZPXmfY,10752
|
|
66
|
-
yearn_treasury/rules/other_income/__init__.py,sha256=r-7EW79TJ2EyLiZPi6MKZ5VTznpPBn8KA-p2ugAB08E,2525
|
|
67
|
-
yearn_treasury/rules/other_income/match_on_hash.yaml,sha256=GWBg4ul5JzMWsbVPXy3dcDA8Okao7bDmwzvnIpQ1GSM,1090
|
|
68
|
-
yearn_treasury/rules/revenue/__init__.py,sha256=OsK33eSraGuaE2dcfMsmShUWSH0BQnACIVHsZ_2G6Ok,313
|
|
69
|
-
yearn_treasury/rules/revenue/bribes.cp311-win_amd64.pyd,sha256=Iwj4OjeVr4fglRWetFVQ1YVjG17MFLPYq4xIsvoWEWM,10752
|
|
70
|
-
yearn_treasury/rules/revenue/bribes.py,sha256=oS5oWXNv8ScOH5ypKTdM4-bn9lF5XQ7p-gVSZZYk0Js,603
|
|
71
|
-
yearn_treasury/rules/revenue/farming.cp311-win_amd64.pyd,sha256=m14hz4FkTbUbuTqU9Rs9FYHMIdVRXd-9DS3171uysVw,10752
|
|
72
|
-
yearn_treasury/rules/revenue/farming.py,sha256=sACJwLdQb8TpWU4v7lAwuSuRY_BkXja1QmeO_z036rQ,1895
|
|
73
|
-
yearn_treasury/rules/revenue/keepcoins.cp311-win_amd64.pyd,sha256=mRLUcp6uq94rE9HjpkvGnisFZq5RaTxaB-XKT5WV1QY,10752
|
|
74
|
-
yearn_treasury/rules/revenue/keepcoins.py,sha256=DYs0GzewhkO9LkgmAscqQUSQxi80R18vN-_8Gg_CMxk,2037
|
|
75
|
-
yearn_treasury/rules/revenue/match_on_hash.yaml,sha256=RjfnJygGXNFTFzXO7ClX_EpXovu2QUrDQ9Dw4EbRAFs,167
|
|
76
|
-
yearn_treasury/rules/revenue/seasolver.cp311-win_amd64.pyd,sha256=hq48uWSv5tRdRfKslBAwSrCNInFG_KOLnRkA492_IHM,10752
|
|
77
|
-
yearn_treasury/rules/revenue/seasolver.py,sha256=w2OrfbmIKzuR6FlRhUYXAlO2Z076_vO8gTlzcLyQrUg,782
|
|
78
|
-
yearn_treasury/rules/revenue/vaults.py,sha256=FDQMvHj6mpAFp7c8OdeA1K2qzriExgrm1CxpDZdhajo,5543
|
|
79
|
-
yearn_treasury/rules/revenue/yteams.cp311-win_amd64.pyd,sha256=5EWkrUW39lUoQ8gy0-eDckobaerYYVRPR4QUILLCNgw,10752
|
|
80
|
-
yearn_treasury/rules/revenue/yteams.py,sha256=K3QgNf8kz5mU97IU6rtXRV8gz0Gr69XhzyyyYo92BmE,637
|
|
81
|
-
yearn_treasury-0.0.15.dist-info/METADATA,sha256=LIMyI_9zORpvenDwz9uDfd_27cQz4yZgnCuHz_NX158,2808
|
|
82
|
-
yearn_treasury-0.0.15.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
|
|
83
|
-
yearn_treasury-0.0.15.dist-info/entry_points.txt,sha256=SNx2hP429dAQDEjY93mQADPgbPbdSRKoF8mUUtvH3g8,60
|
|
84
|
-
yearn_treasury-0.0.15.dist-info/top_level.txt,sha256=DRHIYdT5QSNnMHq30n0AJsuLrhlNsmRdzP4akYBAAlI,43
|
|
85
|
-
yearn_treasury-0.0.15.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|