yearn-treasury 0.0.39__cp310-cp310-win32.whl → 0.0.46__cp310-cp310-win32.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.

Files changed (72) hide show
  1. yearn_treasury/_db.cp310-win32.pyd +0 -0
  2. yearn_treasury/_ens.cp310-win32.pyd +0 -0
  3. yearn_treasury/_logging.cp310-win32.pyd +0 -0
  4. yearn_treasury/_logging.py +2 -0
  5. yearn_treasury/address_labels.yaml +6 -0
  6. yearn_treasury/budget/__init__.cp310-win32.pyd +0 -0
  7. yearn_treasury/budget/_request.cp310-win32.pyd +0 -0
  8. yearn_treasury/budget/_requests.cp310-win32.pyd +0 -0
  9. yearn_treasury/main.py +43 -22
  10. yearn_treasury/rules/constants.cp310-win32.pyd +0 -0
  11. yearn_treasury/rules/cost_of_revenue/gas.cp310-win32.pyd +0 -0
  12. yearn_treasury/rules/expense/__init__.cp310-win32.pyd +0 -0
  13. yearn_treasury/rules/expense/general.cp310-win32.pyd +0 -0
  14. yearn_treasury/rules/expense/infrastructure.cp310-win32.pyd +0 -0
  15. yearn_treasury/rules/expense/people.cp310-win32.pyd +0 -0
  16. yearn_treasury/rules/expense/security.cp310-win32.pyd +0 -0
  17. yearn_treasury/rules/ignore/general.cp310-win32.pyd +0 -0
  18. yearn_treasury/rules/ignore/swaps/__init__.py +1 -0
  19. yearn_treasury/rules/ignore/swaps/aave.py +15 -8
  20. yearn_treasury/rules/ignore/swaps/auctions.cp310-win32.pyd +0 -0
  21. yearn_treasury/rules/ignore/swaps/auctions.py +31 -0
  22. yearn_treasury/rules/ignore/swaps/compound.py +28 -18
  23. yearn_treasury/rules/ignore/swaps/conversion_factory.cp310-win32.pyd +0 -0
  24. yearn_treasury/rules/ignore/swaps/cowswap.py +16 -13
  25. yearn_treasury/rules/ignore/swaps/curve.py +41 -13
  26. yearn_treasury/rules/ignore/swaps/gearbox.cp310-win32.pyd +0 -0
  27. yearn_treasury/rules/ignore/swaps/iearn.cp310-win32.pyd +0 -0
  28. yearn_treasury/rules/ignore/swaps/iearn.py +4 -4
  29. yearn_treasury/rules/ignore/swaps/otc.cp310-win32.pyd +0 -0
  30. yearn_treasury/rules/ignore/swaps/pooltogether.cp310-win32.pyd +0 -0
  31. yearn_treasury/rules/ignore/swaps/synthetix.cp310-win32.pyd +0 -0
  32. yearn_treasury/rules/ignore/swaps/uniswap.py +26 -6
  33. yearn_treasury/rules/ignore/swaps/unwrapper.cp310-win32.pyd +0 -0
  34. yearn_treasury/rules/ignore/swaps/vaults.cp310-win32.pyd +0 -0
  35. yearn_treasury/rules/ignore/swaps/vaults.py +8 -7
  36. yearn_treasury/rules/ignore/swaps/woofy.cp310-win32.pyd +0 -0
  37. yearn_treasury/rules/ignore/swaps/yfi.cp310-win32.pyd +0 -0
  38. yearn_treasury/rules/ignore/swaps/yfi.py +2 -1
  39. yearn_treasury/rules/ignore/swaps/yla.cp310-win32.pyd +0 -0
  40. yearn_treasury/rules/ignore/unit.cp310-win32.pyd +0 -0
  41. yearn_treasury/rules/ignore/weth.cp310-win32.pyd +0 -0
  42. yearn_treasury/rules/ignore/ygov.cp310-win32.pyd +0 -0
  43. yearn_treasury/rules/other_expense/__init__.cp310-win32.pyd +0 -0
  44. yearn_treasury/rules/other_expense/boost.cp310-win32.pyd +0 -0
  45. yearn_treasury/rules/other_expense/bugs.cp310-win32.pyd +0 -0
  46. yearn_treasury/rules/other_expense/donations.cp310-win32.pyd +0 -0
  47. yearn_treasury/rules/other_expense/dyfi.cp310-win32.pyd +0 -0
  48. yearn_treasury/rules/other_expense/events.cp310-win32.pyd +0 -0
  49. yearn_treasury/rules/other_expense/misc.cp310-win32.pyd +0 -0
  50. yearn_treasury/rules/other_expense/revshare.cp310-win32.pyd +0 -0
  51. yearn_treasury/rules/other_income/__init__.cp310-win32.pyd +0 -0
  52. yearn_treasury/rules/other_income/airdrops.cp310-win32.pyd +0 -0
  53. yearn_treasury/rules/other_income/misc.cp310-win32.pyd +0 -0
  54. yearn_treasury/rules/other_income/misc.py +1 -1
  55. yearn_treasury/rules/revenue/bribes.cp310-win32.pyd +0 -0
  56. yearn_treasury/rules/revenue/farming.cp310-win32.pyd +0 -0
  57. yearn_treasury/rules/revenue/keepcoins.cp310-win32.pyd +0 -0
  58. yearn_treasury/rules/revenue/seasolver.cp310-win32.pyd +0 -0
  59. yearn_treasury/rules/revenue/vaults.py +13 -9
  60. yearn_treasury/rules/revenue/yteams.cp310-win32.pyd +0 -0
  61. yearn_treasury/shitcoins.py +7 -0
  62. yearn_treasury/vaults.cp310-win32.pyd +0 -0
  63. yearn_treasury/vaults.py +3 -4
  64. yearn_treasury/yteams.py +208 -0
  65. {yearn_treasury-0.0.39.dist-info → yearn_treasury-0.0.46.dist-info}/METADATA +2 -3
  66. {yearn_treasury-0.0.39.dist-info → yearn_treasury-0.0.46.dist-info}/RECORD +70 -65
  67. yearn_treasury-0.0.46.dist-info/top_level.txt +2 -0
  68. yearn_treasury__mypyc.cp310-win32.pyd +0 -0
  69. 4536608332a31e0815c4__mypyc.cp310-win32.pyd +0 -0
  70. yearn_treasury-0.0.39.dist-info/top_level.txt +0 -2
  71. {yearn_treasury-0.0.39.dist-info → yearn_treasury-0.0.46.dist-info}/WHEEL +0 -0
  72. {yearn_treasury-0.0.39.dist-info → yearn_treasury-0.0.46.dist-info}/entry_points.txt +0 -0
@@ -104,7 +104,8 @@ def is_buying_with_auction(tx: TreasuryTx) -> bool:
104
104
  if tx.from_address != receiver:
105
105
  print(f"Transfer does not match auction taker: taker={tx.from_address.address} transfer={receiver}") # type: ignore [union-attr]
106
106
  continue
107
- if amount == event["taken"]: # type: ignore [call-overload]
107
+ # TODO get rid of this rounding once we've swapped out sqlite for postgres
108
+ if round(amount, 14) == round(event["taken"], 14): # type: ignore [call-overload]
108
109
  return True
109
110
  print(f"AuctionTaken: {event} amount does not match Transfer: {transfer}")
110
111
  return False
@@ -29,7 +29,7 @@ async def is_robovault_share(tx: TreasuryTx) -> bool:
29
29
  return False
30
30
 
31
31
  try:
32
- strat = await Contract.coroutine(tx.from_address.address)
32
+ strat = await tx.from_address.contract_coro
33
33
  except ContractNotVerified:
34
34
  return False
35
35
  else:
@@ -1,5 +1,6 @@
1
+ from decimal import Decimal
1
2
  from logging import getLogger
2
- from typing import Final, Optional
3
+ from typing import Final, Optional, cast
3
4
 
4
5
  from dao_treasury import TreasuryTx, revenue
5
6
  from eth_typing import ChecksumAddress
@@ -55,7 +56,7 @@ async def _get_controller(vault: Contract) -> Contract:
55
56
 
56
57
  @fees("Vaults V1", Network.Mainnet)
57
58
  async def is_v1_vault_fees(tx: TreasuryTx) -> bool:
58
- token = tx.token.address.address
59
+ token = tx.token_address
59
60
 
60
61
  # Fees from single-sided strategies are not denominated in `vault.token` but everything else is
61
62
  is_single_sided = _is_single_sided(tx)
@@ -85,7 +86,9 @@ async def is_v1_vault_fees(tx: TreasuryTx) -> bool:
85
86
  return False
86
87
 
87
88
 
88
- def is_inverse_fees_from_stash_contract(from_address: str, to_nickname: str) -> bool:
89
+ def is_inverse_fees_from_stash_contract(
90
+ from_address: ChecksumAddress, to_nickname: str | None
91
+ ) -> bool:
89
92
  return (
90
93
  from_address == "0xE376e8e8E3B0793CD61C6F1283bA18548b726C2e"
91
94
  and to_nickname == "Token: Curve stETH Pool yVault"
@@ -94,18 +97,19 @@ def is_inverse_fees_from_stash_contract(from_address: str, to_nickname: str) ->
94
97
 
95
98
  @fees("Vaults V2")
96
99
  async def is_v2_vault_fees(tx: TreasuryTx) -> bool:
97
- token = tx.token.address.address
98
- from_address = tx.from_address.address
100
+ token = tx.token_address
101
+ from_address = cast(ChecksumAddress, tx.from_address.address)
99
102
  if (
100
103
  from_address == token
101
- and (vault := v2.get(from_address)) # type: ignore [arg-type]
104
+ and (vault := v2.get(from_address))
102
105
  and tx.to_address == await vault.rewards.coroutine(block_identifier=tx.block)
103
106
  ):
104
107
  return True
105
108
 
106
- if is_inverse_fees_from_stash_contract(from_address, tx.to_nickname): # type: ignore [arg-type]
107
- if tx.value_usd > 0: # type: ignore [operator]
108
- tx.value_usd *= -1 # type: ignore [operator]
109
+ if is_inverse_fees_from_stash_contract(from_address, tx.to_nickname):
110
+ value_usd = cast(Decimal, tx.value_usd)
111
+ if value_usd > 0:
112
+ tx.value_usd = -value_usd
109
113
  return True
110
114
 
111
115
  return False
@@ -54,6 +54,9 @@ _SHITCOINS: Final = {
54
54
  "0xe2549E429B78458fa60BC7B1b284d4411E1D5105",
55
55
  "0xCfdD747d041397bcE08B0Fe6ebF7Ef65E9F46795",
56
56
  "0x9745969171a38B40db05c506fe2DA2C36f317627",
57
+ "0x6051C1354Ccc51b4d561e43b02735DEaE64768B8",
58
+ "0xf0814d0E47F2390a8082C4a1BD819FDDe50f9bFc",
59
+ "0x2DBd330bC9B7f3A822a9173aB52172BdDDcAcE2A",
57
60
  # just andre tinkering
58
61
  "0x5cB5e2d7Ab9Fd32021dF8F1D3E5269bD437Ec3Bf",
59
62
  # these arent shitcoins per se but we can't price them and dont expect to in the future, lets save cpu cycles
@@ -80,6 +83,8 @@ _SHITCOINS: Final = {
80
83
  "0xdE56173463d6461001B0891bC90DB224965f5762", # MAGNUS
81
84
  "0x922824A5b3B3D5f4485fF52F4Ab7Cba5eA491874", # POSEIDON
82
85
  "0x84F7D2f6FB447Bb11d3E7Ce64D83e1c02c2F3078", # VIRTUAL
86
+ "0x5C6Ed14E1017cf75C237A4A4b93Ce1D2f83EB002", # GRVT
87
+ "0xf76E6eFf109258fd5F52823d9F9feE7c90C97251", # wkeyDAO
83
88
  # test token?
84
89
  "0x372d5d02c6b4075bd58892f80300cA590e92d29E", # tOUSG
85
90
  # dETH? don't think this is needed
@@ -106,6 +111,8 @@ _SHITCOINS: Final = {
106
111
  "0xc83377b9eE3CEe4Cc03CCd58AfdE1FB12864aEE3", # E AI
107
112
  "0x927402ab67c0CDA3c187E9DFE34554AC581441f2", # SAITABIT
108
113
  "0x691539810DF6e879A377C24CfEE130BBE92708d8", # NVIDIA AI
114
+ "0xdC82aC0A89197854cb2240FaBF7E7760a4fF4d9e", # NVIDIA
115
+ "0x5Fba8ea5A559CF5c99BA6dd884Ae17C1d621fE5B", # OSCAR AI
109
116
  # matt furry spam
110
117
  "0x73228b3D33cC71cB721Fc62950577bE63bd9c8C9", # Maskman by Matt Furie
111
118
  "0x7c28e66436C93BB9F657dDF2BA0eeeCf61369b92", # Bloodboy by Matt Furie
Binary file
yearn_treasury/vaults.py CHANGED
@@ -12,7 +12,7 @@ Key Responsibilities:
12
12
  - Provide lookup tables for use in vault deposit/withdrawal sort rules.
13
13
  """
14
14
 
15
- from typing import Dict, Final, List
15
+ from typing import Dict, Final
16
16
 
17
17
  from brownie import chain
18
18
  from eth_typing import ChecksumAddress
@@ -41,11 +41,10 @@ if chain.id == Network.Mainnet:
41
41
 
42
42
  # TODO: make resolve_ens util in eth-port and refactor this out
43
43
  v2_registries = [
44
- event["newAddress"].hex() # type: ignore [attr-defined]
45
- for event in Events(addresses=resolver, topics=topics).events(now)
44
+ event["newAddress"].hex() for event in Events(addresses=resolver, topics=topics).events(now)
46
45
  ]
47
46
 
48
47
  for event in Events(addresses=list(map(str, v2_registries))).events(now):
49
48
  if event.name == "NewVault":
50
49
  vault_address = event["vault"]
51
- v2[vault_address] = Contract(vault_address) # type: ignore [index]
50
+ v2[vault_address] = Contract(vault_address)
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yearn_treasury
3
- Version: 0.0.39
3
+ Version: 0.0.46
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
@@ -15,8 +15,7 @@ Classifier: Operating System :: OS Independent
15
15
  Classifier: Topic :: Software Development :: Libraries
16
16
  Requires-Python: >=3.10,<3.13
17
17
  Description-Content-Type: text/markdown
18
- Requires-Dist: dao-treasury<0.1,>=0.0.55
19
- Requires-Dist: eth-brownie<1.23,>=1.21.0
18
+ Requires-Dist: dao-treasury==0.0.68
20
19
  Requires-Dist: faster-async-lru<3,>=2.0.5
21
20
  Dynamic: classifier
22
21
  Dynamic: description
@@ -1,123 +1,128 @@
1
- 4536608332a31e0815c4__mypyc.cp310-win32.pyd,sha256=UysNUhoiYwfSedtH7k33hxHdktslPe4bXErHlmFtg5Q,343552
1
+ yearn_treasury__mypyc.cp310-win32.pyd,sha256=41Ki1FEwansDCyamoMFoKpgv4sE0f7NJEH9006kIPDw,374784
2
2
  yearn_treasury/__init__.py,sha256=1G3sqPVtNq0SsOCLXjZ8NOMiRYfdQZuRezMEpyrNjmU,426
3
- yearn_treasury/_db.cp310-win32.pyd,sha256=rt3hWfVjeay4b5JCha0yi4OY4yxd13XwbBivBSCMuJ0,9216
3
+ yearn_treasury/_db.cp310-win32.pyd,sha256=PvwdEyKOhp_VOSFyBmpHakK08q3UE-0YICq1SmhjqIY,9216
4
4
  yearn_treasury/_db.py,sha256=L5DQolJAx1gg2FAJxEocgiJUVuhWV7zJw4p676dwPvQ,1616
5
- yearn_treasury/_ens.cp310-win32.pyd,sha256=LgHBaIODDi0pwrFJCUuzI8025jb8-iIZHcV1RMnkqo8,9216
5
+ yearn_treasury/_ens.cp310-win32.pyd,sha256=7ty35RfdLuf7oODmoGCC0lB4SSPnENPP2x7bdAeIQH4,9216
6
6
  yearn_treasury/_ens.py,sha256=oBn-R1n8dLnM93xsq08p1jYPZRQez9ISVVXS0nJNuSc,1068
7
- yearn_treasury/_logging.cp310-win32.pyd,sha256=AOCOkvL_rpWfjt6ZfgBqVZS3gDXfV-fckipUh1ACLt0,9216
8
- yearn_treasury/_logging.py,sha256=LsdAbcFYDSzNznLZCpvJ7X68KXhiGb4hSU3-KyPK7vw,1704
9
- yearn_treasury/address_labels.yaml,sha256=kJpLwKyAgzFQYhJHvU0m3B-suWKXBjt0s0tEQB23ve0,1275
7
+ yearn_treasury/_logging.cp310-win32.pyd,sha256=VoBuxgQNaX-Tby2yBkUw0VIIAe_FYYBu0v-_dEC1aPk,9216
8
+ yearn_treasury/_logging.py,sha256=I4nWIxBC1ApCnSCS2vVztF-kl6LoGf0_yVxeBYF07Pw,1829
9
+ yearn_treasury/address_labels.yaml,sha256=R8XC7ATHxLxfR8g1Rl4YDXyOyO8w5a08iw-9_y50XuU,1529
10
10
  yearn_treasury/constants.py,sha256=kz9lYQv3Z-O8YI3xfzwa__1FYI7TcTqMXMMwCKjg0UQ,3722
11
- yearn_treasury/main.py,sha256=vV6dG9K7aqHcPsoEwjh02XOhbXw7ZXQSbHHPXRybzFo,5254
11
+ yearn_treasury/main.py,sha256=4ZWK926ujBOScRJ5QANMK8JMje6FEDAOXgNSLs8WlWc,6653
12
12
  yearn_treasury/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
13
- yearn_treasury/shitcoins.py,sha256=5AAYcmIq0qgspNcqxV91M5AgbYaUXEctS7n43SAKNxY,7274
14
- yearn_treasury/vaults.py,sha256=igDI8uCe_WMmu9kl92EuBodbCH-v0uD1oBWf9A1ZXhQ,1815
13
+ yearn_treasury/shitcoins.py,sha256=s08VMGosNXdQy-7SOQvRUonl99hUd9GnxSCrCwkqv98,7700
14
+ yearn_treasury/vaults.cp310-win32.pyd,sha256=Bj2yzu21f5mx_3aRuhp10PA1yI_miu6mPt2MVVrb5Hk,9216
15
+ yearn_treasury/vaults.py,sha256=xv7am1RxU_O4RuWbgV0-1IqIOA1rwsvoaV5jiSnxpPA,1745
15
16
  yearn_treasury/wallets.yaml,sha256=VP2A4S-W6R6k1yWDHM_ptrhNlO-dwXZhrJg0Bm8qz0w,1137
16
- yearn_treasury/budget/__init__.cp310-win32.pyd,sha256=axaAa3Y1c1yebsT3yw-Fcc8X5xsT5f2q4OPkQDIKacM,9216
17
+ yearn_treasury/yteams.py,sha256=8YWXEueHT4MajTVmRRIPYFmQs6AIR0zUSdS2x9usCts,8201
18
+ yearn_treasury/budget/__init__.cp310-win32.pyd,sha256=4aA3tGzdW8Q7BMSyp53n0qdIV0tbDwAoGbMvSulJpMc,9216
17
19
  yearn_treasury/budget/__init__.py,sha256=LY4Isom1ARgNwIpaz9W0ZUcbxHfzw3hC0eLVjLwHdFs,264
18
- yearn_treasury/budget/_request.cp310-win32.pyd,sha256=Z-AYOO2LjpYtRhR9018dlH0GV9b9W8uBB9U-qfDOwnA,9216
20
+ yearn_treasury/budget/_request.cp310-win32.pyd,sha256=nM5U0Lk8k8jb-tXp-aDL9vAvlxQlzMjGcdzYDrdxm0M,9216
19
21
  yearn_treasury/budget/_request.py,sha256=3yw_HKHBy8ePqQytGFLSao9TOoYTHsXqPnap6odrNjk,1054
20
- yearn_treasury/budget/_requests.cp310-win32.pyd,sha256=jkJ2AgiTFRiOuHjA0sm-xOug19JjVs3P0Z7vWPVU__s,9216
22
+ yearn_treasury/budget/_requests.cp310-win32.pyd,sha256=_C8Bcv6PYhPZvZt4WNrAaqBTVDyPzB7ATul14eAaCKc,9216
21
23
  yearn_treasury/budget/_requests.py,sha256=xhjf-Uj_1y2KMijrVrS_ZtSkLJUdww3W8LA7B2SNMKg,3541
22
24
  yearn_treasury/rules/__init__.py,sha256=MUwQaDL-f-S3AB_YS3H4k_6Y1VFgPjNsIIVXpL-9Gko,591
23
- yearn_treasury/rules/constants.cp310-win32.pyd,sha256=EC6ECjSKOFji7XPw09Naq0XEgiG5YSLzxhyo-BXRK3E,9216
25
+ yearn_treasury/rules/constants.cp310-win32.pyd,sha256=o1zpFBVJekPCsa-B3S8wB-rTzlNzpxMlE2XoXNAPvpA,9216
24
26
  yearn_treasury/rules/constants.py,sha256=LYme6yibxVEZR5CxTZkD0GOyjHO8HspPyDtQnwlOSzE,563
25
27
  yearn_treasury/rules/cost_of_revenue/__init__.py,sha256=rWPI3t4FRk_QCkdA5fDmgEKRU3p9JACoQbn184AxGD8,56
26
- yearn_treasury/rules/cost_of_revenue/gas.cp310-win32.pyd,sha256=-xF80JsBT03muRFvGYn4jzVTX4AeBUpWesbLRJkeFjU,9216
28
+ yearn_treasury/rules/cost_of_revenue/gas.cp310-win32.pyd,sha256=ruX1dcQuEUOKhe9OocAsuPnGwA5KhudPsZYOQFQq8t4,9216
27
29
  yearn_treasury/rules/cost_of_revenue/gas.py,sha256=WUJ6SN-xSwLveYjwPGbjmMh-V4XB7qLslYDrx792gFY,2290
28
30
  yearn_treasury/rules/cost_of_revenue/match_on_hash.yaml,sha256=Z7r1CIDzNsSoLWpmUUbXonqE4Vzo0-u8RzISDQGJmNk,562
29
- yearn_treasury/rules/expense/__init__.cp310-win32.pyd,sha256=bsi1e9kiiWsv2XockknQfb4P2m7lhOfy_7m9Y9U7IZs,9216
31
+ yearn_treasury/rules/expense/__init__.cp310-win32.pyd,sha256=x4dzgHh37y2zg7w7ujqSh-VjzhFuCZc698LekY3jIG8,9216
30
32
  yearn_treasury/rules/expense/__init__.py,sha256=3YzO4g2TOCNg4oWGd7nfWkl18J1A6nmqQF7zezLND8E,215
31
- yearn_treasury/rules/expense/general.cp310-win32.pyd,sha256=Ui357AB1C0BCtn7WwX4JtbrRcFkLzybd4rjlMKExba0,9216
33
+ yearn_treasury/rules/expense/general.cp310-win32.pyd,sha256=JWx-CFgxWtVIH2Q8mCg9iGQmCgd5ZghWvAnKllo5rcw,9216
32
34
  yearn_treasury/rules/expense/general.py,sha256=Ale0ignb0wDN8RyyhMND3j7SUc4bLi39kmSVP-wsmus,377
33
- yearn_treasury/rules/expense/infrastructure.cp310-win32.pyd,sha256=SkC34TgQ9qfAVYKpad68ue0WauC6HzP3eRR0-CydM24,9216
35
+ yearn_treasury/rules/expense/infrastructure.cp310-win32.pyd,sha256=K3m0Ns69RLYjHRLCi4XSnw3IJpqN3pRbeWuW5pn6B9Q,9216
34
36
  yearn_treasury/rules/expense/infrastructure.py,sha256=rU-HJLFnk-AvwQFRrwNuP1xWaYZMd16LiD97HXqJ9VA,1677
35
37
  yearn_treasury/rules/expense/match_on_hash.yaml,sha256=XVYA55_0qW8X99VOM7ojD6ttqW4fgnljXiQlaFU0c7Q,2770
36
38
  yearn_treasury/rules/expense/match_on_to_address.yaml,sha256=zq0AB0TD2k87jQ39ZtUZNSyspuvzJy80fvcDh102zMI,213
37
- yearn_treasury/rules/expense/people.cp310-win32.pyd,sha256=NGsWRp9kGgrav4RzQFo-AZutDPTLxE5_tQ5yAusBhzs,9216
39
+ yearn_treasury/rules/expense/people.cp310-win32.pyd,sha256=Ae98uGDFhHKc_01yH-evQMvnGb-1wDbbnPJJtq_PzM0,9216
38
40
  yearn_treasury/rules/expense/people.py,sha256=JKPAiCKHSBX2pqEZdWRt0yytI3kGcstskUz50K23EvE,3604
39
- yearn_treasury/rules/expense/security.cp310-win32.pyd,sha256=_1HAO0HAqNZZg4P1SRDFLqEfl7zdFI91kpuQPUn7Ic8,9216
41
+ yearn_treasury/rules/expense/security.cp310-win32.pyd,sha256=OwwIcXx85Jd-wsoMAQNtvqBNa7PRBK-AcGqxLOJYNhQ,9216
40
42
  yearn_treasury/rules/expense/security.py,sha256=uQVMejp_fptKHLeuaR7X9-Yh8Tgh125_qEGG7nzwi9s,4737
41
43
  yearn_treasury/rules/ignore/__init__.py,sha256=8Wuwv6JO4VeMx8U4trNo3ZP5z3ZBIgQk9eFbZxvskPQ,396
42
- yearn_treasury/rules/ignore/general.cp310-win32.pyd,sha256=El7ngZrcgoC76r2cdHoykvEz0_72uTR-UQBx10BRohk,9216
44
+ yearn_treasury/rules/ignore/general.cp310-win32.pyd,sha256=Qp4wc7NnPof4etUBmxdla8maG8NY_crVnL4sryIuGMs,9216
43
45
  yearn_treasury/rules/ignore/general.py,sha256=DJEvcZUgfsPlJADu_dmXrWGiUguuiXG2Tid7tKKMDjE,452
44
46
  yearn_treasury/rules/ignore/maker.py,sha256=Ll89KDgmBt3DcOxjk2GwfNROp3U4GKO0BM1UmXl1s0s,3549
45
47
  yearn_treasury/rules/ignore/passthru.py,sha256=TLy98IufuImGKiJahU7CD6plwTf0a76vBQQzc5M8SJc,12338
46
48
  yearn_treasury/rules/ignore/staking.py,sha256=RamaHJyGSmQZHzUEBIKemPIbeAMiUN4toW36AuxakiA,3793
47
- yearn_treasury/rules/ignore/unit.cp310-win32.pyd,sha256=wV9BrctVIiuYtSC6EXGfYUdHNFS-16iF5akxHvHXejg,9216
49
+ yearn_treasury/rules/ignore/unit.cp310-win32.pyd,sha256=sOvxzoPgliBKtqZyN3hLtadcIPaN3qVuBOyXAT3swbU,9216
48
50
  yearn_treasury/rules/ignore/unit.py,sha256=yAKzDrjbCBYyHGzNHAuF2U1r4Ru_59QXjRy4uVFDf38,1294
49
- yearn_treasury/rules/ignore/weth.cp310-win32.pyd,sha256=uQwNTaMJyrThUGxXeJY5TSwfRlvq2_ggQyaaLfn3_L8,9216
51
+ yearn_treasury/rules/ignore/weth.cp310-win32.pyd,sha256=vvVpGDkqUdLj1YyG6gm9Krr8TAd3rQ7vHEUSOL4o5IE,9216
50
52
  yearn_treasury/rules/ignore/weth.py,sha256=896V7Z5L553t0D02FZaj2c-y3QO-vN5ESWlIQzscfC4,1512
51
- yearn_treasury/rules/ignore/ygov.cp310-win32.pyd,sha256=st3P7LNAesqKdqXEsT5BgIRiq77JT57APlDWVBjfU2s,9216
53
+ yearn_treasury/rules/ignore/ygov.cp310-win32.pyd,sha256=AwGig2ujdxVEYP7uxuDCqDOe1VKiDhFOS1Wy1FvIVes,9216
52
54
  yearn_treasury/rules/ignore/ygov.py,sha256=XioDvPA0wLtwvJ_Rdf1QRUa-ZhFvrZP7Jc0IFwfsfTM,422
53
- yearn_treasury/rules/ignore/swaps/__init__.py,sha256=40vtp3J6wn2vp7ppLNU63-Z2LnJ36WDIhhwApp5HWzQ,1078
55
+ yearn_treasury/rules/ignore/swaps/__init__.py,sha256=EMtAV7n-EIIEnghH_0JJen--EbLb2L1aV6Z0nAyIOfA,1136
54
56
  yearn_treasury/rules/ignore/swaps/_skip_tokens.py,sha256=_ZtBUDgYmuAeqggA6QwiX1gUwaaPocXQWbkoHnI3s9o,161
55
- yearn_treasury/rules/ignore/swaps/aave.py,sha256=af6XlFbRrwF8CdkbrvmoT4zwkZf5fkg6dVuaFgpPc7w,2307
56
- yearn_treasury/rules/ignore/swaps/compound.py,sha256=2n0p-wAeBaOsotUu9etzzhBtExPepX80P84l-MLp9TU,1696
57
- yearn_treasury/rules/ignore/swaps/conversion_factory.cp310-win32.pyd,sha256=n095A5yY5FmgBschDyYKNmFdN2wxpFAmWbcAQjoAaHc,9216
57
+ yearn_treasury/rules/ignore/swaps/aave.py,sha256=JztS0Thqil5p15BO_ts-7MEqLHZ_lIQWjpNivRsgZS8,2890
58
+ yearn_treasury/rules/ignore/swaps/auctions.cp310-win32.pyd,sha256=8t3x4Y-f1uzXjd6zPJ_hHXVSuLJdDl0TGzqu-DymAGg,9216
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.cp310-win32.pyd,sha256=S4TPvHud6Dk4PUKZyXgBRI6v36vNO7k5E5UH_SDTQl0,9216
58
62
  yearn_treasury/rules/ignore/swaps/conversion_factory.py,sha256=eHD3koaUX9moWbRVNsenrwA-ABk7_SM2Q1-r9oZscKI,930
59
- yearn_treasury/rules/ignore/swaps/cowswap.py,sha256=thL9WgQJ9tDVFc5FaIY9HWw4Q3G6umBT7Fhnl6vP72M,3708
60
- yearn_treasury/rules/ignore/swaps/curve.py,sha256=ih1da_rHYON5_bPkPgj3fuCRbAYZpWfIqhCV-ObAyJo,5813
61
- yearn_treasury/rules/ignore/swaps/gearbox.cp310-win32.pyd,sha256=GVt4ZoWAWclfvSOXLMqfr9bgNZZCAi4CMmX0OvUE3bU,9216
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.cp310-win32.pyd,sha256=YvDBGj8Vk8nFtDv0yzVzU_k41IeTPi0eJ8g0pcaJZtE,9216
62
66
  yearn_treasury/rules/ignore/swaps/gearbox.py,sha256=mFxtrSPCQUi-U-tO7bRgdzLbG7DHISRaGWJplaLwJgY,1141
63
- yearn_treasury/rules/ignore/swaps/iearn.cp310-win32.pyd,sha256=kVFx94AJDmboOcGwshCdCuRyV9bdg5NNakX2RK1s6c8,9216
64
- yearn_treasury/rules/ignore/swaps/iearn.py,sha256=apyG-7hFbPZqgPBn4r6TKnZpFTL3iBOJSEbQi7EEQE8,1623
65
- yearn_treasury/rules/ignore/swaps/otc.cp310-win32.pyd,sha256=4zfUrsAvFSTfweGTkyAaH0-1VM88uiJUzAadP5Gh-3g,9216
67
+ yearn_treasury/rules/ignore/swaps/iearn.cp310-win32.pyd,sha256=mzNmAIR3zMKS7zRoSprTgJWttNfrasAY8VwYaN8KSUE,9216
68
+ yearn_treasury/rules/ignore/swaps/iearn.py,sha256=pdYpS5Py7vvMR7EpSTs9DQADeAyWo4E-gmRVOqfpjtU,1578
69
+ yearn_treasury/rules/ignore/swaps/otc.cp310-win32.pyd,sha256=34H_sUxDZQ4OuXJKGx22cY-BnCYL0xnNtDgWg3fR0kE,9216
66
70
  yearn_treasury/rules/ignore/swaps/otc.py,sha256=v0ztjqmxyO0GpebeaTAR-ycoOGd6_0zjTNljcj9eXWQ,2692
67
- yearn_treasury/rules/ignore/swaps/pooltogether.cp310-win32.pyd,sha256=-Q0DDzGbADtsDsErBRM2dhpvxe33MI4f39_eeqjQJoM,9216
71
+ yearn_treasury/rules/ignore/swaps/pooltogether.cp310-win32.pyd,sha256=bg4u_fS_fl93xB-sQbG5Scf0yHz-6Sqt0mSvCe_qUXo,9216
68
72
  yearn_treasury/rules/ignore/swaps/pooltogether.py,sha256=T42OdErDLoPV_hEEsxDz-Pa2pvIDvyRzMQnIprzRvw4,834
69
- yearn_treasury/rules/ignore/swaps/synthetix.cp310-win32.pyd,sha256=ivEO8UdrTgq7lp3f9rfqKFM-5Qy0MFewnioP3O5Oblw,9216
73
+ yearn_treasury/rules/ignore/swaps/synthetix.cp310-win32.pyd,sha256=PCsNnhglnhioFJSMwC0lUDibTSiCNG1EsEyWPJrEauM,9216
70
74
  yearn_treasury/rules/ignore/swaps/synthetix.py,sha256=USI34Jrfdjc9hKAvyy77m0JpXu0jvPJ-GTWTUNn_Te8,378
71
- yearn_treasury/rules/ignore/swaps/uniswap.py,sha256=ZQqOlx5A-jX4i6lUQfBc78fPhkfpAQg3DuPFNIJHt6o,12209
72
- yearn_treasury/rules/ignore/swaps/unwrapper.cp310-win32.pyd,sha256=c2xIOiPAQsUe2YO2_y0HBjEnKQSnu43PQ06cTMaioJw,9216
75
+ yearn_treasury/rules/ignore/swaps/uniswap.py,sha256=p6LqtiQRIFXBGw5hmY6Cppg286hAHLPW1xAF6OHpXug,13428
76
+ yearn_treasury/rules/ignore/swaps/unwrapper.cp310-win32.pyd,sha256=zAmW1KRRM4ciiYMiVZlr36M0lmZqLHJXS38xkOjhEaw,9216
73
77
  yearn_treasury/rules/ignore/swaps/unwrapper.py,sha256=FRVEq0jn7EWSp7Q_MvdJFLDXl-P2ujlVZXa1mqSvO0w,477
74
- yearn_treasury/rules/ignore/swaps/vaults.cp310-win32.pyd,sha256=BAYNV3ylxA1G2VNbE4UsHx8Kfim1w_1aJ6mGqk0pB6I,9216
75
- yearn_treasury/rules/ignore/swaps/vaults.py,sha256=MfjXLRsSMwDuiTGMftUABxfprs3FreAjl_nfqyJW51o,10982
76
- yearn_treasury/rules/ignore/swaps/woofy.cp310-win32.pyd,sha256=M25XP5xK65gKx08SkD5WSi_A-s0kT0bxjDj1CyymVHg,9216
78
+ yearn_treasury/rules/ignore/swaps/vaults.cp310-win32.pyd,sha256=dVk5pkO_uwmxOS3JOkZaElptKiilyyYJHC1y-vFNQKM,9216
79
+ yearn_treasury/rules/ignore/swaps/vaults.py,sha256=n1eyPZdphw8FQSVsUgki2UMpmG892iHpo4n6p265pB4,10908
80
+ yearn_treasury/rules/ignore/swaps/woofy.cp310-win32.pyd,sha256=n6bBsIZ5M2NICh39qUCBqD0LQuB9fp6OoP-GdNtIzyQ,9216
77
81
  yearn_treasury/rules/ignore/swaps/woofy.py,sha256=PWqrX7eH-IhD0PyhL-_zWEstDWNeC619gcnuFKp866U,3198
78
- yearn_treasury/rules/ignore/swaps/yfi.py,sha256=qNx4LbsWxYDjArJA9AF1w0UuS-061T9meKCdyt-RE2U,4752
79
- yearn_treasury/rules/ignore/swaps/yla.cp310-win32.pyd,sha256=NsisnsUoConchMWTxyRK7Udjp1ExpyQHfxusS5DILzM,9216
82
+ yearn_treasury/rules/ignore/swaps/yfi.cp310-win32.pyd,sha256=zbX186ZjWW0SM6O6jKjZYTov-Y3jMZ241Ho7wpmhx9I,9216
83
+ yearn_treasury/rules/ignore/swaps/yfi.py,sha256=kpWI0nqIKpAEWkXqNjr14lUCThkFS2p7GBAh2fTK78o,4862
84
+ yearn_treasury/rules/ignore/swaps/yla.cp310-win32.pyd,sha256=sderA5wjyTi4hznCzrLwaHHx10rSTrXYPQrBfv9T9Jc,9216
80
85
  yearn_treasury/rules/ignore/swaps/yla.py,sha256=I2_18sZBsIsYEhPCexX0EayNaPoRqzmMr6yylGNq1AU,916
81
- yearn_treasury/rules/other_expense/__init__.cp310-win32.pyd,sha256=eQs6ojxvhMpRKqOtDtyfTzIvwwLRuKA8oujXt-taO68,9216
86
+ yearn_treasury/rules/other_expense/__init__.cp310-win32.pyd,sha256=8XUO-ZRL3oKK4CtXGgmkFsg4rTo_Naehs--F1wcVD-U,9216
82
87
  yearn_treasury/rules/other_expense/__init__.py,sha256=K1lsFhNu4p7STAnuk_Bywbu45me5rBOTPRnuCJdcM8o,397
83
- yearn_treasury/rules/other_expense/boost.cp310-win32.pyd,sha256=nQujeARbxva31MAbmW6hjT-hoCrAxK7zbqJZ7gziiEI,9216
88
+ yearn_treasury/rules/other_expense/boost.cp310-win32.pyd,sha256=FparkQCxNADijei_trntQdFlzRHyRcEfHkPK_VQO8GE,9216
84
89
  yearn_treasury/rules/other_expense/boost.py,sha256=Ptd1Y-FI_pdNtQNavt4BMDw725kbvADirCva1ig4TQg,2741
85
- yearn_treasury/rules/other_expense/bugs.cp310-win32.pyd,sha256=kd9suxMvpfAnkf5YlmpnJQJ2KNZvXXnd4llbj9QqVTQ,9216
90
+ yearn_treasury/rules/other_expense/bugs.cp310-win32.pyd,sha256=dwbluYUXXdgfNE9OGjiXjgwdZAdMTrHSDwZ8s8ypJ1c,9216
86
91
  yearn_treasury/rules/other_expense/bugs.py,sha256=fxmOni4vM1D5hOkUVeQ-aIpIax015cF9W_Dt5zLvS1U,3095
87
- yearn_treasury/rules/other_expense/donations.cp310-win32.pyd,sha256=NcbdfPoF4W3iDQ-JdPMLh8IQfPPDxi3HI90LjDTwpcg,9216
92
+ yearn_treasury/rules/other_expense/donations.cp310-win32.pyd,sha256=xhpMlISIQaAD7aovbcohOTjaSQlgAQ9dce45zShO1TU,9216
88
93
  yearn_treasury/rules/other_expense/donations.py,sha256=RP6SU_q4TwQP48x_AnU6lefRWPgPPhPJ6Kv6NGovAPI,1309
89
- yearn_treasury/rules/other_expense/dyfi.cp310-win32.pyd,sha256=zQU1q60xSpTrMuXGSJw_KhQ7vulJGtnis8OU9YQlPQU,9216
94
+ yearn_treasury/rules/other_expense/dyfi.cp310-win32.pyd,sha256=mIQD3qzhb0KjQrMSDSdzV-iwLFu7y6wo2MM4QvkDJ5M,9216
90
95
  yearn_treasury/rules/other_expense/dyfi.py,sha256=xDTJlEywuYffKTBOdBlI0XeC4ZJw9wr4XWqgRc02mZg,948
91
- yearn_treasury/rules/other_expense/events.cp310-win32.pyd,sha256=n7K4cIdOLx3RXRbXvqhWh8tQtr1nWRtxfcr2r4Wm67I,9216
96
+ yearn_treasury/rules/other_expense/events.cp310-win32.pyd,sha256=tIP4Q85twWR5P6SVeg4RVpXnRfneJhgDkBx5c4Gvd1Q,9216
92
97
  yearn_treasury/rules/other_expense/events.py,sha256=LkNWmplmaLrre1IuaMBtCAmnaghZ7odIN5lIIJCYwy8,509
93
98
  yearn_treasury/rules/other_expense/match_on_hash.yaml,sha256=t5uQPm5ShPJ54ehAQXotcLym-ttyvvqUy-Qr3HmkazY,2568
94
99
  yearn_treasury/rules/other_expense/match_on_to_address.yaml,sha256=-vO99x1ULbHYtkdRjP8-9BFIZxAhAm6bxbpZuME5vg8,222
95
- yearn_treasury/rules/other_expense/misc.cp310-win32.pyd,sha256=rs4uMjMcc_E5iLFeDOOZSp5OW_P6SRfPoq9gwccwZfY,9216
100
+ yearn_treasury/rules/other_expense/misc.cp310-win32.pyd,sha256=GLl3SUBB6Pl63jRhYn9oPfo3PiNtKj2WTv4iQ5NGBWs,9216
96
101
  yearn_treasury/rules/other_expense/misc.py,sha256=3zWC5xp3ACF4ODD1nJyGPqrjhX82RoYBBYNSkODWHTU,1703
97
- yearn_treasury/rules/other_expense/revshare.cp310-win32.pyd,sha256=Ge7sE4Xof-nGc_xnG-LUPQOu6S8R7JeJsE5RB7dvUbk,9216
102
+ yearn_treasury/rules/other_expense/revshare.cp310-win32.pyd,sha256=eyM0dl0ZoKOSyALTztB-HHibIZI4P6BD3QouaIK7fSQ,9216
98
103
  yearn_treasury/rules/other_expense/revshare.py,sha256=PPihhs6TjeTCiRtWAAE-RO2rFIKmPA3f6--UYXi6p2I,531
99
- yearn_treasury/rules/other_income/__init__.cp310-win32.pyd,sha256=Wk2KURyiRbcE1ZqC5pc19vKAek22GviTm7XDHxydscE,9216
104
+ yearn_treasury/rules/other_income/__init__.cp310-win32.pyd,sha256=e9_qRN_FMNsHTrzJOhVREf-IAt3JJadZstDS-AljaWo,9216
100
105
  yearn_treasury/rules/other_income/__init__.py,sha256=TgUNNtZrU4tMilawg6mLoiNCQpPHlRFITCNJWlHQCW8,112
101
- yearn_treasury/rules/other_income/airdrops.cp310-win32.pyd,sha256=VK5Aqrqf5xm1scwjJNDNcns42MlMdW_2eQQY__Jb1w0,9216
106
+ yearn_treasury/rules/other_income/airdrops.cp310-win32.pyd,sha256=wRKiT8shah8_lsCBCPUsB_LWv8e-dXL3aKrLVp7gKO0,9216
102
107
  yearn_treasury/rules/other_income/airdrops.py,sha256=5uAccRiPiraKziHOTJ3f7JVbsWtMNDiHA9lYaz-2rcI,1214
103
108
  yearn_treasury/rules/other_income/match_on_hash.yaml,sha256=r1BVF0OJSUO9PVvU2hssNJQ7MFv-uX-au_-5Aq_hSwg,1179
104
- yearn_treasury/rules/other_income/misc.cp310-win32.pyd,sha256=Au8U53a_TCE-Rr6HZ0ESgKio0v7V_w4OBSso75LkGCY,9216
105
- yearn_treasury/rules/other_income/misc.py,sha256=2NjMIhthLbRJa7WM7da-3sNHUucuPnGy6vixDRD9kL8,2628
109
+ yearn_treasury/rules/other_income/misc.cp310-win32.pyd,sha256=JVEJTUUf32-m4VVOU6m9n5M18EzrhxN3BlC8mXSnh6k,9216
110
+ yearn_treasury/rules/other_income/misc.py,sha256=sTMy4xoXDzhxIh4ls5J4AaTx0nwYh7AjKnvPj3tKBtU,2614
106
111
  yearn_treasury/rules/revenue/__init__.py,sha256=OsK33eSraGuaE2dcfMsmShUWSH0BQnACIVHsZ_2G6Ok,313
107
- yearn_treasury/rules/revenue/bribes.cp310-win32.pyd,sha256=K3urWe5wWB2PM_ARFAc9luE8FIwx2rt_1z_7b1UC_QI,9216
112
+ yearn_treasury/rules/revenue/bribes.cp310-win32.pyd,sha256=_r30U9F3JH5AGF7668PcgutjuVPm4InZSES_7H_bLL4,9216
108
113
  yearn_treasury/rules/revenue/bribes.py,sha256=oS5oWXNv8ScOH5ypKTdM4-bn9lF5XQ7p-gVSZZYk0Js,603
109
- yearn_treasury/rules/revenue/farming.cp310-win32.pyd,sha256=Xcrk6KUDMrZmGPiWOzt0U-556W6zdyo8XMvDEb55EVA,9216
114
+ yearn_treasury/rules/revenue/farming.cp310-win32.pyd,sha256=FEF-P9yM1ZWQ8Apg6yJgKctA93CUyAKHVscu0lzBPfI,9216
110
115
  yearn_treasury/rules/revenue/farming.py,sha256=sACJwLdQb8TpWU4v7lAwuSuRY_BkXja1QmeO_z036rQ,1895
111
- yearn_treasury/rules/revenue/keepcoins.cp310-win32.pyd,sha256=HQoDHIe7xHiEcUNZnL6kWgjCCVTvqhSHlaTXOjhAGXA,9216
116
+ yearn_treasury/rules/revenue/keepcoins.cp310-win32.pyd,sha256=Xb4_9Tg4HB7stHKxIHaCWV6Ne2a-mXx6ejMdg7-gYGQ,9216
112
117
  yearn_treasury/rules/revenue/keepcoins.py,sha256=DYs0GzewhkO9LkgmAscqQUSQxi80R18vN-_8Gg_CMxk,2037
113
118
  yearn_treasury/rules/revenue/match_on_hash.yaml,sha256=RjfnJygGXNFTFzXO7ClX_EpXovu2QUrDQ9Dw4EbRAFs,167
114
- yearn_treasury/rules/revenue/seasolver.cp310-win32.pyd,sha256=414BY-Y2UuFnmjCaGDaRWVnMkIN9AnTiUtsiQw-QRjE,9216
119
+ yearn_treasury/rules/revenue/seasolver.cp310-win32.pyd,sha256=mQSKt9OChYtiUfT9EtuLN3SET9pXTm00FXNerRM8H7c,9216
115
120
  yearn_treasury/rules/revenue/seasolver.py,sha256=w2OrfbmIKzuR6FlRhUYXAlO2Z076_vO8gTlzcLyQrUg,782
116
- yearn_treasury/rules/revenue/vaults.py,sha256=hEeAqTSWFGq89O4sA67QiZtP7qcbhbUouGiA-_ys76A,5493
117
- yearn_treasury/rules/revenue/yteams.cp310-win32.pyd,sha256=bxjYwwqhj3hvbdz1TapTib3evvROPix4tcwR3jDFv2g,9216
121
+ yearn_treasury/rules/revenue/vaults.py,sha256=h1gaSTTGJGFUgW2POe8zkbB3_iI2HWvY89E5b5xOXXg,5507
122
+ yearn_treasury/rules/revenue/yteams.cp310-win32.pyd,sha256=1xArX6CktDSrqLwoFi7vAVMmFsh0D4Nz-s4D4Nqg4wo,9216
118
123
  yearn_treasury/rules/revenue/yteams.py,sha256=K3QgNf8kz5mU97IU6rtXRV8gz0Gr69XhzyyyYo92BmE,637
119
- yearn_treasury-0.0.39.dist-info/METADATA,sha256=UA3NGmEJA7pMIqYVzPeu1jtxzaNzjz1G4bCiHvUerqo,3793
120
- yearn_treasury-0.0.39.dist-info/WHEEL,sha256=GWZF0cboiU4MhsG0baPl8rrtCaXFSLW25384gp3vddM,97
121
- yearn_treasury-0.0.39.dist-info/entry_points.txt,sha256=SNx2hP429dAQDEjY93mQADPgbPbdSRKoF8mUUtvH3g8,60
122
- yearn_treasury-0.0.39.dist-info/top_level.txt,sha256=hSQYitAj4g_phCVhtBgHayRLzRgR2yZyAimwQXwGEto,43
123
- yearn_treasury-0.0.39.dist-info/RECORD,,
124
+ yearn_treasury-0.0.46.dist-info/METADATA,sha256=PlRVyfxJbicEcAcqxTAvYpPHY_egRn9ZWzqcT2WuRoM,3746
125
+ yearn_treasury-0.0.46.dist-info/WHEEL,sha256=GWZF0cboiU4MhsG0baPl8rrtCaXFSLW25384gp3vddM,97
126
+ yearn_treasury-0.0.46.dist-info/entry_points.txt,sha256=SNx2hP429dAQDEjY93mQADPgbPbdSRKoF8mUUtvH3g8,60
127
+ yearn_treasury-0.0.46.dist-info/top_level.txt,sha256=m6UZasCg7vJZr-GyXS_TRPPIzcC2n18kr8ZKdr4qu4Q,37
128
+ yearn_treasury-0.0.46.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ yearn_treasury
2
+ yearn_treasury__mypyc
Binary file
Binary file
@@ -1,2 +0,0 @@
1
- 4536608332a31e0815c4__mypyc
2
- yearn_treasury