dao-treasury 0.0.61__cp310-cp310-win_amd64.whl → 0.0.65__cp310-cp310-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.
- dao_treasury/_docker.cp310-win_amd64.pyd +0 -0
- dao_treasury/_docker.py +24 -20
- dao_treasury/_nicknames.cp310-win_amd64.pyd +0 -0
- dao_treasury/_wallet.cp310-win_amd64.pyd +0 -0
- dao_treasury/constants.cp310-win_amd64.pyd +0 -0
- dao_treasury/db.py +4 -0
- dao_treasury/sorting/__init__.cp310-win_amd64.pyd +0 -0
- dao_treasury/sorting/_matchers.cp310-win_amd64.pyd +0 -0
- dao_treasury/sorting/_rules.cp310-win_amd64.pyd +0 -0
- dao_treasury/sorting/factory.cp310-win_amd64.pyd +0 -0
- dao_treasury/sorting/rule.cp310-win_amd64.pyd +0 -0
- dao_treasury/sorting/rules/__init__.cp310-win_amd64.pyd +0 -0
- dao_treasury/sorting/rules/ignore/__init__.cp310-win_amd64.pyd +0 -0
- dao_treasury/sorting/rules/ignore/llamapay.cp310-win_amd64.pyd +0 -0
- dao_treasury/streams/__init__.cp310-win_amd64.pyd +0 -0
- dao_treasury/streams/llamapay.cp310-win_amd64.pyd +0 -0
- dao_treasury/types.cp310-win_amd64.pyd +0 -0
- {dao_treasury-0.0.61.dist-info → dao_treasury-0.0.65.dist-info}/METADATA +3 -3
- {dao_treasury-0.0.61.dist-info → dao_treasury-0.0.65.dist-info}/RECORD +22 -22
- dao_treasury__mypyc.cp310-win_amd64.pyd +0 -0
- {dao_treasury-0.0.61.dist-info → dao_treasury-0.0.65.dist-info}/WHEEL +0 -0
- {dao_treasury-0.0.61.dist-info → dao_treasury-0.0.65.dist-info}/top_level.txt +0 -0
|
Binary file
|
dao_treasury/_docker.py
CHANGED
|
@@ -14,17 +14,17 @@ This is the main entry for all Docker-based orchestration.
|
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
16
|
import logging
|
|
17
|
-
from importlib import resources
|
|
18
|
-
import subprocess
|
|
19
17
|
from functools import wraps
|
|
20
|
-
from
|
|
18
|
+
from importlib import resources
|
|
19
|
+
from typing import Any, Callable, Coroutine, Final, Literal, Tuple, TypeVar, List
|
|
21
20
|
|
|
22
21
|
import eth_portfolio_scripts.docker
|
|
22
|
+
from eth_portfolio_scripts.docker import docker_compose
|
|
23
23
|
from typing_extensions import ParamSpec
|
|
24
24
|
|
|
25
25
|
logger: Final = logging.getLogger(__name__)
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
COMPOSE_FILE: Final = str(
|
|
28
28
|
resources.files("dao_treasury").joinpath("docker-compose.yaml")
|
|
29
29
|
)
|
|
30
30
|
"""The path of dao-treasury's docker-compose.yaml file on your machine"""
|
|
@@ -55,7 +55,7 @@ def up(*services: str) -> None:
|
|
|
55
55
|
# eth-portfolio containers must be started first so dao-treasury can attach to the eth-portfolio docker network
|
|
56
56
|
eth_portfolio_scripts.docker.up("victoria-metrics")
|
|
57
57
|
build(*services)
|
|
58
|
-
|
|
58
|
+
_print_notice("starting", services)
|
|
59
59
|
_exec_command(["up", "-d", *services])
|
|
60
60
|
|
|
61
61
|
|
|
@@ -72,6 +72,7 @@ def down() -> None:
|
|
|
72
72
|
See Also:
|
|
73
73
|
:func:`up`
|
|
74
74
|
"""
|
|
75
|
+
print("stopping all dao-treasury containers")
|
|
75
76
|
_exec_command(["down"])
|
|
76
77
|
|
|
77
78
|
|
|
@@ -90,10 +91,24 @@ def build(*services: str) -> None:
|
|
|
90
91
|
:func:`up`
|
|
91
92
|
:func:`_exec_command`
|
|
92
93
|
"""
|
|
93
|
-
|
|
94
|
+
_print_notice("building", services)
|
|
94
95
|
_exec_command(["build", *services])
|
|
95
96
|
|
|
96
97
|
|
|
98
|
+
def _print_notice(
|
|
99
|
+
doing: Literal["building", "starting"], services: Tuple[str, ...]
|
|
100
|
+
) -> None:
|
|
101
|
+
if len(services) == 1:
|
|
102
|
+
container = services[0]
|
|
103
|
+
print(f"{doing} the {container} container")
|
|
104
|
+
elif len(services) == 2:
|
|
105
|
+
first, second = services
|
|
106
|
+
print(f"{doing} the {first} and {second} containers")
|
|
107
|
+
else:
|
|
108
|
+
*all_but_last, last = services
|
|
109
|
+
print(f"{doing} the {', '.join(all_but_last)}, and {last} containers")
|
|
110
|
+
|
|
111
|
+
|
|
97
112
|
_P = ParamSpec("_P")
|
|
98
113
|
_T = TypeVar("_T")
|
|
99
114
|
|
|
@@ -174,17 +189,6 @@ def _exec_command(command: List[str], *, compose_options: Tuple[str, ...] = ())
|
|
|
174
189
|
See Also:
|
|
175
190
|
:func:`check_system`
|
|
176
191
|
"""
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
["docker", "compose", *compose_options, "-f", compose_file, *command]
|
|
181
|
-
)
|
|
182
|
-
except (subprocess.CalledProcessError, FileNotFoundError) as e:
|
|
183
|
-
try:
|
|
184
|
-
subprocess.check_output(
|
|
185
|
-
["docker-compose", *compose_options, "-f", compose_file, *command]
|
|
186
|
-
)
|
|
187
|
-
except (subprocess.CalledProcessError, FileNotFoundError) as _e:
|
|
188
|
-
raise RuntimeError(
|
|
189
|
-
f"Error occurred while running {' '.join(command)}: {_e}"
|
|
190
|
-
) from _e
|
|
192
|
+
docker_compose._exec_command(
|
|
193
|
+
command, compose_file=COMPOSE_FILE, compose_options=compose_options
|
|
194
|
+
)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
dao_treasury/db.py
CHANGED
|
@@ -746,6 +746,10 @@ class TreasuryTx(DbEntity):
|
|
|
746
746
|
"""Human-readable label for the sender address."""
|
|
747
747
|
return self.from_address.nickname or self.from_address.address # type: ignore [union-attr]
|
|
748
748
|
|
|
749
|
+
@property
|
|
750
|
+
def token_address(self) -> ChecksumAddress:
|
|
751
|
+
return self.token.address.address
|
|
752
|
+
|
|
749
753
|
@property
|
|
750
754
|
def symbol(self) -> str:
|
|
751
755
|
"""Ticker symbol for the transferred token."""
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dao_treasury
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.65
|
|
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.2.
|
|
17
|
+
Requires-Dist: eth-portfolio-temp==0.2.16
|
|
18
18
|
Dynamic: classifier
|
|
19
19
|
Dynamic: description
|
|
20
20
|
Dynamic: description-content-type
|
|
@@ -41,7 +41,7 @@ DAO Treasury is a comprehensive financial reporting and treasury management solu
|
|
|
41
41
|
- 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).
|
|
42
42
|
- You must configure a [brownie network](https://eth-brownie.readthedocs.io/en/stable/network-management.html) to use your RPC.
|
|
43
43
|
- 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.
|
|
44
|
-
- 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
|
|
44
|
+
- 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 DAO Treasury is running.
|
|
45
45
|
|
|
46
46
|
## Installation
|
|
47
47
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
dao_treasury__mypyc.cp310-win_amd64.pyd,sha256=
|
|
1
|
+
dao_treasury__mypyc.cp310-win_amd64.pyd,sha256=DghHRyeKFSzkc-GEtGTQsykWuYjvd3fLVPYNWDDJrl8,453632
|
|
2
2
|
dao_treasury/ENVIRONMENT_VARIABLES.py,sha256=LS_D4ALB3BO-vYKyh1tzRHi10QBE6f654Zy8pmJ_xPY,656
|
|
3
3
|
dao_treasury/__init__.py,sha256=ai8iALE_Zv43O9cH1jkNJ39bzhr60kBDX6L7C4Nj9FA,1539
|
|
4
|
-
dao_treasury/_docker.cp310-win_amd64.pyd,sha256=
|
|
5
|
-
dao_treasury/_docker.py,sha256=
|
|
6
|
-
dao_treasury/_nicknames.cp310-win_amd64.pyd,sha256=
|
|
4
|
+
dao_treasury/_docker.cp310-win_amd64.pyd,sha256=LNkQ1vTCvqnMfKcZ441_scq9VVTn-2iP-PUGu8W7F4E,10752
|
|
5
|
+
dao_treasury/_docker.py,sha256=Rki3eLKOmsNxN3nF-gmbM9UQV49SY7ToEHZboL_HYvA,6118
|
|
6
|
+
dao_treasury/_nicknames.cp310-win_amd64.pyd,sha256=yVGfSeDZoj4tTOT2nBU-04lRCIMbMsQs-XfeEKUO7vE,10752
|
|
7
7
|
dao_treasury/_nicknames.py,sha256=n8c-JZhORYymCMv6jsC96IthAzAhpslyEn-KCk_YiSM,1049
|
|
8
|
-
dao_treasury/_wallet.cp310-win_amd64.pyd,sha256=
|
|
8
|
+
dao_treasury/_wallet.cp310-win_amd64.pyd,sha256=l-DveWqJkg-APHY5tBhSN3Wlz21W_Zw0bCWOpVm3qjk,10752
|
|
9
9
|
dao_treasury/_wallet.py,sha256=nHBAKFJstdKuYbvpskGVx2KU80YrZHGHsEh5V3TwIHs,10712
|
|
10
|
-
dao_treasury/constants.cp310-win_amd64.pyd,sha256=
|
|
10
|
+
dao_treasury/constants.cp310-win_amd64.pyd,sha256=OJYeqNAw0AEyKPjRGQFNE9sX0PeDd1XoJPuvEPeC65w,10752
|
|
11
11
|
dao_treasury/constants.py,sha256=-T0oPw7lC5YeaiplHAtYL-2ss7knvKrJKQ1LCc8kX8g,1483
|
|
12
|
-
dao_treasury/db.py,sha256=
|
|
12
|
+
dao_treasury/db.py,sha256=4Vc_U3mmrG8hOpsuDcgCQQuwGyL3pyfYH2jjktDXx48,50734
|
|
13
13
|
dao_treasury/docker-compose.yaml,sha256=wNNE9xmkchcV-nJxzrmUkbUA0CW1qgdGQKJ7uw2P8nU,1350
|
|
14
14
|
dao_treasury/main.py,sha256=w7VBmBwNBYjOkz2LpT4_9FZ1CI8AVcr4vyfr1wZVk5Q,8458
|
|
15
15
|
dao_treasury/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
dao_treasury/treasury.py,sha256=wh4wESLbYSHjcfpa-sW5TIqa5pSC9Y_7Id8tzLzJLaw,7414
|
|
17
|
-
dao_treasury/types.cp310-win_amd64.pyd,sha256=
|
|
17
|
+
dao_treasury/types.cp310-win_amd64.pyd,sha256=R-0Y7HloQd6z62d2nA0Bsr-AiRlxD4FNEsq8DtdQ2ds,10752
|
|
18
18
|
dao_treasury/types.py,sha256=KFz4WKPp4t_RBwIT6YGwOcgbzw8tdHIOcXTFsUA0pJA,3818
|
|
19
19
|
dao_treasury/.grafana/provisioning/dashboards/dashboards.yaml,sha256=NfmmICGLVfIrI8ulzUTUYc7wFetk2v-x6eaoYHnCvQc,1914
|
|
20
20
|
dao_treasury/.grafana/provisioning/dashboards/breakdowns/Expenses.json,sha256=gxfPI4eO3PDPe70Yx7_dN0Yx5isvgy-MKe-fizBClMw,16879
|
|
@@ -28,27 +28,27 @@ dao_treasury/.grafana/provisioning/dashboards/treasury/Current Treasury Assets.j
|
|
|
28
28
|
dao_treasury/.grafana/provisioning/dashboards/treasury/Historical Treasury Balances.json,sha256=7qVXn2PjeBIp2pFRbVfxA4PeWxhhVKQCr4qIPZoIj90,133963
|
|
29
29
|
dao_treasury/.grafana/provisioning/dashboards/treasury/Operating Cashflow.json,sha256=fYkiZ37Eg2vu9dPJavCZXPPtX6-rTDbJwE_Ougpo2Mk,15828
|
|
30
30
|
dao_treasury/.grafana/provisioning/datasources/datasources.yaml,sha256=gLmJsOkEXNzWRDibShfHFySWeuExW-dSB_U0OSfH868,344
|
|
31
|
-
dao_treasury/sorting/__init__.cp310-win_amd64.pyd,sha256=
|
|
31
|
+
dao_treasury/sorting/__init__.cp310-win_amd64.pyd,sha256=N8zQRRFk-ZCJ8Xc-K9Z2u4Y9mtUdSzUNrQZnjTTw6bc,10752
|
|
32
32
|
dao_treasury/sorting/__init__.py,sha256=_uxM_FE1paM8oDAhDdHSyhDwnrlxCYX_lGn2DOqCaHU,10666
|
|
33
|
-
dao_treasury/sorting/_matchers.cp310-win_amd64.pyd,sha256=
|
|
33
|
+
dao_treasury/sorting/_matchers.cp310-win_amd64.pyd,sha256=y7Aa4HzKLvm_BIz5_bPSM7A6v-6aOZJ5UlnVE2cHh64,10752
|
|
34
34
|
dao_treasury/sorting/_matchers.py,sha256=ACi6aXZCKW5OTiztsID7CXCGJounj5c6ivhOCg2436M,14392
|
|
35
|
-
dao_treasury/sorting/_rules.cp310-win_amd64.pyd,sha256=
|
|
35
|
+
dao_treasury/sorting/_rules.cp310-win_amd64.pyd,sha256=os9c2exnpJb06MIh7VGs8m1R6O2t9CjdfFGnu-t_z7c,10752
|
|
36
36
|
dao_treasury/sorting/_rules.py,sha256=DxhdUgpS0q0LWeLl9W1Bjn5LZz9z4OLA03vQllPMH9k,9229
|
|
37
|
-
dao_treasury/sorting/factory.cp310-win_amd64.pyd,sha256=
|
|
37
|
+
dao_treasury/sorting/factory.cp310-win_amd64.pyd,sha256=w7DY3Fv_2UOG81TnvqkY5juH5ZcUlKwlA8QLvpqgOm0,10752
|
|
38
38
|
dao_treasury/sorting/factory.py,sha256=zlJ18xlMTxv8ACV6_MimCVIDsw3K5AZcyvKaNYY7R14,10484
|
|
39
|
-
dao_treasury/sorting/rule.cp310-win_amd64.pyd,sha256=
|
|
39
|
+
dao_treasury/sorting/rule.cp310-win_amd64.pyd,sha256=ZS-_KOm4vc0sFQSNhq35QcQKCYY2zJ-aht0lvs1iKc0,10752
|
|
40
40
|
dao_treasury/sorting/rule.py,sha256=wbL8s0-6dxcCKghUtEDSkLDBnyvggsJ3gt_RawQ6kB4,11972
|
|
41
|
-
dao_treasury/sorting/rules/__init__.cp310-win_amd64.pyd,sha256=
|
|
41
|
+
dao_treasury/sorting/rules/__init__.cp310-win_amd64.pyd,sha256=X3-H-xV58mNot4tqjnKU-Fx9ojfMgKO-Q-Fy2Lb2clY,10752
|
|
42
42
|
dao_treasury/sorting/rules/__init__.py,sha256=hcLfejOEwD8RaM2RE-38Ej6_WkvL9BVGvIIGY848E6E,49
|
|
43
|
-
dao_treasury/sorting/rules/ignore/__init__.cp310-win_amd64.pyd,sha256=
|
|
43
|
+
dao_treasury/sorting/rules/ignore/__init__.cp310-win_amd64.pyd,sha256=EvDDntMLaNGXiNbKfGJ9ycU233Vmsa2I9961dHl25sM,10752
|
|
44
44
|
dao_treasury/sorting/rules/ignore/__init__.py,sha256=16THKoGdj6qfkkytuCFVG_R1M6KSErMI4AVE1p0ukS4,58
|
|
45
|
-
dao_treasury/sorting/rules/ignore/llamapay.cp310-win_amd64.pyd,sha256=
|
|
45
|
+
dao_treasury/sorting/rules/ignore/llamapay.cp310-win_amd64.pyd,sha256=PXqluILkmUtgdFq7wK-Xgj2FawgkKWjsBU0J0-QYtgk,10752
|
|
46
46
|
dao_treasury/sorting/rules/ignore/llamapay.py,sha256=aYyAJRlmv419IeaqkcV5o3ffx0UVfteU0lTl80j0BGo,783
|
|
47
|
-
dao_treasury/streams/__init__.cp310-win_amd64.pyd,sha256=
|
|
47
|
+
dao_treasury/streams/__init__.cp310-win_amd64.pyd,sha256=iuH7VN05E9OLCRIqNiudThz5JjbO-aj1We93s2MP058,10752
|
|
48
48
|
dao_treasury/streams/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
dao_treasury/streams/llamapay.cp310-win_amd64.pyd,sha256=
|
|
49
|
+
dao_treasury/streams/llamapay.cp310-win_amd64.pyd,sha256=fM7aUdBUugYXN63L59mBfclsI4yNca6HM8EL_togqPU,10752
|
|
50
50
|
dao_treasury/streams/llamapay.py,sha256=rO1Mh2ndTziR6pnRkKHnQ22a_Yx9PM_-BG7I4dspEZ8,13535
|
|
51
|
-
dao_treasury-0.0.
|
|
52
|
-
dao_treasury-0.0.
|
|
53
|
-
dao_treasury-0.0.
|
|
54
|
-
dao_treasury-0.0.
|
|
51
|
+
dao_treasury-0.0.65.dist-info/METADATA,sha256=qntWWqFNrjHMrSzEFDt_a1vQ0L16EvNaLZdzDioBkj0,7231
|
|
52
|
+
dao_treasury-0.0.65.dist-info/WHEEL,sha256=KUuBC6lxAbHCKilKua8R9W_TM71_-9Sg5uEP3uDWcoU,101
|
|
53
|
+
dao_treasury-0.0.65.dist-info/top_level.txt,sha256=CV8aYytuSYplDhLVY4n0GphckdysXCd1lHmbqfsPxNk,33
|
|
54
|
+
dao_treasury-0.0.65.dist-info/RECORD,,
|
|
Binary file
|
|
File without changes
|
|
File without changes
|