eth-portfolio-temp 0.2.6.dev0__cp313-cp313-win32.whl → 0.2.8.dev0__cp313-cp313-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 eth-portfolio-temp might be problematic. Click here for more details.
- 295eace8438df6ec133b__mypyc.cp313-win32.pyd +0 -0
- eth_portfolio/_argspec.cp313-win32.pyd +0 -0
- eth_portfolio/_cache.py +2 -2
- eth_portfolio/_config.cp313-win32.pyd +0 -0
- eth_portfolio/_db/utils.py +6 -8
- eth_portfolio/_decimal.py +11 -10
- eth_portfolio/_loaders/_nonce.cp313-win32.pyd +0 -0
- eth_portfolio/_loaders/balances.cp313-win32.pyd +0 -0
- eth_portfolio/_loaders/utils.cp313-win32.pyd +0 -0
- eth_portfolio/_shitcoins.cp313-win32.pyd +0 -0
- eth_portfolio/_shitcoins.py +15 -0
- eth_portfolio/_stableish.cp313-win32.pyd +0 -0
- eth_portfolio/_utils.py +0 -4
- eth_portfolio/constants.cp313-win32.pyd +0 -0
- eth_portfolio/structs/structs.py +2 -2
- eth_portfolio/typing/__init__.py +4 -4
- eth_portfolio_scripts/_portfolio.py +4 -2
- eth_portfolio_scripts/balances.cp313-win32.pyd +0 -0
- eth_portfolio_scripts/docker/__init__.cp313-win32.pyd +0 -0
- eth_portfolio_scripts/docker/check.cp313-win32.pyd +0 -0
- eth_portfolio_scripts/docker/docker-compose.yaml +1 -1
- eth_portfolio_scripts/docker/docker_compose.cp313-win32.pyd +0 -0
- {eth_portfolio_temp-0.2.6.dev0.dist-info → eth_portfolio_temp-0.2.8.dev0.dist-info}/METADATA +1 -1
- {eth_portfolio_temp-0.2.6.dev0.dist-info → eth_portfolio_temp-0.2.8.dev0.dist-info}/RECORD +27 -27
- {eth_portfolio_temp-0.2.6.dev0.dist-info → eth_portfolio_temp-0.2.8.dev0.dist-info}/WHEEL +0 -0
- {eth_portfolio_temp-0.2.6.dev0.dist-info → eth_portfolio_temp-0.2.8.dev0.dist-info}/entry_points.txt +0 -0
- {eth_portfolio_temp-0.2.6.dev0.dist-info → eth_portfolio_temp-0.2.8.dev0.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
eth_portfolio/_cache.py
CHANGED
|
@@ -30,7 +30,7 @@ def cache_to_disk(fn: Callable[P, T]) -> Callable[P, T]:
|
|
|
30
30
|
cache_path_for_fn = f"{BASE_PATH}{fn.__module__.replace('.', '/')}/{name}"
|
|
31
31
|
logger = getLogger(f"eth_portfolio.cache_to_disk.{name}")
|
|
32
32
|
|
|
33
|
-
def get_cache_file_path(args, kwargs):
|
|
33
|
+
def get_cache_file_path(args: tuple[Any, ...], kwargs: dict[str, Any]) -> str:
|
|
34
34
|
# Create a unique filename based on the function arguments
|
|
35
35
|
key = md5(dumps((args, sorted(kwargs.items())))).hexdigest()
|
|
36
36
|
return join(cache_path_for_fn, f"{key}.json")
|
|
@@ -46,7 +46,7 @@ def cache_to_disk(fn: Callable[P, T]) -> Callable[P, T]:
|
|
|
46
46
|
|
|
47
47
|
queue: PriorityQueue = PriorityQueue()
|
|
48
48
|
|
|
49
|
-
async def cache_deco_worker_coro(func) -> NoReturn:
|
|
49
|
+
async def cache_deco_worker_coro(func: Callable[..., Any]) -> NoReturn:
|
|
50
50
|
try:
|
|
51
51
|
while True:
|
|
52
52
|
_, fut, cache_path, args, kwargs = await queue.get()
|
|
Binary file
|
eth_portfolio/_db/utils.py
CHANGED
|
@@ -7,8 +7,7 @@ import evmspec
|
|
|
7
7
|
import y._db.common
|
|
8
8
|
import y._db.config as config
|
|
9
9
|
from a_sync import PruningThreadPoolExecutor, a_sync
|
|
10
|
-
from
|
|
11
|
-
from eth_typing import ChecksumAddress
|
|
10
|
+
from eth_typing import ChecksumAddress, HexAddress
|
|
12
11
|
from evmspec.data import _decode_hook
|
|
13
12
|
from logging import getLogger
|
|
14
13
|
from msgspec import ValidationError, json
|
|
@@ -32,7 +31,6 @@ from eth_portfolio._db.decorators import break_locks, requery_objs_on_diff_tx_er
|
|
|
32
31
|
from eth_portfolio._db.entities import (
|
|
33
32
|
AddressExtended,
|
|
34
33
|
BlockExtended,
|
|
35
|
-
ContractExtended,
|
|
36
34
|
TokenExtended,
|
|
37
35
|
)
|
|
38
36
|
from eth_portfolio._decimal import Decimal
|
|
@@ -42,7 +40,7 @@ from eth_portfolio.typing import _P, _T, Fn
|
|
|
42
40
|
logger = getLogger(__name__)
|
|
43
41
|
|
|
44
42
|
|
|
45
|
-
def __bind():
|
|
43
|
+
def __bind() -> None:
|
|
46
44
|
try:
|
|
47
45
|
db.bind(**config.connection_settings)
|
|
48
46
|
except BindingError as e:
|
|
@@ -176,7 +174,7 @@ def ensure_block(block: int) -> None:
|
|
|
176
174
|
# )
|
|
177
175
|
|
|
178
176
|
|
|
179
|
-
def is_token(address) -> bool:
|
|
177
|
+
def is_token(address: ChecksumAddress) -> bool:
|
|
180
178
|
if address == EEE_ADDRESS:
|
|
181
179
|
return False
|
|
182
180
|
# with suppress(NonStandardERC20):
|
|
@@ -188,7 +186,7 @@ def is_token(address) -> bool:
|
|
|
188
186
|
return get_event_loop().run_until_complete(_is_token(address))
|
|
189
187
|
|
|
190
188
|
|
|
191
|
-
async def _is_token(address) -> bool:
|
|
189
|
+
async def _is_token(address: HexAddress) -> bool:
|
|
192
190
|
# just breaking a weird lock, dont mind me
|
|
193
191
|
if retval := await get_event_loop().run_in_executor(process, __is_token, address): # type: ignore [name-defined]
|
|
194
192
|
logger.debug("%s is token")
|
|
@@ -197,7 +195,7 @@ async def _is_token(address) -> bool:
|
|
|
197
195
|
return retval
|
|
198
196
|
|
|
199
197
|
|
|
200
|
-
def __is_token(address) -> bool:
|
|
198
|
+
def __is_token(address: HexAddress) -> bool:
|
|
201
199
|
with suppress(NonStandardERC20):
|
|
202
200
|
erc = ERC20(address, asynchronous=True)
|
|
203
201
|
if all(
|
|
@@ -322,7 +320,7 @@ async def get_transaction(sender: ChecksumAddress, nonce: int) -> Optional[Trans
|
|
|
322
320
|
_decoded = 0
|
|
323
321
|
|
|
324
322
|
|
|
325
|
-
async def _yield_to_loop():
|
|
323
|
+
async def _yield_to_loop() -> None:
|
|
326
324
|
"""dont let the event loop get congested, let your rpc begin work asap"""
|
|
327
325
|
global _decoded
|
|
328
326
|
_decoded += 1
|
eth_portfolio/_decimal.py
CHANGED
|
@@ -3,6 +3,7 @@ import logging
|
|
|
3
3
|
from typing import Union
|
|
4
4
|
|
|
5
5
|
from evmspec.data import Wei
|
|
6
|
+
from typing_extensions import Self
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
logger = logging.getLogger(__name__)
|
|
@@ -69,61 +70,61 @@ class Decimal(decimal.Decimal):
|
|
|
69
70
|
|
|
70
71
|
return string
|
|
71
72
|
|
|
72
|
-
def __add__(self, other):
|
|
73
|
+
def __add__(self, other) -> Self:
|
|
73
74
|
try:
|
|
74
75
|
return type(self)(super().__add__(other))
|
|
75
76
|
except TypeError as e:
|
|
76
77
|
raise TypeError(str(e), other) from e.__cause__
|
|
77
78
|
|
|
78
|
-
def __radd__(self, other):
|
|
79
|
+
def __radd__(self, other) -> Self:
|
|
79
80
|
try:
|
|
80
81
|
return type(self)(super().__radd__(other))
|
|
81
82
|
except TypeError as e:
|
|
82
83
|
raise TypeError(str(e), other) from e.__cause__
|
|
83
84
|
|
|
84
|
-
def __sub__(self, other):
|
|
85
|
+
def __sub__(self, other) -> Self:
|
|
85
86
|
try:
|
|
86
87
|
return type(self)(super().__sub__(other))
|
|
87
88
|
except TypeError as e:
|
|
88
89
|
raise TypeError(str(e), other) from e.__cause__
|
|
89
90
|
|
|
90
|
-
def __rsub__(self, other):
|
|
91
|
+
def __rsub__(self, other) -> Self:
|
|
91
92
|
try:
|
|
92
93
|
return type(self)(super().__rsub__(other))
|
|
93
94
|
except TypeError as e:
|
|
94
95
|
raise TypeError(str(e), other) from e.__cause__
|
|
95
96
|
|
|
96
|
-
def __mul__(self, other):
|
|
97
|
+
def __mul__(self, other) -> Self:
|
|
97
98
|
try:
|
|
98
99
|
return type(self)(super().__mul__(other))
|
|
99
100
|
except TypeError as e:
|
|
100
101
|
raise TypeError(str(e), other) from e.__cause__
|
|
101
102
|
|
|
102
|
-
def __rmul__(self, other):
|
|
103
|
+
def __rmul__(self, other) -> Self:
|
|
103
104
|
try:
|
|
104
105
|
return type(self)(super().__rmul__(other))
|
|
105
106
|
except TypeError as e:
|
|
106
107
|
raise TypeError(str(e), other) from e.__cause__
|
|
107
108
|
|
|
108
|
-
def __truediv__(self, other):
|
|
109
|
+
def __truediv__(self, other) -> Self:
|
|
109
110
|
try:
|
|
110
111
|
return type(self)(super().__truediv__(other))
|
|
111
112
|
except TypeError as e:
|
|
112
113
|
raise TypeError(str(e), other) from e.__cause__
|
|
113
114
|
|
|
114
|
-
def __rtruediv__(self, other):
|
|
115
|
+
def __rtruediv__(self, other) -> Self:
|
|
115
116
|
try:
|
|
116
117
|
return type(self)(super().__rtruediv__(other))
|
|
117
118
|
except TypeError as e:
|
|
118
119
|
raise TypeError(str(e), other) from e.__cause__
|
|
119
120
|
|
|
120
|
-
def __floordiv__(self, other):
|
|
121
|
+
def __floordiv__(self, other) -> Self:
|
|
121
122
|
try:
|
|
122
123
|
return type(self)(super().__floordiv__(other))
|
|
123
124
|
except TypeError as e:
|
|
124
125
|
raise TypeError(str(e), other) from e.__cause__
|
|
125
126
|
|
|
126
|
-
def __rfloordiv__(self, other):
|
|
127
|
+
def __rfloordiv__(self, other) -> Self:
|
|
127
128
|
try:
|
|
128
129
|
return type(self)(super().__rfloordiv__(other))
|
|
129
130
|
except TypeError as e:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
eth_portfolio/_shitcoins.py
CHANGED
|
@@ -97,6 +97,21 @@ shitcoins: Final = {
|
|
|
97
97
|
"0x0e1CD6d2715432e4DBedFE969b0Eb2867FF61d5b",
|
|
98
98
|
"0x9aE357521153FB07bE6F5792CE7a49752638fbb7",
|
|
99
99
|
# Generally looks like shit
|
|
100
|
+
"0xE8ED1fca5af1c7dd46A3D5bbDFf7e99749D9e0aa",
|
|
101
|
+
"0x00d0F0250364C431376cC64AADd3aa13c6A8998D",
|
|
102
|
+
"0x256099A072ea5fd35eC134758440413095967109",
|
|
103
|
+
"0xe975ACEb3b61a88A355B066D9cCC910CAb8b4853",
|
|
104
|
+
"0x59fF00f75b49089385377c7f7D905E193c9eb5e2",
|
|
105
|
+
"0x99304A346F8FD562336Fd3485301c02cEbE4F0ae",
|
|
106
|
+
"0x74b1C36268B5dC659aEEA588cb1683E96DaaB71a",
|
|
107
|
+
"0x92BF340B2c67be6911095675f744F9a3aD22d8F0",
|
|
108
|
+
"0xa635305B4a6A1E4A55Eb6A6B54a8D2a55e914F6f",
|
|
109
|
+
"0xC76f77Bff99Ec269050Ca929F4d37B00f012c65F",
|
|
110
|
+
"0x56BcBef8f5Ca4Fc224fE58187c66EA34d3A1ef4a",
|
|
111
|
+
"0xdc6050Ec75Bc4692333A1C301eB799e348d0b77e",
|
|
112
|
+
"0x0542e502cec25bD51b4f3461f4F704807FA1A6D8",
|
|
113
|
+
"0xc01e807Cc73469e9983B614A96847BC01332447d",
|
|
114
|
+
"0x87D38d662A4aae29BB60057e71AFf923C7523DC3",
|
|
100
115
|
"0xDFC01a7956C0d151ae197274B974fA7527EbAFB9",
|
|
101
116
|
"0xE256CF1C7caEff4383DabafEe6Dd53910F97213D",
|
|
102
117
|
"0x7CD6143B8781dC7e0667e50DB02Eb6539799722F",
|
|
Binary file
|
eth_portfolio/_utils.py
CHANGED
|
@@ -79,10 +79,6 @@ class Decimal(_decimal.Decimal):
|
|
|
79
79
|
|
|
80
80
|
# TODO i forget why I had this lol, should I delete?
|
|
81
81
|
|
|
82
|
-
def __init__(self, v) -> None:
|
|
83
|
-
# assert not isinstance(v, _decimal.Decimal)
|
|
84
|
-
super().__init__()
|
|
85
|
-
|
|
86
82
|
|
|
87
83
|
async def _describe_err(token: AddressOrContract, block: Optional[Block]) -> str:
|
|
88
84
|
"""
|
|
Binary file
|
eth_portfolio/structs/structs.py
CHANGED
|
@@ -80,7 +80,7 @@ class _LedgerEntryBase(DictStruct, kw_only=True, frozen=True, omit_defaults=True
|
|
|
80
80
|
The USD value of the cryptocurrency transferred in the {cls_name}, if price is known.
|
|
81
81
|
"""
|
|
82
82
|
|
|
83
|
-
def __init_subclass__(cls, **kwargs):
|
|
83
|
+
def __init_subclass__(cls, **kwargs: Any) -> None:
|
|
84
84
|
super().__init_subclass__(**kwargs)
|
|
85
85
|
|
|
86
86
|
# Replace {cls_name} in attribute-level docstrings
|
|
@@ -273,7 +273,7 @@ class _TransactionBase(
|
|
|
273
273
|
return self.transaction.yParity
|
|
274
274
|
|
|
275
275
|
@property
|
|
276
|
-
def __db_primary_key__(self):
|
|
276
|
+
def __db_primary_key__(self) -> Dict[str, tuple[int, Address] | int]:
|
|
277
277
|
return {"from_address": (chain.id, self.from_address), "nonce": self.nonce}
|
|
278
278
|
|
|
279
279
|
|
eth_portfolio/typing/__init__.py
CHANGED
|
@@ -43,7 +43,7 @@ from typing import (
|
|
|
43
43
|
)
|
|
44
44
|
|
|
45
45
|
from checksum_dict import DefaultChecksumDict
|
|
46
|
-
from eth_typing import BlockNumber
|
|
46
|
+
from eth_typing import BlockNumber, HexAddress
|
|
47
47
|
from pandas import DataFrame, concat
|
|
48
48
|
from typing_extensions import ParamSpec, Self
|
|
49
49
|
from y import Contract, ERC20
|
|
@@ -159,10 +159,10 @@ class TokenBalances(DefaultChecksumDict[Balance], _SummableNonNumericMixin): #
|
|
|
159
159
|
raise
|
|
160
160
|
self[token.address] += balance
|
|
161
161
|
|
|
162
|
-
def __getitem__(self, key) -> Balance:
|
|
162
|
+
def __getitem__(self, key: HexAddress) -> Balance:
|
|
163
163
|
return super().__getitem__(key) if key in self else Balance(token=key, block=self.block)
|
|
164
164
|
|
|
165
|
-
def __setitem__(self, key, value):
|
|
165
|
+
def __setitem__(self, key: HexAddress, value: Balance) -> None:
|
|
166
166
|
"""
|
|
167
167
|
Sets the balance for a given token address.
|
|
168
168
|
|
|
@@ -911,7 +911,7 @@ class PortfolioBalances(DefaultChecksumDict[WalletBalances], _SummableNonNumeric
|
|
|
911
911
|
)
|
|
912
912
|
self[wallet] += balances
|
|
913
913
|
|
|
914
|
-
def __setitem__(self, key, value):
|
|
914
|
+
def __setitem__(self, key: HexAddress, value: WalletBalances) -> None:
|
|
915
915
|
if not isinstance(value, WalletBalances):
|
|
916
916
|
raise TypeError(
|
|
917
917
|
f"value must be a `WalletBalances` object. You passed {value}"
|
|
@@ -35,11 +35,13 @@ logger: Final = getLogger("eth_portfolio")
|
|
|
35
35
|
log_debug: Final = logger.debug
|
|
36
36
|
log_error: Final = logger.error
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
_block_at_timestamp_semaphore: Final = a_sync.Semaphore(
|
|
39
|
+
100, name="eth-portfolio get_block_at_timestamp"
|
|
40
|
+
)
|
|
39
41
|
|
|
40
42
|
|
|
41
43
|
async def get_block_at_timestamp(dt: datetime) -> BlockNumber:
|
|
42
|
-
async with
|
|
44
|
+
async with _block_at_timestamp_semaphore:
|
|
43
45
|
while True:
|
|
44
46
|
try:
|
|
45
47
|
return await y.get_block_at_timestamp(dt, sync=False)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
295eace8438df6ec133b__mypyc.cp313-win32.pyd,sha256=
|
|
1
|
+
295eace8438df6ec133b__mypyc.cp313-win32.pyd,sha256=yMgaHx_g7ByLvH4M2hvf5UmFqYEKSAW1asTFZkLEWxo,259584
|
|
2
2
|
eth_portfolio/__init__.py,sha256=5GmHYzhUX2gOC4MScgXnqS8x2MawbpWOuWPmqlvCotA,525
|
|
3
|
-
eth_portfolio/_argspec.cp313-win32.pyd,sha256=
|
|
3
|
+
eth_portfolio/_argspec.cp313-win32.pyd,sha256=tJZKd1MMNiLb_vcFXhWV5nnkwZWaw8ga_c1OTywfZNw,9216
|
|
4
4
|
eth_portfolio/_argspec.py,sha256=au8ycJ56-7UzbQVzYUOoMX9sToH0QNi2tS1O820xB3A,1637
|
|
5
|
-
eth_portfolio/_cache.py,sha256=
|
|
6
|
-
eth_portfolio/_config.cp313-win32.pyd,sha256=
|
|
5
|
+
eth_portfolio/_cache.py,sha256=OntwbiDOrBV5JzHHDzJlxcEVrmKK5GG0uXeLeoDDbpA,4926
|
|
6
|
+
eth_portfolio/_config.cp313-win32.pyd,sha256=UotCkYqOPvuYytK_JjTw4Sot4hoPIA7zAWyyO4DOrdg,9216
|
|
7
7
|
eth_portfolio/_config.py,sha256=BSOvFS4D0oqgVTtBbtW2g2kpL8Mk6xiP0PipfXs_91A,102
|
|
8
|
-
eth_portfolio/_decimal.py,sha256=
|
|
8
|
+
eth_portfolio/_decimal.py,sha256=DwLUg8pzeTIREG2sHgRK48hoWmjelWNvpEKj10Ra7to,5002
|
|
9
9
|
eth_portfolio/_decorators.py,sha256=AvB-q69MvaFe0Ykh1os6hSewcUujURQ9onqobMaONOM,2899
|
|
10
10
|
eth_portfolio/_exceptions.py,sha256=xb5VmCtBtXy9WXu_1ofoG4j9BJsMQXMVydCJNUulrNY,2500
|
|
11
|
-
eth_portfolio/_shitcoins.cp313-win32.pyd,sha256=
|
|
12
|
-
eth_portfolio/_shitcoins.py,sha256=
|
|
13
|
-
eth_portfolio/_stableish.cp313-win32.pyd,sha256=
|
|
11
|
+
eth_portfolio/_shitcoins.cp313-win32.pyd,sha256=aYuPgoLwa-FNJpgcUlRQxvbd-RuRRaUi5-eP3707O8g,9216
|
|
12
|
+
eth_portfolio/_shitcoins.py,sha256=3LhVzMg8CkYDIClF1jIcrwT9Tofj4vZW7YjQchadpjk,16691
|
|
13
|
+
eth_portfolio/_stableish.cp313-win32.pyd,sha256=KRJ6J5OoxzYwCfw_AcSIe-SmE7ho_rHMlQciB8kLlqE,9216
|
|
14
14
|
eth_portfolio/_stableish.py,sha256=8pdlYe2YcZ8rTzdCzg-ihRQLPtSFXBNDjtnvuTgPRcQ,2063
|
|
15
15
|
eth_portfolio/_submodules.py,sha256=zne-2YyVFoKHwkLuHx8cdz5lpcwwSDw1edJ9v8G4c1A,2263
|
|
16
|
-
eth_portfolio/_utils.py,sha256=
|
|
16
|
+
eth_portfolio/_utils.py,sha256=MO5TyOyRGQMScScNFHzHNdT2xxoslS0DOXwqD37XeA8,7879
|
|
17
17
|
eth_portfolio/address.py,sha256=RrFIWSx6jSITwh16Hqs6W6S9fz1KEaebQEk1vqL3HwI,14536
|
|
18
18
|
eth_portfolio/buckets.py,sha256=pm2-_8VbGKpe6hHM6eysj17JK7Rhngr9-_gpVi-J1uA,6889
|
|
19
|
-
eth_portfolio/constants.cp313-win32.pyd,sha256=
|
|
19
|
+
eth_portfolio/constants.cp313-win32.pyd,sha256=vA75ZmWHbwrWj5vBblAFhL3kTsNeSn_Y9DzAOwT6--Y,9216
|
|
20
20
|
eth_portfolio/constants.py,sha256=rUXWFaCGrrF_qzIdDvVzakQJsLnrGtFNn2EgRbZh8fQ,3741
|
|
21
21
|
eth_portfolio/portfolio.py,sha256=FSJ1_FG120dN5vWSPyhbHfyuFHdmFqTHJ5_Ci-4Rts4,24909
|
|
22
22
|
eth_portfolio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
23
|
eth_portfolio/_db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
24
|
eth_portfolio/_db/decorators.py,sha256=RS-RiuOAgbrMKQpCwwAtP3lPRs8vKM6aPhh9LP4SwtI,5308
|
|
25
25
|
eth_portfolio/_db/entities.py,sha256=1Z1AsR400SJYzDrDGxUJt1HuSKB3ErvxIytFtju7UHU,10345
|
|
26
|
-
eth_portfolio/_db/utils.py,sha256=
|
|
26
|
+
eth_portfolio/_db/utils.py,sha256=3P4EVQ5cHLbDrAnBESAIKhoDpJLXLS8IDJNnsh7T2Sc,21586
|
|
27
27
|
eth_portfolio/_ledgers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
eth_portfolio/_ledgers/address.py,sha256=ZI4lVsxtXoffDHFBm0pUrSKU42KleBKThNdDHm1Nqtg,33823
|
|
29
29
|
eth_portfolio/_ledgers/portfolio.py,sha256=rAr5S1tksgLPUOK1J1FbIWgvTQNzTqrRp8oukiP2BTo,13427
|
|
30
30
|
eth_portfolio/_loaders/__init__.py,sha256=YrBeRuA48cN2Bg2R2nXiNt1CsUIG_7N6ENIpY6aISPo,1735
|
|
31
|
-
eth_portfolio/_loaders/_nonce.cp313-win32.pyd,sha256=
|
|
31
|
+
eth_portfolio/_loaders/_nonce.cp313-win32.pyd,sha256=wRClmRrn8V_v8oBrfyqL7He7v9QDK3mHPsGLSLt8Dtw,9216
|
|
32
32
|
eth_portfolio/_loaders/_nonce.py,sha256=bA-5fZG8ALuADgQGrnoxt6p6j7QEwI6vIGnZRF1Zx7M,6481
|
|
33
|
-
eth_portfolio/_loaders/balances.cp313-win32.pyd,sha256=
|
|
33
|
+
eth_portfolio/_loaders/balances.cp313-win32.pyd,sha256=tEm-MhC4nOOMEuZhmtwgYnzMuGdhutWL4B7BSsw_M7U,9216
|
|
34
34
|
eth_portfolio/_loaders/balances.py,sha256=_v-x1M3lzDHPt8svHmCcpxZKw0BaGHfZimhkwgphY8A,3226
|
|
35
35
|
eth_portfolio/_loaders/token_transfer.py,sha256=58NoMc28CRSjuxP-_kNmXL7jS1oEFZayTZ9VAKQcVow,8741
|
|
36
36
|
eth_portfolio/_loaders/transaction.py,sha256=WXsiNahcb5jNbXCX2-ceao3Cybfi-7_th8bnw9elmP0,9386
|
|
37
|
-
eth_portfolio/_loaders/utils.cp313-win32.pyd,sha256=
|
|
37
|
+
eth_portfolio/_loaders/utils.cp313-win32.pyd,sha256=CgIUMyGvExQ6VBbfG-FMTn0AjnlmT-NK6lMljOBROqI,9216
|
|
38
38
|
eth_portfolio/_loaders/utils.py,sha256=_nhPmGq_h_y_JPU9vXvhzqoKAWtgLRhYy_PdJXbyUdw,2326
|
|
39
39
|
eth_portfolio/_ydb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
40
|
eth_portfolio/_ydb/token_transfers.py,sha256=HUTeWShcQD4IzocTHmBOreml0jbVttLcaed1fNiJ2qg,5297
|
|
@@ -52,32 +52,32 @@ eth_portfolio/protocols/lending/maker.py,sha256=CoQhaD7cJwfvIlXa7g9c9oHPPZcsgfd_
|
|
|
52
52
|
eth_portfolio/protocols/lending/unit.py,sha256=OQGDZWdsTOUL4jOKJ1xef6wXhWLHnsRFJjAzn0XSBmM,2011
|
|
53
53
|
eth_portfolio/structs/__init__.py,sha256=x-9CdKe8XMukp8Kjr_lD49ohrSd0iGEvvsMAHtAPrLI,1486
|
|
54
54
|
eth_portfolio/structs/modified.py,sha256=QIuFh-u5VTHe0oborn3oHAiAGD0wqhUQW7XFJVZu2KI,1853
|
|
55
|
-
eth_portfolio/structs/structs.py,sha256=
|
|
56
|
-
eth_portfolio/typing/__init__.py,sha256=
|
|
55
|
+
eth_portfolio/structs/structs.py,sha256=TDJ4u3E_H8uG7iX-C1Pux8TesY2zXRhQUJxmN7cp4cc,20490
|
|
56
|
+
eth_portfolio/typing/__init__.py,sha256=v_KbOgqTKcR4y-05Bel_mg6uAV-IsGurGR-jDW46SMg,58763
|
|
57
57
|
eth_portfolio/typing/balance/single.py,sha256=NmtWXqCWMIkaoyvfL67Rh0wWurLf55fVaDkyUxZ27oY,6501
|
|
58
58
|
eth_portfolio_scripts/__init__.py,sha256=DIBnQmjmhmNL1lO9Lq4QptrZmC7u6_N3p9zRjcZ9vbY,281
|
|
59
59
|
eth_portfolio_scripts/_args.py,sha256=M33vPkja62XEJeCZAqacNSBCqbzse07wepwyBOtkvVo,682
|
|
60
60
|
eth_portfolio_scripts/_logging.py,sha256=EgW8ozQZLAgt_cUgqe5BYZLMVQwB6X-0gq0T-BvqlTY,369
|
|
61
|
-
eth_portfolio_scripts/_portfolio.py,sha256=
|
|
61
|
+
eth_portfolio_scripts/_portfolio.py,sha256=u_mdXLKbrYj1OEra24RovM0Lg9ZcMFthHYdVCjGTa4M,7334
|
|
62
62
|
eth_portfolio_scripts/_utils.py,sha256=lj2B79G8YX21ATNp_v-onsU_kNFZF3unBclCVp3AIn8,3163
|
|
63
|
-
eth_portfolio_scripts/balances.cp313-win32.pyd,sha256=
|
|
63
|
+
eth_portfolio_scripts/balances.cp313-win32.pyd,sha256=zsw_zJriHZQu5cvL8dQI1Zw2yDfWL2vFHZRS2YzgZ2k,9216
|
|
64
64
|
eth_portfolio_scripts/balances.py,sha256=Fr8NGCt5yhvu7LnLH27oOVKcL2XwowmAVezXUOIEzd0,1640
|
|
65
65
|
eth_portfolio_scripts/main.py,sha256=upkr0Vc758qti___5kyDsE0zcfwiZju4xvAQsKsu9iw,3804
|
|
66
66
|
eth_portfolio_scripts/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
67
|
-
eth_portfolio_scripts/docker/__init__.cp313-win32.pyd,sha256=
|
|
67
|
+
eth_portfolio_scripts/docker/__init__.cp313-win32.pyd,sha256=vy-wmve5cAOmVSZkGwJiy3MpJ0QSP0g6DOi7aRxSxGw,9216
|
|
68
68
|
eth_portfolio_scripts/docker/__init__.py,sha256=R27uZPLUEK2--fb9IrxrDUk6R5_IVFJSv7s_ia7p5Xk,409
|
|
69
|
-
eth_portfolio_scripts/docker/check.cp313-win32.pyd,sha256=
|
|
69
|
+
eth_portfolio_scripts/docker/check.cp313-win32.pyd,sha256=az3iFPJOYEQHldWKtfPpYLlyCj95ps7cUu3vpD1IdEw,9216
|
|
70
70
|
eth_portfolio_scripts/docker/check.py,sha256=JFxUxGRSz20EgjKqCLBkCqR4N1ihzO_3ykU3jPzp_UU,1801
|
|
71
|
-
eth_portfolio_scripts/docker/docker-compose.yaml,sha256=
|
|
72
|
-
eth_portfolio_scripts/docker/docker_compose.cp313-win32.pyd,sha256=
|
|
71
|
+
eth_portfolio_scripts/docker/docker-compose.yaml,sha256=uFoU1B9r7M-sDr2k6In417XVHiP7j0_omcmDoWj7kDE,1870
|
|
72
|
+
eth_portfolio_scripts/docker/docker_compose.cp313-win32.pyd,sha256=ggVhEsxLnPoenSmXfw4XFfsQBEIUFfwtra-UCJ7HYS0,9216
|
|
73
73
|
eth_portfolio_scripts/docker/docker_compose.py,sha256=tewgCWZP6g9sVFHbQnGC1au-bTnvuvXMZgTKKgpmeOc,2304
|
|
74
74
|
eth_portfolio_scripts/docker/.grafana/dashboards/dashboards.yaml,sha256=wktTI-OAdF_khhbciZFo4Gt2V9bUjbe7GLqwdzTKf0U,212
|
|
75
75
|
eth_portfolio_scripts/docker/.grafana/dashboards/Portfolio/Balances.json,sha256=XGMV8e4tDak53e9bmymwAB4uqZmAIcU5JlRT3OiwTeU,70750
|
|
76
76
|
eth_portfolio_scripts/docker/.grafana/datasources/datasources.yml,sha256=8PPH_QDhfbRRh3IidskW46rifJejloa1a9I1KCw2FTk,199
|
|
77
77
|
eth_portfolio_scripts/victoria/__init__.py,sha256=R0VvKiAC0e57zZNihcCptVkFO5CBHIbp2trFYuyY01M,2038
|
|
78
78
|
eth_portfolio_scripts/victoria/types.py,sha256=KNq8aIiNXeiDnCKL7xycmouo0YeKI-sbQkIcTymcSYk,745
|
|
79
|
-
eth_portfolio_temp-0.2.
|
|
80
|
-
eth_portfolio_temp-0.2.
|
|
81
|
-
eth_portfolio_temp-0.2.
|
|
82
|
-
eth_portfolio_temp-0.2.
|
|
83
|
-
eth_portfolio_temp-0.2.
|
|
79
|
+
eth_portfolio_temp-0.2.8.dev0.dist-info/METADATA,sha256=MSkWtmQZ80QwW1_fslbkp-bDbkHgMJbvBNTLUQs0ZQs,804
|
|
80
|
+
eth_portfolio_temp-0.2.8.dev0.dist-info/WHEEL,sha256=0ABLuJ37exXk5N_efmYNs2NU9NK1K2Qlod_6bYkofEA,97
|
|
81
|
+
eth_portfolio_temp-0.2.8.dev0.dist-info/entry_points.txt,sha256=yqoC6X3LU1NA_-oJ6mloEYEPNmS-0hPS9OtEwgIeDGU,66
|
|
82
|
+
eth_portfolio_temp-0.2.8.dev0.dist-info/top_level.txt,sha256=CmTLi8Lvs3RulV5ZNdziaDVvF_WRsgRpM17GSMECxrg,64
|
|
83
|
+
eth_portfolio_temp-0.2.8.dev0.dist-info/RECORD,,
|
|
File without changes
|
{eth_portfolio_temp-0.2.6.dev0.dist-info → eth_portfolio_temp-0.2.8.dev0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{eth_portfolio_temp-0.2.6.dev0.dist-info → eth_portfolio_temp-0.2.8.dev0.dist-info}/top_level.txt
RENAMED
|
File without changes
|