proof-of-portfolio 0.0.83__py3-none-any.whl → 0.0.84__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.
- proof_of_portfolio/__init__.py +1 -4
- proof_of_portfolio/_version.py +1 -1
- proof_of_portfolio/proof_generator.py +59 -54
- {proof_of_portfolio-0.0.83.dist-info → proof_of_portfolio-0.0.84.dist-info}/METADATA +1 -1
- {proof_of_portfolio-0.0.83.dist-info → proof_of_portfolio-0.0.84.dist-info}/RECORD +8 -8
- {proof_of_portfolio-0.0.83.dist-info → proof_of_portfolio-0.0.84.dist-info}/WHEEL +0 -0
- {proof_of_portfolio-0.0.83.dist-info → proof_of_portfolio-0.0.84.dist-info}/entry_points.txt +0 -0
- {proof_of_portfolio-0.0.83.dist-info → proof_of_portfolio-0.0.84.dist-info}/top_level.txt +0 -0
proof_of_portfolio/__init__.py
CHANGED
@@ -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
|
|
proof_of_portfolio/_version.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# This file is auto-generated during build
|
2
|
-
__version__ = "0.0.
|
2
|
+
__version__ = "0.0.84"
|
@@ -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 += [
|
@@ -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
|
@@ -1,12 +1,12 @@
|
|
1
|
-
proof_of_portfolio/__init__.py,sha256=
|
2
|
-
proof_of_portfolio/_version.py,sha256=
|
1
|
+
proof_of_portfolio/__init__.py,sha256=gqM3xkqAO2az6Rhgez0qIREUzZqB3DZYV4IIQHdpwMA,4845
|
2
|
+
proof_of_portfolio/_version.py,sha256=FC0Kth0ftVDkDVhYy3jUxM8Ks_ZbGTZLp8qNYN8daMo,66
|
3
3
|
proof_of_portfolio/analyze_data.py,sha256=t80ueFtBUzcWTrPiamiC1HXvw5Em-151zXJx0cCk8sQ,3709
|
4
4
|
proof_of_portfolio/main.py,sha256=JbvdAK7B6hw2sQdjT0EVCiglCQZgN3urKphdeWcW43w,30994
|
5
5
|
proof_of_portfolio/min_metrics.py,sha256=U16B7YRl0UbCterdJ1ksqFOxR5DiQeslUzMVGEWNyog,13211
|
6
6
|
proof_of_portfolio/miner.py,sha256=eGXcPMRQVAepzXJj1ePbbDAf-72E9Yj9n-yfP7GohLw,17177
|
7
7
|
proof_of_portfolio/parsing_utils.py,sha256=Hx61Sby5mEbC6uzhG9G69K7YPCLbjU6vK8fazpNBeLc,6463
|
8
8
|
proof_of_portfolio/post_install.py,sha256=e-57Z_h-svQdjA8ibsM985MXmdV6-KLyymQm3Cgu8YM,5654
|
9
|
-
proof_of_portfolio/proof_generator.py,sha256=
|
9
|
+
proof_of_portfolio/proof_generator.py,sha256=Qeg07pWZof_jDvgrJX9KYlMWnJ6XTwOB09os5GTdGG0,21216
|
10
10
|
proof_of_portfolio/signal_processor.py,sha256=JQjnkMJEbv_MWIgKNrjKjrBIcIT5pAkAlCneEOGsqT0,6702
|
11
11
|
proof_of_portfolio/validator.py,sha256=kt3BeaXOffv-h52PZBKV1YHUWtiGsnPte16m3EJpITY,3839
|
12
12
|
proof_of_portfolio/circuits/Nargo.toml,sha256=D6ycN7H3xiTcWHH5wz4qXYTXn7Ht0WgPr9w4B7d8ZGw,141
|
@@ -77,8 +77,8 @@ proof_of_portfolio/tree_generator/Nargo.toml,sha256=O6iSvb-EpV0XcETiDxNgSp7XKNiY
|
|
77
77
|
proof_of_portfolio/tree_generator/target.gz,sha256=J55ZC5QuFy6vGC2dSJ-0rEWjUKzzxwXwKGDTDUGp06U,225314
|
78
78
|
proof_of_portfolio/tree_generator/src/main.nr,sha256=5Jb46e5PyZ3kpmIJn4W1gVtN3AgHs-fCmTochVB7uOU,2427
|
79
79
|
proof_of_portfolio/tree_generator/target/tree_generator.json,sha256=Uy9AFLrbsd2SayMFTPgmow91-BIs1DrqP3qGfxfZAa0,1540901
|
80
|
-
proof_of_portfolio-0.0.
|
81
|
-
proof_of_portfolio-0.0.
|
82
|
-
proof_of_portfolio-0.0.
|
83
|
-
proof_of_portfolio-0.0.
|
84
|
-
proof_of_portfolio-0.0.
|
80
|
+
proof_of_portfolio-0.0.84.dist-info/METADATA,sha256=AcI239nx1ril8N5fRpG2Q3RQ4HUwyUPF5wjj64thcxM,7076
|
81
|
+
proof_of_portfolio-0.0.84.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
82
|
+
proof_of_portfolio-0.0.84.dist-info/entry_points.txt,sha256=KeLSJT_UJtr1WiLTkhlGqWQuPKbO_ylgj6OXOC2gJV4,53
|
83
|
+
proof_of_portfolio-0.0.84.dist-info/top_level.txt,sha256=sY5xZnE6YuiISK1IuRHPfl71NV0vXO3N3YA2li_SPXU,19
|
84
|
+
proof_of_portfolio-0.0.84.dist-info/RECORD,,
|
File without changes
|
{proof_of_portfolio-0.0.83.dist-info → proof_of_portfolio-0.0.84.dist-info}/entry_points.txt
RENAMED
File without changes
|
File without changes
|