proof-of-portfolio 0.0.84__tar.gz → 0.0.86__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 (91) hide show
  1. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/PKG-INFO +1 -1
  2. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/_version.py +1 -1
  3. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/constants.nr +15 -17
  4. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/src/main.nr +19 -11
  5. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/target/circuits.json +1 -1
  6. proof_of_portfolio-0.0.86/proof_of_portfolio/circuits/vk/vk +0 -0
  7. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/proof_generator.py +1 -1
  8. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/PKG-INFO +1 -1
  9. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/pyproject.toml +1 -1
  10. proof_of_portfolio-0.0.84/proof_of_portfolio/circuits/vk/vk +0 -0
  11. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/README.md +0 -0
  12. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/__init__.py +0 -0
  13. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/analyze_data.py +0 -0
  14. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/Nargo.toml +0 -0
  15. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/Nargo.toml +0 -0
  16. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/calmar.nr +0 -0
  17. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/drawdown.nr +0 -0
  18. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/merkle.nr +0 -0
  19. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/mod.nr +0 -0
  20. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/omega.nr +0 -0
  21. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/pnl_score.nr +0 -0
  22. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/position.nr +0 -0
  23. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/sharpe.nr +0 -0
  24. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/sortino.nr +0 -0
  25. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/tstat.nr +0 -0
  26. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/lib.nr +0 -0
  27. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/ann_excess_return.nr +0 -0
  28. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/ann_volatility.nr +0 -0
  29. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/average.nr +0 -0
  30. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/mod.nr +0 -0
  31. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/sqrt.nr +0 -0
  32. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/variance.nr +0 -0
  33. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr +0 -0
  34. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/generate_inputs.py +0 -0
  35. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_calmar/Nargo.toml +0 -0
  36. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_calmar/src/main.nr +0 -0
  37. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_calmar/target/just_calmar.json +0 -0
  38. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_cps_to_log_return/Nargo.toml +0 -0
  39. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_cps_to_log_return/src/main.nr +0 -0
  40. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_cps_to_log_return/target/just_cps_to_log_return.json +0 -0
  41. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_drawdown/Nargo.toml +0 -0
  42. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_drawdown/src/main.nr +0 -0
  43. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_drawdown/target/just_drawdown.json +0 -0
  44. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_omega/Nargo.toml +0 -0
  45. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_omega/src/main.nr +0 -0
  46. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_omega/target/just_omega.json +0 -0
  47. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_pnl/Nargo.toml +0 -0
  48. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_pnl/src/main.nr +0 -0
  49. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sharpe/Nargo.toml +0 -0
  50. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sharpe/src/main.nr +0 -0
  51. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sharpe/target/just_sharpe.json +0 -0
  52. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sortino/Nargo.toml +0 -0
  53. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sortino/src/main.nr +0 -0
  54. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sortino/target/just_sortino.json +0 -0
  55. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_tstat/Nargo.toml +0 -0
  56. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_tstat/src/main.nr +0 -0
  57. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_tstat/target/just_tstat.json +0 -0
  58. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/merkle_generator/Nargo.toml +0 -0
  59. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/merkle_generator/src/main.nr +0 -0
  60. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/all.py +0 -0
  61. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/calmar.py +0 -0
  62. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/drawdown.py +0 -0
  63. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/generate_input_data.py +0 -0
  64. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/log_returns.py +0 -0
  65. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/main.py +0 -0
  66. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/omega.py +0 -0
  67. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/sharpe.py +0 -0
  68. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/sortino.py +0 -0
  69. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/tstat.py +0 -0
  70. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/utils.py +0 -0
  71. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/main.py +0 -0
  72. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/min_metrics.py +0 -0
  73. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/miner.py +0 -0
  74. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/parsing_utils.py +0 -0
  75. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/post_install.py +0 -0
  76. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/returns_generator/Nargo.toml +0 -0
  77. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/returns_generator/src/main.nr +0 -0
  78. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/returns_generator/target/returns_generator.json +0 -0
  79. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/signal_processor.py +0 -0
  80. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/tree_generator/Nargo.toml +0 -0
  81. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/tree_generator/src/main.nr +0 -0
  82. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/tree_generator/target/tree_generator.json +0 -0
  83. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/tree_generator/target.gz +0 -0
  84. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/validator.py +0 -0
  85. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/SOURCES.txt +0 -0
  86. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/dependency_links.txt +0 -0
  87. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/entry_points.txt +0 -0
  88. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/requires.txt +0 -0
  89. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/top_level.txt +0 -0
  90. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/setup.cfg +0 -0
  91. {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proof-of-portfolio
3
- Version: 0.0.84
3
+ Version: 0.0.86
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.84"
2
+ __version__ = "0.0.86"
@@ -12,8 +12,7 @@ pub global MERKLE_DEPTH: u32 = 8;
12
12
  pub global DAILY_CHECKPOINTS: u32 = 2;
13
13
  pub global SECONDS_PER_DAY: u64 = 86400;
14
14
 
15
- // Base scaling factor (10^7)
16
- pub global SCALE: i64 = 10_000_000;
15
+ pub global SCALE: i64 = 1_000_000_000;
17
16
 
18
17
  // Date and time constants
19
18
  pub global DAYS_IN_YEAR: i64 = 365;
@@ -21,25 +20,24 @@ pub global STATISTICAL_CONFIDENCE_MINIMUM_N: u32 = 60;
21
20
 
22
21
  // Risk-free rate (as basis points, 419 = 4.19%)
23
22
  pub global ANNUAL_RISK_FREE_RATE_BP: i64 = 419;
24
- pub global DAILY_LOG_RISK_FREE_RATE: i64 = 2351; // (0.0419 / 365) * SCALE
23
+ pub global DAILY_LOG_RISK_FREE_RATE: i64 = 114794;
25
24
 
26
25
  // Minimum values for ratio calculations (scaled for integer math)
27
- pub global SHARPE_STDDEV_MINIMUM: i64 = 100000; // 0.01 * 10^7
28
- pub global OMEGA_LOSS_MINIMUM: i64 = 100000; // 0.01 * 10^7
29
- pub global SORTINO_DOWNSIDE_MINIMUM: i64 = 100000; // 0.01 * 10^7
26
+ pub global SHARPE_STDDEV_MINIMUM: i64 = 10_000_000;
27
+ pub global OMEGA_LOSS_MINIMUM: i64 = 10_000_000;
28
+ pub global SORTINO_DOWNSIDE_MINIMUM: i64 = 10_000_000;
30
29
 
31
30
  // Scaling factors for precision in integer calculations
32
- pub global OMEGA_SCALE_FACTOR: i64 = 1000000000; // 1B for Omega precision
33
- pub global SHARPE_SCALE_FACTOR: i64 = 1000000; // 1M for Sharpe precision
34
- pub global LARGE_POSITIVE_VALUE: i64 = 1000000000; // Used for ratios when denominator is zero/minimal
35
- pub global RATIO_SCALE_FACTOR: i64 = 1000000; // Standard 1M scaling for ratios
36
-
37
- // Default return values for insufficient confidence (will be divided by RATIO_SCALE_FACTOR)
38
- pub global CALMAR_NOCONFIDENCE_VALUE: i64 = -100000000; // -100 * 10^6 -> -100 after scaling
39
- pub global SHARPE_NOCONFIDENCE_VALUE: i64 = -100000000; // -100 * 10^6 -> -100 after scaling
40
- pub global OMEGA_NOCONFIDENCE_VALUE: i64 = 0; // Omega uses 0.0 in subnet
41
- pub global SORTINO_NOCONFIDENCE_VALUE: i64 = -100000000; // -100 * 10^6 -> -100 after scaling
42
- pub global STATISTICAL_CONFIDENCE_NOCONFIDENCE_VALUE: i64 = -100000000; // -100 * 10^6 -> -100 after scaling
31
+ pub global OMEGA_SCALE_FACTOR: i64 = 1000000000;
32
+ pub global SHARPE_SCALE_FACTOR: i64 = 1000000;
33
+ pub global LARGE_POSITIVE_VALUE: i64 = 1000000000;
34
+ pub global RATIO_SCALE_FACTOR: i64 = 1000000;
35
+
36
+ pub global CALMAR_NOCONFIDENCE_VALUE: i64 = -100000000;
37
+ pub global SHARPE_NOCONFIDENCE_VALUE: i64 = -100000000;
38
+ pub global OMEGA_NOCONFIDENCE_VALUE: i64 = 0;
39
+ pub global SORTINO_NOCONFIDENCE_VALUE: i64 = -100000000;
40
+ pub global STATISTICAL_CONFIDENCE_NOCONFIDENCE_VALUE: i64 = -100000000;
43
41
 
44
42
  // Position and trading constants
45
43
  pub global PRICE_SCALE: u64 = 1_000_000_000_000;
@@ -96,7 +96,24 @@ fn main(
96
96
  use_weighting,
97
97
  );
98
98
 
99
- let avg_daily_pnl = avg_daily_return;
99
+ let mut daily_pnl_array = [0; ARRAY_SIZE];
100
+ for i in 0..MAX_DAYS {
101
+ if (i as u32) < n_returns {
102
+ let log_return = returns_array[i];
103
+ let x_squared = (log_return * log_return) / SCALE;
104
+ let x_cubed = (x_squared * log_return) / SCALE;
105
+ let exp_minus_one = log_return + (x_squared / 2) + (x_cubed / 6);
106
+ daily_pnl_array[i] = (exp_minus_one * account_size) / SCALE;
107
+ }
108
+ }
109
+
110
+ let avg_daily_pnl = average(
111
+ daily_pnl_array,
112
+ n_returns,
113
+ weights,
114
+ use_weighting,
115
+ sum_of_weights,
116
+ );
100
117
 
101
118
  let sharpe_ratio = sharpe(
102
119
  returns_array,
@@ -150,16 +167,7 @@ fn main(
150
167
  ann_excess_return_val,
151
168
  );
152
169
 
153
- // Calculate PnL from cumulative log returns
154
- let mut cumulative_log_return: i64 = 0;
155
- for i in 0..MAX_DAYS {
156
- if (i as u32) < n_returns {
157
- cumulative_log_return += log_returns[i];
158
- }
159
- }
160
-
161
- // Convert log return to linear return and calculate PnL
162
- let pnl_score_result = (account_size * cumulative_log_return) / SCALE;
170
+ let pnl_score_result = avg_daily_pnl;
163
171
 
164
172
  // Build merkle root from returns
165
173
  let mut leaves = [0; MAX_RETURNS];