proof-of-portfolio 0.0.83__py3-none-any.whl → 0.0.86__py3-none-any.whl

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.
Binary file
@@ -5,11 +5,12 @@ 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
11
12
  MERKLE_DEPTH = 8
12
- SCALING_FACTOR = 10**7
13
+ SCALING_FACTOR = 10**9
13
14
  RATIO_SCALE_FACTOR = 1_000_000
14
15
  PRIME = 21888242871839275222246405745257275088548364400416034343698204186575808495617
15
16
 
@@ -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.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,12 +1,12 @@
1
- proof_of_portfolio/__init__.py,sha256=idt_3gH2rz8eP0NIwPgY6sYKWjoPWi01XfAuxmGPAkE,5052
2
- proof_of_portfolio/_version.py,sha256=pcoaqJNuTLsI0cid2HwHY0U_t4ZMfBmJa3uaUiRN3eU,66
1
+ proof_of_portfolio/__init__.py,sha256=gqM3xkqAO2az6Rhgez0qIREUzZqB3DZYV4IIQHdpwMA,4845
2
+ proof_of_portfolio/_version.py,sha256=RtTTECsZPNhxHhUaprFbR8v3v_NAF49FwcOw5tNe9hg,66
3
3
  proof_of_portfolio/analyze_data.py,sha256=t80ueFtBUzcWTrPiamiC1HXvw5Em-151zXJx0cCk8sQ,3709
4
4
  proof_of_portfolio/main.py,sha256=JbvdAK7B6hw2sQdjT0EVCiglCQZgN3urKphdeWcW43w,30994
5
5
  proof_of_portfolio/min_metrics.py,sha256=U16B7YRl0UbCterdJ1ksqFOxR5DiQeslUzMVGEWNyog,13211
6
6
  proof_of_portfolio/miner.py,sha256=eGXcPMRQVAepzXJj1ePbbDAf-72E9Yj9n-yfP7GohLw,17177
7
7
  proof_of_portfolio/parsing_utils.py,sha256=Hx61Sby5mEbC6uzhG9G69K7YPCLbjU6vK8fazpNBeLc,6463
8
8
  proof_of_portfolio/post_install.py,sha256=e-57Z_h-svQdjA8ibsM985MXmdV6-KLyymQm3Cgu8YM,5654
9
- proof_of_portfolio/proof_generator.py,sha256=T50Vd49gsVNWXOayufmmEETDzwe5-zJKr4NxHBrlEOc,20897
9
+ proof_of_portfolio/proof_generator.py,sha256=DmvJrE1eOeM0IzXxDdvbR1pSyQ2M0zP5L53XkObGTpU,21216
10
10
  proof_of_portfolio/signal_processor.py,sha256=JQjnkMJEbv_MWIgKNrjKjrBIcIT5pAkAlCneEOGsqT0,6702
11
11
  proof_of_portfolio/validator.py,sha256=kt3BeaXOffv-h52PZBKV1YHUWtiGsnPte16m3EJpITY,3839
12
12
  proof_of_portfolio/circuits/Nargo.toml,sha256=D6ycN7H3xiTcWHH5wz4qXYTXn7Ht0WgPr9w4B7d8ZGw,141
@@ -26,14 +26,14 @@ proof_of_portfolio/circuits/components/src/core/tstat.nr,sha256=SLL2UnyfeVUN3NdJ
26
26
  proof_of_portfolio/circuits/components/src/utils/ann_excess_return.nr,sha256=5xryh8HMMA2oHs039_usGHMKPcRoJpl19ZPmPKfDiYQ,1892
27
27
  proof_of_portfolio/circuits/components/src/utils/ann_volatility.nr,sha256=XTQhYuqwj5R8OhDklgyCUVwkW2_L0aThVQerk45fAdk,2118
28
28
  proof_of_portfolio/circuits/components/src/utils/average.nr,sha256=L6YGvEcwOvOd-c5vMHN_fItGweLyGXaRNOHlevn5mJ4,2246
29
- proof_of_portfolio/circuits/components/src/utils/constants.nr,sha256=-Jp6jZ35sOOCLMN4R28oKOQd1Wnj6k5gneHd-kXZxeU,2437
29
+ proof_of_portfolio/circuits/components/src/utils/constants.nr,sha256=0sjT1oX9SBbAhzfbJNG9I-7atJcr21s0_G4_74zI2UE,1945
30
30
  proof_of_portfolio/circuits/components/src/utils/mod.nr,sha256=j1Fwx2shGJcbB3UY6sPtFrFDzbnBhFT3s-RzfzZByCA,151
31
31
  proof_of_portfolio/circuits/components/src/utils/sqrt.nr,sha256=pkCqXr4cBgfb49fzi_N6JypD31GlNYuMdMUoVssVzFQ,2318
32
32
  proof_of_portfolio/circuits/components/src/utils/variance.nr,sha256=p_5NWnLu98FOwOT5GPhI88ksRlxiXBmIVMAtaJB5rrY,2854
33
33
  proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr,sha256=CRfX7k8Hbav1q-NggOyY0f--M0gwtZsXQruQRG2ulbM,1158
34
- proof_of_portfolio/circuits/src/main.nr,sha256=UxsuJ96Uuha4f0pEm1msohqMKB3ccMlQ4MJWZyqgrOM,5002
35
- proof_of_portfolio/circuits/target/circuits.json,sha256=clWlgl86MCd85Qrtzxf-TCZgRd2RFCnrPrcipPWSJyo,13265643
36
- proof_of_portfolio/circuits/vk/vk,sha256=TTkO9op-jTJD69_cUYkQVTnstxUUkE8Fdb2GapCTERM,1764
34
+ proof_of_portfolio/circuits/src/main.nr,sha256=NEGYq92l8N92NH4xRBq_846iz57ROQ1A5AMhhXFS0Lk,5236
35
+ proof_of_portfolio/circuits/target/circuits.json,sha256=1yH8TBpoV-5yUEJLi9D-_XogPjZL3voM1fn3Ue7y4CQ,13840768
36
+ proof_of_portfolio/circuits/vk/vk,sha256=PwtQEVwss0D5fMV01jMzOiBv-rwdq1UjuYjzPTwH1Wk,1764
37
37
  proof_of_portfolio/demo/just_calmar/Nargo.toml,sha256=wJ7j03ThqHr4N_jk4ifjvGzAnhnO0CrSouNHdo6pIl8,77
38
38
  proof_of_portfolio/demo/just_calmar/src/main.nr,sha256=xLzzAwAJf-q43IKvChhf08qcmb1BhDP4sVT6bOsSBRs,5351
39
39
  proof_of_portfolio/demo/just_calmar/target/just_calmar.json,sha256=s_7h0ZLMUM3NURBaEtDxrkbgWlVSBkpa7CLPiLYLhk8,1820536
@@ -77,8 +77,8 @@ proof_of_portfolio/tree_generator/Nargo.toml,sha256=O6iSvb-EpV0XcETiDxNgSp7XKNiY
77
77
  proof_of_portfolio/tree_generator/target.gz,sha256=J55ZC5QuFy6vGC2dSJ-0rEWjUKzzxwXwKGDTDUGp06U,225314
78
78
  proof_of_portfolio/tree_generator/src/main.nr,sha256=5Jb46e5PyZ3kpmIJn4W1gVtN3AgHs-fCmTochVB7uOU,2427
79
79
  proof_of_portfolio/tree_generator/target/tree_generator.json,sha256=Uy9AFLrbsd2SayMFTPgmow91-BIs1DrqP3qGfxfZAa0,1540901
80
- proof_of_portfolio-0.0.83.dist-info/METADATA,sha256=UPBSzszKsoTXqwPVzGWXleHN61G-GgVPXlTx9mh5XKE,7076
81
- proof_of_portfolio-0.0.83.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
82
- proof_of_portfolio-0.0.83.dist-info/entry_points.txt,sha256=KeLSJT_UJtr1WiLTkhlGqWQuPKbO_ylgj6OXOC2gJV4,53
83
- proof_of_portfolio-0.0.83.dist-info/top_level.txt,sha256=sY5xZnE6YuiISK1IuRHPfl71NV0vXO3N3YA2li_SPXU,19
84
- proof_of_portfolio-0.0.83.dist-info/RECORD,,
80
+ proof_of_portfolio-0.0.86.dist-info/METADATA,sha256=Bs8UYkELW5OlpeVlGp1Vop1MUspsHhHrihSqCwJqeEM,7076
81
+ proof_of_portfolio-0.0.86.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
82
+ proof_of_portfolio-0.0.86.dist-info/entry_points.txt,sha256=KeLSJT_UJtr1WiLTkhlGqWQuPKbO_ylgj6OXOC2gJV4,53
83
+ proof_of_portfolio-0.0.86.dist-info/top_level.txt,sha256=sY5xZnE6YuiISK1IuRHPfl71NV0vXO3N3YA2li_SPXU,19
84
+ proof_of_portfolio-0.0.86.dist-info/RECORD,,