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.
Files changed (90) hide show
  1. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/PKG-INFO +1 -1
  2. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/__init__.py +1 -4
  3. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/_version.py +1 -1
  4. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/proof_generator.py +59 -54
  5. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/PKG-INFO +1 -1
  6. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/pyproject.toml +1 -1
  7. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/README.md +0 -0
  8. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/analyze_data.py +0 -0
  9. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/Nargo.toml +0 -0
  10. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/Nargo.toml +0 -0
  11. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/calmar.nr +0 -0
  12. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/drawdown.nr +0 -0
  13. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/merkle.nr +0 -0
  14. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/mod.nr +0 -0
  15. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/omega.nr +0 -0
  16. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/pnl_score.nr +0 -0
  17. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/position.nr +0 -0
  18. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/sharpe.nr +0 -0
  19. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/sortino.nr +0 -0
  20. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/core/tstat.nr +0 -0
  21. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/lib.nr +0 -0
  22. {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
  23. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/ann_volatility.nr +0 -0
  24. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/average.nr +0 -0
  25. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/constants.nr +0 -0
  26. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/mod.nr +0 -0
  27. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/sqrt.nr +0 -0
  28. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/variance.nr +0 -0
  29. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr +0 -0
  30. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/generate_inputs.py +0 -0
  31. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/src/main.nr +0 -0
  32. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/target/circuits.json +0 -0
  33. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/circuits/vk/vk +0 -0
  34. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_calmar/Nargo.toml +0 -0
  35. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_calmar/src/main.nr +0 -0
  36. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_calmar/target/just_calmar.json +0 -0
  37. {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
  38. {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
  39. {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
  40. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_drawdown/Nargo.toml +0 -0
  41. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_drawdown/src/main.nr +0 -0
  42. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_drawdown/target/just_drawdown.json +0 -0
  43. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_omega/Nargo.toml +0 -0
  44. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_omega/src/main.nr +0 -0
  45. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_omega/target/just_omega.json +0 -0
  46. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_pnl/Nargo.toml +0 -0
  47. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_pnl/src/main.nr +0 -0
  48. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sharpe/Nargo.toml +0 -0
  49. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sharpe/src/main.nr +0 -0
  50. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sharpe/target/just_sharpe.json +0 -0
  51. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sortino/Nargo.toml +0 -0
  52. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sortino/src/main.nr +0 -0
  53. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_sortino/target/just_sortino.json +0 -0
  54. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_tstat/Nargo.toml +0 -0
  55. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_tstat/src/main.nr +0 -0
  56. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/just_tstat/target/just_tstat.json +0 -0
  57. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/merkle_generator/Nargo.toml +0 -0
  58. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demo/merkle_generator/src/main.nr +0 -0
  59. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/all.py +0 -0
  60. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/calmar.py +0 -0
  61. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/drawdown.py +0 -0
  62. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/generate_input_data.py +0 -0
  63. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/log_returns.py +0 -0
  64. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/main.py +0 -0
  65. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/omega.py +0 -0
  66. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/sharpe.py +0 -0
  67. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/sortino.py +0 -0
  68. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/tstat.py +0 -0
  69. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/demos/utils.py +0 -0
  70. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/main.py +0 -0
  71. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/min_metrics.py +0 -0
  72. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/miner.py +0 -0
  73. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/parsing_utils.py +0 -0
  74. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/post_install.py +0 -0
  75. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/returns_generator/Nargo.toml +0 -0
  76. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/returns_generator/src/main.nr +0 -0
  77. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/returns_generator/target/returns_generator.json +0 -0
  78. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/signal_processor.py +0 -0
  79. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/Nargo.toml +0 -0
  80. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/src/main.nr +0 -0
  81. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/target/tree_generator.json +0 -0
  82. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/tree_generator/target.gz +0 -0
  83. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio/validator.py +0 -0
  84. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/SOURCES.txt +0 -0
  85. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/dependency_links.txt +0 -0
  86. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/entry_points.txt +0 -0
  87. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/requires.txt +0 -0
  88. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/proof_of_portfolio.egg-info/top_level.txt +0 -0
  89. {proof_of_portfolio-0.0.83 → proof_of_portfolio-0.0.84}/setup.cfg +0 -0
  90. {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.83
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 and verification_success:
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.83"
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
- all_orders = []
252
- for pos in positions:
253
- all_orders.extend(get_attr(pos, "orders"))
254
-
255
- signals_count = len(all_orders)
256
- if signals_count > MAX_SIGNALS:
257
- log_verbose(
258
- verbose,
259
- "warning",
260
- f"Truncating {signals_count} signals to {MAX_SIGNALS} (circuit limit)",
261
- )
262
- all_orders = all_orders[:MAX_SIGNALS]
263
- signals_count = MAX_SIGNALS
264
-
265
- trade_pair_map = {}
266
- trade_pair_counter = 0
267
-
268
- signals = []
269
- for order in all_orders:
270
- trade_pair = get_attr(order, "trade_pair")
271
- trade_pair_str = (
272
- str(trade_pair).split(".")[1]
273
- if hasattr(trade_pair, "name")
274
- else str(trade_pair)
275
- )
276
- if trade_pair_str not in trade_pair_map:
277
- trade_pair_map[trade_pair_str] = trade_pair_counter
278
- trade_pair_counter += 1
279
-
280
- order_type = get_attr(order, "order_type")
281
- order_type_str = (
282
- str(order_type).split(".")[1]
283
- if hasattr(order_type, "name")
284
- else str(order_type)
285
- )
286
- order_type_map = {"SHORT": 2, "LONG": 1, "FLAT": 0}
287
- price = int(get_attr(order, "price") * SCALING_FACTOR)
288
- order_uuid = get_attr(order, "order_uuid")
289
- bid = int(get_attr(order, "bid") * SCALING_FACTOR)
290
- ask = int(get_attr(order, "ask") * SCALING_FACTOR)
291
- processed_ms = get_attr(order, "processed_ms")
292
-
293
- signals.append(
294
- {
295
- "trade_pair": str(trade_pair_map[trade_pair_str]),
296
- "order_type": str(order_type_map.get(order_type_str, 0)),
297
- "leverage": str(int(abs(get_attr(order, "leverage")) * SCALING_FACTOR)),
298
- "price": str(price),
299
- "processed_ms": str(processed_ms),
300
- "order_uuid": f"0x{order_uuid.replace('-', '')}",
301
- "bid": str(bid),
302
- "ask": str(ask),
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.83
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.83"
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" }]