proof-of-portfolio 0.0.108__tar.gz → 0.0.109__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 (92) hide show
  1. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/PKG-INFO +1 -1
  2. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/_version.py +1 -1
  3. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/omega.nr +18 -8
  4. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/target/circuits.json +1 -1
  5. proof_of_portfolio-0.0.109/proof_of_portfolio/circuits/vk/vk +0 -0
  6. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/proof_generator.py +1 -1
  7. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio.egg-info/PKG-INFO +1 -1
  8. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/pyproject.toml +1 -1
  9. proof_of_portfolio-0.0.108/proof_of_portfolio/circuits/vk/vk +0 -0
  10. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/README.md +0 -0
  11. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/__init__.py +0 -0
  12. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/analyze_data.py +0 -0
  13. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/Nargo.toml +0 -0
  14. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/Nargo.toml +0 -0
  15. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/calmar.nr +0 -0
  16. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/drawdown.nr +0 -0
  17. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/merkle.nr +0 -0
  18. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/mod.nr +0 -0
  19. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/pnl_score.nr +0 -0
  20. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/position.nr +0 -0
  21. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/sharpe.nr +0 -0
  22. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/sortino.nr +0 -0
  23. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/core/tstat.nr +0 -0
  24. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/lib.nr +0 -0
  25. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/ann_excess_return.nr +0 -0
  26. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/ann_volatility.nr +0 -0
  27. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/average.nr +0 -0
  28. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/constants.nr +0 -0
  29. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/mod.nr +0 -0
  30. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/risk_normalization.nr +0 -0
  31. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/sqrt.nr +0 -0
  32. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/variance.nr +0 -0
  33. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr +0 -0
  34. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/generate_inputs.py +0 -0
  35. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/circuits/src/main.nr +0 -0
  36. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_calmar/Nargo.toml +0 -0
  37. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_calmar/src/main.nr +0 -0
  38. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_calmar/target/just_calmar.json +0 -0
  39. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_cps_to_log_return/Nargo.toml +0 -0
  40. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_cps_to_log_return/src/main.nr +0 -0
  41. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_cps_to_log_return/target/just_cps_to_log_return.json +0 -0
  42. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_drawdown/Nargo.toml +0 -0
  43. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_drawdown/src/main.nr +0 -0
  44. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_drawdown/target/just_drawdown.json +0 -0
  45. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_omega/Nargo.toml +0 -0
  46. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_omega/src/main.nr +0 -0
  47. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_omega/target/just_omega.json +0 -0
  48. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_pnl/Nargo.toml +0 -0
  49. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_pnl/src/main.nr +0 -0
  50. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_sharpe/Nargo.toml +0 -0
  51. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_sharpe/src/main.nr +0 -0
  52. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_sharpe/target/just_sharpe.json +0 -0
  53. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_sortino/Nargo.toml +0 -0
  54. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_sortino/src/main.nr +0 -0
  55. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_sortino/target/just_sortino.json +0 -0
  56. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_tstat/Nargo.toml +0 -0
  57. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_tstat/src/main.nr +0 -0
  58. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/just_tstat/target/just_tstat.json +0 -0
  59. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/merkle_generator/Nargo.toml +0 -0
  60. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demo/merkle_generator/src/main.nr +0 -0
  61. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/all.py +0 -0
  62. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/calmar.py +0 -0
  63. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/drawdown.py +0 -0
  64. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/generate_input_data.py +0 -0
  65. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/log_returns.py +0 -0
  66. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/main.py +0 -0
  67. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/omega.py +0 -0
  68. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/sharpe.py +0 -0
  69. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/sortino.py +0 -0
  70. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/tstat.py +0 -0
  71. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/demos/utils.py +0 -0
  72. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/main.py +0 -0
  73. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/min_metrics.py +0 -0
  74. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/miner.py +0 -0
  75. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/parsing_utils.py +0 -0
  76. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/post_install.py +0 -0
  77. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/returns_generator/Nargo.toml +0 -0
  78. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/returns_generator/src/main.nr +0 -0
  79. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/returns_generator/target/returns_generator.json +0 -0
  80. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/signal_processor.py +0 -0
  81. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/tree_generator/Nargo.toml +0 -0
  82. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/tree_generator/src/main.nr +0 -0
  83. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/tree_generator/target/tree_generator.json +0 -0
  84. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/tree_generator/target.gz +0 -0
  85. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio/validator.py +0 -0
  86. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio.egg-info/SOURCES.txt +0 -0
  87. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio.egg-info/dependency_links.txt +0 -0
  88. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio.egg-info/entry_points.txt +0 -0
  89. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio.egg-info/requires.txt +0 -0
  90. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/proof_of_portfolio.egg-info/top_level.txt +0 -0
  91. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/setup.cfg +0 -0
  92. {proof_of_portfolio-0.0.108 → proof_of_portfolio-0.0.109}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proof-of-portfolio
3
- Version: 0.0.108
3
+ Version: 0.0.109
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,2 +1,2 @@
1
1
  # This file is auto-generated during build
2
- __version__ = "0.0.108"
2
+ __version__ = "0.0.109"
@@ -1,5 +1,6 @@
1
1
  use crate::utils::constants::{
2
- ARRAY_SIZE, OMEGA_NOCONFIDENCE_VALUE, SCALE, STATISTICAL_CONFIDENCE_MINIMUM_N,
2
+ ARRAY_SIZE, OMEGA_NOCONFIDENCE_VALUE, RATIO_SCALE_FACTOR, SCALE,
3
+ STATISTICAL_CONFIDENCE_MINIMUM_N,
3
4
  };
4
5
 
5
6
  pub fn omega(
@@ -64,8 +65,12 @@ pub fn omega(
64
65
  omega_loss_min_scaled
65
66
  };
66
67
 
67
- if effective_denominator != 0 {
68
- positive_cross / effective_denominator
68
+ let adjusted_ratio_scale = RATIO_SCALE_FACTOR * scale_factor;
69
+
70
+ if effective_denominator >= adjusted_ratio_scale {
71
+ positive_cross / (effective_denominator / adjusted_ratio_scale)
72
+ } else if effective_denominator != 0 {
73
+ (positive_cross / effective_denominator) * adjusted_ratio_scale
69
74
  } else {
70
75
  0
71
76
  }
@@ -91,7 +96,7 @@ pub fn omega(
91
96
  } else {
92
97
  omega_loss_min
93
98
  };
94
- positive_sum / effective_denominator
99
+ (positive_sum * RATIO_SCALE_FACTOR) / effective_denominator
95
100
  }
96
101
  }
97
102
  }
@@ -154,7 +159,7 @@ fn test_omega_ptn_parity() {
154
159
  returns[3] = 15000000;
155
160
  let weights = [0; ARRAY_SIZE];
156
161
  let result = omega(returns, 4, weights, false, true, 10000000, 0);
157
- assert(result == 1);
162
+ assert(result == 1250000);
158
163
  }
159
164
 
160
165
  #[test]
@@ -177,7 +182,7 @@ fn test_omega_scaling() {
177
182
  omega_loss_min,
178
183
  daily_rf,
179
184
  );
180
- assert(result >= 0);
185
+ assert(result > 0);
181
186
  }
182
187
 
183
188
  #[test]
@@ -188,8 +193,13 @@ fn test_omega_parity() {
188
193
  returns[2] = 1500000i64;
189
194
  let weights = [100000i64; ARRAY_SIZE];
190
195
  let result = omega(returns, 3u32, weights, false, true, 10000000i64, 0i64);
191
- let expected = 0i64;
192
- assert(result == expected);
196
+ let expected = 250000i64;
197
+ let diff = if result > expected {
198
+ result - expected
199
+ } else {
200
+ expected - result
201
+ };
202
+ assert(diff < 1000);
193
203
  }
194
204
 
195
205
  #[test]