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.
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/PKG-INFO +1 -1
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/_version.py +1 -1
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/constants.nr +15 -17
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/src/main.nr +19 -11
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/target/circuits.json +1 -1
- proof_of_portfolio-0.0.86/proof_of_portfolio/circuits/vk/vk +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/proof_generator.py +1 -1
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/PKG-INFO +1 -1
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/pyproject.toml +1 -1
- proof_of_portfolio-0.0.84/proof_of_portfolio/circuits/vk/vk +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/README.md +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/__init__.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/analyze_data.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/calmar.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/drawdown.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/merkle.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/mod.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/omega.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/pnl_score.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/position.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/sharpe.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/sortino.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/core/tstat.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/lib.nr +0 -0
- {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
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/ann_volatility.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/average.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/mod.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/sqrt.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/variance.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/generate_inputs.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_calmar/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_calmar/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_calmar/target/just_calmar.json +0 -0
- {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
- {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
- {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
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_drawdown/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_drawdown/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_drawdown/target/just_drawdown.json +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_omega/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_omega/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_omega/target/just_omega.json +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_pnl/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_pnl/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sharpe/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sharpe/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sharpe/target/just_sharpe.json +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sortino/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sortino/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_sortino/target/just_sortino.json +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_tstat/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_tstat/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/just_tstat/target/just_tstat.json +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/merkle_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demo/merkle_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/all.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/calmar.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/drawdown.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/generate_input_data.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/log_returns.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/main.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/omega.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/sharpe.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/sortino.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/tstat.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/demos/utils.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/main.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/min_metrics.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/miner.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/parsing_utils.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/post_install.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/returns_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/returns_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/returns_generator/target/returns_generator.json +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/signal_processor.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/tree_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/tree_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/tree_generator/target/tree_generator.json +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/tree_generator/target.gz +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/validator.py +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/SOURCES.txt +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/dependency_links.txt +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/entry_points.txt +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/requires.txt +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio.egg-info/top_level.txt +0 -0
- {proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/setup.cfg +0 -0
- {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.
|
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.
|
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
|
-
|
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 =
|
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 =
|
28
|
-
pub global OMEGA_LOSS_MINIMUM: i64 =
|
29
|
-
pub global SORTINO_DOWNSIDE_MINIMUM: i64 =
|
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;
|
33
|
-
pub global SHARPE_SCALE_FACTOR: i64 = 1000000;
|
34
|
-
pub global LARGE_POSITIVE_VALUE: i64 = 1000000000;
|
35
|
-
pub global RATIO_SCALE_FACTOR: i64 = 1000000;
|
36
|
-
|
37
|
-
|
38
|
-
pub global
|
39
|
-
pub global
|
40
|
-
pub global
|
41
|
-
pub global
|
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;
|
{proof_of_portfolio-0.0.84 → proof_of_portfolio-0.0.86}/proof_of_portfolio/circuits/src/main.nr
RENAMED
@@ -96,7 +96,24 @@ fn main(
|
|
96
96
|
use_weighting,
|
97
97
|
);
|
98
98
|
|
99
|
-
let
|
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
|
-
|
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];
|