yearn-treasury 0.0.35__tar.gz → 0.0.37__tar.gz

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 (89) hide show
  1. {yearn_treasury-0.0.35/yearn_treasury.egg-info → yearn_treasury-0.0.37}/PKG-INFO +3 -2
  2. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/pyproject.toml +3 -2
  3. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/setup.py +2 -2
  4. yearn_treasury-0.0.37/yearn_treasury/rules/__init__.py +20 -0
  5. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/curve.py +4 -2
  6. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/vaults.py +1 -1
  7. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/yfi.py +15 -6
  8. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/revenue/vaults.py +1 -1
  9. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/shitcoins.py +2 -0
  10. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37/yearn_treasury.egg-info}/PKG-INFO +3 -2
  11. yearn_treasury-0.0.37/yearn_treasury.egg-info/requires.txt +3 -0
  12. yearn_treasury-0.0.35/yearn_treasury/rules/__init__.py +0 -6
  13. yearn_treasury-0.0.35/yearn_treasury.egg-info/requires.txt +0 -2
  14. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/MANIFEST.in +0 -0
  15. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/README.md +0 -0
  16. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/setup.cfg +0 -0
  17. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/__init__.py +0 -0
  18. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/_db.py +0 -0
  19. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/_ens.py +0 -0
  20. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/_logging.py +0 -0
  21. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/address_labels.yaml +0 -0
  22. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/budget/__init__.py +0 -0
  23. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/budget/_request.py +0 -0
  24. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/budget/_requests.py +0 -0
  25. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/constants.py +0 -0
  26. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/main.py +0 -0
  27. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/py.typed +0 -0
  28. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/constants.py +0 -0
  29. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/cost_of_revenue/__init__.py +0 -0
  30. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/cost_of_revenue/gas.py +0 -0
  31. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/cost_of_revenue/match_on_hash.yaml +0 -0
  32. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/expense/__init__.py +0 -0
  33. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/expense/general.py +0 -0
  34. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/expense/infrastructure.py +0 -0
  35. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/expense/match_on_hash.yaml +0 -0
  36. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/expense/match_on_to_address.yaml +0 -0
  37. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/expense/people.py +0 -0
  38. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/expense/security.py +0 -0
  39. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/__init__.py +0 -0
  40. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/general.py +0 -0
  41. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/maker.py +0 -0
  42. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/passthru.py +0 -0
  43. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/staking.py +0 -0
  44. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/__init__.py +0 -0
  45. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/_skip_tokens.py +0 -0
  46. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/aave.py +0 -0
  47. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/compound.py +0 -0
  48. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/conversion_factory.py +0 -0
  49. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/cowswap.py +0 -0
  50. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/gearbox.py +0 -0
  51. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/iearn.py +0 -0
  52. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/otc.py +0 -0
  53. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/pooltogether.py +0 -0
  54. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/synthetix.py +0 -0
  55. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/uniswap.py +0 -0
  56. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/unwrapper.py +0 -0
  57. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/woofy.py +0 -0
  58. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/swaps/yla.py +0 -0
  59. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/unit.py +0 -0
  60. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/weth.py +0 -0
  61. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/ignore/ygov.py +0 -0
  62. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/__init__.py +0 -0
  63. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/boost.py +0 -0
  64. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/bugs.py +0 -0
  65. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/donations.py +0 -0
  66. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/dyfi.py +0 -0
  67. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/events.py +0 -0
  68. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/match_on_hash.yaml +0 -0
  69. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/match_on_to_address.yaml +0 -0
  70. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/misc.py +0 -0
  71. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_expense/revshare.py +0 -0
  72. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_income/__init__.py +0 -0
  73. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_income/airdrops.py +0 -0
  74. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_income/match_on_hash.yaml +0 -0
  75. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/other_income/misc.py +0 -0
  76. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/revenue/__init__.py +0 -0
  77. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/revenue/bribes.py +0 -0
  78. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/revenue/farming.py +0 -0
  79. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/revenue/keepcoins.py +0 -0
  80. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/revenue/match_on_hash.yaml +0 -0
  81. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/revenue/seasolver.py +0 -0
  82. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/rules/revenue/yteams.py +0 -0
  83. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/vaults.py +0 -0
  84. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury/wallets.yaml +0 -0
  85. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury.egg-info/SOURCES.txt +0 -0
  86. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury.egg-info/dependency_links.txt +0 -0
  87. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury.egg-info/entry_points.txt +0 -0
  88. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury.egg-info/not-zip-safe +0 -0
  89. {yearn_treasury-0.0.35 → yearn_treasury-0.0.37}/yearn_treasury.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yearn_treasury
3
- Version: 0.0.35
3
+ Version: 0.0.37
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,9 @@ 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.51
18
+ Requires-Dist: dao-treasury<0.1,>=0.0.53
19
19
  Requires-Dist: eth-brownie<1.23,>=1.21.0
20
+ Requires-Dist: faster-async-lru<3,>=2.0.5
20
21
  Dynamic: classifier
21
22
  Dynamic: description
22
23
  Dynamic: description-content-type
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "yearn-treasury"
3
- version = "0.0.35"
3
+ version = "0.0.37"
4
4
  description = "This WIP library runs the eth-portfolio and dao-treasury exporters for the Yearn Finance treasury."
5
5
  authors = ["Bob The Buidler <you@example.com>"]
6
6
  packages = [{ include = "yearn_treasury/*" }]
@@ -22,8 +22,9 @@ yearn-treasury = "yearn_treasury.main:main"
22
22
 
23
23
  [tool.poetry.dependencies]
24
24
  python = ">=3.10,<3.13"
25
- dao-treasury = ">=0.0.51,<0.1"
25
+ dao-treasury = ">=0.0.53,<0.1"
26
26
  eth-brownie = ">=1.21.0,<1.23"
27
+ faster-async-lru = ">=2.0.5,<3"
27
28
 
28
29
  [tool.poetry.group.dev.dependencies]
29
30
  mypy = "*"
@@ -14,14 +14,14 @@ else:
14
14
  "yearn_treasury/rules/expense",
15
15
  # "yearn_treasury/rules/ignore",
16
16
  "yearn_treasury/rules/ignore/swaps/conversion_factory.py",
17
- # "yearn_treasury/rules/ignore/swaps/curve.py", push async-lru-c first
17
+ # "yearn_treasury/rules/ignore/swaps/curve.py", enable with brownie 1.22.0
18
18
  "yearn_treasury/rules/ignore/swaps/gearbox.py",
19
19
  "yearn_treasury/rules/ignore/swaps/iearn.py",
20
20
  "yearn_treasury/rules/ignore/swaps/otc.py",
21
21
  "yearn_treasury/rules/ignore/swaps/pooltogether.py",
22
22
  "yearn_treasury/rules/ignore/swaps/synthetix.py",
23
23
  "yearn_treasury/rules/ignore/swaps/unwrapper.py",
24
- # "yearn_treasury/rules/ignore/swaps/vaults.py", push async-lru-c first
24
+ "yearn_treasury/rules/ignore/swaps/vaults.py",
25
25
  "yearn_treasury/rules/ignore/swaps/woofy.py",
26
26
  # "yearn_treasury/rules/ignore/swaps/yfi.py", enable with brownie 1.22.0
27
27
  "yearn_treasury/rules/ignore/swaps/yla.py",
@@ -0,0 +1,20 @@
1
+ import os
2
+
3
+ __ALRU_ENV_NAME = "ASYNC_LRU_ALLOW_SYNC"
4
+ __ALRU_ENV_VAL = os.environ.get(__ALRU_ENV_NAME)
5
+ os.environ[__ALRU_ENV_NAME] = "1"
6
+
7
+ from yearn_treasury.rules.cost_of_revenue import *
8
+ from yearn_treasury.rules.expense import *
9
+ from yearn_treasury.rules.ignore import *
10
+ from yearn_treasury.rules.other_expense import *
11
+ from yearn_treasury.rules.other_income import *
12
+ from yearn_treasury.rules.revenue import *
13
+
14
+ if __ALRU_ENV_VAL is None:
15
+ os.environ.pop(__ALRU_ENV_NAME)
16
+ else:
17
+ os.environ[__ALRU_ENV_NAME] = __ALRU_ENV_VAL
18
+
19
+ del __ALRU_ENV_NAME
20
+ del __ALRU_ENV_VAL
@@ -1,10 +1,10 @@
1
1
  from typing import Final
2
2
 
3
- from async_lru import alru_cache
4
3
  from brownie.exceptions import EventLookupError
5
4
  from brownie.network.event import _EventItem
6
5
  from dao_treasury import TreasuryTx, TreasuryWallet
7
6
  from eth_typing import ChecksumAddress
7
+ from faster_async_lru import alru_cache
8
8
  from y import Contract, Network
9
9
 
10
10
  from yearn_treasury.constants import CHAINID, ZERO_ADDRESS
@@ -120,7 +120,9 @@ async def _is_curve_withdrawal_multi(tx: TreasuryTx) -> bool:
120
120
  pool = await Contract.coroutine(event.address) # type: ignore [assignment]
121
121
  if await _is_old_style(tx, pool) or _is_new_style(tx, pool):
122
122
  return True
123
- print(f"unhandled curve pool: {tx} symbol={tx.symbol} name={tx.token.name}")
123
+ print(
124
+ f"unhandled curve pool: {tx} symbol={tx.symbol} name={tx.token.name} address={tx.token.address}"
125
+ )
124
126
  # Tokens rec'd
125
127
  elif tx.from_address == event.address and TreasuryWallet.check_membership(
126
128
  tx.to_address.address, tx.block # type: ignore [union-attr, arg-type]
@@ -1,8 +1,8 @@
1
1
  from typing import Final
2
2
 
3
- from async_lru import alru_cache
4
3
  from dao_treasury import TreasuryTx, TreasuryWallet
5
4
  from eth_typing import BlockNumber, ChecksumAddress
5
+ from faster_async_lru import alru_cache
6
6
  from y import Contract, Network
7
7
  from y.prices.yearn import YearnInspiredVault
8
8
 
@@ -46,21 +46,30 @@ def is_buying_with_buyer(tx: TreasuryTx) -> bool:
46
46
  events = tx.events
47
47
  except KeyError as e:
48
48
  if "components" in str(e):
49
+ print(f"cannot parse events of possible YFI buyback {tx}")
49
50
  return False
50
51
  raise
51
52
 
52
53
  if "Buyback" in events:
53
- buyback_event = events["Buyback"]
54
- if buyback_event.address in VYPER_BUYERS and all(
54
+ buyback_events = events["Buyback"]
55
+ if len(buyback_events) > 1:
56
+ print(f"Must code handler for multiple Buyback events in one tx: {tx}")
57
+ return False
58
+ buyback_event = buyback_events[0]
59
+ if buyback_event.address in VYPER_BUYERS and all( # type: ignore [attr-defined]
55
60
  arg in buyback_event for arg in ("buyer", "yfi", "dai")
56
61
  ):
57
- buyback_amount = Decimal(buyback_event["yfi"]) / 10**18 # type: ignore [arg-type]
58
- if tx.amount == buyback_amount:
62
+ # TODO get rid of this rounding once we've swapped out sqlite for postgres
63
+ buyback_amount = Decimal(buyback_event["yfi"]) / 10**18 # type: ignore [call-overload]
64
+ if round(tx.amount, 15) == round(buyback_amount, 15):
59
65
  return True
60
66
  print(
61
- f"from node: {buyback_amount} from db: {tx.amount} diff: {buyback_amount - tx.amount}"
67
+ f"from node: {buyback_amount} "
68
+ f"from db: {tx.amount} "
69
+ f"diff: {buyback_amount - tx.amount}"
62
70
  )
63
- # raise ValueError(f'from node: {buyback_amount} from db: {tx.amount} diff: {buyback_amount - tx.amount}')
71
+ else:
72
+ print("unhandled Buyback event: buyback_event")
64
73
  return False
65
74
 
66
75
 
@@ -1,9 +1,9 @@
1
1
  from logging import getLogger
2
2
  from typing import Final, Optional
3
3
 
4
- from async_lru import alru_cache
5
4
  from dao_treasury import TreasuryTx, revenue
6
5
  from eth_typing import ChecksumAddress
6
+ from faster_async_lru import alru_cache
7
7
  from y import Contract, Network
8
8
 
9
9
  from yearn_treasury.vaults import v1, v2
@@ -50,6 +50,8 @@ _SHITCOINS: Final = {
50
50
  "0xe5868468Cb6Dd5d6D7056bd93f084816c6eF075f",
51
51
  "0x0a24Bb4842c301276c65086B5d78D5C872993c72",
52
52
  "0x63125c0d5Cd9071de9A1ac84c400982f41C697AE",
53
+ "0x4d22921215cF37e8d49e2Ac6d1F5e9672f63A7c6",
54
+ "0xe2549E429B78458fa60BC7B1b284d4411E1D5105",
53
55
  # just andre tinkering
54
56
  "0x5cB5e2d7Ab9Fd32021dF8F1D3E5269bD437Ec3Bf",
55
57
  # these arent shitcoins per se but we can't price them and dont expect to in the future, lets save cpu cycles
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yearn_treasury
3
- Version: 0.0.35
3
+ Version: 0.0.37
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,9 @@ 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.51
18
+ Requires-Dist: dao-treasury<0.1,>=0.0.53
19
19
  Requires-Dist: eth-brownie<1.23,>=1.21.0
20
+ Requires-Dist: faster-async-lru<3,>=2.0.5
20
21
  Dynamic: classifier
21
22
  Dynamic: description
22
23
  Dynamic: description-content-type
@@ -0,0 +1,3 @@
1
+ dao-treasury<0.1,>=0.0.53
2
+ eth-brownie<1.23,>=1.21.0
3
+ faster-async-lru<3,>=2.0.5
@@ -1,6 +0,0 @@
1
- from yearn_treasury.rules.cost_of_revenue import *
2
- from yearn_treasury.rules.expense import *
3
- from yearn_treasury.rules.ignore import *
4
- from yearn_treasury.rules.other_expense import *
5
- from yearn_treasury.rules.other_income import *
6
- from yearn_treasury.rules.revenue import *
@@ -1,2 +0,0 @@
1
- dao-treasury<0.1,>=0.0.51
2
- eth-brownie<1.23,>=1.21.0