dao-treasury 0.0.37__tar.gz → 0.0.39__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.
Files changed (45) hide show
  1. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/PKG-INFO +1 -1
  2. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/db.py +2 -1
  3. dao_treasury-0.0.39/dao_treasury/sorting/rules/ignore/__init__.py +2 -0
  4. dao_treasury-0.0.39/dao_treasury/sorting/rules/ignore/shitcoins.py +24 -0
  5. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/streams/llamapay.py +14 -2
  6. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury.egg-info/PKG-INFO +1 -1
  7. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury.egg-info/SOURCES.txt +1 -0
  8. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/pyproject.toml +1 -1
  9. dao_treasury-0.0.37/dao_treasury/sorting/rules/ignore/__init__.py +0 -1
  10. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/MANIFEST.in +0 -0
  11. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/README.md +0 -0
  12. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/dashboards/dashboards.yaml +0 -0
  13. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/dashboards/streams/LlamaPay.json +0 -0
  14. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/dashboards/summary/Monthly.json +0 -0
  15. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/dashboards/transactions/Treasury Transactions.json +0 -0
  16. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow (Including Unsorted).json +0 -0
  17. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow.json +0 -0
  18. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/dashboards/treasury/Operating Cashflow.json +0 -0
  19. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/dashboards/treasury/Treasury.json +0 -0
  20. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/.grafana/provisioning/datasources/datasources.yaml +0 -0
  21. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/ENVIRONMENT_VARIABLES.py +0 -0
  22. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/__init__.py +0 -0
  23. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/_docker.py +0 -0
  24. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/_nicknames.py +0 -0
  25. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/_wallet.py +0 -0
  26. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/constants.py +0 -0
  27. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/docker-compose.yaml +0 -0
  28. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/main.py +0 -0
  29. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/py.typed +0 -0
  30. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/sorting/__init__.py +0 -0
  31. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/sorting/_matchers.py +0 -0
  32. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/sorting/_rules.py +0 -0
  33. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/sorting/factory.py +0 -0
  34. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/sorting/rule.py +0 -0
  35. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/sorting/rules/__init__.py +0 -0
  36. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/sorting/rules/ignore/llamapay.py +0 -0
  37. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/streams/__init__.py +0 -0
  38. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/treasury.py +0 -0
  39. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury/types.py +0 -0
  40. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury.egg-info/dependency_links.txt +0 -0
  41. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury.egg-info/not-zip-safe +0 -0
  42. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury.egg-info/requires.txt +0 -0
  43. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/dao_treasury.egg-info/top_level.txt +0 -0
  44. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/setup.cfg +0 -0
  45. {dao_treasury-0.0.37 → dao_treasury-0.0.39}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dao_treasury
3
- Version: 0.0.37
3
+ Version: 0.0.39
4
4
  Summary: Produce comprehensive financial reports for your on-chain org
5
5
  Classifier: Development Status :: 3 - Alpha
6
6
  Classifier: Intended Audience :: Developers
@@ -53,6 +53,7 @@ from pony.orm import (
53
53
  select,
54
54
  )
55
55
  from y import EEE_ADDRESS, Contract, Network, convert, get_block_timestamp_async
56
+ from y._db.decorators import retry_locked
56
57
  from y.contracts import _get_code
57
58
  from y.exceptions import ContractNotVerified
58
59
 
@@ -294,7 +295,6 @@ class Address(DbEntity):
294
295
  )
295
296
 
296
297
  commit()
297
-
298
298
  return entity # type: ignore [no-any-return]
299
299
 
300
300
  @staticmethod
@@ -923,6 +923,7 @@ class TreasuryTx(DbEntity):
923
923
  return dbid # type: ignore [no-any-return]
924
924
 
925
925
  @staticmethod
926
+ @retry_locked
926
927
  def __set_txgroup(treasury_tx_dbid: int, txgroup_dbid: TxGroupDbid) -> None:
927
928
  with db_session:
928
929
  TreasuryTx[treasury_tx_dbid].txgroup = txgroup_dbid
@@ -0,0 +1,2 @@
1
+ from dao_treasury.sorting.rules.ignore.llamapay import *
2
+ from dao_treasury.sorting.rules.ignore.shitcoins import *
@@ -0,0 +1,24 @@
1
+ """This module is used to ignore any transactions that involve shitcoins in the :obj:`~eth_portfolio.SHITCOINS` mapping."""
2
+
3
+ from typing import Final
4
+
5
+ import eth_portfolio
6
+
7
+ from dao_treasury import TreasuryTx
8
+ from dao_treasury.constants import CHAINID
9
+ from dao_treasury.sorting.factory import ignore
10
+
11
+
12
+ SHITCOINS: Final = eth_portfolio.SHITCOINS[CHAINID]
13
+
14
+
15
+ @ignore("Shitcoin")
16
+ def is_shitcoin(tx: TreasuryTx) -> bool:
17
+ """
18
+ This category is for any token transfers involving any shitcoin which was added
19
+ to your database before the shitcoin was added to :obj:`eth_portfolio.SHITCOINS`.
20
+
21
+ Since the tx would now be excluded from the db entirely if you did a clean pull,
22
+ we can safely ignore it.
23
+ """
24
+ return tx.token.address.address in SHITCOINS
@@ -22,7 +22,7 @@ from eth_typing import BlockNumber, ChecksumAddress, HexAddress, HexStr
22
22
  from tqdm.asyncio import tqdm_asyncio
23
23
 
24
24
  import y
25
- from y.time import UnixTimestamp
25
+ from y.time import NoBlockFound, UnixTimestamp
26
26
  from y.utils.events import decode_logs, get_logs_asap
27
27
 
28
28
  from dao_treasury import constants
@@ -338,7 +338,19 @@ class LlamaPayProcessor:
338
338
  check_at = date_obj + timedelta(days=1) - timedelta(seconds=1)
339
339
  if check_at > now(tz=_UTC):
340
340
  await sleep((check_at - now(tz=_UTC)).total_seconds())
341
- block = await get_block_at_timestamp(check_at, sync=False)
341
+
342
+ while True:
343
+ try:
344
+ block = await get_block_at_timestamp(check_at, sync=False)
345
+ except NoBlockFound:
346
+ sleep_time = (check_at - now(tz=_UTC)).total_seconds()
347
+ logger.debug(
348
+ "no block found for %s, sleeping %ss", check_at, sleep_time
349
+ )
350
+ await sleep(sleep_time)
351
+ else:
352
+ break
353
+
342
354
  price_fut = create_task(get_price(stream_token, block, sync=False))
343
355
  start_timestamp = await _get_start_timestamp(stream_id, block)
344
356
  if start_timestamp == 0:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dao-treasury
3
- Version: 0.0.37
3
+ Version: 0.0.39
4
4
  Summary: Produce comprehensive financial reports for your on-chain org
5
5
  Classifier: Development Status :: 3 - Alpha
6
6
  Classifier: Intended Audience :: Developers
@@ -37,5 +37,6 @@ dao_treasury/sorting/rule.py
37
37
  dao_treasury/sorting/rules/__init__.py
38
38
  dao_treasury/sorting/rules/ignore/__init__.py
39
39
  dao_treasury/sorting/rules/ignore/llamapay.py
40
+ dao_treasury/sorting/rules/ignore/shitcoins.py
40
41
  dao_treasury/streams/__init__.py
41
42
  dao_treasury/streams/llamapay.py
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "dao-treasury"
3
- version = "0.0.37"
3
+ version = "0.0.39"
4
4
  description = "Produce comprehensive financial reports for your on-chain org"
5
5
  authors = ["BobTheBuidler <bobthebuidlerdefi@gmail.com>"]
6
6
  license = "MIT"
@@ -1 +0,0 @@
1
- from dao_treasury.sorting.rules.ignore.llamapay import *
File without changes
File without changes
File without changes
File without changes