proof-of-portfolio 0.0.92__py3-none-any.whl → 0.0.94__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/_version.py +1 -1
- proof_of_portfolio/circuits/components/src/core/calmar.nr +7 -3
- proof_of_portfolio/circuits/components/src/core/omega.nr +36 -24
- proof_of_portfolio/circuits/src/main.nr +4 -1
- proof_of_portfolio/circuits/target/circuits.json +1 -1
- proof_of_portfolio/circuits/vk/vk +0 -0
- proof_of_portfolio/proof_generator.py +12 -3
- {proof_of_portfolio-0.0.92.dist-info → proof_of_portfolio-0.0.94.dist-info}/METADATA +1 -1
- {proof_of_portfolio-0.0.92.dist-info → proof_of_portfolio-0.0.94.dist-info}/RECORD +12 -12
- {proof_of_portfolio-0.0.92.dist-info → proof_of_portfolio-0.0.94.dist-info}/WHEEL +0 -0
- {proof_of_portfolio-0.0.92.dist-info → proof_of_portfolio-0.0.94.dist-info}/entry_points.txt +0 -0
- {proof_of_portfolio-0.0.92.dist-info → proof_of_portfolio-0.0.94.dist-info}/top_level.txt +0 -0
Binary file
|
@@ -247,6 +247,11 @@ def generate_proof(
|
|
247
247
|
# Pad to MAX_DAYS
|
248
248
|
scaled_log_returns += [0] * (MAX_DAYS - len(scaled_log_returns))
|
249
249
|
|
250
|
+
weights_float = data.get("weights", [])
|
251
|
+
|
252
|
+
scaled_weights = [int(w * SCALING_FACTOR) for w in weights_float]
|
253
|
+
scaled_weights += [0] * (256 - len(scaled_weights))
|
254
|
+
|
250
255
|
log_verbose(verbose, "info", f"Using {n_returns} daily returns from PTN")
|
251
256
|
try:
|
252
257
|
all_orders = []
|
@@ -379,7 +384,9 @@ def generate_proof(
|
|
379
384
|
# Pass annual risk-free rate (to match ann_excess_return usage)
|
380
385
|
annual_risk_free_decimal = annual_risk_free_percentage / 100
|
381
386
|
risk_free_rate_scaled = int(annual_risk_free_decimal * SCALING_FACTOR)
|
387
|
+
calmar_cap = int(data.get("calmar_cap", 1) * SCALING_FACTOR)
|
382
388
|
|
389
|
+
account_size = data.get("account_size", 250000)
|
383
390
|
# Finally, LFG
|
384
391
|
main_prover_input = {
|
385
392
|
"log_returns": [str(r) for r in scaled_log_returns],
|
@@ -408,9 +415,11 @@ def generate_proof(
|
|
408
415
|
else str(signals_merkle_root)
|
409
416
|
),
|
410
417
|
"risk_free_rate": str(risk_free_rate_scaled),
|
411
|
-
"use_weighting":
|
418
|
+
"use_weighting": "1",
|
419
|
+
"weights": [str(w) for w in scaled_weights],
|
412
420
|
"bypass_confidence": str(int(bypass_confidence)),
|
413
|
-
"account_size": str(account_size
|
421
|
+
"account_size": str(account_size),
|
422
|
+
"calmar_cap": str(calmar_cap),
|
414
423
|
}
|
415
424
|
|
416
425
|
os.makedirs(main_circuit_dir, exist_ok=True)
|
@@ -555,7 +564,7 @@ def generate_proof(
|
|
555
564
|
"sharpe_ratio_scaled": sharpe_ratio_scaled,
|
556
565
|
"max_drawdown_raw": max_drawdown_raw,
|
557
566
|
"max_drawdown_scaled": max_drawdown_scaled,
|
558
|
-
"max_drawdown_percentage":
|
567
|
+
"max_drawdown_percentage": max_drawdown_scaled * 100,
|
559
568
|
"calmar_ratio_raw": calmar_ratio_raw,
|
560
569
|
"calmar_ratio_scaled": calmar_ratio_scaled,
|
561
570
|
"omega_ratio_raw": omega_ratio_raw,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: proof-of-portfolio
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.94
|
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,23 +1,23 @@
|
|
1
1
|
proof_of_portfolio/__init__.py,sha256=gqM3xkqAO2az6Rhgez0qIREUzZqB3DZYV4IIQHdpwMA,4845
|
2
|
-
proof_of_portfolio/_version.py,sha256=
|
2
|
+
proof_of_portfolio/_version.py,sha256=mzglcOQRd8foKcxvKov0HC_i0lcPBm4V8N1IEsQGPIM,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=Iosb7CUz36A_UmRE0kcPjP-kyWw6objoRY_XYG6LyTE,21524
|
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
|
13
13
|
proof_of_portfolio/circuits/generate_inputs.py,sha256=n9coxeNvOqXj_PleAPlP9reXUbWKUJRDAgxxxGfYZQk,10060
|
14
14
|
proof_of_portfolio/circuits/components/Nargo.toml,sha256=jFQJR9rg6zSNDgJF_yfaXc7-rdIhLO0ucr_pgkgEvaE,76
|
15
15
|
proof_of_portfolio/circuits/components/src/lib.nr,sha256=qTvVLqAAL73jtA3ZniTDUyn8RpniM3jqMiGI0RsuXSM,29
|
16
|
-
proof_of_portfolio/circuits/components/src/core/calmar.nr,sha256=
|
16
|
+
proof_of_portfolio/circuits/components/src/core/calmar.nr,sha256=6u8TFTBs1TySZFZNH7EfQw3o0d09Jq6zgc0Hdz9lbDE,3343
|
17
17
|
proof_of_portfolio/circuits/components/src/core/drawdown.nr,sha256=DqfLbUaR_y_ZBOF1a2-tlxaDJJ6fE6cauToBbXFyKt8,2703
|
18
18
|
proof_of_portfolio/circuits/components/src/core/merkle.nr,sha256=NcrN92Pye5cxACrAWkPRm1RTSaczqRyku3da6qaJ700,3139
|
19
19
|
proof_of_portfolio/circuits/components/src/core/mod.nr,sha256=5YDicBPqTr4fLaS_rYuMnJ3PDJpakgpyzPzARIYZ3F4,132
|
20
|
-
proof_of_portfolio/circuits/components/src/core/omega.nr,sha256=
|
20
|
+
proof_of_portfolio/circuits/components/src/core/omega.nr,sha256=UmKV496sosWp5WvLgV8ESZLszAoyA6Ahq_uyqn-i-ek,4141
|
21
21
|
proof_of_portfolio/circuits/components/src/core/pnl_score.nr,sha256=cMfWt2fg2l0dP7aakq7OdjkNbkwdtv6JXz6HBO1I2vk,2481
|
22
22
|
proof_of_portfolio/circuits/components/src/core/position.nr,sha256=KTnq0YhNrwX_0cppEVwRxAN0FMyfStnQ8_dV0Cir8xY,6196
|
23
23
|
proof_of_portfolio/circuits/components/src/core/sharpe.nr,sha256=3ec3aPczoC56cW3reSAjog9L7IuPK5YAnztMlz756oA,2446
|
@@ -32,9 +32,9 @@ proof_of_portfolio/circuits/components/src/utils/risk_normalization.nr,sha256=PX
|
|
32
32
|
proof_of_portfolio/circuits/components/src/utils/sqrt.nr,sha256=pkCqXr4cBgfb49fzi_N6JypD31GlNYuMdMUoVssVzFQ,2318
|
33
33
|
proof_of_portfolio/circuits/components/src/utils/variance.nr,sha256=dzVn-idUSV4uykOlH4td9UUnui_OFfbVm9ZtE4BnSK8,2895
|
34
34
|
proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr,sha256=ZTdpYmVLI639j-RUtKhluTIVb_sLVxerQdRDoB2zYFQ,1185
|
35
|
-
proof_of_portfolio/circuits/src/main.nr,sha256=
|
36
|
-
proof_of_portfolio/circuits/target/circuits.json,sha256=
|
37
|
-
proof_of_portfolio/circuits/vk/vk,sha256=
|
35
|
+
proof_of_portfolio/circuits/src/main.nr,sha256=G5VAXQpmGZ5WSzQMrv1IEKweD39E2qyCA3DhOfm-IhE,5453
|
36
|
+
proof_of_portfolio/circuits/target/circuits.json,sha256=O2RHhkk7whE2ZLuJff30V-vWfBKl9d3ttHZJbXJ7FD8,12807126
|
37
|
+
proof_of_portfolio/circuits/vk/vk,sha256=FLvF0QEpKK7MyQimLzhemw8gDR5wQtmxMuGlS9bn-dY,1764
|
38
38
|
proof_of_portfolio/demo/just_calmar/Nargo.toml,sha256=wJ7j03ThqHr4N_jk4ifjvGzAnhnO0CrSouNHdo6pIl8,77
|
39
39
|
proof_of_portfolio/demo/just_calmar/src/main.nr,sha256=xLzzAwAJf-q43IKvChhf08qcmb1BhDP4sVT6bOsSBRs,5351
|
40
40
|
proof_of_portfolio/demo/just_calmar/target/just_calmar.json,sha256=s_7h0ZLMUM3NURBaEtDxrkbgWlVSBkpa7CLPiLYLhk8,1820536
|
@@ -78,8 +78,8 @@ proof_of_portfolio/tree_generator/Nargo.toml,sha256=O6iSvb-EpV0XcETiDxNgSp7XKNiY
|
|
78
78
|
proof_of_portfolio/tree_generator/target.gz,sha256=J55ZC5QuFy6vGC2dSJ-0rEWjUKzzxwXwKGDTDUGp06U,225314
|
79
79
|
proof_of_portfolio/tree_generator/src/main.nr,sha256=5Jb46e5PyZ3kpmIJn4W1gVtN3AgHs-fCmTochVB7uOU,2427
|
80
80
|
proof_of_portfolio/tree_generator/target/tree_generator.json,sha256=Uy9AFLrbsd2SayMFTPgmow91-BIs1DrqP3qGfxfZAa0,1540901
|
81
|
-
proof_of_portfolio-0.0.
|
82
|
-
proof_of_portfolio-0.0.
|
83
|
-
proof_of_portfolio-0.0.
|
84
|
-
proof_of_portfolio-0.0.
|
85
|
-
proof_of_portfolio-0.0.
|
81
|
+
proof_of_portfolio-0.0.94.dist-info/METADATA,sha256=wDOY_WQ-72G3vvEr-bQo6B_OVGmIXBzrhBm_ZRCjBdg,7076
|
82
|
+
proof_of_portfolio-0.0.94.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
83
|
+
proof_of_portfolio-0.0.94.dist-info/entry_points.txt,sha256=KeLSJT_UJtr1WiLTkhlGqWQuPKbO_ylgj6OXOC2gJV4,53
|
84
|
+
proof_of_portfolio-0.0.94.dist-info/top_level.txt,sha256=sY5xZnE6YuiISK1IuRHPfl71NV0vXO3N3YA2li_SPXU,19
|
85
|
+
proof_of_portfolio-0.0.94.dist-info/RECORD,,
|
File without changes
|
{proof_of_portfolio-0.0.92.dist-info → proof_of_portfolio-0.0.94.dist-info}/entry_points.txt
RENAMED
File without changes
|
File without changes
|