eth-portfolio 0.5.8__cp311-cp311-musllinux_1_2_x86_64.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 might be problematic. Click here for more details.
- eth_portfolio/__init__.py +24 -0
- eth_portfolio/_argspec.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio/_argspec.py +43 -0
- eth_portfolio/_cache.py +119 -0
- eth_portfolio/_config.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio/_config.py +4 -0
- eth_portfolio/_db/__init__.py +0 -0
- eth_portfolio/_db/decorators.py +147 -0
- eth_portfolio/_db/entities.py +311 -0
- eth_portfolio/_db/utils.py +619 -0
- eth_portfolio/_decimal.py +154 -0
- eth_portfolio/_decorators.py +84 -0
- eth_portfolio/_exceptions.py +65 -0
- eth_portfolio/_ledgers/__init__.py +0 -0
- eth_portfolio/_ledgers/address.py +917 -0
- eth_portfolio/_ledgers/portfolio.py +328 -0
- eth_portfolio/_loaders/__init__.py +33 -0
- eth_portfolio/_loaders/_nonce.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio/_loaders/_nonce.py +193 -0
- eth_portfolio/_loaders/balances.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio/_loaders/balances.py +95 -0
- eth_portfolio/_loaders/token_transfer.py +215 -0
- eth_portfolio/_loaders/transaction.py +240 -0
- eth_portfolio/_loaders/utils.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio/_loaders/utils.py +67 -0
- eth_portfolio/_shitcoins.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio/_shitcoins.py +342 -0
- eth_portfolio/_stableish.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio/_stableish.py +42 -0
- eth_portfolio/_submodules.py +72 -0
- eth_portfolio/_utils.py +229 -0
- eth_portfolio/_ydb/__init__.py +0 -0
- eth_portfolio/_ydb/token_transfers.py +144 -0
- eth_portfolio/address.py +396 -0
- eth_portfolio/buckets.py +212 -0
- eth_portfolio/constants.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio/constants.py +87 -0
- eth_portfolio/portfolio.py +669 -0
- eth_portfolio/protocols/__init__.py +64 -0
- eth_portfolio/protocols/_base.py +107 -0
- eth_portfolio/protocols/convex.py +17 -0
- eth_portfolio/protocols/dsr.py +50 -0
- eth_portfolio/protocols/lending/README.md +6 -0
- eth_portfolio/protocols/lending/__init__.py +50 -0
- eth_portfolio/protocols/lending/_base.py +56 -0
- eth_portfolio/protocols/lending/compound.py +186 -0
- eth_portfolio/protocols/lending/liquity.py +108 -0
- eth_portfolio/protocols/lending/maker.py +110 -0
- eth_portfolio/protocols/lending/unit.py +44 -0
- eth_portfolio/protocols/liquity.py +17 -0
- eth_portfolio/py.typed +0 -0
- eth_portfolio/structs/__init__.py +43 -0
- eth_portfolio/structs/modified.py +69 -0
- eth_portfolio/structs/structs.py +628 -0
- eth_portfolio/typing/__init__.py +1418 -0
- eth_portfolio/typing/balance/single.py +176 -0
- eth_portfolio-0.5.8.dist-info/METADATA +28 -0
- eth_portfolio-0.5.8.dist-info/RECORD +83 -0
- eth_portfolio-0.5.8.dist-info/WHEEL +5 -0
- eth_portfolio-0.5.8.dist-info/entry_points.txt +2 -0
- eth_portfolio-0.5.8.dist-info/top_level.txt +3 -0
- eth_portfolio__mypyc.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio_scripts/__init__.py +17 -0
- eth_portfolio_scripts/_args.py +26 -0
- eth_portfolio_scripts/_logging.py +14 -0
- eth_portfolio_scripts/_portfolio.py +209 -0
- eth_portfolio_scripts/_utils.py +106 -0
- eth_portfolio_scripts/balances.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio_scripts/balances.py +56 -0
- eth_portfolio_scripts/docker/.grafana/dashboards/Portfolio/Balances.json +1962 -0
- eth_portfolio_scripts/docker/.grafana/dashboards/dashboards.yaml +10 -0
- eth_portfolio_scripts/docker/.grafana/datasources/datasources.yml +11 -0
- eth_portfolio_scripts/docker/__init__.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio_scripts/docker/__init__.py +16 -0
- eth_portfolio_scripts/docker/check.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio_scripts/docker/check.py +66 -0
- eth_portfolio_scripts/docker/docker-compose.yaml +61 -0
- eth_portfolio_scripts/docker/docker_compose.cpython-311-x86_64-linux-musl.so +0 -0
- eth_portfolio_scripts/docker/docker_compose.py +97 -0
- eth_portfolio_scripts/main.py +118 -0
- eth_portfolio_scripts/py.typed +1 -0
- eth_portfolio_scripts/victoria/__init__.py +72 -0
- eth_portfolio_scripts/victoria/types.py +38 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
from collections import defaultdict
|
|
2
|
+
from typing import DefaultDict, Final
|
|
3
|
+
|
|
4
|
+
from eth_typing import ChecksumAddress
|
|
5
|
+
from y import Network, convert
|
|
6
|
+
|
|
7
|
+
shitcoins: Final = {
|
|
8
|
+
Network.Mainnet: [
|
|
9
|
+
# Tagged as fake on Etherscan
|
|
10
|
+
"0xb8ac53AFCCEBc44AaC33D0C30E2Ae0783E7fde5f",
|
|
11
|
+
"0xe397ef3E332256F38983ffaE987158da3e18c5Ec",
|
|
12
|
+
"0x7452E3fC2fE611C6B7761c6c393BECe059881aC7",
|
|
13
|
+
"0x4ab16CDc82a4eA4727Ab40caee1bb46622C13641",
|
|
14
|
+
"0x471c3A7f132bc94938516CB2Bf6f02C7521D2797",
|
|
15
|
+
"0x106EebF11F34ECCcaD59c1CA9398d828765f64f8",
|
|
16
|
+
"0x634a31d5DB29F2a646bADAd27bb7b1E5A78FD316",
|
|
17
|
+
"0xF673623e8507551BDe72290E909c7E184A4799a3",
|
|
18
|
+
"0x269641A320F8465eF4e710F51Dc6e6862D7E8A77",
|
|
19
|
+
"0x956F824B5a37673c6fC4a6904186cB3BA499349B",
|
|
20
|
+
"0xBFA9180729f1c549334080005Ca37093593fB7Aa",
|
|
21
|
+
"0x643695D282f6BA237afe27FFE0Acd89a86b50d3e",
|
|
22
|
+
# Tagged as spam on Etherscan
|
|
23
|
+
"0x3B809ABd5a7597F8d1cf7dEB2747A1e1580C1488",
|
|
24
|
+
"0xCfB0Ef3e179427316FBD7F0D0296F173762BeEE0",
|
|
25
|
+
"0xfAFe8a7c0A9b3807CC1df0DEB0BA0B5a5fb7A872",
|
|
26
|
+
"0xdf66B9727553fB9Bfa417699CB8F60425d62d1E3",
|
|
27
|
+
"0x68Ca006dB91312Cd60a2238Ce775bE5F9f738bBa",
|
|
28
|
+
"0xBCCBeDAb3Bf6FA1cfC3e2d07Aa5ce4A282864D6E",
|
|
29
|
+
"0x26004d228fC8A32c5bd1a106108c8647A455B04a",
|
|
30
|
+
"0x635701CC5fE41FE8AbD02aa74Beb02e3540E9BB2",
|
|
31
|
+
"0xf8358bd95dcA48187e3F4BE05847F3593776C086",
|
|
32
|
+
"0x459176FDC68C945B6bb23eB946eee62457041567",
|
|
33
|
+
"0xf55F8aA8F3d777f1aB3A4ae9E269C8D7B73078De",
|
|
34
|
+
"0x434d5875534D19fC7105281Cf61dbfd1C93c8cb1",
|
|
35
|
+
"0x908599FDf490b73D171B57731bd4Ca95b7F0DE6a",
|
|
36
|
+
"0x4709099BE25D156578405132d66aeBfC2e12937A",
|
|
37
|
+
"0x82315517d61ecf47f9A78705127934F3d431cB21",
|
|
38
|
+
"0x2B000332CD291eF558aF76298A4d6F6001E4e015",
|
|
39
|
+
"0x163F4D81d86ac282A0F0F94D9FE3E0321ACcfd37",
|
|
40
|
+
"0x660235331d2FA5FeB7a49F31556B0Be31f02560D",
|
|
41
|
+
"0x696F33F4dd9BE5538483f63308453D2D67D07331",
|
|
42
|
+
"0xcbbadd74b3bb09836d97d91050e13E06089ba485",
|
|
43
|
+
"0xE0c31b3e341E7EF3C04eB14E58802b88a80A45A1",
|
|
44
|
+
"0xA6D74802a2222d5cCe5eA0531159ed878943b54c",
|
|
45
|
+
"0xcAB80A2bf07BECaF8d48168081352ea873B8Db91",
|
|
46
|
+
"0x72B12aec69dA93357f2B69aCf33d5B75cF17575B",
|
|
47
|
+
"0xA4C8A13FeE3b19718E45d678C071bDE3e33A7302",
|
|
48
|
+
"0x579e4ca5888eD1420492988BF75E26D9e7B4C535",
|
|
49
|
+
"0xB80216D5b4eec2BEc74eF10e5d3814Fec6Fd8af0",
|
|
50
|
+
"0x6A007E207E50B4C6B2ADCFc6a873F6e698645fE3",
|
|
51
|
+
"0x84d12988D71244a8937a9816037BeB3e61E17FdD",
|
|
52
|
+
"0x0734E85525Ca6838fe48EC6EB29b9d457F254F73",
|
|
53
|
+
"0xa10c97bF5629340A35c41a8AA308af0804750605",
|
|
54
|
+
"0x69D732F50e248D4B825d524fEDEB0D7Ce3d76352",
|
|
55
|
+
"0xAF0b2fBeDd5d1Fda457580FB3DAbAD1F5C8bBC36",
|
|
56
|
+
"0xbadb4170Cd3309680477Fc81D527101cbB4000EE",
|
|
57
|
+
"0x7841479c5976b8184DBcde9a7a5113901b233EfB",
|
|
58
|
+
"0x1e4A0ADFC2e9bf2Dfd041Bc89405538d0D5A077a",
|
|
59
|
+
"0xb07de4b2989E180F8907B8C7e617637C26cE2776",
|
|
60
|
+
"0xa9517B2E61a57350D6555665292dBC632C76adFe",
|
|
61
|
+
"0x38715Ab4b9d4e00890773D7338d94778b0dFc0a8",
|
|
62
|
+
"0x6171136E82a2f1bAA2494c69528f599467EfeA20",
|
|
63
|
+
"0x9Ee582c42F88CAA5e7BCDE2e86e69Af3Cf5FCe40",
|
|
64
|
+
"0xFD1860C9d602236214652a21753731F9acD2C362",
|
|
65
|
+
"0x0Fd23DaB8723b1Fd5e7c3d74Baa624B443423b6B",
|
|
66
|
+
"0xe0736F3F455F1DBD29Bf6F8346EAd22f5CF78d08",
|
|
67
|
+
"0x7F57A01fc540ca3A26345C4903B9a220aD048196",
|
|
68
|
+
"0x635701CC5fE41FE8AbD02aa74Beb02e3540E9BB2",
|
|
69
|
+
"0xF709642622729feafC8bf0934679706df49d8A30",
|
|
70
|
+
# Tagged as phishing on Etherscan
|
|
71
|
+
"0x4AeDC0B9Acdf5BE1d312Ace7c2df425C2f56F9C3",
|
|
72
|
+
"0xd16A07Ac860c95F3E225b3A847F81C267b3f929d",
|
|
73
|
+
"0x211c1eB92D74cbdA58bA82116502fD02dd8F319E",
|
|
74
|
+
"0x6ef7D6682086Ad4936D2bC141cD94b2c43476FeD",
|
|
75
|
+
"0x0C98216a20f8e19C1483cf8B307A5E9ce758428D",
|
|
76
|
+
"0x6426b6C2A9108Fa815bcccA3a3232301E1895742",
|
|
77
|
+
"0x0bF377fb3b5F1dD601e693B8fAF6b0bD249f37D3",
|
|
78
|
+
"0xBf5fB1563ef58ba41325454ca61Cc3D62bd40744",
|
|
79
|
+
"0x54fd62228C6e1234fd5Fded28555CA963Dcf6d26",
|
|
80
|
+
"0xA36Ceec605d81aE74268Fda28A5c0Bd10b1D1f7C",
|
|
81
|
+
"0xF9d25EB4C75ed744596392cf89074aFaA43614a8",
|
|
82
|
+
"0x1412ECa9dc7daEf60451e3155bB8Dbf9DA349933",
|
|
83
|
+
"0x1fc4DB3e7f9124bAAFB7B34346dB7931Dad621C2",
|
|
84
|
+
"0x120aA018634F555484c088c8da80F75Aa07E004F",
|
|
85
|
+
"0xeDe11D3d5dd7D5454844f6f121cc106bF1144a45",
|
|
86
|
+
"0x875bf9be244970B8572DD042053508bF758371Ee",
|
|
87
|
+
"0x070C0147884D7CF984aFBC2Eb6F3428A39b5E229",
|
|
88
|
+
"0xb0B1d4732eFE32AEA466ED6BC3c79181eD4810c4",
|
|
89
|
+
"0xCf39B7793512F03f2893C16459fd72E65D2Ed00c",
|
|
90
|
+
"0x89532890c2959e836C1Bca52309356841238b8B7",
|
|
91
|
+
"0xD1B0c350f73E6f7Cd5c9978b82B46a59aE9aD524",
|
|
92
|
+
"0x17a10104CBC1eD155D083eaD9FCF5C3440bb50e8",
|
|
93
|
+
"0x8eB3FecAAA963C86d9b49004d9f28092f1Db3D6c",
|
|
94
|
+
"0x52bbca3B24c1c1ac050fF4546F37AA88282aaE22",
|
|
95
|
+
"0xECF0dE4C8498Cfd686E4702D955426b22d812d6B",
|
|
96
|
+
"0xF01f7A348681776c1FC9A066c6973882B693cdC6",
|
|
97
|
+
"0x0e1CD6d2715432e4DBedFE969b0Eb2867FF61d5b",
|
|
98
|
+
"0x9aE357521153FB07bE6F5792CE7a49752638fbb7",
|
|
99
|
+
# Generally looks like shit
|
|
100
|
+
"0x322Ec1ed696575670D66649Ea1284ff243fE4A1e",
|
|
101
|
+
"0x9DeB0fc809955b79c85e82918E8586d3b7d2695a",
|
|
102
|
+
"0x2fFBB3549D034b5e5879670f4af58727CDc72946",
|
|
103
|
+
"0xc39B6cf191f402697ba2F3Bedf5faA9837038d42",
|
|
104
|
+
"0x5e43e50A3cB43Fb71eD2500bC847E8d25b8335f9",
|
|
105
|
+
"0xE8ED1fca5af1c7dd46A3D5bbDFf7e99749D9e0aa",
|
|
106
|
+
"0x00d0F0250364C431376cC64AADd3aa13c6A8998D",
|
|
107
|
+
"0x256099A072ea5fd35eC134758440413095967109",
|
|
108
|
+
"0xe975ACEb3b61a88A355B066D9cCC910CAb8b4853",
|
|
109
|
+
"0x59fF00f75b49089385377c7f7D905E193c9eb5e2",
|
|
110
|
+
"0x99304A346F8FD562336Fd3485301c02cEbE4F0ae",
|
|
111
|
+
"0x74b1C36268B5dC659aEEA588cb1683E96DaaB71a",
|
|
112
|
+
"0x92BF340B2c67be6911095675f744F9a3aD22d8F0",
|
|
113
|
+
"0xa635305B4a6A1E4A55Eb6A6B54a8D2a55e914F6f",
|
|
114
|
+
"0xC76f77Bff99Ec269050Ca929F4d37B00f012c65F",
|
|
115
|
+
"0x56BcBef8f5Ca4Fc224fE58187c66EA34d3A1ef4a",
|
|
116
|
+
"0xdc6050Ec75Bc4692333A1C301eB799e348d0b77e",
|
|
117
|
+
"0x0542e502cec25bD51b4f3461f4F704807FA1A6D8",
|
|
118
|
+
"0xc01e807Cc73469e9983B614A96847BC01332447d",
|
|
119
|
+
"0x87D38d662A4aae29BB60057e71AFf923C7523DC3",
|
|
120
|
+
"0xDFC01a7956C0d151ae197274B974fA7527EbAFB9",
|
|
121
|
+
"0xE256CF1C7caEff4383DabafEe6Dd53910F97213D",
|
|
122
|
+
"0x7CD6143B8781dC7e0667e50DB02Eb6539799722F",
|
|
123
|
+
"0x174Cd3359C6a4E6B64D2995Da4E2E4631379526E",
|
|
124
|
+
"0x85E199607eb8aEef775Ae6424b42d20616267852",
|
|
125
|
+
"0x4D57c67C8Bab0Fb3A0a0A35B904FBff4E5450521",
|
|
126
|
+
"0x884a886D17a64852d18e5921fA7A05ae2954C9Bb",
|
|
127
|
+
"0xbB5c3B198f6def369bFB6AC7A34BB08eA49a0770",
|
|
128
|
+
"0x5be480Aa056ec274e5aE970d7A75dF0c9620F6F8",
|
|
129
|
+
"0xA1f76F1c94078f7d2E05152DC3e31dED819dfDC0",
|
|
130
|
+
"0xCE3F076D0ADa9f913a24F42dEAB82e4b851B87d6",
|
|
131
|
+
"0xB215F3927192181eBCD79227c70c10015Ff10df3",
|
|
132
|
+
"0x37843BC944eDBb0477df943d9061D359004a4e70",
|
|
133
|
+
"0x9A7ddeE20b61EA4f4812665EdF39dD157a66E873",
|
|
134
|
+
"0xfcBe0B695c13257bd43D64f09Db433034E90033D",
|
|
135
|
+
"0x7d09A736c5FB1Db357dE04A07DEB22D5829DA26F",
|
|
136
|
+
"0x6Ac9cA5710Ba6B985b46fd5282a59eBbea3434d4",
|
|
137
|
+
"0xD6619A3E925472a8d7822Cc6A49B76b3554A3498",
|
|
138
|
+
"0x338C1E2B51C4E818765a887584e7041EF9070aef",
|
|
139
|
+
"0x83D473D1acD97Aa45A97c3b778fB5714e7e4c604",
|
|
140
|
+
"0x5bb38F4899797f03141782E9d2130C12769c0CCc",
|
|
141
|
+
"0x1F7B20004eBd7E258b9f45568cE789fC5d2140fb",
|
|
142
|
+
"0x92Aeed8027735C41605577b45A69429Bd7f729f9",
|
|
143
|
+
"0x8A801C334ebaC763822a0D85a595AeC6Da59C232",
|
|
144
|
+
"0xd5b0Bd07864C0aaCC3b6Cd5e63C68c62C0F263d2",
|
|
145
|
+
"0x2b23BF339F5cc3393a558373E0A73a576F0838D3",
|
|
146
|
+
"0x7B2e238FB48ee7322664B9C26bb3ACedBfCC1f70",
|
|
147
|
+
"0x08918171758171A13050cdE6Cc6eB90172Af5737",
|
|
148
|
+
"0x9398c448728738039b91687919262194899D3f27",
|
|
149
|
+
"0x0A527683c3154F5F9E1b4203Ef4d05962b2411bf",
|
|
150
|
+
"0xe3C6F9D0d731C2Eb6B6D3eBFb6732fCd26a365d0",
|
|
151
|
+
"0x6cF0B5A20B2d4b55e6b752d7016275B892035652",
|
|
152
|
+
"0x98d1c76831c0aBEa30e3dac8628BD72d6B0E3dd2",
|
|
153
|
+
"0x4C6fDc0476B2FE0daFf0B5824c3A918673d6014E",
|
|
154
|
+
"0xC6d3D201530a6D4aD9dFbAAd39C5f68A9A470a69",
|
|
155
|
+
"0x525fC44CBE181C1108c209091B5EEc5a5028190d",
|
|
156
|
+
"0x7d1a6a4f806A4a64AD32e7F2350E176eA6B9a1F6",
|
|
157
|
+
"0x75E34A4A04d5f5F7Fc01801d2d287d64D882529B",
|
|
158
|
+
"0x8F49cB69ee13974D6396FC26B0c0D78044FCb3A7",
|
|
159
|
+
"0xB688d06d858E092EBB145394a1BA08C7a10E1F56",
|
|
160
|
+
"0x154C5875b1B0DB1794f88D003730DaD160E6b38e",
|
|
161
|
+
"0x11068577AE36897fFaB0024F010247B9129459E6",
|
|
162
|
+
"0xBA89375bAE9b3DE92442e9C037d4303A6e4FB086",
|
|
163
|
+
"0xcDbd4089C2F98DA715e52127680f87aFdB183A2e",
|
|
164
|
+
"0x3a3a4d2d9755283D9e25105B042C5f45BC0Edf05",
|
|
165
|
+
"0x70c18F2fDcb00d27494f767503874788e35c9940",
|
|
166
|
+
"0xF511123fdf2F13811abf4edDb493860101471729",
|
|
167
|
+
"0x830Cbe766EE470B67F77ea62a56246863F75f376",
|
|
168
|
+
"0x76988Eb5d8a81F44919d87328c36179FdCca044a",
|
|
169
|
+
"0xa6DE609807c7258A0D34F5307c1808F062A59794",
|
|
170
|
+
"0x698068C6a369b1BF04D516f5fE48424797973DCf",
|
|
171
|
+
"0xbEb3c5F7f4F8dB708BcfaC4D0fDcDb0bEd285741",
|
|
172
|
+
"0xCdC94877E4164D2e915fC5E8310155D661A995F1",
|
|
173
|
+
"0x5D80A8D8CB80696073e82407968600A37e1dd780",
|
|
174
|
+
"0x19383F024BA4c06e44D11a8B8BB7ebF87faB184C",
|
|
175
|
+
"0xF5b2C59F6DB42FFCdFC1625999C81fDF17953384",
|
|
176
|
+
"0xdb83eC9EEAC2b3CF8Eb282f91c73C38159578697",
|
|
177
|
+
"0x2F30E0F6B484eF6Be57b6435e34687018ff8Cb4D",
|
|
178
|
+
"0x242a705E8AF8A24B7EB30f3DbAF899eB25E3D76A",
|
|
179
|
+
"0x2f848B4A2B5dfC3b9e4Eb229551c0887E6348653",
|
|
180
|
+
"0x0795619E02716a81ac9EF6E55363D538DA104e57",
|
|
181
|
+
"0x6D9541ba0f1039d0f8636b4f39D20A8a7464f357",
|
|
182
|
+
"0x1C3d9Db84e0EEE4744893A7FAeE6187F31E39539",
|
|
183
|
+
"0x3654746Ce159BA2FCDF926133D51ecBb85f19288",
|
|
184
|
+
"0x67542502245eb5DF64eF7Ea776199CeB79401058",
|
|
185
|
+
"0x0951490Cec0261F60Ff0C42DE7F62488Cc8313D8",
|
|
186
|
+
"0x154C5875b1B0DB1794f88D003730DaD160E6b38e",
|
|
187
|
+
"0xcdBb37f84bf94492b44e26d1F990285401e5423e",
|
|
188
|
+
"0x53d345839E7dF5a6c8Cf590C5c703AE255E44816",
|
|
189
|
+
"0xCCCCee7d9B0f18ab16b217A794D2671549F1A895",
|
|
190
|
+
"0xc6a76f7ad66d0e6Ccd1AaAd6e7568c9bd55Dce62",
|
|
191
|
+
"0xB4d4334eB5a251cbE5cC7Afb0Ba26119aCE62281",
|
|
192
|
+
"0xE5c5AE39B98eFd9D3c9E0F2a5457D98fFA4b0b46",
|
|
193
|
+
"0x912033c6644008DD8438A5C07738a513f38Ded5D",
|
|
194
|
+
"0xffE49E3BB3725d499223611e571215029877A6Cf",
|
|
195
|
+
"0x7d593cC8E0b8ceBF645342AaFf5631e689FB5249",
|
|
196
|
+
"0x3E67A4D218061263202c1480ddB479080C59dd0E",
|
|
197
|
+
"0xac4607A2D8a2bfA721955a23D3F290B0E176612E",
|
|
198
|
+
"0x27ed436e67515C1dD33633537EEBd59207c51806",
|
|
199
|
+
"0x92b48cf18a947c66557CE4aC829D6DB012D11Aa5",
|
|
200
|
+
"0x16D6FB8a5c736feB50579106a39F6e14798A3D22",
|
|
201
|
+
# Generally looks like shit (symbol ERC20)
|
|
202
|
+
"0x2adA6e459089292264133d8D7c85f6907423E444",
|
|
203
|
+
"0x356F680eE21c8CeFfA460c38D20A137F3D07D9af",
|
|
204
|
+
"0x683eAca6CD17383FA93e95f17e7DE443666160eB",
|
|
205
|
+
"0x7452cc6Bd1FA968dd1672FF447f3D7ff1ce210A8",
|
|
206
|
+
"0x773F67800a6d79C0198E8Ac798658f80cb346083",
|
|
207
|
+
"0xaE977D03F5A3999c762eb42a203c436dFF3Df03C",
|
|
208
|
+
"0xbD67D76edFD88719efD7669583258209015B0aB5",
|
|
209
|
+
"0xd814cd86ed2e85156d9Cf3A9319261259458f50c",
|
|
210
|
+
"0xd0E6420b900dE49113B3404b437ee153Bf220B36",
|
|
211
|
+
"0xf1D1C6ea9166bcF97A099A1388E1663933bB2E48",
|
|
212
|
+
"0xF8B49aEC3E356f911f86F58Ff9204242d4b0e6A5",
|
|
213
|
+
"0xe37be01D1337E77aCB0b4293DDb4D410D80010a7",
|
|
214
|
+
"0x7EeAcC32C81e4D78E9705fBf0b977f5A858Bf0F3",
|
|
215
|
+
"0x90133FF815ade1977EA2f1454dBC1d309EAA33f6",
|
|
216
|
+
"0x82ff6D346E424025B1F07e4C8D6527806e50fCA5",
|
|
217
|
+
"0x7C2bc9F685e1f78e42d236Ff819D89DDA864359d",
|
|
218
|
+
"0x3ea463dD031A384DB68d6fD2f37574248E7ffCfE",
|
|
219
|
+
"0x241b047e810c70AB2bB5C567391E0888c4791cbe",
|
|
220
|
+
"0x47D1b57e5B542808eeEd0C509583Fa12d023f05e",
|
|
221
|
+
"0x8a33B3e6f5C0049Cff6dEca0564F5fbDa0eBe9f9",
|
|
222
|
+
"0x84b2e82Ef534e8bE05276DBf4F9e5474fBeD5E59",
|
|
223
|
+
"0x022b5fE59fc45a29d58a7e45a2567b69b649d623",
|
|
224
|
+
"0x178d20220c22008cc1886d2E689cAeE4A5c3239b",
|
|
225
|
+
# Tagged as well known address scam on Etherscan
|
|
226
|
+
"0x59bed83a385571ffac0FC15A43f0f6f72e66Dccb",
|
|
227
|
+
"0x2Ec109a0ceFEC70661a242a8B54cae8f45630397",
|
|
228
|
+
"0x11d666B9C8fa057774324a9bFe6B53eB8d23079f",
|
|
229
|
+
"0x0598BEf845934d83463cEaDd8C86F0801e2Ee058",
|
|
230
|
+
"0xAcDfe439652F78750AFCe1BbA2cB9068EDb4e69c",
|
|
231
|
+
"0xd3cc310DD7b94D6Ef06615f73A3029A67d935c5E",
|
|
232
|
+
"0x0C6D7f5a8c122aCB941aCb95cb99C2cdE893b7a7",
|
|
233
|
+
"0xCBd85ffF5106a42d622be7F9e528DB0bfF07Da8A",
|
|
234
|
+
"0x22e810C6aed30FA93C2D2B62F456E5f78e8918e1",
|
|
235
|
+
"0xc750d0c91DD5f2D3964931FF5dC42B2bB3e008C1",
|
|
236
|
+
"0x6284C089D6944df1ba61bd56618AEba07D1d6136",
|
|
237
|
+
"0x4E654E3A532a386329bde5f01D0AC7995Ab94c07",
|
|
238
|
+
"0x570EC272F07c563860477DCAfB04a04FFd2979a1",
|
|
239
|
+
"0xEcd8eDb13Cd68707579D5EC891A24C03B8d5E831",
|
|
240
|
+
"0x5D6434D533922d60F1eeec913f680C5daF31cB9A",
|
|
241
|
+
"0x15B8adFa95e841a55867495F07B8102329546987",
|
|
242
|
+
"0xFe0bb2ae94BF11de9773DECb413b4a6a241cBCd0",
|
|
243
|
+
"0x4d3D07f4E7a154c32D36bBcBE2Ea64E0B6F98440",
|
|
244
|
+
"0xEea2fEf22353282fb760d27EA7A1E2f06B3F442d",
|
|
245
|
+
"0x218Ae209BEc57eeFa9149789aE09388459bC91d1",
|
|
246
|
+
"0x4639FFC90b0fD6Dffb57Af712109bfa419afaEB5",
|
|
247
|
+
"0x39dDC0a04F0E1F2830f3f1FEc414cD6E23168beE",
|
|
248
|
+
"0x4a41775Da459B38e641141e4C696DF10EC1f4983",
|
|
249
|
+
"0x72C07D9151DcE2ea862595487ef7e21cC312e564",
|
|
250
|
+
"0xE00cD9B8ebb503E4bE266983EfC6158fCFfe0004",
|
|
251
|
+
"0x46DDf95a62b0F2eF6dc4e70717f36172a595517F",
|
|
252
|
+
"0x7cfa05320D83A20980Ac76B91a3A11981877Ef3A",
|
|
253
|
+
"0xbbaC5B019876534c3C399F56E150684c5015F670",
|
|
254
|
+
"0x2840a9fC9ad15738c762e404300761eC828aFFCb",
|
|
255
|
+
"0xC1c8c49b0405f6CFfBA5351179bEFB2d8a2c776c",
|
|
256
|
+
"0xcB56B36Ef3d4E5C3b7d2fbC4f4Ee5d525893a555",
|
|
257
|
+
"0x5807daC5CC59F02dFA88154dE7F9f2174C263814",
|
|
258
|
+
"0x6545B409acdD7e1BE14C835B5c3B826C5d312D02",
|
|
259
|
+
"0xdF781bBA6F9EefB1A74bb39f6DF5e282c5976636",
|
|
260
|
+
"0x85D385244D41ac914484FD6fbBaB177c10A86e79",
|
|
261
|
+
"0xa51a8578052EdEB4Ced5333A5e058860d9E7a35b",
|
|
262
|
+
"0x7a6b87D7a874Fce4c2d923b09C0E09e4936bcF57",
|
|
263
|
+
"0xFabb91ae9318082505c2c6d7acD9d521d4eDDEFf",
|
|
264
|
+
"0x5807daC5CC59F02dFA88154dE7F9f2174C263814",
|
|
265
|
+
# fake USDC
|
|
266
|
+
"0x4Fe8CEdb3f76Ed69b4914958B80Cf9c6D4E3b416",
|
|
267
|
+
"0xa75Fa7DEa69aBd84C9812919039Cb33e2092aab6",
|
|
268
|
+
"0x37dC2fD3A38fd3E898299E754C19772A67f1912B",
|
|
269
|
+
"0x445A32D3095D1ea8951180B0fD6004258beB72F3",
|
|
270
|
+
"0xBD3E4E06074F6bBDfa8B24Ba0736db4DE77EAF0A",
|
|
271
|
+
"0xAba86342C3f57E002F47F6eb38099A577312F2e8",
|
|
272
|
+
"0x94C4bfDD351A2EeA9d57e602C2a24d6Fe823Fd1a",
|
|
273
|
+
"0xAfF006725DeeAF5BF6750A6C7c98D9e70cB189a4",
|
|
274
|
+
"0x54c4D37aD550f9776CE2021df245d98B4Bb5Cb5E",
|
|
275
|
+
# fake USDC
|
|
276
|
+
"0x98a7800EB17e1A0e2b2A4b69e83c58F4535F2180",
|
|
277
|
+
"0xdC5BCA9992191c900D7A7F5b8e1b3e4161d1aa51",
|
|
278
|
+
"0xd27255AA153ae470419B0198fa61e892a612aFE8",
|
|
279
|
+
"0xbADbe6619c0563c60E62C7409681440a80391a27",
|
|
280
|
+
"0x89D3Ac7C32Aa14bEE6Fa90E041241dc4eEbbDFB3",
|
|
281
|
+
"0x640c6fdAfbDaC9bfCe79943890fdc98f8d39bE3e",
|
|
282
|
+
"0xA04a3a553548090a7b81D2de75B8a08Ee45860e1",
|
|
283
|
+
"0x1b8F28C0d410456FE04b8f421d00d6654F66AbB6",
|
|
284
|
+
# fake DAI
|
|
285
|
+
"0xf84f908E78f9295b53883AD9ACa38F86d513f03F",
|
|
286
|
+
"0x20Dd160716b0387220Eea7B9951bDb51B3728DC4",
|
|
287
|
+
"0xd91AdE7B3c349815e427cf678837cC12F72d1d38",
|
|
288
|
+
"0xa362389216664668bC195f6BF1940d3754914219",
|
|
289
|
+
# fake USDT
|
|
290
|
+
"0x9257Cf49802E00048A30a6429e9c4d86210F4253",
|
|
291
|
+
"0x6b1b80b4b3228060EA21C292a3b9c576691Ca6cC",
|
|
292
|
+
"0xfCDFf724385Dcb47f2E62f7F2E383a7822Ed9718",
|
|
293
|
+
"0x94a2a4d842F522Dac0E793f2f9Ad08058997D06d",
|
|
294
|
+
"0xb44D28295E3D7C898C087A1cB209A444DeD5E4c1",
|
|
295
|
+
"0xFf3A7EE33203F5d3C69C309B5425b0E3fEfB736B",
|
|
296
|
+
# fake ETH
|
|
297
|
+
"0x225795bb6D20773a4A34c682Ae8457D00C80F955",
|
|
298
|
+
"0x25741E94782d3EaA7fb0A02D78256bf065AEC3B9",
|
|
299
|
+
# fake AERO
|
|
300
|
+
"0x3C78E3391C47fB9310BDB9085955934E1622442f",
|
|
301
|
+
"0x1f186De364a56e741Fcb188d37a393d409D08AeA",
|
|
302
|
+
"0xDd62542e9Be4390147f8c1f5b417f50ec4F834B7",
|
|
303
|
+
],
|
|
304
|
+
Network.Fantom: [
|
|
305
|
+
# generally looks like shit
|
|
306
|
+
"0x630277E37fd2Ddf81e4683f3692dD817aa6225Cb",
|
|
307
|
+
],
|
|
308
|
+
Network.Optimism: [
|
|
309
|
+
"0x168fbA6072EE467931484a418EDeb5FcC1B9fb79",
|
|
310
|
+
"0x04788E66B9D884969538e4e35a0D57e9e022c799",
|
|
311
|
+
"0x6Cad3dE073FD85567c0Df84063c8990855710677",
|
|
312
|
+
"0x109390594d0ef9B40B4B745Cac6ceCf37a179417",
|
|
313
|
+
"0x87f4b57E2d3c8C9dCD85aD9dA80129f92754b19f",
|
|
314
|
+
"0x1828Bff08BD244F7990edDCd9B19cc654b33cDB4",
|
|
315
|
+
"0xd8dAE0aD69F4aDB507dB0C3e56Ec94942D470450",
|
|
316
|
+
],
|
|
317
|
+
Network.Arbitrum: [
|
|
318
|
+
"0xA57D85481B9ecD864F542Ea37bAA79A101a4f599",
|
|
319
|
+
"0x73fcaFc42ABB43A408bdE4b37eAfCCDadCB2b554",
|
|
320
|
+
"0x13577D823114697289cf85d3f563a21417022e7C",
|
|
321
|
+
"0xb8f2A48362371F7B4E88460BD4B3B5dba48A344f",
|
|
322
|
+
"0x184deAc2B1052AcB020Fa5159683733be3447699",
|
|
323
|
+
"0xBE9460b50f515169E14545aaddF60B3C9dB7e5Fb",
|
|
324
|
+
"0x8fb95D642C19a9C5C9138C5b444455A69196F2EC",
|
|
325
|
+
"0x1d7edf990Cd21eaB14aA55f8d06a386c73D24B5B",
|
|
326
|
+
"0x96C708e060CdC5B8C6Ac6a015db0b10833F74157",
|
|
327
|
+
"0x4dB2207C2cf35aA5ecFE61c5d098Bb3e3Ed1a7B0",
|
|
328
|
+
"0x17c074e90372aC53FF98cA24c3745E6E38717C14",
|
|
329
|
+
"0xA4468e55c5723C2346484f6a01da7b8826EEeC1b",
|
|
330
|
+
"0xdf109e2b175038c66e074BfEacF37D7b0f3e426c",
|
|
331
|
+
"0xeCd434A1391c208C3Cf4D8aa0e91FCd7B84D2B91",
|
|
332
|
+
"0xef7aA9F26F586a96F3C7E2E5308296aAD56E7F30",
|
|
333
|
+
"0xd8b86C2d30101848Ffb9eB0D4019b94De13374CC",
|
|
334
|
+
"0x43566AeD154526E2d62B60Fc9d31C98d4feaf99c",
|
|
335
|
+
],
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
SHITCOINS: DefaultDict[Network, set[ChecksumAddress]] = defaultdict(set)
|
|
339
|
+
"""A dictionary that contains, for each chain, a set of shitcoins that will be fully ignored by eth_portfolio. Add your own shitcoins to this object to boost eth_portfolio's performance."""
|
|
340
|
+
|
|
341
|
+
for chain, tokens in shitcoins.items():
|
|
342
|
+
SHITCOINS[chain].update(convert.to_address(token) for token in tokens)
|
|
Binary file
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from collections import defaultdict
|
|
2
|
+
from typing import DefaultDict, Final
|
|
3
|
+
|
|
4
|
+
from eth_typing import ChecksumAddress
|
|
5
|
+
from y import Network, convert
|
|
6
|
+
|
|
7
|
+
stableish: Final = {
|
|
8
|
+
Network.Mainnet: [
|
|
9
|
+
"0x674C6Ad92Fd080e4004b2312b45f796a192D27a0", # USDN
|
|
10
|
+
"0x1456688345527bE1f37E9e627DA0837D6f08C925", # USDP
|
|
11
|
+
"0x865377367054516e17014CcdED1e7d814EDC9ce4", # DOLA
|
|
12
|
+
"0x5f98805A4E8be255a32880FDeC7F6728C6568bA0", # LUSD
|
|
13
|
+
"0xB9D7DdDca9a4AC480991865EfEf82E01273F79C3", # bLUSD
|
|
14
|
+
"0x4Fabb145d64652a948d72533023f6E7A623C7C53", # BUSD
|
|
15
|
+
"0x853d955aCEf822Db058eb8505911ED77F175b99e", # FRAX
|
|
16
|
+
"0x5BC25f649fc4e26069dDF4cF4010F9f706c23831", # DUSD
|
|
17
|
+
"0x99D8a9C45b2ecA8864373A26D1459e3Dff1e17F3", # MIM
|
|
18
|
+
"0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd", # GUSD
|
|
19
|
+
"0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919", # RAI
|
|
20
|
+
"0x2A8e1E676Ec238d8A992307B495b45B3fEAa5e86", # OUSD
|
|
21
|
+
"0x57Ab1ec28D129707052df4dF418D58a2D46d5f51", # sUSD
|
|
22
|
+
"0xe2f2a5C287993345a840Db3B0845fbC70f5935a5", # mUSD
|
|
23
|
+
"0x5B3b5DF2BF2B6543f78e053bD91C4Bdd820929f1", # USDM
|
|
24
|
+
"0xdF574c24545E5FfEcb9a659c229253D4111d87e1", # HUSD
|
|
25
|
+
"0xa47c8bf37f92aBed4A126BDA807A7b7498661acD", # UST
|
|
26
|
+
"0x4591DBfF62656E7859Afe5e45f6f47D3669fBB28", # mkUSD
|
|
27
|
+
"0x6c3ea9036406852006290770BEdFcAbA0e23A0e8", # PYUSD
|
|
28
|
+
"0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E", # crvUSD
|
|
29
|
+
"0xBC6DA0FE9aD5f3b0d58160288917AA56653660E9", # alUSD
|
|
30
|
+
"0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f", # GHO
|
|
31
|
+
],
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
STABLEISH_COINS: DefaultDict[int, set[ChecksumAddress]] = defaultdict(set)
|
|
35
|
+
"""
|
|
36
|
+
A dictionary that contains, for each chain, a set of 'stable-ish' coins that are considered stable by the wider market but not by ypriceamgic.
|
|
37
|
+
|
|
38
|
+
These coins, and wrapper tokens that contain them, will be considered stablecoins on all dashboards.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
for chain, tokens in stableish.items():
|
|
42
|
+
STABLEISH_COINS[chain].update(convert.to_address(token) for token in tokens)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
from importlib import import_module
|
|
2
|
+
from inspect import getmodule, stack
|
|
3
|
+
from pkgutil import walk_packages
|
|
4
|
+
from types import ModuleType
|
|
5
|
+
from typing import Final
|
|
6
|
+
|
|
7
|
+
import y.constants
|
|
8
|
+
|
|
9
|
+
CHAINID: Final = y.constants.CHAINID
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_submodules_for_module(module: ModuleType) -> list[ModuleType]:
|
|
13
|
+
"""
|
|
14
|
+
Returns a list of submodules of `module`.
|
|
15
|
+
"""
|
|
16
|
+
assert isinstance(module, ModuleType), "`module` must be a module"
|
|
17
|
+
return [
|
|
18
|
+
obj
|
|
19
|
+
for obj in module.__dict__.values()
|
|
20
|
+
if isinstance(obj, ModuleType) and obj.__name__.startswith(module.__name__)
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def get_class_defs_from_module(module: ModuleType) -> list[type]:
|
|
25
|
+
"""
|
|
26
|
+
Returns a list of class definitions from a module.
|
|
27
|
+
"""
|
|
28
|
+
return [
|
|
29
|
+
obj
|
|
30
|
+
for obj in module.__dict__.values()
|
|
31
|
+
if isinstance(obj, type) and obj.__module__ == module.__name__
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def get_protocols() -> list[type]:
|
|
36
|
+
"""
|
|
37
|
+
Used to initialize a submodule's class object.
|
|
38
|
+
Returns a list of initialized protocol objects.
|
|
39
|
+
"""
|
|
40
|
+
called_from_module = getmodule(stack()[1][0])
|
|
41
|
+
assert called_from_module, "You can only call this function from a module"
|
|
42
|
+
components = [
|
|
43
|
+
module
|
|
44
|
+
for module in get_submodules_for_module(called_from_module)
|
|
45
|
+
if not module.__name__.endswith("._base")
|
|
46
|
+
]
|
|
47
|
+
return [
|
|
48
|
+
cls()
|
|
49
|
+
for component in components
|
|
50
|
+
for cls in get_class_defs_from_module(component)
|
|
51
|
+
if cls
|
|
52
|
+
and not cls.__name__.startswith("_")
|
|
53
|
+
and cls.__name__ != "Lending"
|
|
54
|
+
and (not hasattr(cls, "networks") or CHAINID in cls.networks)
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def import_submodules() -> dict[str, ModuleType]:
|
|
59
|
+
"""
|
|
60
|
+
Import all submodules of the module from which this was called, recursively.
|
|
61
|
+
Ignores submodules named `"base"`.
|
|
62
|
+
Returns a dict of `{module.__name__: module}`
|
|
63
|
+
"""
|
|
64
|
+
called_from_module = getmodule(stack()[1][0])
|
|
65
|
+
if called_from_module is None:
|
|
66
|
+
return {}
|
|
67
|
+
parent = f"{called_from_module.__name__}."
|
|
68
|
+
return {
|
|
69
|
+
name: import_module(parent + name)
|
|
70
|
+
for loader, name, is_pkg in walk_packages(called_from_module.__path__)
|
|
71
|
+
if name != "base"
|
|
72
|
+
}
|