dao-scripts 1.2.2__py3-none-any.whl → 1.3.0.post1__py3-none-any.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_analyzer/cache_scripts/_version.py +2 -2
- dao_analyzer/cache_scripts/aragon/runner.py +23 -26
- dao_analyzer/cache_scripts/argparser.py +14 -19
- dao_analyzer/cache_scripts/common/__init__.py +3 -1
- dao_analyzer/cache_scripts/common/api_requester.py +14 -13
- dao_analyzer/cache_scripts/common/blockscout.py +11 -13
- dao_analyzer/cache_scripts/common/common.py +55 -28
- dao_analyzer/cache_scripts/common/cryptocompare.py +4 -4
- dao_analyzer/cache_scripts/common/thegraph.py +203 -0
- dao_analyzer/cache_scripts/config.py +57 -15
- dao_analyzer/cache_scripts/daohaus/runner.py +20 -20
- dao_analyzer/cache_scripts/daostack/runner.py +25 -28
- dao_analyzer/cache_scripts/endpoints.json +14 -18
- dao_analyzer/cache_scripts/logging.py +98 -0
- dao_analyzer/cache_scripts/main.py +83 -77
- dao_analyzer/cache_scripts/metadata.py +6 -6
- dao_scripts-1.3.0.post1-py3.12-nspkg.pth +1 -0
- dao_scripts-1.3.0.post1.dist-info/LICENSE +674 -0
- {dao_scripts-1.2.2.dist-info → dao_scripts-1.3.0.post1.dist-info}/METADATA +42 -8
- dao_scripts-1.3.0.post1.dist-info/RECORD +32 -0
- {dao_scripts-1.2.2.dist-info → dao_scripts-1.3.0.post1.dist-info}/WHEEL +1 -1
- dao_analyzer/cache_scripts/common/graphql.py +0 -143
- dao_scripts-1.2.2-py3.11-nspkg.pth +0 -1
- dao_scripts-1.2.2.dist-info/RECORD +0 -30
- {dao_scripts-1.2.2.dist-info → dao_scripts-1.3.0.post1.dist-info}/entry_points.txt +0 -0
- {dao_scripts-1.2.2.dist-info → dao_scripts-1.3.0.post1.dist-info}/namespace_packages.txt +0 -0
- {dao_scripts-1.2.2.dist-info → dao_scripts-1.3.0.post1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dao-scripts
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.3.0.post1
|
4
4
|
Summary: "A tool to download data to monitor DAO activity"
|
5
5
|
Home-page: https://github.com/Grasia/dao-scripts
|
6
6
|
Author: David Davó
|
@@ -13,15 +13,17 @@ Classifier: Environment :: Console
|
|
13
13
|
Classifier: Intended Audience :: Science/Research
|
14
14
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
17
16
|
Classifier: Programming Language :: Python :: 3.9
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
20
20
|
Classifier: Topic :: Sociology
|
21
21
|
Classifier: Typing :: Typed
|
22
22
|
Classifier: Topic :: Utilities
|
23
|
-
Requires-Python: >=3.
|
23
|
+
Requires-Python: >=3.9
|
24
24
|
Description-Content-Type: text/markdown
|
25
|
+
License-File: LICENSE
|
26
|
+
Requires-Dist: dynaconf >=3.0.0
|
25
27
|
Requires-Dist: gql >=3.0.0a1
|
26
28
|
Requires-Dist: numpy >=1.17.3
|
27
29
|
Requires-Dist: pandas >=1.3.4
|
@@ -41,7 +43,22 @@ Requires-Dist: pandas-vet ; extra == 'dev'
|
|
41
43
|
Requires-Dist: twine ; extra == 'dev'
|
42
44
|
Provides-Extra: upload
|
43
45
|
Requires-Dist: kaggle >=1.5.12 ; extra == 'upload'
|
44
|
-
Requires-Dist: zenodo-client >=0.3.
|
46
|
+
Requires-Dist: zenodo-client >=0.3.4 ; extra == 'upload'
|
47
|
+
|
48
|
+
<p align="center">
|
49
|
+
<a href="https://pypi.org/project/dao-scripts/">
|
50
|
+
<img src="https://img.shields.io/pypi/v/dao-scripts" alt="PyPI">
|
51
|
+
</a>
|
52
|
+
<a href="https://doi.org/10.5281/zenodo.10938359">
|
53
|
+
<img src="https://zenodo.org/badge/DOI/10.5281/zenodo.10938359.svg" alt="DOI 10.5281/zenodo.10938359.svg">
|
54
|
+
</a>
|
55
|
+
<a href="./LICENSE">
|
56
|
+
<img src="https://img.shields.io/github/license/grasia/dao-scripts" alt="License">
|
57
|
+
</a>
|
58
|
+
<a href="https://www.kaggle.com/datasets/daviddavo/dao-analyzer">
|
59
|
+
<img src="https://img.shields.io/badge/Kaggle-20BEFF?logo=Kaggle&logoColor=white" alt="Kaggle">
|
60
|
+
</a>
|
61
|
+
</p>
|
45
62
|
|
46
63
|
# DAO-Analyzer's cache-scripts
|
47
64
|
|
@@ -105,7 +122,7 @@ usage: daoa-cache-scripts [-h] [-V] [-p [{aragon,daohaus,daostack} ...]]
|
|
105
122
|
[--ignore-errors | --no-ignore-errors] [-d] [-f] [-F] [--skip-daohaus-names]
|
106
123
|
[-n {mainnet,arbitrum,xdai,polygon} [{mainnet,arbitrum,xdai,polygon} ...]]
|
107
124
|
[-c COLLECTORS [COLLECTORS ...]] [--block-datetime BLOCK_DATETIME]
|
108
|
-
[-D DATAWAREHOUSE]
|
125
|
+
[-D DATAWAREHOUSE]
|
109
126
|
|
110
127
|
Main script to populate dao-analyzer cache
|
111
128
|
|
@@ -128,8 +145,6 @@ options:
|
|
128
145
|
Get data up to a block datetime (input in ISO format)
|
129
146
|
-D DATAWAREHOUSE, --datawarehouse DATAWAREHOUSE
|
130
147
|
Specifies the destination folder of the datawarehouse
|
131
|
-
--cc-api-key CC_API_KEY
|
132
|
-
Set the CryptoCompare API key (overrides environment variable)
|
133
148
|
```
|
134
149
|
|
135
150
|
### Getting only data from a platform
|
@@ -148,7 +163,26 @@ daoa-cache-scripts --networks xdai
|
|
148
163
|
|
149
164
|
## Acknowledgements
|
150
165
|
|
151
|
-
|
166
|
+
<div align="center">
|
167
|
+
<img src="https://github.com/Grasia/dao-analyzer/blob/master/dao_analyzer/web/assets/logo-ministerio.png?raw=true"
|
168
|
+
alt="Logo Ministerio de Ciencia e Innovación. Gobierno de España"
|
169
|
+
style="max-height: 3em"
|
170
|
+
><img src="https://github.com/Grasia/dao-analyzer/blob/master/dao_analyzer/web/assets/logo-erc.png?raw=true"
|
171
|
+
alt="Logotipo European Research Council"
|
172
|
+
style="max-height: 3em"
|
173
|
+
><img src="https://github.com/Grasia/dao-analyzer/blob/master/dao_analyzer/web/assets/logo-grasia.png?raw=true"
|
174
|
+
alt="Logo GRASIA UCM"
|
175
|
+
style="max-height: 3em"
|
176
|
+
><img src="https://github.com/Grasia/dao-analyzer/blob/master/dao_analyzer/web/assets/logo-ucm.png?raw=true"
|
177
|
+
alt="Logo Universidad Complutense de Madrid"
|
178
|
+
style="max-height: 3em"
|
179
|
+
>
|
180
|
+
</div>
|
181
|
+
|
182
|
+
DAO-Analyzer is created under the umbrella of multiple research projects:
|
183
|
+
- Chain Community, funded by the Spanish Ministry of Science and Innovation ([RTI2018‐096820‐A‐I00](https://produccioncientifica.ucm.es/proyectos/48103/detalle)) and led by Javier Arroyo and Samer Hassan
|
184
|
+
- P2P Models, funded by the European Research Council (ERC-2017-STG 625 grant no.: 75920), led by Samer Hassan.
|
185
|
+
- DAOapplications, funded by the Spanish Ministry of Science and Innovation ([PID2021-127956OB-I00](https://produccioncientifica.ucm.es/proyectos/551171/detalle)) and led by Javier Arroyo, Samer Hassan and maria Cruz Valiente
|
152
186
|
|
153
187
|
## Cite as
|
154
188
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
dao_scripts-1.3.0.post1-py3.12-nspkg.pth,sha256=_0DzrHlnOxaQL5l1mMdHT1BtXZwXuB6MitMF5phpOhk,497
|
2
|
+
dao_analyzer/cache_scripts/__init__.py,sha256=Urg-J2hvyzGcgE2Z-ba71XpcHi1YlPZgex86OFSd_0A,116
|
3
|
+
dao_analyzer/cache_scripts/__main__.py,sha256=aNVhgUXjB4rzTefrX3d6dKeLOX3G_Ezs82pI8QCpwx0,61
|
4
|
+
dao_analyzer/cache_scripts/_version.py,sha256=fEmRqAxGWPRYP3Rhyj3ZTwD-sjgPHsJH8jzhage354k,417
|
5
|
+
dao_analyzer/cache_scripts/argparser.py,sha256=uOBVdRxmgR8H0dZMu2AQyvro6WvkZFKUrf7vJ6Mvw48,3574
|
6
|
+
dao_analyzer/cache_scripts/config.py,sha256=6Ooh-SpTtNCHcl2sE637-XMCCCNZBmATJRyD_eguWr0,2180
|
7
|
+
dao_analyzer/cache_scripts/endpoints.json,sha256=UR8NiR6S0MgYHn3m-SVDY2YIWyPdSkMEK6_4TLk2T2U,1276
|
8
|
+
dao_analyzer/cache_scripts/logging.py,sha256=9sAqZUk_Qnmlf9Ko60C4O__Ve7Tj4xefzQ7cV07aQ70,3196
|
9
|
+
dao_analyzer/cache_scripts/main.py,sha256=ao1Zz5nB4_4koXTqSTJMyWmXbCFBp0vpnp0f0M2u9Ms,5665
|
10
|
+
dao_analyzer/cache_scripts/metadata.py,sha256=oZ5xLkWClt1YxBAvbsDhciZkyHJ1Vcuic7guFy2ks6w,4211
|
11
|
+
dao_analyzer/cache_scripts/aragon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
+
dao_analyzer/cache_scripts/aragon/dao_names.json,sha256=ASDOJYTsgHELJ7g1z9NccVROYYxsHQaLy9V-vrfr_Ec,7412
|
13
|
+
dao_analyzer/cache_scripts/aragon/runner.py,sha256=RQX9KkOm268vrY_jgMHT_RthkrncbXhEn9Fcss8pJs4,8163
|
14
|
+
dao_analyzer/cache_scripts/common/__init__.py,sha256=R_rWbKcp-Htw_Y_gt83Y6_N9KQC5kAHyMqb0Dk25HkU,342
|
15
|
+
dao_analyzer/cache_scripts/common/api_requester.py,sha256=objbyqKVVEfNFmffds3BC2Nc3Bjk6Gip-9EUGScm7JY,8145
|
16
|
+
dao_analyzer/cache_scripts/common/blockscout.py,sha256=8-Xz7yhG8jtZsWBA2Ik3T3xqzDB0Bw89-EI8vcIB8Yk,5041
|
17
|
+
dao_analyzer/cache_scripts/common/common.py,sha256=GfdRk69jMXdzwenR55ltkEOMVy9Wio7QFY8bxgEP6F8,10763
|
18
|
+
dao_analyzer/cache_scripts/common/cryptocompare.py,sha256=jaHdJ-X_AXEUdVRMVtyK6xwHNJdhTs2Ps44QMD0iuIY,2203
|
19
|
+
dao_analyzer/cache_scripts/common/thegraph.py,sha256=iiAfpM3791o4iIzHwF_n7GYBn5G7oAV5t624jMA2rCI,6850
|
20
|
+
dao_analyzer/cache_scripts/daohaus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
+
dao_analyzer/cache_scripts/daohaus/runner.py,sha256=nQ7YN_Fbfx0KsHkq47hShwTS82jbo285x60Z-31vj8M,7549
|
22
|
+
dao_analyzer/cache_scripts/daostack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
|
+
dao_analyzer/cache_scripts/daostack/runner.py,sha256=emjzhZzGMTRGHKljll_lX-uMsGwaIsZBSi4jV1Lsh8Y,10144
|
24
|
+
dao_analyzer/cache_scripts/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
+
dao_analyzer/cache_scripts/utils/uploadDataWarehouse.py,sha256=xEzUr-XYcf6DICZkarHEwGSDGLHSz2eXZmRER8Fj1OU,4027
|
26
|
+
dao_scripts-1.3.0.post1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
27
|
+
dao_scripts-1.3.0.post1.dist-info/METADATA,sha256=2Z62brcn6FDUuOzhtlEqSCB-fc52XuIi3gS_CqVGUTs,8199
|
28
|
+
dao_scripts-1.3.0.post1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
29
|
+
dao_scripts-1.3.0.post1.dist-info/entry_points.txt,sha256=dHhgA8pcQ2YbIlMuqPPSh7fiQkfHE8ioFPUcbBvXWDc,207
|
30
|
+
dao_scripts-1.3.0.post1.dist-info/namespace_packages.txt,sha256=gbsNupMgtHQXOyBinbeLMo06f278s8My_9N-CrZh3Bk,13
|
31
|
+
dao_scripts-1.3.0.post1.dist-info/top_level.txt,sha256=gbsNupMgtHQXOyBinbeLMo06f278s8My_9N-CrZh3Bk,13
|
32
|
+
dao_scripts-1.3.0.post1.dist-info/RECORD,,
|
@@ -1,143 +0,0 @@
|
|
1
|
-
import logging
|
2
|
-
from typing import Callable, List, Dict
|
3
|
-
from abc import ABC, abstractmethod
|
4
|
-
|
5
|
-
import pandas as pd
|
6
|
-
|
7
|
-
from gql.dsl import DSLField
|
8
|
-
|
9
|
-
from .common import ENDPOINTS, NetworkCollector, NetworkRunner, Runner, UpdatableCollector
|
10
|
-
from .api_requester import GQLRequester
|
11
|
-
from ..metadata import Block
|
12
|
-
|
13
|
-
def add_where(d, **kwargs):
|
14
|
-
"""
|
15
|
-
Adds the values specified in kwargs to the where inside d
|
16
|
-
Example: `**add_where(kwargs, deleted=False)`
|
17
|
-
"""
|
18
|
-
if "where" in d:
|
19
|
-
d["where"] |= kwargs
|
20
|
-
else:
|
21
|
-
d["where"] = kwargs
|
22
|
-
|
23
|
-
return d
|
24
|
-
|
25
|
-
def partial_query(q, w) -> DSLField:
|
26
|
-
def wrapper(**kwargs):
|
27
|
-
return q(**add_where(kwargs, **w))
|
28
|
-
return wrapper
|
29
|
-
|
30
|
-
def checkSubgraphHealth(endpoint: str, network: str = None):
|
31
|
-
subgraphName = '/'.join(endpoint.split('/')[-2:])
|
32
|
-
|
33
|
-
requester = GQLRequester(endpoint=ENDPOINTS['_theGraph']['index-node'], introspection=False)
|
34
|
-
q = f"""
|
35
|
-
{{
|
36
|
-
indexingStatusForCurrentVersion(subgraphName: "{subgraphName}") {{
|
37
|
-
health,
|
38
|
-
synced,
|
39
|
-
node,
|
40
|
-
chains {{
|
41
|
-
network
|
42
|
-
}}
|
43
|
-
}}
|
44
|
-
}}
|
45
|
-
"""
|
46
|
-
|
47
|
-
r = requester.request_single(q)
|
48
|
-
|
49
|
-
if not r['synced']:
|
50
|
-
logging.info(f"Subgraph {endpoint} is not synced")
|
51
|
-
|
52
|
-
if r['health'].lower() != 'healthy':
|
53
|
-
logging.error(f"Subgraph {endpoint} is not healthy")
|
54
|
-
return False
|
55
|
-
|
56
|
-
subgraph_network = r['chains'][0]['network']
|
57
|
-
if network and subgraph_network != network:
|
58
|
-
logging.error(f"Subgraph {endpoint} expected network {network} but got {subgraph_network}")
|
59
|
-
return False
|
60
|
-
|
61
|
-
return True
|
62
|
-
|
63
|
-
class GraphQLCollector(NetworkCollector, UpdatableCollector):
|
64
|
-
def __init__(self, name: str, runner: Runner, endpoint: str, result_key: str = None, index: str = None, network: str='mainnet', pbar_enabled: bool=True):
|
65
|
-
super().__init__(name, runner, network)
|
66
|
-
self.endpoint: str = endpoint
|
67
|
-
self.index = index if index else 'id'
|
68
|
-
self.result_key = result_key if result_key else name
|
69
|
-
self.postprocessors: Callable = []
|
70
|
-
|
71
|
-
self.requester: GQLRequester = GQLRequester(endpoint=self.endpoint, pbar_enabled=pbar_enabled)
|
72
|
-
|
73
|
-
def postprocessor(self, f: Callable[[pd.DataFrame], pd.DataFrame]):
|
74
|
-
self.postprocessors.append(f)
|
75
|
-
return f
|
76
|
-
|
77
|
-
@property
|
78
|
-
def schema(self):
|
79
|
-
return self.requester.get_schema()
|
80
|
-
|
81
|
-
@abstractmethod
|
82
|
-
def query(self, **kwargs) -> DSLField:
|
83
|
-
raise NotImplementedError
|
84
|
-
|
85
|
-
@property
|
86
|
-
def df(self) -> pd.DataFrame:
|
87
|
-
if not self.data_path.is_file():
|
88
|
-
return pd.DataFrame()
|
89
|
-
|
90
|
-
df = pd.read_feather(self.data_path)
|
91
|
-
if self.network:
|
92
|
-
df = df[df['network'] == self.network]
|
93
|
-
|
94
|
-
return df
|
95
|
-
|
96
|
-
def transform_to_df(self, data: List[Dict], skip_post: bool=False) -> pd.DataFrame:
|
97
|
-
df = pd.DataFrame.from_dict(pd.json_normalize(data))
|
98
|
-
|
99
|
-
# For compatibility reasons we change from . to snake case
|
100
|
-
def dotsToSnakeCase(str: str) -> str:
|
101
|
-
splitted = str.split('.')
|
102
|
-
return splitted[0] + ''.join(x[0].upper()+x[1:] for x in splitted[1:])
|
103
|
-
|
104
|
-
df = df.rename(columns=dotsToSnakeCase)
|
105
|
-
df['network'] = self.network
|
106
|
-
|
107
|
-
if not skip_post:
|
108
|
-
for post in self.postprocessors:
|
109
|
-
logging.debug(f"Running postprocessor {post.__name__}")
|
110
|
-
df = post(df)
|
111
|
-
if df is None:
|
112
|
-
raise ValueError(f"The postprocessor {post.__name__} returned None")
|
113
|
-
|
114
|
-
return df
|
115
|
-
|
116
|
-
def verify(self) -> bool:
|
117
|
-
# Checking if the queryBuilder doesn't raise any errors
|
118
|
-
self.query()
|
119
|
-
|
120
|
-
# Checking the health of the subgraph
|
121
|
-
return checkSubgraphHealth(self.endpoint)
|
122
|
-
|
123
|
-
def query_cb(self, prev_block: Block = None):
|
124
|
-
if prev_block:
|
125
|
-
return partial_query(self.query, {'_change_block': {'number_gte': prev_block.number}})
|
126
|
-
else:
|
127
|
-
return self.query
|
128
|
-
|
129
|
-
def run(self, force=False, block: Block = None, prev_block: Block = None):
|
130
|
-
logging.info(f"Running GraphQLCollector with block: {block}, prev_block: {prev_block}")
|
131
|
-
if block is None:
|
132
|
-
block = Block()
|
133
|
-
if prev_block is None or force:
|
134
|
-
prev_block = Block()
|
135
|
-
|
136
|
-
data = self.requester.n_requests(query=self.query_cb(prev_block), block_hash=block.id)
|
137
|
-
|
138
|
-
# transform to df
|
139
|
-
df: pd.DataFrame = self.transform_to_df(data)
|
140
|
-
self._update_data(df, force)
|
141
|
-
|
142
|
-
class GraphQLRunner(NetworkRunner, ABC):
|
143
|
-
pass
|
@@ -1 +0,0 @@
|
|
1
|
-
import sys, types, os;has_mfs = sys.version_info > (3, 5);p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('dao_analyzer',));importlib = has_mfs and __import__('importlib.util');has_mfs and __import__('importlib.machinery');m = has_mfs and sys.modules.setdefault('dao_analyzer', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('dao_analyzer', [os.path.dirname(p)])));m = m or sys.modules.setdefault('dao_analyzer', types.ModuleType('dao_analyzer'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)
|
@@ -1,30 +0,0 @@
|
|
1
|
-
dao_scripts-1.2.2-py3.11-nspkg.pth,sha256=28DIlG9RX4mQHVYgU9aTDTPJ6dSaHsBAQR5SH8OXwI0,569
|
2
|
-
dao_analyzer/cache_scripts/__init__.py,sha256=Urg-J2hvyzGcgE2Z-ba71XpcHi1YlPZgex86OFSd_0A,116
|
3
|
-
dao_analyzer/cache_scripts/__main__.py,sha256=aNVhgUXjB4rzTefrX3d6dKeLOX3G_Ezs82pI8QCpwx0,61
|
4
|
-
dao_analyzer/cache_scripts/_version.py,sha256=XEVwqOPlIChKtEnSO5v_SvghWXnn9WeQSoJ436w3v9Y,411
|
5
|
-
dao_analyzer/cache_scripts/argparser.py,sha256=sAeLeBmlqdOIuOwhNMlaeIjD7yNAd8EBsnvUKzR1uOI,3617
|
6
|
-
dao_analyzer/cache_scripts/config.py,sha256=iFPMg0KErqIVoOZ1zS11vF8oDR2RgmtWq4b0vv2nfKM,744
|
7
|
-
dao_analyzer/cache_scripts/endpoints.json,sha256=ZPfq0mFUdpdqLlsHSXb7gM38P9mPipCxGCmiVelxsa0,1923
|
8
|
-
dao_analyzer/cache_scripts/main.py,sha256=zUW-F-7vRELRL9zEzBJDahgnG9S9SiyixHJVWiup9bk,5256
|
9
|
-
dao_analyzer/cache_scripts/metadata.py,sha256=pJQa7KBszz-gmacLssT81ZRz4IWmVVnM3OQYbtbR82k,4152
|
10
|
-
dao_analyzer/cache_scripts/aragon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
-
dao_analyzer/cache_scripts/aragon/dao_names.json,sha256=ASDOJYTsgHELJ7g1z9NccVROYYxsHQaLy9V-vrfr_Ec,7412
|
12
|
-
dao_analyzer/cache_scripts/aragon/runner.py,sha256=OcgzgQT2XyjK_xrGUg9BVX-HykytDBuI9X01R3VF5cc,8421
|
13
|
-
dao_analyzer/cache_scripts/common/__init__.py,sha256=PNagNaHvK7vvF3n1tnCjnA_yR_sCByZ2jU7HtBmSiYk,264
|
14
|
-
dao_analyzer/cache_scripts/common/api_requester.py,sha256=gb_GN9-ejn_0nb_MdBXozq16_uJ4EBLqsHuR_oL17mQ,7996
|
15
|
-
dao_analyzer/cache_scripts/common/blockscout.py,sha256=78rofwjP-RHzoxdyi2NXQ4TAYjTWNQavL3rCd6O6O0I,5030
|
16
|
-
dao_analyzer/cache_scripts/common/common.py,sha256=wVjypZtfBQRGejeLaVubfaIludP39Ee2Q-th84Dcx1Q,9488
|
17
|
-
dao_analyzer/cache_scripts/common/cryptocompare.py,sha256=2eXyo5barCNqZty8dkFYeW7j3mXHlXJmqGeumR-Nq8A,2224
|
18
|
-
dao_analyzer/cache_scripts/common/graphql.py,sha256=yiOqbrD7jCUca8JDzcQTN4gR_6DtpwEJW_XfIkP7faY,4585
|
19
|
-
dao_analyzer/cache_scripts/daohaus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
-
dao_analyzer/cache_scripts/daohaus/runner.py,sha256=pkg-2P1eCRM9y9m_yCvL1VZyOGQmlgEiFNDOTYvQ5qg,7653
|
21
|
-
dao_analyzer/cache_scripts/daostack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
|
-
dao_analyzer/cache_scripts/daostack/runner.py,sha256=7hR7Mi7_kRcB15rLVR6Qqp4bT64-tZZVRPWAT8U9Ee4,10279
|
23
|
-
dao_analyzer/cache_scripts/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
|
-
dao_analyzer/cache_scripts/utils/uploadDataWarehouse.py,sha256=xEzUr-XYcf6DICZkarHEwGSDGLHSz2eXZmRER8Fj1OU,4027
|
25
|
-
dao_scripts-1.2.2.dist-info/METADATA,sha256=x8LpVRwjv8fe4NkWpIaKoAAmQt-PPIcjGeYVhXmYOYs,6552
|
26
|
-
dao_scripts-1.2.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
27
|
-
dao_scripts-1.2.2.dist-info/entry_points.txt,sha256=dHhgA8pcQ2YbIlMuqPPSh7fiQkfHE8ioFPUcbBvXWDc,207
|
28
|
-
dao_scripts-1.2.2.dist-info/namespace_packages.txt,sha256=gbsNupMgtHQXOyBinbeLMo06f278s8My_9N-CrZh3Bk,13
|
29
|
-
dao_scripts-1.2.2.dist-info/top_level.txt,sha256=gbsNupMgtHQXOyBinbeLMo06f278s8My_9N-CrZh3Bk,13
|
30
|
-
dao_scripts-1.2.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|