proof-of-portfolio 0.0.55__tar.gz → 0.0.57__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.55 → proof_of_portfolio-0.0.57}/PKG-INFO +1 -1
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/_version.py +1 -1
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/proof_generator.py +5 -5
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/returns_generator/src/main.nr +7 -45
- proof_of_portfolio-0.0.57/proof_of_portfolio/returns_generator/target/returns_generator.json +1 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio.egg-info/PKG-INFO +1 -1
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/pyproject.toml +1 -1
- proof_of_portfolio-0.0.55/proof_of_portfolio/returns_generator/target/returns_generator.json +0 -1
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/README.md +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/__init__.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/analyze_data.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/calmar.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/cps_to_log_returns.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/drawdown.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/merkle.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/mod.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/omega.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/position.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/sharpe.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/sortino.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/core/tstat.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/float/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/float/Verifier.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/float/src/lib.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/lib.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/nrstat.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/utils/ann_excess_return.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/utils/ann_volatility.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/utils/average.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/utils/constants.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/utils/mod.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/utils/sqrt.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/utils/variance.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/generate_inputs.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/proof/proof +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/proof/public_inputs +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/target/circuits.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/circuits/vk/vk +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_calmar/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_calmar/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_calmar/target/just_calmar.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_cps_to_log_return/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_cps_to_log_return/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_cps_to_log_return/target/just_cps_to_log_return.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_drawdown/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_drawdown/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_drawdown/target/just_drawdown.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_omega/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_omega/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_omega/target/just_omega.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_sharpe/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_sharpe/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_sharpe/target/just_sharpe.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_sortino/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_sortino/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_sortino/target/just_sortino.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_tstat/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_tstat/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/just_tstat/target/just_tstat.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/merkle_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demo/merkle_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/all.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/calmar.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/drawdown.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/generate_input_data.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/log_returns.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/main.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/omega.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/sharpe.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/sortino.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/tstat.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/demos/utils.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/main.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/min_metrics.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/miner.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/parsing_utils.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/post_install.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/returns_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/signal_processor.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/tree_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/tree_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/tree_generator/target/tree_generator.json +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/tree_generator/target.gz +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/validator.py +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio.egg-info/SOURCES.txt +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio.egg-info/dependency_links.txt +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio.egg-info/entry_points.txt +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio.egg-info/requires.txt +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio.egg-info/top_level.txt +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/setup.cfg +0 -0
- {proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/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.57
|
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.57"
|
{proof_of_portfolio-0.0.55 → proof_of_portfolio-0.0.57}/proof_of_portfolio/proof_generator.py
RENAMED
@@ -519,11 +519,11 @@ def generate_proof(
|
|
519
519
|
returns_generator_dir = os.path.join(current_dir, "returns_generator")
|
520
520
|
|
521
521
|
returns_prover_input = {
|
522
|
-
"gains": [str(g) for g in
|
523
|
-
"losses": [str(l) for l in
|
524
|
-
"last_update_times": [str(t) for t in
|
525
|
-
"accum_times": [str(a) for a in
|
526
|
-
"checkpoint_count": str(
|
522
|
+
"gains": [str(g) for g in aggregated_gains],
|
523
|
+
"losses": [str(l) for l in aggregated_losses],
|
524
|
+
"last_update_times": [str(t) for t in aggregated_last_update_times],
|
525
|
+
"accum_times": [str(a) for a in aggregated_accum_times],
|
526
|
+
"checkpoint_count": str(aggregated_checkpoint_count),
|
527
527
|
"target_duration": str(target_duration),
|
528
528
|
}
|
529
529
|
|
@@ -51,7 +51,7 @@ pub fn build_merkle_root(leaves: [Field; MAX_RETURNS], num_leaves: u32) -> Field
|
|
51
51
|
}
|
52
52
|
}
|
53
53
|
|
54
|
-
//
|
54
|
+
// Accepts pre-processed daily returns directly (no filtering/aggregation)
|
55
55
|
pub fn calculate_daily_returns(
|
56
56
|
gains: [i64; MAX_CHECKPOINTS],
|
57
57
|
losses: [i64; MAX_CHECKPOINTS],
|
@@ -61,54 +61,16 @@ pub fn calculate_daily_returns(
|
|
61
61
|
target_duration: u64,
|
62
62
|
) -> ([i64; MAX_DAYS], u32) {
|
63
63
|
let mut daily_returns: [i64; MAX_DAYS] = [0; MAX_DAYS];
|
64
|
-
let mut daily_counts: [u32; MAX_DAYS] = [0; MAX_DAYS];
|
65
|
-
let mut daily_sums: [i64; MAX_DAYS] = [0; MAX_DAYS];
|
66
|
-
let mut unique_days: [u64; MAX_DAYS] = [0; MAX_DAYS];
|
67
|
-
let mut num_days: u32 = 0;
|
68
64
|
|
69
|
-
|
70
|
-
|
71
|
-
if accum_times[i] == target_duration {
|
72
|
-
let start_time = last_update_times[i] - accum_times[i];
|
73
|
-
let day_timestamp = start_time / (SECONDS_PER_DAY * 1000);
|
74
|
-
let mut day_index: u32 = MAX_DAYS as u32;
|
75
|
-
let mut found = false;
|
76
|
-
for j in 0..MAX_DAYS {
|
77
|
-
if !found {
|
78
|
-
if unique_days[j] == day_timestamp {
|
79
|
-
day_index = j as u32;
|
80
|
-
found = true;
|
81
|
-
} else {
|
82
|
-
if unique_days[j] == 0 {
|
83
|
-
if day_index == (MAX_DAYS as u32) {
|
84
|
-
unique_days[j] = day_timestamp;
|
85
|
-
day_index = j as u32;
|
86
|
-
if (j as u32) >= num_days {
|
87
|
-
num_days = (j as u32) + 1;
|
88
|
-
}
|
89
|
-
found = true;
|
90
|
-
}
|
91
|
-
}
|
92
|
-
}
|
93
|
-
}
|
94
|
-
}
|
95
|
-
if day_index < (MAX_DAYS as u32) {
|
96
|
-
daily_sums[day_index] += gains[i] + losses[i];
|
97
|
-
daily_counts[day_index] += 1;
|
98
|
-
}
|
99
|
-
}
|
100
|
-
}
|
101
|
-
}
|
102
|
-
let mut valid_days: u32 = 0;
|
65
|
+
// Since Python pre-processes the data to match subnet logic,
|
66
|
+
// we just pass through the aggregated daily returns directly
|
103
67
|
for i in 0..MAX_DAYS {
|
104
|
-
if
|
105
|
-
|
106
|
-
daily_returns[valid_days] = daily_sums[i];
|
107
|
-
valid_days += 1;
|
108
|
-
}
|
68
|
+
if (i as u32) < checkpoint_count {
|
69
|
+
daily_returns[i] = gains[i] + losses[i];
|
109
70
|
}
|
110
71
|
}
|
111
|
-
|
72
|
+
|
73
|
+
(daily_returns, checkpoint_count)
|
112
74
|
}
|
113
75
|
|
114
76
|
pub fn cps_to_log_returns(
|