proof-of-portfolio 0.0.83__tar.gz → 0.0.84__tar.gz
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.
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/PKG-INFO +1 -1
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/__init__.py +1 -4
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/_version.py +1 -1
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/proof_generator.py +59 -54
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/PKG-INFO +1 -1
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/pyproject.toml +1 -1
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/README.md +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/analyze_data.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/calmar.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/drawdown.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/merkle.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/mod.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/omega.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/pnl_score.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/position.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/sharpe.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/sortino.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/tstat.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/lib.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/ann_excess_return.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/ann_volatility.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/average.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/constants.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/mod.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/sqrt.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/variance.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/generate_inputs.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/target/circuits.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/vk/vk +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_calmar/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_calmar/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_calmar/target/just_calmar.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_cps_to_log_return/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_cps_to_log_return/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_cps_to_log_return/target/just_cps_to_log_return.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_drawdown/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_drawdown/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_drawdown/target/just_drawdown.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_omega/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_omega/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_omega/target/just_omega.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_pnl/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_pnl/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sharpe/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sharpe/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sharpe/target/just_sharpe.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sortino/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sortino/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sortino/target/just_sortino.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_tstat/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_tstat/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_tstat/target/just_tstat.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/merkle_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/merkle_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/all.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/calmar.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/drawdown.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/generate_input_data.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/log_returns.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/main.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/omega.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/sharpe.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/sortino.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/tstat.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/utils.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/main.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/min_metrics.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/miner.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/parsing_utils.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/post_install.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/returns_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/returns_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/returns_generator/target/returns_generator.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/signal_processor.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/target/tree_generator.json +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/target.gz +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/validator.py +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/SOURCES.txt +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/dependency_links.txt +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/entry_points.txt +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/requires.txt +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/top_level.txt +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/setup.cfg +0 -0
- {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: proof-of-portfolio
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.84
|
4
4
|
Summary: Zero-Knowledge Proof framework for verifiable, private portfolio performance metrics
|
5
5
|
Author-email: "Inference Labs, Inc." <info@inferencelabs.com>
|
6
6
|
Requires-Python: >=3.10
|
@@ -81,12 +81,9 @@ def _prove_worker(
|
|
81
81
|
|
82
82
|
proof_results = result.get("proof_results", {})
|
83
83
|
proof_generated = proof_results.get("proof_generated", False)
|
84
|
-
verification_success = proof_results.get("verification_success", False)
|
85
84
|
|
86
|
-
if proof_generated
|
85
|
+
if proof_generated:
|
87
86
|
status = "success"
|
88
|
-
elif proof_generated and not verification_success:
|
89
|
-
status = "verification_failed"
|
90
87
|
else:
|
91
88
|
status = "proof_generation_failed"
|
92
89
|
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# This file is auto-generated during build
|
2
|
-
__version__ = "0.0.
|
2
|
+
__version__ = "0.0.84"
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/proof_generator.py
RENAMED
@@ -5,6 +5,7 @@ import os
|
|
5
5
|
import time
|
6
6
|
import json
|
7
7
|
import bittensor as bt
|
8
|
+
import traceback
|
8
9
|
|
9
10
|
MAX_DAYS = 120
|
10
11
|
MAX_SIGNALS = 256
|
@@ -247,61 +248,65 @@ def generate_proof(
|
|
247
248
|
scaled_log_returns += [0] * (MAX_DAYS - len(scaled_log_returns))
|
248
249
|
|
249
250
|
log_verbose(verbose, "info", f"Using {n_returns} daily returns from PTN")
|
251
|
+
try:
|
252
|
+
all_orders = []
|
253
|
+
for pos in positions:
|
254
|
+
all_orders.extend(get_attr(pos, "orders"))
|
250
255
|
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
)
|
256
|
+
signals_count = len(all_orders)
|
257
|
+
if signals_count > MAX_SIGNALS:
|
258
|
+
log_verbose(
|
259
|
+
verbose,
|
260
|
+
"warning",
|
261
|
+
f"Truncating {signals_count} signals to {MAX_SIGNALS} (circuit limit)",
|
262
|
+
)
|
263
|
+
all_orders = all_orders[:MAX_SIGNALS]
|
264
|
+
signals_count = MAX_SIGNALS
|
265
|
+
|
266
|
+
trade_pair_map = {}
|
267
|
+
trade_pair_counter = 0
|
268
|
+
|
269
|
+
signals = []
|
270
|
+
for order in all_orders:
|
271
|
+
trade_pair = get_attr(order, "trade_pair")
|
272
|
+
trade_pair_str = (
|
273
|
+
str(trade_pair).split(".")[1]
|
274
|
+
if hasattr(trade_pair, "name")
|
275
|
+
else str(trade_pair)
|
276
|
+
)
|
277
|
+
if trade_pair_str not in trade_pair_map:
|
278
|
+
trade_pair_map[trade_pair_str] = trade_pair_counter
|
279
|
+
trade_pair_counter += 1
|
280
|
+
|
281
|
+
order_type = get_attr(order, "order_type")
|
282
|
+
order_type_str = (
|
283
|
+
str(order_type).split(".")[1]
|
284
|
+
if hasattr(order_type, "name")
|
285
|
+
else str(order_type)
|
286
|
+
)
|
287
|
+
order_type_map = {"SHORT": 2, "LONG": 1, "FLAT": 0}
|
288
|
+
price = int(get_attr(order, "price") * SCALING_FACTOR)
|
289
|
+
order_uuid = get_attr(order, "order_uuid")
|
290
|
+
bid = int(get_attr(order, "bid") * SCALING_FACTOR)
|
291
|
+
ask = int(get_attr(order, "ask") * SCALING_FACTOR)
|
292
|
+
processed_ms = get_attr(order, "processed_ms")
|
293
|
+
|
294
|
+
signals.append(
|
295
|
+
{
|
296
|
+
"trade_pair": str(trade_pair_map[trade_pair_str]),
|
297
|
+
"order_type": str(order_type_map.get(order_type_str, 0)),
|
298
|
+
"leverage": str(
|
299
|
+
int(abs(get_attr(order, "leverage")) * SCALING_FACTOR)
|
300
|
+
),
|
301
|
+
"price": str(price),
|
302
|
+
"processed_ms": str(processed_ms),
|
303
|
+
"order_uuid": f"0x{order_uuid.replace('-', '')}",
|
304
|
+
"bid": str(bid),
|
305
|
+
"ask": str(ask),
|
306
|
+
}
|
307
|
+
)
|
308
|
+
except Exception:
|
309
|
+
traceback.print_exc()
|
305
310
|
|
306
311
|
# Pad signals too
|
307
312
|
signals += [
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: proof-of-portfolio
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.84
|
4
4
|
Summary: Zero-Knowledge Proof framework for verifiable, private portfolio performance metrics
|
5
5
|
Author-email: "Inference Labs, Inc." <info@inferencelabs.com>
|
6
6
|
Requires-Python: >=3.10
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
5
5
|
|
6
6
|
[project]
|
7
7
|
name = "proof-of-portfolio"
|
8
|
-
version = "0.0.
|
8
|
+
version = "0.0.84"
|
9
9
|
description = "Zero-Knowledge Proof framework for verifiable, private portfolio performance metrics"
|
10
10
|
readme = "README.md"
|
11
11
|
authors = [{ name = "Inference Labs, Inc.", email = "info@inferencelabs.com" }]
|
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/Nargo.toml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/src/main.nr
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_pnl/Nargo.toml
RENAMED
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_pnl/src/main.nr
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/drawdown.py
RENAMED
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/log_returns.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/signal_processor.py
RENAMED
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/Nargo.toml
RENAMED
File without changes
|
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/target.gz
RENAMED
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/entry_points.txt
RENAMED
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/requires.txt
RENAMED
File without changes
|
{proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|