dao-treasury 0.0.39__cp312-cp312-musllinux_1_2_i686.whl → 0.0.40__cp312-cp312-musllinux_1_2_i686.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.
Files changed (32) hide show
  1. bf2b4fe1f86ad2ea158b__mypyc.cpython-312-i386-linux-musl.so +0 -0
  2. dao_treasury/ENVIRONMENT_VARIABLES.py +12 -0
  3. dao_treasury/__init__.py +14 -0
  4. dao_treasury/_docker.cpython-312-i386-linux-musl.so +0 -0
  5. dao_treasury/_docker.py +14 -1
  6. dao_treasury/_nicknames.cpython-312-i386-linux-musl.so +0 -0
  7. dao_treasury/_nicknames.py +15 -0
  8. dao_treasury/_wallet.cpython-312-i386-linux-musl.so +0 -0
  9. dao_treasury/constants.cpython-312-i386-linux-musl.so +0 -0
  10. dao_treasury/constants.py +19 -0
  11. dao_treasury/db.py +23 -0
  12. dao_treasury/sorting/__init__.cpython-312-i386-linux-musl.so +0 -0
  13. dao_treasury/sorting/_matchers.cpython-312-i386-linux-musl.so +0 -0
  14. dao_treasury/sorting/_rules.cpython-312-i386-linux-musl.so +0 -0
  15. dao_treasury/sorting/factory.cpython-312-i386-linux-musl.so +0 -0
  16. dao_treasury/sorting/rule.cpython-312-i386-linux-musl.so +0 -0
  17. dao_treasury/sorting/rules/__init__.cpython-312-i386-linux-musl.so +0 -0
  18. dao_treasury/sorting/rules/ignore/__init__.cpython-312-i386-linux-musl.so +0 -0
  19. dao_treasury/sorting/rules/ignore/__init__.py +0 -1
  20. dao_treasury/sorting/rules/ignore/llamapay.cpython-312-i386-linux-musl.so +0 -0
  21. dao_treasury/streams/__init__.cpython-312-i386-linux-musl.so +0 -0
  22. dao_treasury/streams/llamapay.cpython-312-i386-linux-musl.so +0 -0
  23. dao_treasury/treasury.py +33 -14
  24. dao_treasury/types.cpython-312-i386-linux-musl.so +0 -0
  25. {dao_treasury-0.0.39.dist-info → dao_treasury-0.0.40.dist-info}/METADATA +2 -2
  26. {dao_treasury-0.0.39.dist-info → dao_treasury-0.0.40.dist-info}/RECORD +28 -30
  27. dao_treasury-0.0.40.dist-info/top_level.txt +2 -0
  28. 8a0ad9a1a4146730a0f6__mypyc.cpython-312-i386-linux-musl.so +0 -0
  29. dao_treasury/sorting/rules/ignore/shitcoins.cpython-312-i386-linux-musl.so +0 -0
  30. dao_treasury/sorting/rules/ignore/shitcoins.py +0 -24
  31. dao_treasury-0.0.39.dist-info/top_level.txt +0 -2
  32. {dao_treasury-0.0.39.dist-info → dao_treasury-0.0.40.dist-info}/WHEEL +0 -0
@@ -1,3 +1,15 @@
1
+ """Environment variable configuration for DAO Treasury.
2
+
3
+ Defines and loads environment variables (with types and defaults) used for
4
+ system configuration, such as SQL debugging. Uses :mod:`typed_envs` for convenience and safety.
5
+
6
+ Key Responsibilities:
7
+ - Define and load environment variables for the system.
8
+ - Provide type-safe access to configuration options.
9
+
10
+ This is the single source of truth for environment-based settings.
11
+ """
12
+
1
13
  from typing import Final
2
14
 
3
15
  from typed_envs import EnvVarFactory
dao_treasury/__init__.py CHANGED
@@ -1,3 +1,17 @@
1
+ """DAO Treasury package initializer.
2
+
3
+ Exposes the main public API for the library, including the Treasury class,
4
+ wallet management, sorting rules, and database models. Sets up address
5
+ nicknames and enables SQL debugging if configured.
6
+
7
+ Key Responsibilities:
8
+ - Import and expose core classes and functions.
9
+ - Initialize address nicknames in the database.
10
+ - Configure SQL debugging for development.
11
+
12
+ This is the main import point for users and integrations.
13
+ """
14
+
1
15
  from dao_treasury import ENVIRONMENT_VARIABLES as ENVS
2
16
  from dao_treasury._nicknames import setup_address_nicknames_in_db
3
17
  from dao_treasury._wallet import TreasuryWallet
dao_treasury/_docker.py CHANGED
@@ -1,4 +1,17 @@
1
- """This module contains utilities for managing dao-treasury's docker containers"""
1
+ """Docker orchestration utilities for DAO Treasury.
2
+
3
+ Provides functions to build, start, and stop Docker Compose services
4
+ required for analytics dashboards (Grafana, renderer). Integrates with
5
+ eth-portfolio's Docker setup and ensures all containers are managed
6
+ consistently for local analytics.
7
+
8
+ Key Responsibilities:
9
+ - Build and manage Grafana and renderer containers.
10
+ - Integrate with eth-portfolio Docker services.
11
+ - Provide decorators/utilities for container lifecycle management.
12
+
13
+ This is the main entry for all Docker-based orchestration.
14
+ """
2
15
 
3
16
  import logging
4
17
  from importlib import resources
@@ -1,3 +1,18 @@
1
+ """Address nickname setup utilities.
2
+
3
+ This module provides functions to assign human-readable nicknames to
4
+ important on-chain addresses (e.g., Zero Address, Disperse.app, tokens).
5
+ It is used at package initialization to ensure all analytics and dashboards
6
+ display professional, consistent labels.
7
+
8
+ Key Responsibilities:
9
+ - Set nicknames for core addresses in the database.
10
+ - Integrate with constants and token metadata.
11
+ - Support professional, readable analytics outputs.
12
+
13
+ This is called automatically on package import.
14
+ """
15
+
1
16
  from typing import Final
2
17
 
3
18
  from pony.orm import db_session
dao_treasury/constants.py CHANGED
@@ -1,11 +1,29 @@
1
+ """Core constants for DAO Treasury.
2
+
3
+ All constants are marked with `Final`, ensuring immutability and allowing
4
+ mypyc to compile them as extremely fast C-level constants for maximum
5
+ performance. Defines chain IDs, zero address, and key contract addresses
6
+ (e.g., Disperse.app) used throughout the system for transaction processing,
7
+ nickname assignment, and analytics.
8
+
9
+ Key Responsibilities:
10
+ - Provide canonical addresses and chain IDs.
11
+ - Support nickname setup and transaction categorization.
12
+ - Guarantee fast, immutable constants at runtime.
13
+
14
+ This is the single source of truth for system-wide constants.
15
+ """
16
+
1
17
  from typing import Final
2
18
 
3
19
  import y.constants
4
20
 
5
21
 
6
22
  CHAINID: Final = y.constants.CHAINID
23
+ # TODO: add docstring
7
24
 
8
25
  ZERO_ADDRESS: Final = "0x0000000000000000000000000000000000000000"
26
+ # TODO: add docstring
9
27
 
10
28
  # TODO: move disperse.app stuff from yearn-treasury to dao-treasury and then write a docs file
11
29
  DISPERSE_APP: Final = (
@@ -13,3 +31,4 @@ DISPERSE_APP: Final = (
13
31
  "0xd15fE25eD0Dba12fE05e7029C88b10C25e8880E3",
14
32
  )
15
33
  """If your treasury sends funds to disperse.app, we create additional txs in the db so each individual send can be accounted for."""
34
+ # TODO: all crosslink to disperse.py once ready
dao_treasury/db.py CHANGED
@@ -3,6 +3,7 @@
3
3
  Database models and utilities for DAO treasury reporting.
4
4
 
5
5
  This module defines Pony ORM entities for:
6
+
6
7
  - Blockchain networks (:class:`Chain`)
7
8
  - On-chain addresses (:class:`Address`)
8
9
  - ERC-20 tokens and native coin placeholder (:class:`Token`)
@@ -25,6 +26,7 @@ from pathlib import Path
25
26
  from typing import TYPE_CHECKING, Dict, Final, Tuple, Union, final
26
27
  from datetime import date, datetime, time, timezone
27
28
 
29
+ import eth_portfolio
28
30
  from a_sync import AsyncThreadPoolExecutor
29
31
  from brownie import chain
30
32
  from brownie.convert.datatypes import HexString
@@ -1383,3 +1385,24 @@ def _validate_integrity_error(
1383
1385
  )
1384
1386
  else None
1385
1387
  )
1388
+
1389
+
1390
+ def _drop_shitcoin_txs() -> None:
1391
+ """
1392
+ Purge any shitcoin txs from the db.
1393
+
1394
+ These should not be frequent, and only occur if a user populated the db before a shitcoin was added to the SHITCOINS mapping.
1395
+ """
1396
+ shitcoins = eth_portfolio.SHITCOINS[CHAINID]
1397
+ with db_session:
1398
+ shitcoin_txs = select(
1399
+ tx for tx in TreasuryTx if tx.token.address.address in shitcoins
1400
+ )
1401
+ if count := shitcoin_txs.count():
1402
+ logger.info(f"Purging {count} shitcoin txs from the database...")
1403
+ for tx in shitcoin_txs:
1404
+ tx.delete()
1405
+ logger.info("Shitcoin tx purge complete.")
1406
+
1407
+
1408
+ _drop_shitcoin_txs()
@@ -1,2 +1 @@
1
1
  from dao_treasury.sorting.rules.ignore.llamapay import *
2
- from dao_treasury.sorting.rules.ignore.shitcoins import *
dao_treasury/treasury.py CHANGED
@@ -1,3 +1,20 @@
1
+ """Treasury orchestration and analytics interface.
2
+
3
+ This module defines the Treasury class, which aggregates DAO wallets, sets up
4
+ sorting rules, and manages transaction ingestion and streaming analytics.
5
+ It coordinates the end-to-end flow from wallet configuration to database
6
+ population and dashboard analytics.
7
+
8
+ Key Responsibilities:
9
+ - Aggregate and manage DAO-controlled wallets.
10
+ - Ingest and process on-chain transactions.
11
+ - Apply sorting/categorization rules.
12
+ - Integrate with streaming protocols (e.g., LlamaPay).
13
+ - Populate the database for analytics and dashboards.
14
+
15
+ This is the main entry point for orchestrating DAO treasury analytics.
16
+ """
17
+
1
18
  from asyncio import create_task, gather
2
19
  from logging import getLogger
3
20
  from pathlib import Path
@@ -59,20 +76,22 @@ class Treasury(a_sync.ASyncGenericBase): # type: ignore [misc]
59
76
  TypeError: If any item in `wallets` is not a str or TreasuryWallet.
60
77
 
61
78
  Examples:
62
- Create a synchronous Treasury:
63
- >>> treasury = Treasury(
64
- ... wallets=["0xAbc123...", TreasuryWallet("0xDef456...", start_block=1000)],
65
- ... sort_rules=Path("/path/to/rules"),
66
- ... start_block=500,
67
- ... label="DAO Treasury",
68
- ... asynchronous=False
69
- ... )
70
-
71
- Create an asynchronous Treasury:
72
- >>> treasury_async = Treasury(
73
- ... wallets=["0xAbc123..."],
74
- ... asynchronous=True
75
- ... )
79
+ .. code-block:: python
80
+
81
+ # Create a synchronous Treasury
82
+ treasury = Treasury(
83
+ wallets=["0xAbc123...", TreasuryWallet("0xDef456...", start_block=1000)],
84
+ sort_rules=Path("/path/to/rules"),
85
+ start_block=500,
86
+ label="DAO Treasury",
87
+ asynchronous=False
88
+ )
89
+
90
+ # Create an asynchronous Treasury
91
+ treasury_async = Treasury(
92
+ wallets=["0xAbc123..."],
93
+ asynchronous=True
94
+ )
76
95
  """
77
96
  global TREASURY
78
97
  if TREASURY is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dao_treasury
3
- Version: 0.0.39
3
+ Version: 0.0.40
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
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
14
14
  Classifier: Topic :: Software Development :: Libraries
15
15
  Requires-Python: >=3.10,<3.13
16
16
  Description-Content-Type: text/markdown
17
- Requires-Dist: eth-portfolio-temp<0.1,>=0.0.34.dev0
17
+ Requires-Dist: eth-portfolio-temp<0.1,>=0.0.35.dev0
18
18
  Dynamic: classifier
19
19
  Dynamic: description
20
20
  Dynamic: description-content-type
@@ -1,20 +1,20 @@
1
- 8a0ad9a1a4146730a0f6__mypyc.cpython-312-i386-linux-musl.so,sha256=sNVRYN_uVp7XcRdNBgRoPUgg4LJsVYxflJ6wPFuLdKo,1647352
2
- dao_treasury/ENVIRONMENT_VARIABLES.py,sha256=yKvgOMUyU7-fF_-1zSMXML7ah7-r2f0oHrOV0p10LPc,195
3
- dao_treasury/__init__.py,sha256=ZQ0ZROQzSyJdYuQS1Z_VD0c7CiV8BWZcLTX66wO4slc,1004
4
- dao_treasury/_docker.cpython-312-i386-linux-musl.so,sha256=nbAH0SJCYXs4vgF-wp5rLvS3xUPMAdKXys77PhspvLU,16708
5
- dao_treasury/_docker.py,sha256=7MnPA5xhRCM8Kqiogk87ltUVn8i_hpkNgO_hFC-7sPw,5430
6
- dao_treasury/_nicknames.cpython-312-i386-linux-musl.so,sha256=rW9eE6GPO9gEj6Rc0gs9cL38IGkFlMWkXo9mnV9Zw28,16716
7
- dao_treasury/_nicknames.py,sha256=deSpcDMtC_78C07tW0fZ_NzHIfHXsoHBVXfb_Dvlzsw,480
8
- dao_treasury/_wallet.cpython-312-i386-linux-musl.so,sha256=ScXmoPpWIXQofuxADW5-1iBdHxT_CxEQckH_dRIRqa4,16708
1
+ bf2b4fe1f86ad2ea158b__mypyc.cpython-312-i386-linux-musl.so,sha256=3v6bz-rwl3RyxAuWQcvm-5Bwo8Ha85YuRv_o70RDAwI,1630524
2
+ dao_treasury/ENVIRONMENT_VARIABLES.py,sha256=LEczR1MSWTY00sLHnFs3j_Jm8WZNJCxjwEzrvjbwl2E,636
3
+ dao_treasury/__init__.py,sha256=W4syl9-cNhHOdD25ye9U7aBJTLE_R-uP49FXC_6CUOE,1477
4
+ dao_treasury/_docker.cpython-312-i386-linux-musl.so,sha256=ozlr3PDmG2rjhNWOKQeaQ_UL7XtHJn9DhcNFSfpwZFE,16708
5
+ dao_treasury/_docker.py,sha256=b3exLlhtaC9S3osrLQsL8SIOLKUtSoop2uue0cSP9WM,5908
6
+ dao_treasury/_nicknames.cpython-312-i386-linux-musl.so,sha256=GvrGVuN8PA-HWV1_KYjEPXeX3KiKh3t20-6sKpyUbxw,16716
7
+ dao_treasury/_nicknames.py,sha256=bvz0b8C31tFQ0pGtpSJW86OwjUF_qMBal4VXVT5UyLo,1017
8
+ dao_treasury/_wallet.cpython-312-i386-linux-musl.so,sha256=PTEl-KbIltkUq0N8paKW_LGveE9ihxfd91vDMjiAgow,16708
9
9
  dao_treasury/_wallet.py,sha256=epV8LVuwHlOzc9UkA66js7HfEiZBOSAGJMtWbDTzmjU,10462
10
- dao_treasury/constants.cpython-312-i386-linux-musl.so,sha256=kWu_EWR4t3sNqNbFNW8084g-go04Txfa8oFS1HnI1Pc,16716
11
- dao_treasury/constants.py,sha256=IFg_CyVnfPhPjKyFX1Ix4QaB8ghbOI5QZGSy2TNsUSA,507
12
- dao_treasury/db.py,sha256=Qc95xWNIR_Wk7jutJnBe2eMntxRrdd2_pj68hqVK8kA,47318
10
+ dao_treasury/constants.cpython-312-i386-linux-musl.so,sha256=129zODj8o7HJWBiuueXA7Ith9K55bYfDny1uM8FD0NY,16716
11
+ dao_treasury/constants.py,sha256=MM4X4TK2RD1JaTNMg7zdo6QjKZTTvep6g7TgckE7M-8,1220
12
+ dao_treasury/db.py,sha256=PfXCm8v4sLWdj3lenLJBA_076in300qKUSN9xdBEOCE,48013
13
13
  dao_treasury/docker-compose.yaml,sha256=E6KE-IjWDisAM19PPDi4ApR6Eu7jmMTM6J9DhtgJvR4,1309
14
14
  dao_treasury/main.py,sha256=31EA10Fpaj9y-cRJPnNnvCBI38UM0848xlzn7A0BzC4,8047
15
15
  dao_treasury/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- dao_treasury/treasury.py,sha256=7xLVQPqnDd3cexbYuF1opTjCiHgkPqHFOanRom8wiLE,6506
17
- dao_treasury/types.cpython-312-i386-linux-musl.so,sha256=BPyNYfEYJtwS5bxPQ4Vgp9lSB81hKMne7FNHZTCrzqg,16700
16
+ dao_treasury/treasury.py,sha256=taTvwTH_Zdu2M61TrUCENcIUjxdQO3vryrZ2iVb6suM,7223
17
+ dao_treasury/types.cpython-312-i386-linux-musl.so,sha256=rqTkHgzl8J9nob3oIvYBHGc1ElvN4aexOFaDX4oXe5E,16700
18
18
  dao_treasury/types.py,sha256=dJDx0hYfDDL3slcUzRnCgrzFFsgCzoqg8uaTtLaT4kk,3685
19
19
  dao_treasury/.grafana/provisioning/dashboards/dashboards.yaml,sha256=tr6FBJeAAPX76db8E3qBBVWnq2-yrWDXDGuclMDg6dw,1277
20
20
  dao_treasury/.grafana/provisioning/dashboards/streams/LlamaPay.json,sha256=9OzlVtq0wRBDw3MhoaYLrT_hd7w_V3c_B7bYNmX4TJo,7023
@@ -25,29 +25,27 @@ dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow.json,sha256=DOpO
25
25
  dao_treasury/.grafana/provisioning/dashboards/treasury/Operating Cashflow.json,sha256=tKtUeBp9p-g21MOaFMPItUoXF_coHMM000yNipNB_RU,14352
26
26
  dao_treasury/.grafana/provisioning/dashboards/treasury/Treasury.json,sha256=p9bupL06-CKqkqCOb6KkgP1LCa6P1VMkq3yhkyqMAzI,70178
27
27
  dao_treasury/.grafana/provisioning/datasources/datasources.yaml,sha256=mjQs8or651NgD_bZnKBm8vSghzjw_g3enL01YPt0dik,327
28
- dao_treasury/sorting/__init__.cpython-312-i386-linux-musl.so,sha256=mbOENWFhdPkRlMgDIvU7UYD2iGRMLbWx-5LeWs8_PWA,16708
28
+ dao_treasury/sorting/__init__.cpython-312-i386-linux-musl.so,sha256=Xil7Y1Hg4C95jot13FNXm8Y-BiVTbdpOC_hkBbbuYN4,16708
29
29
  dao_treasury/sorting/__init__.py,sha256=vKj3NPB7EWbX7_fSUWKXk-NsyPasOkFhJvJVGclBOAE,10371
30
- dao_treasury/sorting/_matchers.cpython-312-i386-linux-musl.so,sha256=Qm7i7BD8es9Mj8KNjFGbZqV5cv07Yg7p39aKFkSYtiM,16732
30
+ dao_treasury/sorting/_matchers.cpython-312-i386-linux-musl.so,sha256=SMm4wU1zQUHltnEzuKmL-lsIAL503y3PHZdi5KaETw8,16732
31
31
  dao_treasury/sorting/_matchers.py,sha256=u0GfPYiODr_NtzbfyLxEKDuXmWRiaeuZulDj9FPDOH8,14005
32
- dao_treasury/sorting/_rules.cpython-312-i386-linux-musl.so,sha256=RHLpOY3TV73W8xI9ig6_Un2XgGe0mp5WX6YbBGaHlSw,16716
32
+ dao_treasury/sorting/_rules.cpython-312-i386-linux-musl.so,sha256=HwNWoOF49gVDzVq6SC8OXyji4EPUaNLZBijpxj-5Kh8,16716
33
33
  dao_treasury/sorting/_rules.py,sha256=vWkqJVA8yCHKRv9sw872Jq6G0zpM-v_J1jCz-Mgleec,8994
34
- dao_treasury/sorting/factory.cpython-312-i386-linux-musl.so,sha256=4ejQ9SSR3xD2HVpZMGfnAZPrAkykAZXDKpzSO5mbXNY,16724
34
+ dao_treasury/sorting/factory.cpython-312-i386-linux-musl.so,sha256=4Sva3foG3MNwOSSQEHUUMyKXMy7D9SVD_tJuVFqHT4Y,16724
35
35
  dao_treasury/sorting/factory.py,sha256=pFD6luc0bKxOTT1hlAp3ZwJw6R0wN8pjIZrqMZwhsko,10185
36
- dao_treasury/sorting/rule.cpython-312-i386-linux-musl.so,sha256=-5jgd62cUmoAJ1zAYXOU4HuuyOTFiwABSADBIlkmg9I,16708
36
+ dao_treasury/sorting/rule.cpython-312-i386-linux-musl.so,sha256=7Gqjt2BfttiZfB05aphYZt44mKuT7c5FgU2j-_t7eTo,16708
37
37
  dao_treasury/sorting/rule.py,sha256=-4dokQbRJ2GPJLEwtpgGG0aXAM1pW4jI17aezo--Z5g,11491
38
- dao_treasury/sorting/rules/__init__.cpython-312-i386-linux-musl.so,sha256=qcLw-P1nQUo-UULXBdQRULZ0xEfVg9vsxkXS0Pe926M,16716
38
+ dao_treasury/sorting/rules/__init__.cpython-312-i386-linux-musl.so,sha256=_EGbIcGKlhQPlhIvoj-tXBPtWmVXS3Oq-V5CqMpzNQI,16716
39
39
  dao_treasury/sorting/rules/__init__.py,sha256=ofzIsW0P74kuKr6DlScZIF8p7hBh6guRpe1uOq6oLLA,48
40
- dao_treasury/sorting/rules/ignore/__init__.cpython-312-i386-linux-musl.so,sha256=UBroPZoEPt_xUj90DuxCQqh_TAN6JFElB91LwV92st0,16728
41
- dao_treasury/sorting/rules/ignore/__init__.py,sha256=JFmwn1bIX5UYDnCH0UU4UTFUFSFaqL-VBG9SYtJGYtI,115
42
- dao_treasury/sorting/rules/ignore/llamapay.cpython-312-i386-linux-musl.so,sha256=efLJmyE99kSmldL8BDh9kpgxNeMmA7Pf0rGTIF1hZnU,16752
40
+ dao_treasury/sorting/rules/ignore/__init__.cpython-312-i386-linux-musl.so,sha256=B_aYUsGFjfUaHoGJeqIegII_EdRf9jgwbHDB5fEjfGY,16728
41
+ dao_treasury/sorting/rules/ignore/__init__.py,sha256=dJ4oKSLe7fal1Ct7XtMCfVJAtvZXcyIomf8HF3gWUhQ,57
42
+ dao_treasury/sorting/rules/ignore/llamapay.cpython-312-i386-linux-musl.so,sha256=-sRrJjys5v6JdwLuSE5MfP_Q_xzsiHsRyqrgMt9vfmM,16752
43
43
  dao_treasury/sorting/rules/ignore/llamapay.py,sha256=NgiVt9MRtI-f4mw9U5_gqttdPqDa3vt_z5XWJP_UYWs,763
44
- dao_treasury/sorting/rules/ignore/shitcoins.cpython-312-i386-linux-musl.so,sha256=PDFEZ6JMN5gpGN2lFpwR4nEMnAowZhAxng2X3d4OSCM,16756
45
- dao_treasury/sorting/rules/ignore/shitcoins.py,sha256=XVozrgrHlBESih3-xqXksaktjf3AJzWseowd4_yXDdI,767
46
- dao_treasury/streams/__init__.cpython-312-i386-linux-musl.so,sha256=AK2R2YdsIwz6WP2Y1UP4zdX80ZXr-Vw_tq0CRcdaOVw,16708
44
+ dao_treasury/streams/__init__.cpython-312-i386-linux-musl.so,sha256=_Zh19YbU_l_Dxvne32JkA55wZACaRwE_SCIZQvW4XHM,16708
47
45
  dao_treasury/streams/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- dao_treasury/streams/llamapay.cpython-312-i386-linux-musl.so,sha256=h3Z_WzxbSQbWK6UVW27vaopl2KOeCtGWYZaFehbWNJ0,16724
46
+ dao_treasury/streams/llamapay.cpython-312-i386-linux-musl.so,sha256=yD5M-4fg9HPVVh86o3yrWmEVxp83zDW57I3E4w_Z5pk,16724
49
47
  dao_treasury/streams/llamapay.py,sha256=yn37gwVfqGFF9fOhHuj9_t7KlHGyrdekF2TUmVDyg64,13147
50
- dao_treasury-0.0.39.dist-info/METADATA,sha256=gWkd23w5wkfZ5E-FrrWcWfnew1DJcvRNFKGcZDM7SAE,7030
51
- dao_treasury-0.0.39.dist-info/WHEEL,sha256=Vuwis_LWaa45QUuJ2qqSgABfO0elv3qQohyjTF3DnPc,110
52
- dao_treasury-0.0.39.dist-info/top_level.txt,sha256=OJ9btLujcmz6HPYrhPuxnkTZ5Fl9uw584qBW96ZpkV4,41
53
- dao_treasury-0.0.39.dist-info/RECORD,,
48
+ dao_treasury-0.0.40.dist-info/METADATA,sha256=z8Mi7J93Bxoxtqx8ETYSlxZfQgdoeHdNrkbRBjBJ9YM,7030
49
+ dao_treasury-0.0.40.dist-info/WHEEL,sha256=Vuwis_LWaa45QUuJ2qqSgABfO0elv3qQohyjTF3DnPc,110
50
+ dao_treasury-0.0.40.dist-info/top_level.txt,sha256=Gw-ri_26lZA_3hwhnOX48mffUbmBGr8NhtoQ0XoMeF8,41
51
+ dao_treasury-0.0.40.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ bf2b4fe1f86ad2ea158b__mypyc
2
+ dao_treasury
@@ -1,24 +0,0 @@
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
@@ -1,2 +0,0 @@
1
- 8a0ad9a1a4146730a0f6__mypyc
2
- dao_treasury